summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/linux_builds.yml12
-rw-r--r--CHANGELOG.md5
-rw-r--r--COPYRIGHT.txt24
-rw-r--r--LICENSE.txt4
-rw-r--r--SConstruct7
-rw-r--r--core/config/engine.cpp4
-rw-r--r--core/config/engine.h4
-rw-r--r--core/config/project_settings.cpp4
-rw-r--r--core/config/project_settings.h4
-rw-r--r--core/core_bind.cpp12
-rw-r--r--core/core_bind.h4
-rw-r--r--core/core_constants.cpp33
-rw-r--r--core/core_constants.h4
-rw-r--r--core/core_string_names.cpp4
-rw-r--r--core/core_string_names.h4
-rw-r--r--core/crypto/aes_context.cpp4
-rw-r--r--core/crypto/aes_context.h4
-rw-r--r--core/crypto/crypto.cpp4
-rw-r--r--core/crypto/crypto.h4
-rw-r--r--core/crypto/crypto_core.cpp4
-rw-r--r--core/crypto/crypto_core.h4
-rw-r--r--core/crypto/hashing_context.cpp4
-rw-r--r--core/crypto/hashing_context.h4
-rw-r--r--core/debugger/debugger_marshalls.cpp4
-rw-r--r--core/debugger/debugger_marshalls.h4
-rw-r--r--core/debugger/engine_debugger.cpp4
-rw-r--r--core/debugger/engine_debugger.h4
-rw-r--r--core/debugger/local_debugger.cpp4
-rw-r--r--core/debugger/local_debugger.h4
-rw-r--r--core/debugger/remote_debugger.cpp4
-rw-r--r--core/debugger/remote_debugger.h4
-rw-r--r--core/debugger/remote_debugger_peer.cpp4
-rw-r--r--core/debugger/remote_debugger_peer.h4
-rw-r--r--core/debugger/script_debugger.cpp4
-rw-r--r--core/debugger/script_debugger.h4
-rw-r--r--core/doc_data.cpp4
-rw-r--r--core/doc_data.h4
-rw-r--r--core/error/error_list.cpp4
-rw-r--r--core/error/error_list.h4
-rw-r--r--core/error/error_macros.cpp4
-rw-r--r--core/error/error_macros.h4
-rw-r--r--core/extension/extension_api_dump.cpp4
-rw-r--r--core/extension/extension_api_dump.h4
-rw-r--r--core/extension/gdnative_interface.cpp4
-rw-r--r--core/extension/gdnative_interface.h4
-rw-r--r--core/extension/native_extension.cpp4
-rw-r--r--core/extension/native_extension.h4
-rw-r--r--core/extension/native_extension_manager.cpp4
-rw-r--r--core/extension/native_extension_manager.h4
-rw-r--r--core/input/default_controller_mappings.h4
-rw-r--r--core/input/input.cpp7
-rw-r--r--core/input/input.h4
-rw-r--r--core/input/input_enums.h17
-rw-r--r--core/input/input_event.cpp4
-rw-r--r--core/input/input_event.h4
-rw-r--r--core/input/input_map.cpp4
-rw-r--r--core/input/input_map.h4
-rw-r--r--core/input/shortcut.cpp4
-rw-r--r--core/input/shortcut.h4
-rw-r--r--core/io/compression.cpp4
-rw-r--r--core/io/compression.h4
-rw-r--r--core/io/config_file.cpp4
-rw-r--r--core/io/config_file.h4
-rw-r--r--core/io/dir_access.cpp4
-rw-r--r--core/io/dir_access.h4
-rw-r--r--core/io/dtls_server.cpp4
-rw-r--r--core/io/dtls_server.h4
-rw-r--r--core/io/file_access.cpp4
-rw-r--r--core/io/file_access.h4
-rw-r--r--core/io/file_access_compressed.cpp8
-rw-r--r--core/io/file_access_compressed.h4
-rw-r--r--core/io/file_access_encrypted.cpp4
-rw-r--r--core/io/file_access_encrypted.h4
-rw-r--r--core/io/file_access_memory.cpp4
-rw-r--r--core/io/file_access_memory.h4
-rw-r--r--core/io/file_access_network.cpp4
-rw-r--r--core/io/file_access_network.h4
-rw-r--r--core/io/file_access_pack.cpp4
-rw-r--r--core/io/file_access_pack.h4
-rw-r--r--core/io/file_access_zip.cpp6
-rw-r--r--core/io/file_access_zip.h4
-rw-r--r--core/io/http_client.cpp4
-rw-r--r--core/io/http_client.h4
-rw-r--r--core/io/http_client_tcp.cpp4
-rw-r--r--core/io/http_client_tcp.h8
-rw-r--r--core/io/image.cpp4
-rw-r--r--core/io/image.h4
-rw-r--r--core/io/image_loader.cpp4
-rw-r--r--core/io/image_loader.h4
-rw-r--r--core/io/ip.cpp4
-rw-r--r--core/io/ip.h4
-rw-r--r--core/io/ip_address.cpp4
-rw-r--r--core/io/ip_address.h4
-rw-r--r--core/io/json.cpp4
-rw-r--r--core/io/json.h4
-rw-r--r--core/io/logger.cpp4
-rw-r--r--core/io/logger.h4
-rw-r--r--core/io/marshalls.cpp4
-rw-r--r--core/io/marshalls.h4
-rw-r--r--core/io/net_socket.cpp4
-rw-r--r--core/io/net_socket.h4
-rw-r--r--core/io/packed_data_container.cpp4
-rw-r--r--core/io/packed_data_container.h4
-rw-r--r--core/io/packet_peer.cpp4
-rw-r--r--core/io/packet_peer.h4
-rw-r--r--core/io/packet_peer_dtls.cpp4
-rw-r--r--core/io/packet_peer_dtls.h4
-rw-r--r--core/io/packet_peer_udp.cpp4
-rw-r--r--core/io/packet_peer_udp.h4
-rw-r--r--core/io/pck_packer.cpp4
-rw-r--r--core/io/pck_packer.h4
-rw-r--r--core/io/resource.cpp8
-rw-r--r--core/io/resource.h4
-rw-r--r--core/io/resource_format_binary.cpp76
-rw-r--r--core/io/resource_format_binary.h4
-rw-r--r--core/io/resource_importer.cpp4
-rw-r--r--core/io/resource_importer.h4
-rw-r--r--core/io/resource_loader.cpp4
-rw-r--r--core/io/resource_loader.h4
-rw-r--r--core/io/resource_saver.cpp4
-rw-r--r--core/io/resource_saver.h4
-rw-r--r--core/io/resource_uid.cpp4
-rw-r--r--core/io/resource_uid.h4
-rw-r--r--core/io/stream_peer.cpp4
-rw-r--r--core/io/stream_peer.h4
-rw-r--r--core/io/stream_peer_ssl.cpp4
-rw-r--r--core/io/stream_peer_ssl.h4
-rw-r--r--core/io/stream_peer_tcp.cpp4
-rw-r--r--core/io/stream_peer_tcp.h4
-rw-r--r--core/io/tcp_server.cpp4
-rw-r--r--core/io/tcp_server.h4
-rw-r--r--core/io/translation_loader_po.cpp4
-rw-r--r--core/io/translation_loader_po.h4
-rw-r--r--core/io/udp_server.cpp4
-rw-r--r--core/io/udp_server.h4
-rw-r--r--core/io/xml_parser.cpp4
-rw-r--r--core/io/xml_parser.h4
-rw-r--r--core/io/zip_io.cpp4
-rw-r--r--core/io/zip_io.h4
-rw-r--r--core/math/a_star.cpp4
-rw-r--r--core/math/a_star.h4
-rw-r--r--core/math/aabb.cpp4
-rw-r--r--core/math/aabb.h4
-rw-r--r--core/math/audio_frame.h4
-rw-r--r--core/math/basis.cpp43
-rw-r--r--core/math/basis.h11
-rw-r--r--core/math/bvh.h4
-rw-r--r--core/math/bvh_abb.h4
-rw-r--r--core/math/bvh_tree.h4
-rw-r--r--core/math/camera_matrix.cpp4
-rw-r--r--core/math/camera_matrix.h4
-rw-r--r--core/math/color.cpp4
-rw-r--r--core/math/color.h4
-rw-r--r--core/math/convex_hull.cpp4
-rw-r--r--core/math/convex_hull.h4
-rw-r--r--core/math/delaunay_2d.h4
-rw-r--r--core/math/delaunay_3d.h4
-rw-r--r--core/math/disjoint_set.h4
-rw-r--r--core/math/dynamic_bvh.cpp4
-rw-r--r--core/math/dynamic_bvh.h4
-rw-r--r--core/math/expression.cpp4
-rw-r--r--core/math/expression.h4
-rw-r--r--core/math/face3.cpp4
-rw-r--r--core/math/face3.h4
-rw-r--r--core/math/geometry_2d.cpp4
-rw-r--r--core/math/geometry_2d.h4
-rw-r--r--core/math/geometry_3d.cpp4
-rw-r--r--core/math/geometry_3d.h4
-rw-r--r--core/math/math_defs.h4
-rw-r--r--core/math/math_fieldwise.cpp4
-rw-r--r--core/math/math_fieldwise.h4
-rw-r--r--core/math/math_funcs.cpp4
-rw-r--r--core/math/math_funcs.h4
-rw-r--r--core/math/octree.h6
-rw-r--r--core/math/plane.cpp4
-rw-r--r--core/math/plane.h4
-rw-r--r--core/math/quaternion.cpp4
-rw-r--r--core/math/quaternion.h4
-rw-r--r--core/math/quick_hull.cpp4
-rw-r--r--core/math/quick_hull.h4
-rw-r--r--core/math/random_number_generator.cpp4
-rw-r--r--core/math/random_number_generator.h4
-rw-r--r--core/math/random_pcg.cpp4
-rw-r--r--core/math/random_pcg.h4
-rw-r--r--core/math/rect2.cpp4
-rw-r--r--core/math/rect2.h4
-rw-r--r--core/math/static_raycaster.cpp4
-rw-r--r--core/math/static_raycaster.h4
-rw-r--r--core/math/transform_2d.cpp4
-rw-r--r--core/math/transform_2d.h4
-rw-r--r--core/math/transform_3d.cpp28
-rw-r--r--core/math/transform_3d.h7
-rw-r--r--core/math/triangle_mesh.cpp4
-rw-r--r--core/math/triangle_mesh.h4
-rw-r--r--core/math/triangulate.cpp4
-rw-r--r--core/math/triangulate.h4
-rw-r--r--core/math/vector2.cpp12
-rw-r--r--core/math/vector2.h22
-rw-r--r--core/math/vector3.cpp4
-rw-r--r--core/math/vector3.h16
-rw-r--r--core/math/vector3i.cpp4
-rw-r--r--core/math/vector3i.h16
-rw-r--r--core/multiplayer/multiplayer.h4
-rw-r--r--core/multiplayer/multiplayer_api.cpp4
-rw-r--r--core/multiplayer/multiplayer_api.h4
-rw-r--r--core/multiplayer/multiplayer_peer.cpp4
-rw-r--r--core/multiplayer/multiplayer_peer.h4
-rw-r--r--core/multiplayer/multiplayer_replicator.cpp6
-rw-r--r--core/multiplayer/multiplayer_replicator.h4
-rw-r--r--core/multiplayer/rpc_manager.cpp4
-rw-r--r--core/multiplayer/rpc_manager.h4
-rw-r--r--core/object/callable_method_pointer.cpp4
-rw-r--r--core/object/callable_method_pointer.h4
-rw-r--r--core/object/class_db.cpp4
-rw-r--r--core/object/class_db.h4
-rw-r--r--core/object/message_queue.cpp4
-rw-r--r--core/object/message_queue.h4
-rw-r--r--core/object/method_bind.cpp4
-rw-r--r--core/object/method_bind.h4
-rw-r--r--core/object/object.cpp4
-rw-r--r--core/object/object.h7
-rw-r--r--core/object/object_id.h4
-rw-r--r--core/object/ref_counted.cpp4
-rw-r--r--core/object/ref_counted.h4
-rw-r--r--core/object/script_language.cpp4
-rw-r--r--core/object/script_language.h28
-rw-r--r--core/object/undo_redo.cpp4
-rw-r--r--core/object/undo_redo.h4
-rw-r--r--core/os/keyboard.cpp4
-rw-r--r--core/os/keyboard.h4
-rw-r--r--core/os/main_loop.cpp4
-rw-r--r--core/os/main_loop.h4
-rw-r--r--core/os/memory.cpp4
-rw-r--r--core/os/memory.h4
-rw-r--r--core/os/midi_driver.cpp4
-rw-r--r--core/os/midi_driver.h4
-rw-r--r--core/os/mutex.cpp4
-rw-r--r--core/os/mutex.h4
-rw-r--r--core/os/os.cpp6
-rw-r--r--core/os/os.h4
-rw-r--r--core/os/pool_allocator.cpp4
-rw-r--r--core/os/pool_allocator.h4
-rw-r--r--core/os/rw_lock.h4
-rw-r--r--core/os/semaphore.h4
-rw-r--r--core/os/spin_lock.h4
-rw-r--r--core/os/thread.cpp4
-rw-r--r--core/os/thread.h4
-rw-r--r--core/os/thread_safe.h4
-rw-r--r--core/os/threaded_array_processor.h4
-rw-r--r--core/os/time.cpp4
-rw-r--r--core/os/time.h4
-rw-r--r--core/register_core_types.cpp4
-rw-r--r--core/register_core_types.h4
-rw-r--r--core/string/node_path.cpp4
-rw-r--r--core/string/node_path.h4
-rw-r--r--core/string/optimized_translation.cpp4
-rw-r--r--core/string/optimized_translation.h6
-rw-r--r--core/string/print_string.cpp4
-rw-r--r--core/string/print_string.h4
-rw-r--r--core/string/string_buffer.h4
-rw-r--r--core/string/string_builder.cpp4
-rw-r--r--core/string/string_builder.h4
-rw-r--r--core/string/string_name.cpp4
-rw-r--r--core/string/string_name.h4
-rw-r--r--core/string/translation.cpp4
-rw-r--r--core/string/translation.h4
-rw-r--r--core/string/translation_po.cpp4
-rw-r--r--core/string/translation_po.h4
-rw-r--r--core/string/ucaps.h4
-rw-r--r--core/string/ustring.cpp4
-rw-r--r--core/string/ustring.h4
-rw-r--r--core/templates/bin_sorted_array.h4
-rw-r--r--core/templates/command_queue_mt.cpp4
-rw-r--r--core/templates/command_queue_mt.h4
-rw-r--r--core/templates/cowdata.h4
-rw-r--r--core/templates/hash_map.h4
-rw-r--r--core/templates/hashfuncs.h4
-rw-r--r--core/templates/list.h4
-rw-r--r--core/templates/local_vector.h12
-rw-r--r--core/templates/lru.h4
-rw-r--r--core/templates/map.h4
-rw-r--r--core/templates/oa_hash_map.h4
-rw-r--r--core/templates/ordered_hash_map.h4
-rw-r--r--core/templates/paged_allocator.h4
-rw-r--r--core/templates/paged_array.h4
-rw-r--r--core/templates/pair.h4
-rw-r--r--core/templates/pass_func.h4
-rw-r--r--core/templates/pooled_list.h4
-rw-r--r--core/templates/rid.h4
-rw-r--r--core/templates/rid_owner.cpp4
-rw-r--r--core/templates/rid_owner.h4
-rw-r--r--core/templates/ring_buffer.h4
-rw-r--r--core/templates/safe_list.h4
-rw-r--r--core/templates/safe_refcount.h4
-rw-r--r--core/templates/search_array.h4
-rw-r--r--core/templates/self_list.h4
-rw-r--r--core/templates/set.h7
-rw-r--r--core/templates/simple_type.h4
-rw-r--r--core/templates/sort_array.h4
-rw-r--r--core/templates/thread_work_pool.cpp4
-rw-r--r--core/templates/thread_work_pool.h4
-rw-r--r--core/templates/vector.h15
-rw-r--r--core/templates/vmap.h4
-rw-r--r--core/templates/vset.h4
-rw-r--r--core/typedefs.h4
-rw-r--r--core/variant/array.cpp4
-rw-r--r--core/variant/array.h4
-rw-r--r--core/variant/binder_common.h4
-rw-r--r--core/variant/callable.cpp4
-rw-r--r--core/variant/callable.h4
-rw-r--r--core/variant/callable_bind.cpp4
-rw-r--r--core/variant/callable_bind.h10
-rw-r--r--core/variant/container_type_validate.h4
-rw-r--r--core/variant/dictionary.cpp4
-rw-r--r--core/variant/dictionary.h4
-rw-r--r--core/variant/method_ptrcall.h4
-rw-r--r--core/variant/native_ptr.h4
-rw-r--r--core/variant/type_info.h4
-rw-r--r--core/variant/typed_array.h4
-rw-r--r--core/variant/variant.cpp4
-rw-r--r--core/variant/variant.h4
-rw-r--r--core/variant/variant_call.cpp8
-rw-r--r--core/variant/variant_construct.cpp4
-rw-r--r--core/variant/variant_construct.h4
-rw-r--r--core/variant/variant_destruct.cpp4
-rw-r--r--core/variant/variant_destruct.h4
-rw-r--r--core/variant/variant_internal.h4
-rw-r--r--core/variant/variant_op.cpp4
-rw-r--r--core/variant/variant_op.h4
-rw-r--r--core/variant/variant_parser.cpp4
-rw-r--r--core/variant/variant_parser.h4
-rw-r--r--core/variant/variant_setget.cpp6
-rw-r--r--core/variant/variant_setget.h4
-rw-r--r--core/variant/variant_utility.cpp4
-rw-r--r--core/version.h4
-rw-r--r--doc/classes/@GlobalScope.xml87
-rw-r--r--doc/classes/AudioEffectRecord.xml6
-rw-r--r--doc/classes/BaseMaterial3D.xml22
-rw-r--r--doc/classes/Camera2D.xml2
-rw-r--r--doc/classes/CanvasItem.xml26
-rw-r--r--doc/classes/CharacterBody2D.xml18
-rw-r--r--doc/classes/CharacterBody3D.xml16
-rw-r--r--doc/classes/CodeEdit.xml6
-rw-r--r--doc/classes/CodeHighlighter.xml6
-rw-r--r--doc/classes/Color.xml8
-rw-r--r--doc/classes/ColorPicker.xml2
-rw-r--r--doc/classes/Control.xml2
-rw-r--r--doc/classes/ConvexPolygonShape2D.xml2
-rw-r--r--doc/classes/CryptoKey.xml2
-rw-r--r--doc/classes/DisplayServer.xml4
-rw-r--r--doc/classes/EditorExportPlugin.xml12
-rw-r--r--doc/classes/EditorImportPlugin.xml2
-rw-r--r--doc/classes/EditorInspector.xml2
-rw-r--r--doc/classes/EditorResourcePicker.xml2
-rw-r--r--doc/classes/EditorSceneFormatImporter.xml22
-rw-r--r--doc/classes/Environment.xml17
-rw-r--r--doc/classes/FileDialog.xml4
-rw-r--r--doc/classes/Font.xml6
-rw-r--r--doc/classes/FontData.xml202
-rw-r--r--doc/classes/GeometryInstance3D.xml12
-rw-r--r--doc/classes/GraphEdit.xml21
-rw-r--r--doc/classes/HMACContext.xml4
-rw-r--r--doc/classes/Input.xml6
-rw-r--r--doc/classes/InputEvent.xml2
-rw-r--r--doc/classes/InputEventMIDI.xml69
-rw-r--r--doc/classes/InputEventMouse.xml4
-rw-r--r--doc/classes/ItemList.xml4
-rw-r--r--doc/classes/LineEdit.xml2
-rw-r--r--doc/classes/MeshInstance2D.xml2
-rw-r--r--doc/classes/MultiMeshInstance2D.xml2
-rw-r--r--doc/classes/MultiplayerReplicator.xml12
-rw-r--r--doc/classes/NavigationAgent2D.xml2
-rw-r--r--doc/classes/Node.xml1
-rw-r--r--doc/classes/Node3D.xml14
-rw-r--r--doc/classes/OS.xml2
-rw-r--r--doc/classes/Object.xml2
-rw-r--r--doc/classes/PackedByteArray.xml2
-rw-r--r--doc/classes/PackedColorArray.xml2
-rw-r--r--doc/classes/PackedFloat32Array.xml2
-rw-r--r--doc/classes/PackedFloat64Array.xml2
-rw-r--r--doc/classes/PackedInt32Array.xml2
-rw-r--r--doc/classes/PackedInt64Array.xml2
-rw-r--r--doc/classes/PackedStringArray.xml2
-rw-r--r--doc/classes/PackedVector2Array.xml2
-rw-r--r--doc/classes/PackedVector3Array.xml2
-rw-r--r--doc/classes/ParticlesMaterial.xml6
-rw-r--r--doc/classes/PhysicsTestMotionResult2D.xml20
-rw-r--r--doc/classes/PhysicsTestMotionResult3D.xml20
-rw-r--r--doc/classes/PrimitiveMesh.xml2
-rw-r--r--doc/classes/ProjectSettings.xml29
-rw-r--r--doc/classes/RayCast3D.xml3
-rw-r--r--doc/classes/ReflectionProbe.xml8
-rw-r--r--doc/classes/RenderingDevice.xml21
-rw-r--r--doc/classes/RenderingServer.xml97
-rw-r--r--doc/classes/RichTextLabel.xml2
-rw-r--r--doc/classes/SceneState.xml7
-rw-r--r--doc/classes/ScrollContainer.xml4
-rw-r--r--doc/classes/Skeleton3D.xml4
-rw-r--r--doc/classes/SkeletonModification3D.xml2
-rw-r--r--doc/classes/SkeletonModification3DCCDIK.xml2
-rw-r--r--doc/classes/SkeletonModification3DFABRIK.xml4
-rw-r--r--doc/classes/SkeletonModification3DJiggle.xml4
-rw-r--r--doc/classes/SkeletonModification3DTwoBoneIK.xml2
-rw-r--r--doc/classes/SkeletonModificationStack3D.xml2
-rw-r--r--doc/classes/Slider.xml13
-rw-r--r--doc/classes/StreamPeer.xml2
-rw-r--r--doc/classes/String.xml2
-rw-r--r--doc/classes/TabBar.xml25
-rw-r--r--doc/classes/TextEdit.xml4
-rw-r--r--doc/classes/TextParagraph.xml2
-rw-r--r--doc/classes/TextServer.xml29
-rw-r--r--doc/classes/TextServerExtension.xml22
-rw-r--r--doc/classes/TextureRect.xml23
-rw-r--r--doc/classes/TileMap.xml10
-rw-r--r--doc/classes/TileSet.xml4
-rw-r--r--doc/classes/TileSetScenesCollectionSource.xml6
-rw-r--r--doc/classes/Transform3D.xml6
-rw-r--r--doc/classes/Tween.xml22
-rw-r--r--doc/classes/UndoRedo.xml2
-rw-r--r--doc/classes/Vector2.xml16
-rw-r--r--doc/classes/Vector2i.xml17
-rw-r--r--doc/classes/Vector3.xml12
-rw-r--r--doc/classes/Vector3i.xml13
-rw-r--r--doc/classes/Viewport.xml31
-rw-r--r--doc/classes/VisualShaderNodeCustom.xml2
-rw-r--r--doc/classes/VoxelGIData.xml2
-rwxr-xr-xdoc/tools/doc_status.py32
-rwxr-xr-xdoc/tools/make_rst.py72
-rw-r--r--doc/translations/ar.po1534
-rw-r--r--doc/translations/ca.po1498
-rw-r--r--doc/translations/classes.pot1503
-rw-r--r--doc/translations/cs.po1541
-rw-r--r--doc/translations/de.po1778
-rw-r--r--doc/translations/el.po1521
-rw-r--r--doc/translations/es.po1742
-rw-r--r--doc/translations/extract.py23
-rw-r--r--doc/translations/fa.po1509
-rw-r--r--doc/translations/fi.po1525
-rw-r--r--doc/translations/fil.po1497
-rw-r--r--doc/translations/fr.po1711
-rw-r--r--doc/translations/gl.po1498
-rw-r--r--doc/translations/hi.po1498
-rw-r--r--doc/translations/hu.po1507
-rw-r--r--doc/translations/id.po1506
-rw-r--r--doc/translations/is.po1498
-rw-r--r--doc/translations/it.po2411
-rw-r--r--doc/translations/ja.po1613
-rw-r--r--doc/translations/ko.po1521
-rw-r--r--doc/translations/lv.po1498
-rw-r--r--doc/translations/mr.po1497
-rw-r--r--doc/translations/nb.po1497
-rw-r--r--doc/translations/ne.po71069
-rw-r--r--doc/translations/nl.po1498
-rw-r--r--doc/translations/pl.po1587
-rw-r--r--doc/translations/pt.po4068
-rw-r--r--doc/translations/pt_BR.po1730
-rw-r--r--doc/translations/ro.po1503
-rw-r--r--doc/translations/ru.po1704
-rw-r--r--doc/translations/sk.po1497
-rw-r--r--doc/translations/sr_Cyrl.po1498
-rw-r--r--doc/translations/sv.po1498
-rw-r--r--doc/translations/th.po1508
-rw-r--r--doc/translations/tl.po1504
-rw-r--r--doc/translations/tr.po1541
-rw-r--r--doc/translations/uk.po1525
-rw-r--r--doc/translations/vi.po1532
-rw-r--r--doc/translations/zh_CN.po5249
-rw-r--r--doc/translations/zh_TW.po1525
-rw-r--r--drivers/alsa/audio_driver_alsa.cpp8
-rw-r--r--drivers/alsa/audio_driver_alsa.h4
-rw-r--r--drivers/alsamidi/midi_driver_alsamidi.cpp4
-rw-r--r--drivers/alsamidi/midi_driver_alsamidi.h4
-rw-r--r--drivers/coreaudio/audio_driver_coreaudio.cpp8
-rw-r--r--drivers/coreaudio/audio_driver_coreaudio.h4
-rw-r--r--drivers/coremidi/midi_driver_coremidi.cpp4
-rw-r--r--drivers/coremidi/midi_driver_coremidi.h4
-rw-r--r--drivers/gles3/rasterizer_array.h4
-rw-r--r--drivers/gles3/rasterizer_asserts.h4
-rw-r--r--drivers/gles3/rasterizer_canvas_base_gles3.cpp4
-rw-r--r--drivers/gles3/rasterizer_canvas_base_gles3.h4
-rw-r--r--drivers/gles3/rasterizer_canvas_batcher.h6
-rw-r--r--drivers/gles3/rasterizer_canvas_gles3.cpp4
-rw-r--r--drivers/gles3/rasterizer_canvas_gles3.h4
-rw-r--r--drivers/gles3/rasterizer_gles3.cpp4
-rw-r--r--drivers/gles3/rasterizer_gles3.h4
-rw-r--r--drivers/gles3/rasterizer_platforms.h4
-rw-r--r--drivers/gles3/rasterizer_scene_gles3.cpp14
-rw-r--r--drivers/gles3/rasterizer_scene_gles3.h9
-rw-r--r--drivers/gles3/rasterizer_storage_common.h4
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.cpp12
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.h11
-rw-r--r--drivers/gles3/shader_compiler_gles3.cpp4
-rw-r--r--drivers/gles3/shader_compiler_gles3.h4
-rw-r--r--drivers/gles3/shader_gles3.cpp4
-rw-r--r--drivers/gles3/shader_gles3.h4
-rw-r--r--drivers/gles3/shaders/scene.glsl2
-rw-r--r--drivers/gles3/texture_loader_gles3.cpp4
-rw-r--r--drivers/gles3/texture_loader_gles3.h4
-rw-r--r--drivers/png/image_loader_png.cpp4
-rw-r--r--drivers/png/image_loader_png.h4
-rw-r--r--drivers/png/png_driver_common.cpp4
-rw-r--r--drivers/png/png_driver_common.h4
-rw-r--r--drivers/png/resource_saver_png.cpp4
-rw-r--r--drivers/png/resource_saver_png.h4
-rw-r--r--drivers/pulseaudio/audio_driver_pulseaudio.cpp4
-rw-r--r--drivers/pulseaudio/audio_driver_pulseaudio.h4
-rw-r--r--drivers/register_driver_types.cpp4
-rw-r--r--drivers/register_driver_types.h4
-rw-r--r--drivers/unix/dir_access_unix.cpp4
-rw-r--r--drivers/unix/dir_access_unix.h4
-rw-r--r--drivers/unix/file_access_unix.cpp4
-rw-r--r--drivers/unix/file_access_unix.h4
-rw-r--r--drivers/unix/ip_unix.cpp4
-rw-r--r--drivers/unix/ip_unix.h4
-rw-r--r--drivers/unix/net_socket_posix.cpp4
-rw-r--r--drivers/unix/net_socket_posix.h4
-rw-r--r--drivers/unix/os_unix.cpp4
-rw-r--r--drivers/unix/os_unix.h4
-rw-r--r--drivers/unix/syslog_logger.cpp4
-rw-r--r--drivers/unix/syslog_logger.h4
-rw-r--r--drivers/unix/thread_posix.cpp4
-rw-r--r--drivers/unix/thread_posix.h4
-rw-r--r--drivers/vulkan/rendering_device_vulkan.cpp16
-rw-r--r--drivers/vulkan/rendering_device_vulkan.h7
-rw-r--r--drivers/vulkan/vulkan_context.cpp18
-rw-r--r--drivers/vulkan/vulkan_context.h7
-rw-r--r--drivers/wasapi/audio_driver_wasapi.cpp4
-rw-r--r--drivers/wasapi/audio_driver_wasapi.h4
-rw-r--r--drivers/windows/dir_access_windows.cpp4
-rw-r--r--drivers/windows/dir_access_windows.h4
-rw-r--r--drivers/windows/file_access_windows.cpp4
-rw-r--r--drivers/windows/file_access_windows.h4
-rw-r--r--drivers/winmidi/midi_driver_winmidi.cpp4
-rw-r--r--drivers/winmidi/midi_driver_winmidi.h4
-rw-r--r--drivers/xaudio2/audio_driver_xaudio2.cpp4
-rw-r--r--drivers/xaudio2/audio_driver_xaudio2.h4
-rw-r--r--editor/action_map_editor.cpp4
-rw-r--r--editor/action_map_editor.h4
-rw-r--r--editor/animation_bezier_editor.cpp4
-rw-r--r--editor/animation_bezier_editor.h4
-rw-r--r--editor/animation_track_editor.cpp12
-rw-r--r--editor/animation_track_editor.h4
-rw-r--r--editor/animation_track_editor_plugins.cpp4
-rw-r--r--editor/animation_track_editor_plugins.h4
-rw-r--r--editor/array_property_edit.cpp4
-rw-r--r--editor/array_property_edit.h4
-rw-r--r--editor/audio_stream_preview.cpp4
-rw-r--r--editor/audio_stream_preview.h4
-rw-r--r--editor/code_editor.cpp8
-rw-r--r--editor/code_editor.h4
-rw-r--r--editor/connections_dialog.cpp288
-rw-r--r--editor/connections_dialog.h77
-rw-r--r--editor/create_dialog.cpp4
-rw-r--r--editor/create_dialog.h4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_parser.cpp8
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_parser.h4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_protocol.cpp4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_protocol.h4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_server.cpp4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_server.h4
-rw-r--r--editor/debugger/debug_adapter/debug_adapter_types.h4
-rw-r--r--editor/debugger/editor_debugger_inspector.cpp4
-rw-r--r--editor/debugger/editor_debugger_inspector.h4
-rw-r--r--editor/debugger/editor_debugger_node.cpp4
-rw-r--r--editor/debugger/editor_debugger_node.h4
-rw-r--r--editor/debugger/editor_debugger_server.cpp4
-rw-r--r--editor/debugger/editor_debugger_server.h4
-rw-r--r--editor/debugger/editor_debugger_tree.cpp4
-rw-r--r--editor/debugger/editor_debugger_tree.h4
-rw-r--r--editor/debugger/editor_network_profiler.cpp4
-rw-r--r--editor/debugger/editor_network_profiler.h4
-rw-r--r--editor/debugger/editor_performance_profiler.cpp4
-rw-r--r--editor/debugger/editor_performance_profiler.h4
-rw-r--r--editor/debugger/editor_profiler.cpp6
-rw-r--r--editor/debugger/editor_profiler.h4
-rw-r--r--editor/debugger/editor_visual_profiler.cpp6
-rw-r--r--editor/debugger/editor_visual_profiler.h4
-rw-r--r--editor/debugger/script_editor_debugger.cpp4
-rw-r--r--editor/debugger/script_editor_debugger.h4
-rw-r--r--editor/dependency_editor.cpp4
-rw-r--r--editor/dependency_editor.h4
-rw-r--r--editor/dictionary_property_edit.cpp4
-rw-r--r--editor/dictionary_property_edit.h4
-rw-r--r--editor/doc_tools.cpp4
-rw-r--r--editor/doc_tools.h4
-rw-r--r--editor/editor_about.cpp6
-rw-r--r--editor/editor_about.h4
-rw-r--r--editor/editor_asset_installer.cpp8
-rw-r--r--editor/editor_asset_installer.h4
-rw-r--r--editor/editor_atlas_packer.cpp4
-rw-r--r--editor/editor_atlas_packer.h4
-rw-r--r--editor/editor_audio_buses.cpp4
-rw-r--r--editor/editor_audio_buses.h4
-rw-r--r--editor/editor_autoload_settings.cpp4
-rw-r--r--editor/editor_autoload_settings.h4
-rw-r--r--editor/editor_command_palette.cpp4
-rw-r--r--editor/editor_command_palette.h4
-rw-r--r--editor/editor_data.cpp4
-rw-r--r--editor/editor_data.h4
-rw-r--r--editor/editor_dir_dialog.cpp4
-rw-r--r--editor/editor_dir_dialog.h4
-rw-r--r--editor/editor_export.cpp13
-rw-r--r--editor/editor_export.h9
-rw-r--r--editor/editor_feature_profile.cpp4
-rw-r--r--editor/editor_feature_profile.h4
-rw-r--r--editor/editor_file_dialog.cpp6
-rw-r--r--editor/editor_file_dialog.h4
-rw-r--r--editor/editor_file_system.cpp4
-rw-r--r--editor/editor_file_system.h4
-rw-r--r--editor/editor_folding.cpp4
-rw-r--r--editor/editor_folding.h4
-rw-r--r--editor/editor_fonts.cpp8
-rw-r--r--editor/editor_fonts.h4
-rw-r--r--editor/editor_help.cpp54
-rw-r--r--editor/editor_help.h13
-rw-r--r--editor/editor_help_search.cpp4
-rw-r--r--editor/editor_help_search.h4
-rw-r--r--editor/editor_inspector.cpp26
-rw-r--r--editor/editor_inspector.h4
-rw-r--r--editor/editor_layouts_dialog.cpp4
-rw-r--r--editor/editor_layouts_dialog.h4
-rw-r--r--editor/editor_log.cpp6
-rw-r--r--editor/editor_log.h4
-rw-r--r--editor/editor_native_shader_source_visualizer.cpp4
-rw-r--r--editor/editor_native_shader_source_visualizer.h4
-rw-r--r--editor/editor_node.cpp29
-rw-r--r--editor/editor_node.h6
-rw-r--r--editor/editor_path.cpp4
-rw-r--r--editor/editor_path.h4
-rw-r--r--editor/editor_paths.cpp4
-rw-r--r--editor/editor_paths.h4
-rw-r--r--editor/editor_plugin.cpp4
-rw-r--r--editor/editor_plugin.h4
-rw-r--r--editor/editor_plugin_settings.cpp4
-rw-r--r--editor/editor_plugin_settings.h4
-rw-r--r--editor/editor_properties.cpp11
-rw-r--r--editor/editor_properties.h6
-rw-r--r--editor/editor_properties_array_dict.cpp4
-rw-r--r--editor/editor_properties_array_dict.h4
-rw-r--r--editor/editor_resource_picker.cpp56
-rw-r--r--editor/editor_resource_picker.h7
-rw-r--r--editor/editor_resource_preview.cpp4
-rw-r--r--editor/editor_resource_preview.h4
-rw-r--r--editor/editor_run.cpp4
-rw-r--r--editor/editor_run.h4
-rw-r--r--editor/editor_run_native.cpp4
-rw-r--r--editor/editor_run_native.h4
-rw-r--r--editor/editor_run_script.cpp4
-rw-r--r--editor/editor_run_script.h4
-rw-r--r--editor/editor_scale.cpp4
-rw-r--r--editor/editor_scale.h4
-rw-r--r--editor/editor_sectioned_inspector.cpp4
-rw-r--r--editor/editor_sectioned_inspector.h4
-rw-r--r--editor/editor_settings.cpp52
-rw-r--r--editor/editor_settings.h4
-rw-r--r--editor/editor_spin_slider.cpp4
-rw-r--r--editor/editor_spin_slider.h4
-rw-r--r--editor/editor_themes.cpp6
-rw-r--r--editor/editor_themes.h4
-rw-r--r--editor/editor_toaster.cpp4
-rw-r--r--editor/editor_toaster.h4
-rw-r--r--editor/editor_translation.cpp4
-rw-r--r--editor/editor_translation.h4
-rw-r--r--editor/editor_translation_parser.cpp4
-rw-r--r--editor/editor_translation_parser.h4
-rw-r--r--editor/editor_vcs_interface.cpp4
-rw-r--r--editor/editor_vcs_interface.h4
-rw-r--r--editor/editor_zoom_widget.cpp4
-rw-r--r--editor/editor_zoom_widget.h4
-rw-r--r--editor/export_template_manager.cpp10
-rw-r--r--editor/export_template_manager.h4
-rw-r--r--editor/fileserver/editor_file_server.cpp4
-rw-r--r--editor/fileserver/editor_file_server.h4
-rw-r--r--editor/filesystem_dock.cpp6
-rw-r--r--editor/filesystem_dock.h4
-rw-r--r--editor/find_in_files.cpp4
-rw-r--r--editor/find_in_files.h4
-rw-r--r--editor/groups_editor.cpp4
-rw-r--r--editor/groups_editor.h4
-rw-r--r--editor/import/collada.cpp4
-rw-r--r--editor/import/collada.h4
-rw-r--r--editor/import/dynamicfont_import_settings.cpp144
-rw-r--r--editor/import/dynamicfont_import_settings.h19
-rw-r--r--editor/import/editor_import_collada.cpp8
-rw-r--r--editor/import/editor_import_collada.h8
-rw-r--r--editor/import/editor_import_plugin.cpp4
-rw-r--r--editor/import/editor_import_plugin.h4
-rw-r--r--editor/import/resource_importer_bitmask.cpp4
-rw-r--r--editor/import/resource_importer_bitmask.h4
-rw-r--r--editor/import/resource_importer_bmfont.cpp4
-rw-r--r--editor/import/resource_importer_bmfont.h4
-rw-r--r--editor/import/resource_importer_csv_translation.cpp4
-rw-r--r--editor/import/resource_importer_csv_translation.h4
-rw-r--r--editor/import/resource_importer_dynamicfont.cpp7
-rw-r--r--editor/import/resource_importer_dynamicfont.h4
-rw-r--r--editor/import/resource_importer_image.cpp4
-rw-r--r--editor/import/resource_importer_image.h4
-rw-r--r--editor/import/resource_importer_imagefont.cpp4
-rw-r--r--editor/import/resource_importer_imagefont.h4
-rw-r--r--editor/import/resource_importer_layered_texture.cpp6
-rw-r--r--editor/import/resource_importer_layered_texture.h4
-rw-r--r--editor/import/resource_importer_obj.cpp8
-rw-r--r--editor/import/resource_importer_obj.h8
-rw-r--r--editor/import/resource_importer_scene.cpp108
-rw-r--r--editor/import/resource_importer_scene.h25
-rw-r--r--editor/import/resource_importer_shader_file.cpp4
-rw-r--r--editor/import/resource_importer_shader_file.h4
-rw-r--r--editor/import/resource_importer_texture.cpp4
-rw-r--r--editor/import/resource_importer_texture.h4
-rw-r--r--editor/import/resource_importer_texture_atlas.cpp4
-rw-r--r--editor/import/resource_importer_texture_atlas.h4
-rw-r--r--editor/import/resource_importer_wav.cpp4
-rw-r--r--editor/import/resource_importer_wav.h4
-rw-r--r--editor/import/scene_import_settings.cpp4
-rw-r--r--editor/import/scene_import_settings.h4
-rw-r--r--editor/import_defaults_editor.cpp4
-rw-r--r--editor/import_defaults_editor.h4
-rw-r--r--editor/import_dock.cpp36
-rw-r--r--editor/import_dock.h7
-rw-r--r--editor/inspector_dock.cpp4
-rw-r--r--editor/inspector_dock.h5
-rw-r--r--editor/localization_editor.cpp4
-rw-r--r--editor/localization_editor.h4
-rw-r--r--editor/multi_node_edit.cpp4
-rw-r--r--editor/multi_node_edit.h4
-rw-r--r--editor/node_dock.cpp5
-rw-r--r--editor/node_dock.h7
-rw-r--r--editor/plugin_config_dialog.cpp58
-rw-r--r--editor/plugin_config_dialog.h4
-rw-r--r--editor/plugins/abstract_polygon_2d_editor.cpp4
-rw-r--r--editor/plugins/abstract_polygon_2d_editor.h4
-rw-r--r--editor/plugins/animation_blend_space_1d_editor.cpp4
-rw-r--r--editor/plugins/animation_blend_space_1d_editor.h4
-rw-r--r--editor/plugins/animation_blend_space_2d_editor.cpp4
-rw-r--r--editor/plugins/animation_blend_space_2d_editor.h4
-rw-r--r--editor/plugins/animation_blend_tree_editor_plugin.cpp4
-rw-r--r--editor/plugins/animation_blend_tree_editor_plugin.h4
-rw-r--r--editor/plugins/animation_player_editor_plugin.cpp4
-rw-r--r--editor/plugins/animation_player_editor_plugin.h4
-rw-r--r--editor/plugins/animation_state_machine_editor.cpp4
-rw-r--r--editor/plugins/animation_state_machine_editor.h4
-rw-r--r--editor/plugins/animation_tree_editor_plugin.cpp4
-rw-r--r--editor/plugins/animation_tree_editor_plugin.h4
-rw-r--r--editor/plugins/asset_library_editor_plugin.cpp6
-rw-r--r--editor/plugins/asset_library_editor_plugin.h4
-rw-r--r--editor/plugins/audio_stream_editor_plugin.cpp4
-rw-r--r--editor/plugins/audio_stream_editor_plugin.h4
-rw-r--r--editor/plugins/camera_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/camera_3d_editor_plugin.h4
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp18
-rw-r--r--editor/plugins/canvas_item_editor_plugin.h4
-rw-r--r--editor/plugins/collision_polygon_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/collision_polygon_2d_editor_plugin.h4
-rw-r--r--editor/plugins/collision_polygon_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/collision_polygon_3d_editor_plugin.h4
-rw-r--r--editor/plugins/collision_shape_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/collision_shape_2d_editor_plugin.h4
-rw-r--r--editor/plugins/cpu_particles_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/cpu_particles_2d_editor_plugin.h4
-rw-r--r--editor/plugins/cpu_particles_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/cpu_particles_3d_editor_plugin.h4
-rw-r--r--editor/plugins/curve_editor_plugin.cpp11
-rw-r--r--editor/plugins/curve_editor_plugin.h4
-rw-r--r--editor/plugins/debugger_editor_plugin.cpp4
-rw-r--r--editor/plugins/debugger_editor_plugin.h4
-rw-r--r--editor/plugins/editor_debugger_plugin.cpp4
-rw-r--r--editor/plugins/editor_debugger_plugin.h4
-rw-r--r--editor/plugins/editor_preview_plugins.cpp10
-rw-r--r--editor/plugins/editor_preview_plugins.h4
-rw-r--r--editor/plugins/font_editor_plugin.cpp4
-rw-r--r--editor/plugins/font_editor_plugin.h4
-rw-r--r--editor/plugins/gpu_particles_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/gpu_particles_2d_editor_plugin.h4
-rw-r--r--editor/plugins/gpu_particles_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/gpu_particles_3d_editor_plugin.h4
-rw-r--r--editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp4
-rw-r--r--editor/plugins/gpu_particles_collision_sdf_editor_plugin.h4
-rw-r--r--editor/plugins/gradient_editor_plugin.cpp4
-rw-r--r--editor/plugins/gradient_editor_plugin.h4
-rw-r--r--editor/plugins/input_event_editor_plugin.cpp4
-rw-r--r--editor/plugins/input_event_editor_plugin.h4
-rw-r--r--editor/plugins/light_occluder_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/light_occluder_2d_editor_plugin.h4
-rw-r--r--editor/plugins/lightmap_gi_editor_plugin.cpp16
-rw-r--r--editor/plugins/lightmap_gi_editor_plugin.h6
-rw-r--r--editor/plugins/line_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/line_2d_editor_plugin.h4
-rw-r--r--editor/plugins/material_editor_plugin.cpp43
-rw-r--r--editor/plugins/material_editor_plugin.h6
-rw-r--r--editor/plugins/mesh_editor_plugin.cpp4
-rw-r--r--editor/plugins/mesh_editor_plugin.h4
-rw-r--r--editor/plugins/mesh_instance_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/mesh_instance_3d_editor_plugin.h4
-rw-r--r--editor/plugins/mesh_library_editor_plugin.cpp4
-rw-r--r--editor/plugins/mesh_library_editor_plugin.h4
-rw-r--r--editor/plugins/multimesh_editor_plugin.cpp4
-rw-r--r--editor/plugins/multimesh_editor_plugin.h4
-rw-r--r--editor/plugins/navigation_polygon_editor_plugin.cpp4
-rw-r--r--editor/plugins/navigation_polygon_editor_plugin.h4
-rw-r--r--editor/plugins/node_3d_editor_gizmos.cpp4
-rw-r--r--editor/plugins/node_3d_editor_gizmos.h4
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp204
-rw-r--r--editor/plugins/node_3d_editor_plugin.h10
-rw-r--r--editor/plugins/occluder_instance_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/occluder_instance_3d_editor_plugin.h4
-rw-r--r--editor/plugins/ot_features_plugin.cpp4
-rw-r--r--editor/plugins/ot_features_plugin.h4
-rw-r--r--editor/plugins/packed_scene_translation_parser_plugin.cpp4
-rw-r--r--editor/plugins/packed_scene_translation_parser_plugin.h4
-rw-r--r--editor/plugins/path_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/path_2d_editor_plugin.h4
-rw-r--r--editor/plugins/path_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/path_3d_editor_plugin.h4
-rw-r--r--editor/plugins/physical_bone_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/physical_bone_3d_editor_plugin.h4
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.h4
-rw-r--r--editor/plugins/resource_preloader_editor_plugin.cpp4
-rw-r--r--editor/plugins/resource_preloader_editor_plugin.h4
-rw-r--r--editor/plugins/root_motion_editor_plugin.cpp4
-rw-r--r--editor/plugins/root_motion_editor_plugin.h4
-rw-r--r--editor/plugins/script_editor_plugin.cpp4
-rw-r--r--editor/plugins/script_editor_plugin.h4
-rw-r--r--editor/plugins/script_text_editor.cpp22
-rw-r--r--editor/plugins/script_text_editor.h4
-rw-r--r--editor/plugins/shader_editor_plugin.cpp17
-rw-r--r--editor/plugins/shader_editor_plugin.h4
-rw-r--r--editor/plugins/shader_file_editor_plugin.cpp4
-rw-r--r--editor/plugins/shader_file_editor_plugin.h4
-rw-r--r--editor/plugins/skeleton_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/skeleton_2d_editor_plugin.h4
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.cpp6
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.h4
-rw-r--r--editor/plugins/skeleton_ik_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/skeleton_ik_3d_editor_plugin.h4
-rw-r--r--editor/plugins/sprite_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/sprite_2d_editor_plugin.h4
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.cpp6
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.h4
-rw-r--r--editor/plugins/style_box_editor_plugin.cpp4
-rw-r--r--editor/plugins/style_box_editor_plugin.h4
-rw-r--r--editor/plugins/sub_viewport_preview_editor_plugin.cpp4
-rw-r--r--editor/plugins/sub_viewport_preview_editor_plugin.h4
-rw-r--r--editor/plugins/text_control_editor_plugin.cpp203
-rw-r--r--editor/plugins/text_control_editor_plugin.h6
-rw-r--r--editor/plugins/text_editor.cpp4
-rw-r--r--editor/plugins/text_editor.h4
-rw-r--r--editor/plugins/texture_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/texture_3d_editor_plugin.h4
-rw-r--r--editor/plugins/texture_editor_plugin.cpp6
-rw-r--r--editor/plugins/texture_editor_plugin.h4
-rw-r--r--editor/plugins/texture_layered_editor_plugin.cpp4
-rw-r--r--editor/plugins/texture_layered_editor_plugin.h4
-rw-r--r--editor/plugins/texture_region_editor_plugin.cpp4
-rw-r--r--editor/plugins/texture_region_editor_plugin.h4
-rw-r--r--editor/plugins/theme_editor_plugin.cpp524
-rw-r--r--editor/plugins/theme_editor_plugin.h18
-rw-r--r--editor/plugins/theme_editor_preview.cpp10
-rw-r--r--editor/plugins/theme_editor_preview.h4
-rw-r--r--editor/plugins/tiles/atlas_merging_dialog.cpp6
-rw-r--r--editor/plugins/tiles/atlas_merging_dialog.h4
-rw-r--r--editor/plugins/tiles/tile_atlas_view.cpp4
-rw-r--r--editor/plugins/tiles/tile_atlas_view.h4
-rw-r--r--editor/plugins/tiles/tile_data_editors.cpp4
-rw-r--r--editor/plugins/tiles/tile_data_editors.h4
-rw-r--r--editor/plugins/tiles/tile_map_editor.cpp4
-rw-r--r--editor/plugins/tiles/tile_map_editor.h4
-rw-r--r--editor/plugins/tiles/tile_proxies_manager_dialog.cpp4
-rw-r--r--editor/plugins/tiles/tile_proxies_manager_dialog.h4
-rw-r--r--editor/plugins/tiles/tile_set_atlas_source_editor.cpp4
-rw-r--r--editor/plugins/tiles/tile_set_atlas_source_editor.h4
-rw-r--r--editor/plugins/tiles/tile_set_editor.cpp4
-rw-r--r--editor/plugins/tiles/tile_set_editor.h4
-rw-r--r--editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp4
-rw-r--r--editor/plugins/tiles/tile_set_scenes_collection_source_editor.h4
-rw-r--r--editor/plugins/tiles/tiles_editor_plugin.cpp15
-rw-r--r--editor/plugins/tiles/tiles_editor_plugin.h4
-rw-r--r--editor/plugins/version_control_editor_plugin.cpp4
-rw-r--r--editor/plugins/version_control_editor_plugin.h4
-rw-r--r--editor/plugins/visual_shader_editor_plugin.cpp417
-rw-r--r--editor/plugins/visual_shader_editor_plugin.h80
-rw-r--r--editor/plugins/voxel_gi_editor_plugin.cpp4
-rw-r--r--editor/plugins/voxel_gi_editor_plugin.h4
-rw-r--r--editor/pot_generator.cpp4
-rw-r--r--editor/pot_generator.h4
-rw-r--r--editor/progress_dialog.cpp4
-rw-r--r--editor/progress_dialog.h4
-rw-r--r--editor/project_export.cpp26
-rw-r--r--editor/project_export.h5
-rw-r--r--editor/project_manager.cpp14
-rw-r--r--editor/project_manager.h4
-rw-r--r--editor/project_settings_editor.cpp4
-rw-r--r--editor/project_settings_editor.h4
-rw-r--r--editor/property_editor.cpp6
-rw-r--r--editor/property_editor.h4
-rw-r--r--editor/property_selector.cpp4
-rw-r--r--editor/property_selector.h4
-rw-r--r--editor/quick_open.cpp4
-rw-r--r--editor/quick_open.h4
-rw-r--r--editor/register_exporters.h4
-rw-r--r--editor/rename_dialog.cpp4
-rw-r--r--editor/rename_dialog.h4
-rw-r--r--editor/reparent_dialog.cpp4
-rw-r--r--editor/reparent_dialog.h4
-rw-r--r--editor/scene_tree_dock.cpp18
-rw-r--r--editor/scene_tree_dock.h5
-rw-r--r--editor/scene_tree_editor.cpp4
-rw-r--r--editor/scene_tree_editor.h4
-rw-r--r--editor/script_create_dialog.cpp579
-rw-r--r--editor/script_create_dialog.h37
-rw-r--r--editor/settings_config_dialog.cpp4
-rw-r--r--editor/settings_config_dialog.h4
-rw-r--r--editor/shader_create_dialog.cpp4
-rw-r--r--editor/shader_create_dialog.h4
-rw-r--r--editor/shader_globals_editor.cpp4
-rw-r--r--editor/shader_globals_editor.h4
-rw-r--r--editor/template_builders.py95
-rw-r--r--editor/translations/af.po263
-rw-r--r--editor/translations/ar.po281
-rw-r--r--editor/translations/az.po256
-rw-r--r--editor/translations/bg.po279
-rw-r--r--editor/translations/bn.po273
-rw-r--r--editor/translations/br.po247
-rw-r--r--editor/translations/ca.po283
-rw-r--r--editor/translations/cs.po384
-rw-r--r--editor/translations/da.po270
-rw-r--r--editor/translations/de.po281
-rw-r--r--editor/translations/editor.pot241
-rw-r--r--editor/translations/el.po275
-rw-r--r--editor/translations/eo.po268
-rw-r--r--editor/translations/es.po272
-rw-r--r--editor/translations/es_AR.po269
-rw-r--r--editor/translations/et.po263
-rw-r--r--editor/translations/eu.po256
-rwxr-xr-xeditor/translations/extract.py4
-rw-r--r--editor/translations/fa.po270
-rw-r--r--editor/translations/fi.po271
-rw-r--r--editor/translations/fil.po255
-rw-r--r--editor/translations/fr.po282
-rw-r--r--editor/translations/ga.po241
-rw-r--r--editor/translations/gl.po270
-rw-r--r--editor/translations/he.po269
-rw-r--r--editor/translations/hi.po269
-rw-r--r--editor/translations/hr.po264
-rw-r--r--editor/translations/hu.po279
-rw-r--r--editor/translations/id.po274
-rw-r--r--editor/translations/is.po255
-rw-r--r--editor/translations/it.po401
-rw-r--r--editor/translations/ja.po270
-rw-r--r--editor/translations/ka.po262
-rw-r--r--editor/translations/km.po245
-rw-r--r--editor/translations/ko.po268
-rw-r--r--editor/translations/lt.po267
-rw-r--r--editor/translations/lv.po266
-rw-r--r--editor/translations/mi.po241
-rw-r--r--editor/translations/mk.po248
-rw-r--r--editor/translations/ml.po249
-rw-r--r--editor/translations/mr.po247
-rw-r--r--editor/translations/ms.po269
-rw-r--r--editor/translations/nb.po300
-rw-r--r--editor/translations/nl.po285
-rw-r--r--editor/translations/or.po241
-rw-r--r--editor/translations/pl.po298
-rw-r--r--editor/translations/pr.po259
-rw-r--r--editor/translations/pt.po307
-rw-r--r--editor/translations/pt_BR.po353
-rw-r--r--editor/translations/ro.po272
-rw-r--r--editor/translations/ru.po268
-rw-r--r--editor/translations/si.po253
-rw-r--r--editor/translations/sk.po270
-rw-r--r--editor/translations/sl.po265
-rw-r--r--editor/translations/sq.po263
-rw-r--r--editor/translations/sr_Cyrl.po275
-rw-r--r--editor/translations/sr_Latn.po256
-rw-r--r--editor/translations/sv.po267
-rw-r--r--editor/translations/ta.po254
-rw-r--r--editor/translations/te.po265
-rw-r--r--editor/translations/th.po273
-rw-r--r--editor/translations/tl.po495
-rw-r--r--editor/translations/tr.po289
-rw-r--r--editor/translations/tt.po241
-rw-r--r--editor/translations/tzm.po241
-rw-r--r--editor/translations/uk.po272
-rw-r--r--editor/translations/ur_PK.po251
-rw-r--r--editor/translations/vi.po273
-rw-r--r--editor/translations/zh_CN.po286
-rw-r--r--editor/translations/zh_HK.po270
-rw-r--r--editor/translations/zh_TW.po268
-rw-r--r--main/main.cpp10
-rw-r--r--main/main.h4
-rw-r--r--main/main_timer_sync.cpp4
-rw-r--r--main/main_timer_sync.h4
-rw-r--r--main/performance.cpp4
-rw-r--r--main/performance.h4
-rw-r--r--misc/dist/ios_xcode/godot_ios/dummy.cpp4
-rw-r--r--misc/dist/linux/org.godotengine.Godot.appdata.xml2
-rw-r--r--misc/dist/osx_tools.app/Contents/Info.plist4
-rw-r--r--misc/dist/shell/_godot.zsh-completion4
-rw-r--r--misc/dist/shell/godot.bash-completion4
-rw-r--r--misc/dist/shell/godot.fish4
-rwxr-xr-xmisc/scripts/copyright_headers.py4
-rwxr-xr-xmisc/scripts/file_format.sh2
-rw-r--r--modules/basis_universal/register_types.cpp4
-rw-r--r--modules/basis_universal/register_types.h4
-rw-r--r--modules/basis_universal/texture_basisu.cpp4
-rw-r--r--modules/basis_universal/texture_basisu.h4
-rw-r--r--modules/bmp/image_loader_bmp.cpp4
-rw-r--r--modules/bmp/image_loader_bmp.h4
-rw-r--r--modules/bmp/register_types.cpp4
-rw-r--r--modules/bmp/register_types.h4
-rw-r--r--modules/bullet/area_bullet.cpp4
-rw-r--r--modules/bullet/area_bullet.h4
-rw-r--r--modules/bullet/btRayShape.cpp4
-rw-r--r--modules/bullet/btRayShape.h4
-rw-r--r--modules/bullet/bullet_physics_server.cpp4
-rw-r--r--modules/bullet/bullet_physics_server.h4
-rw-r--r--modules/bullet/bullet_types_converter.cpp4
-rw-r--r--modules/bullet/bullet_types_converter.h4
-rw-r--r--modules/bullet/bullet_utilities.h4
-rw-r--r--modules/bullet/collision_object_bullet.cpp4
-rw-r--r--modules/bullet/collision_object_bullet.h4
-rw-r--r--modules/bullet/cone_twist_joint_bullet.cpp4
-rw-r--r--modules/bullet/cone_twist_joint_bullet.h4
-rw-r--r--modules/bullet/constraint_bullet.cpp4
-rw-r--r--modules/bullet/constraint_bullet.h4
-rw-r--r--modules/bullet/generic_6dof_joint_bullet.cpp4
-rw-r--r--modules/bullet/generic_6dof_joint_bullet.h4
-rw-r--r--modules/bullet/godot_collision_configuration.cpp4
-rw-r--r--modules/bullet/godot_collision_configuration.h4
-rw-r--r--modules/bullet/godot_collision_dispatcher.cpp4
-rw-r--r--modules/bullet/godot_collision_dispatcher.h4
-rw-r--r--modules/bullet/godot_motion_state.h4
-rw-r--r--modules/bullet/godot_ray_world_algorithm.cpp4
-rw-r--r--modules/bullet/godot_ray_world_algorithm.h4
-rw-r--r--modules/bullet/godot_result_callbacks.cpp4
-rw-r--r--modules/bullet/godot_result_callbacks.h4
-rw-r--r--modules/bullet/hinge_joint_bullet.cpp4
-rw-r--r--modules/bullet/hinge_joint_bullet.h4
-rw-r--r--modules/bullet/joint_bullet.cpp4
-rw-r--r--modules/bullet/joint_bullet.h4
-rw-r--r--modules/bullet/pin_joint_bullet.cpp4
-rw-r--r--modules/bullet/pin_joint_bullet.h4
-rw-r--r--modules/bullet/register_types.cpp4
-rw-r--r--modules/bullet/register_types.h4
-rw-r--r--modules/bullet/rid_bullet.h4
-rw-r--r--modules/bullet/rigid_body_bullet.cpp4
-rw-r--r--modules/bullet/rigid_body_bullet.h4
-rw-r--r--modules/bullet/shape_bullet.cpp4
-rw-r--r--modules/bullet/shape_bullet.h4
-rw-r--r--modules/bullet/shape_owner_bullet.cpp4
-rw-r--r--modules/bullet/shape_owner_bullet.h4
-rw-r--r--modules/bullet/slider_joint_bullet.cpp4
-rw-r--r--modules/bullet/slider_joint_bullet.h4
-rw-r--r--modules/bullet/soft_body_bullet.cpp4
-rw-r--r--modules/bullet/soft_body_bullet.h4
-rw-r--r--modules/bullet/space_bullet.cpp4
-rw-r--r--modules/bullet/space_bullet.h4
-rw-r--r--modules/camera/camera_osx.h4
-rw-r--r--modules/camera/camera_osx.mm6
-rw-r--r--modules/camera/camera_win.cpp4
-rw-r--r--modules/camera/camera_win.h4
-rw-r--r--modules/camera/register_types.cpp4
-rw-r--r--modules/camera/register_types.h4
-rw-r--r--modules/csg/csg.cpp4
-rw-r--r--modules/csg/csg.h4
-rw-r--r--modules/csg/csg_gizmos.cpp14
-rw-r--r--modules/csg/csg_gizmos.h4
-rw-r--r--modules/csg/csg_shape.cpp6
-rw-r--r--modules/csg/csg_shape.h4
-rw-r--r--modules/csg/register_types.cpp4
-rw-r--r--modules/csg/register_types.h4
-rw-r--r--modules/cvtt/image_compress_cvtt.cpp4
-rw-r--r--modules/cvtt/image_compress_cvtt.h4
-rw-r--r--modules/cvtt/register_types.cpp4
-rw-r--r--modules/cvtt/register_types.h4
-rw-r--r--modules/dds/register_types.cpp4
-rw-r--r--modules/dds/register_types.h4
-rw-r--r--modules/dds/texture_loader_dds.cpp4
-rw-r--r--modules/dds/texture_loader_dds.h4
-rw-r--r--modules/denoise/denoise_wrapper.cpp4
-rw-r--r--modules/denoise/denoise_wrapper.h4
-rw-r--r--modules/denoise/lightmap_denoiser.cpp4
-rw-r--r--modules/denoise/lightmap_denoiser.h4
-rw-r--r--modules/denoise/register_types.cpp4
-rw-r--r--modules/denoise/register_types.h4
-rw-r--r--modules/enet/doc_classes/ENetConnection.xml6
-rw-r--r--modules/enet/doc_classes/ENetMultiplayerPeer.xml2
-rw-r--r--modules/enet/enet_connection.cpp4
-rw-r--r--modules/enet/enet_connection.h4
-rw-r--r--modules/enet/enet_multiplayer_peer.cpp6
-rw-r--r--modules/enet/enet_multiplayer_peer.h6
-rw-r--r--modules/enet/enet_packet_peer.cpp4
-rw-r--r--modules/enet/enet_packet_peer.h4
-rw-r--r--modules/enet/register_types.cpp4
-rw-r--r--modules/enet/register_types.h4
-rw-r--r--modules/etcpak/image_compress_etcpak.cpp4
-rw-r--r--modules/etcpak/image_compress_etcpak.h4
-rw-r--r--modules/etcpak/register_types.cpp4
-rw-r--r--modules/etcpak/register_types.h4
-rw-r--r--modules/fbx/data/fbx_anim_container.h4
-rw-r--r--modules/fbx/data/fbx_bone.cpp4
-rw-r--r--modules/fbx/data/fbx_bone.h4
-rw-r--r--modules/fbx/data/fbx_material.cpp4
-rw-r--r--modules/fbx/data/fbx_material.h4
-rw-r--r--modules/fbx/data/fbx_mesh_data.cpp10
-rw-r--r--modules/fbx/data/fbx_mesh_data.h4
-rw-r--r--modules/fbx/data/fbx_node.h4
-rw-r--r--modules/fbx/data/fbx_skeleton.cpp4
-rw-r--r--modules/fbx/data/fbx_skeleton.h4
-rw-r--r--modules/fbx/data/import_state.h4
-rw-r--r--modules/fbx/data/model_abstraction.h4
-rw-r--r--modules/fbx/data/pivot_transform.cpp4
-rw-r--r--modules/fbx/data/pivot_transform.h4
-rw-r--r--modules/fbx/editor_scene_importer_fbx.cpp11
-rw-r--r--modules/fbx/editor_scene_importer_fbx.h9
-rw-r--r--modules/fbx/fbx_parser/ByteSwapper.h4
-rw-r--r--modules/fbx/fbx_parser/FBXAnimation.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXBinaryTokenizer.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXCommon.h4
-rw-r--r--modules/fbx/fbx_parser/FBXDeformer.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXDocument.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXDocument.h4
-rw-r--r--modules/fbx/fbx_parser/FBXDocumentUtil.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXDocumentUtil.h4
-rw-r--r--modules/fbx/fbx_parser/FBXImportSettings.h4
-rw-r--r--modules/fbx/fbx_parser/FBXMaterial.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXMeshGeometry.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXMeshGeometry.h4
-rw-r--r--modules/fbx/fbx_parser/FBXModel.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXNodeAttribute.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXParseTools.h4
-rw-r--r--modules/fbx/fbx_parser/FBXParser.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXParser.h4
-rw-r--r--modules/fbx/fbx_parser/FBXPose.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXProperties.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXProperties.h4
-rw-r--r--modules/fbx/fbx_parser/FBXTokenizer.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXTokenizer.h4
-rw-r--r--modules/fbx/fbx_parser/FBXUtil.cpp4
-rw-r--r--modules/fbx/fbx_parser/FBXUtil.h4
-rw-r--r--modules/fbx/register_types.cpp4
-rw-r--r--modules/fbx/register_types.h4
-rw-r--r--modules/fbx/tools/import_utils.cpp4
-rw-r--r--modules/fbx/tools/import_utils.h4
-rw-r--r--modules/fbx/tools/validation_tools.cpp4
-rw-r--r--modules/fbx/tools/validation_tools.h4
-rw-r--r--modules/freetype/register_types.cpp4
-rw-r--r--modules/freetype/register_types.h4
-rw-r--r--modules/freetype/uwpdef.h4
-rw-r--r--modules/gdnative/android/android_gdn.cpp4
-rw-r--r--modules/gdnative/gdnative.cpp4
-rw-r--r--modules/gdnative/gdnative.h4
-rw-r--r--modules/gdnative/gdnative/aabb.cpp4
-rw-r--r--modules/gdnative/gdnative/array.cpp4
-rw-r--r--modules/gdnative/gdnative/basis.cpp4
-rw-r--r--modules/gdnative/gdnative/callable.cpp4
-rw-r--r--modules/gdnative/gdnative/color.cpp4
-rw-r--r--modules/gdnative/gdnative/dictionary.cpp4
-rw-r--r--modules/gdnative/gdnative/gdnative.cpp4
-rw-r--r--modules/gdnative/gdnative/node_path.cpp4
-rw-r--r--modules/gdnative/gdnative/packed_arrays.cpp4
-rw-r--r--modules/gdnative/gdnative/plane.cpp4
-rw-r--r--modules/gdnative/gdnative/quaternion.cpp4
-rw-r--r--modules/gdnative/gdnative/rect2.cpp4
-rw-r--r--modules/gdnative/gdnative/rid.cpp4
-rw-r--r--modules/gdnative/gdnative/signal.cpp4
-rw-r--r--modules/gdnative/gdnative/string.cpp4
-rw-r--r--modules/gdnative/gdnative/string_name.cpp4
-rw-r--r--modules/gdnative/gdnative/transform2d.cpp4
-rw-r--r--modules/gdnative/gdnative/transform_3d.cpp4
-rw-r--r--modules/gdnative/gdnative/variant.cpp4
-rw-r--r--modules/gdnative/gdnative/vector2.cpp4
-rw-r--r--modules/gdnative/gdnative/vector3.cpp4
-rw-r--r--modules/gdnative/gdnative_library_editor_plugin.cpp4
-rw-r--r--modules/gdnative/gdnative_library_editor_plugin.h4
-rw-r--r--modules/gdnative/gdnative_library_singleton_editor.cpp4
-rw-r--r--modules/gdnative/gdnative_library_singleton_editor.h4
-rw-r--r--modules/gdnative/include/android/godot_android.h4
-rw-r--r--modules/gdnative/include/gdnative/aabb.h4
-rw-r--r--modules/gdnative/include/gdnative/array.h4
-rw-r--r--modules/gdnative/include/gdnative/basis.h4
-rw-r--r--modules/gdnative/include/gdnative/callable.h4
-rw-r--r--modules/gdnative/include/gdnative/color.h4
-rw-r--r--modules/gdnative/include/gdnative/dictionary.h4
-rw-r--r--modules/gdnative/include/gdnative/gdnative.h4
-rw-r--r--modules/gdnative/include/gdnative/math_defs.h4
-rw-r--r--modules/gdnative/include/gdnative/node_path.h4
-rw-r--r--modules/gdnative/include/gdnative/packed_arrays.h4
-rw-r--r--modules/gdnative/include/gdnative/plane.h4
-rw-r--r--modules/gdnative/include/gdnative/quaternion.h4
-rw-r--r--modules/gdnative/include/gdnative/rect2.h4
-rw-r--r--modules/gdnative/include/gdnative/rid.h4
-rw-r--r--modules/gdnative/include/gdnative/signal.h4
-rw-r--r--modules/gdnative/include/gdnative/string.h4
-rw-r--r--modules/gdnative/include/gdnative/string_name.h4
-rw-r--r--modules/gdnative/include/gdnative/transform2d.h4
-rw-r--r--modules/gdnative/include/gdnative/transform_3d.h4
-rw-r--r--modules/gdnative/include/gdnative/variant.h4
-rw-r--r--modules/gdnative/include/gdnative/variant_struct.h4
-rw-r--r--modules/gdnative/include/gdnative/vector2.h4
-rw-r--r--modules/gdnative/include/gdnative/vector3.h4
-rw-r--r--modules/gdnative/include/nativescript/godot_nativescript.h6
-rw-r--r--modules/gdnative/include/pluginscript/godot_pluginscript.h4
-rw-r--r--modules/gdnative/include/videodecoder/godot_videodecoder.h4
-rw-r--r--modules/gdnative/nativescript/api_generator.cpp4
-rw-r--r--modules/gdnative/nativescript/api_generator.h4
-rw-r--r--modules/gdnative/nativescript/godot_nativescript.cpp4
-rw-r--r--modules/gdnative/nativescript/nativescript.cpp4
-rw-r--r--modules/gdnative/nativescript/nativescript.h4
-rw-r--r--modules/gdnative/nativescript/register_types.cpp4
-rw-r--r--modules/gdnative/nativescript/register_types.h4
-rw-r--r--modules/gdnative/pluginscript/pluginscript_instance.cpp4
-rw-r--r--modules/gdnative/pluginscript/pluginscript_instance.h4
-rw-r--r--modules/gdnative/pluginscript/pluginscript_language.cpp4
-rw-r--r--modules/gdnative/pluginscript/pluginscript_language.h4
-rw-r--r--modules/gdnative/pluginscript/pluginscript_loader.cpp4
-rw-r--r--modules/gdnative/pluginscript/pluginscript_loader.h4
-rw-r--r--modules/gdnative/pluginscript/pluginscript_script.cpp4
-rw-r--r--modules/gdnative/pluginscript/pluginscript_script.h4
-rw-r--r--modules/gdnative/pluginscript/register_types.cpp4
-rw-r--r--modules/gdnative/pluginscript/register_types.h4
-rw-r--r--modules/gdnative/register_types.cpp4
-rw-r--r--modules/gdnative/register_types.h4
-rw-r--r--modules/gdnative/tests/test_variant.h4
-rw-r--r--modules/gdnative/videodecoder/register_types.cpp4
-rw-r--r--modules/gdnative/videodecoder/register_types.h4
-rw-r--r--modules/gdnative/videodecoder/video_stream_gdnative.cpp4
-rw-r--r--modules/gdnative/videodecoder/video_stream_gdnative.h4
-rw-r--r--modules/gdscript/SCsub2
-rw-r--r--modules/gdscript/editor/gdscript_highlighter.cpp4
-rw-r--r--modules/gdscript/editor/gdscript_highlighter.h4
-rw-r--r--modules/gdscript/editor/gdscript_translation_parser_plugin.cpp4
-rw-r--r--modules/gdscript/editor/gdscript_translation_parser_plugin.h4
-rw-r--r--modules/gdscript/editor_templates/CharacterBody2D/basic_movement.gd29
-rw-r--r--modules/gdscript/editor_templates/CharacterBody3D/basic_movement.gd32
-rw-r--r--modules/gdscript/editor_templates/EditorPlugin/plugin.gd11
-rw-r--r--modules/gdscript/editor_templates/EditorScript/basic_editor_script.gd7
-rw-r--r--modules/gdscript/editor_templates/Node/default.gd11
-rw-r--r--modules/gdscript/editor_templates/Object/empty.gd3
-rw-r--r--modules/gdscript/editor_templates/SCsub16
-rw-r--r--modules/gdscript/editor_templates/VisualShaderNodeCustom/basic.gd41
-rw-r--r--modules/gdscript/gdscript.cpp18
-rw-r--r--modules/gdscript/gdscript.h105
-rw-r--r--modules/gdscript/gdscript_analyzer.cpp42
-rw-r--r--modules/gdscript/gdscript_analyzer.h4
-rw-r--r--modules/gdscript/gdscript_byte_codegen.cpp4
-rw-r--r--modules/gdscript/gdscript_byte_codegen.h4
-rw-r--r--modules/gdscript/gdscript_cache.cpp4
-rw-r--r--modules/gdscript/gdscript_cache.h4
-rw-r--r--modules/gdscript/gdscript_codegen.h4
-rw-r--r--modules/gdscript/gdscript_compiler.cpp6
-rw-r--r--modules/gdscript/gdscript_compiler.h4
-rw-r--r--modules/gdscript/gdscript_disassembler.cpp4
-rw-r--r--modules/gdscript/gdscript_editor.cpp104
-rw-r--r--modules/gdscript/gdscript_function.cpp4
-rw-r--r--modules/gdscript/gdscript_function.h4
-rw-r--r--modules/gdscript/gdscript_lambda_callable.cpp4
-rw-r--r--modules/gdscript/gdscript_lambda_callable.h4
-rw-r--r--modules/gdscript/gdscript_parser.cpp68
-rw-r--r--modules/gdscript/gdscript_parser.h6
-rw-r--r--modules/gdscript/gdscript_tokenizer.cpp4
-rw-r--r--modules/gdscript/gdscript_tokenizer.h4
-rw-r--r--modules/gdscript/gdscript_utility_functions.cpp4
-rw-r--r--modules/gdscript/gdscript_utility_functions.h4
-rw-r--r--modules/gdscript/gdscript_vm.cpp11
-rw-r--r--modules/gdscript/gdscript_warning.cpp6
-rw-r--r--modules/gdscript/gdscript_warning.h4
-rw-r--r--modules/gdscript/language_server/gdscript_extend_parser.cpp4
-rw-r--r--modules/gdscript/language_server/gdscript_extend_parser.h4
-rw-r--r--modules/gdscript/language_server/gdscript_language_protocol.cpp4
-rw-r--r--modules/gdscript/language_server/gdscript_language_protocol.h4
-rw-r--r--modules/gdscript/language_server/gdscript_language_server.cpp4
-rw-r--r--modules/gdscript/language_server/gdscript_language_server.h4
-rw-r--r--modules/gdscript/language_server/gdscript_text_document.cpp4
-rw-r--r--modules/gdscript/language_server/gdscript_text_document.h4
-rw-r--r--modules/gdscript/language_server/gdscript_workspace.cpp4
-rw-r--r--modules/gdscript/language_server/gdscript_workspace.h4
-rw-r--r--modules/gdscript/language_server/lsp.hpp4
-rw-r--r--modules/gdscript/register_types.cpp4
-rw-r--r--modules/gdscript/register_types.h4
-rw-r--r--modules/gdscript/tests/gdscript_test_runner.cpp12
-rw-r--r--modules/gdscript/tests/gdscript_test_runner.h4
-rw-r--r--modules/gdscript/tests/gdscript_test_runner_suite.h4
-rw-r--r--modules/gdscript/tests/scripts/analyzer/features/warning_ignore_annotation.gd15
-rw-r--r--modules/gdscript/tests/scripts/analyzer/features/warning_ignore_annotation.out4
-rw-r--r--modules/gdscript/tests/scripts/parser/features/signal_declaration.gd2
-rw-r--r--modules/gdscript/tests/test_gdscript.cpp4
-rw-r--r--modules/gdscript/tests/test_gdscript.h4
-rw-r--r--modules/glslang/register_types.cpp4
-rw-r--r--modules/glslang/register_types.h4
-rw-r--r--modules/gltf/doc_classes/GLTFDocument.xml51
-rw-r--r--modules/gltf/editor_scene_exporter_gltf_plugin.cpp15
-rw-r--r--modules/gltf/editor_scene_exporter_gltf_plugin.h4
-rw-r--r--modules/gltf/editor_scene_importer_gltf.cpp18
-rw-r--r--modules/gltf/editor_scene_importer_gltf.h8
-rw-r--r--modules/gltf/gltf_accessor.cpp4
-rw-r--r--modules/gltf/gltf_accessor.h4
-rw-r--r--modules/gltf/gltf_animation.cpp4
-rw-r--r--modules/gltf/gltf_animation.h4
-rw-r--r--modules/gltf/gltf_buffer_view.cpp4
-rw-r--r--modules/gltf/gltf_buffer_view.h4
-rw-r--r--modules/gltf/gltf_camera.cpp4
-rw-r--r--modules/gltf/gltf_camera.h4
-rw-r--r--modules/gltf/gltf_document.cpp661
-rw-r--r--modules/gltf/gltf_document.h37
-rw-r--r--modules/gltf/gltf_document_extension.cpp4
-rw-r--r--modules/gltf/gltf_document_extension.h4
-rw-r--r--modules/gltf/gltf_document_extension_convert_importer_mesh.cpp4
-rw-r--r--modules/gltf/gltf_document_extension_convert_importer_mesh.h4
-rw-r--r--modules/gltf/gltf_light.cpp4
-rw-r--r--modules/gltf/gltf_light.h4
-rw-r--r--modules/gltf/gltf_mesh.cpp4
-rw-r--r--modules/gltf/gltf_mesh.h4
-rw-r--r--modules/gltf/gltf_node.cpp4
-rw-r--r--modules/gltf/gltf_node.h4
-rw-r--r--modules/gltf/gltf_skeleton.cpp4
-rw-r--r--modules/gltf/gltf_skeleton.h4
-rw-r--r--modules/gltf/gltf_skin.cpp4
-rw-r--r--modules/gltf/gltf_skin.h4
-rw-r--r--modules/gltf/gltf_spec_gloss.cpp4
-rw-r--r--modules/gltf/gltf_spec_gloss.h4
-rw-r--r--modules/gltf/gltf_state.cpp4
-rw-r--r--modules/gltf/gltf_state.h4
-rw-r--r--modules/gltf/gltf_texture.cpp4
-rw-r--r--modules/gltf/gltf_texture.h4
-rw-r--r--modules/gltf/register_types.cpp4
-rw-r--r--modules/gltf/register_types.h4
-rw-r--r--modules/gridmap/doc_classes/GridMap.xml3
-rw-r--r--modules/gridmap/grid_map.cpp22
-rw-r--r--modules/gridmap/grid_map.h10
-rw-r--r--modules/gridmap/grid_map_editor_plugin.cpp4
-rw-r--r--modules/gridmap/grid_map_editor_plugin.h4
-rw-r--r--modules/gridmap/register_types.cpp4
-rw-r--r--modules/gridmap/register_types.h4
-rw-r--r--modules/hdr/image_loader_hdr.cpp4
-rw-r--r--modules/hdr/image_loader_hdr.h4
-rw-r--r--modules/hdr/register_types.cpp4
-rw-r--r--modules/hdr/register_types.h4
-rw-r--r--modules/jpg/image_loader_jpegd.cpp4
-rw-r--r--modules/jpg/image_loader_jpegd.h4
-rw-r--r--modules/jpg/register_types.cpp4
-rw-r--r--modules/jpg/register_types.h4
-rw-r--r--modules/jsonrpc/jsonrpc.cpp4
-rw-r--r--modules/jsonrpc/jsonrpc.h4
-rw-r--r--modules/jsonrpc/register_types.cpp4
-rw-r--r--modules/jsonrpc/register_types.h4
-rw-r--r--modules/lightmapper_rd/lightmapper_rd.cpp10
-rw-r--r--modules/lightmapper_rd/lightmapper_rd.h4
-rw-r--r--modules/lightmapper_rd/register_types.cpp4
-rw-r--r--modules/lightmapper_rd/register_types.h4
-rw-r--r--modules/mbedtls/crypto_mbedtls.cpp4
-rw-r--r--modules/mbedtls/crypto_mbedtls.h4
-rw-r--r--modules/mbedtls/dtls_server_mbedtls.cpp4
-rw-r--r--modules/mbedtls/dtls_server_mbedtls.h4
-rw-r--r--modules/mbedtls/packet_peer_mbed_dtls.cpp4
-rw-r--r--modules/mbedtls/packet_peer_mbed_dtls.h4
-rw-r--r--modules/mbedtls/register_types.cpp4
-rw-r--r--modules/mbedtls/register_types.h4
-rw-r--r--modules/mbedtls/ssl_context_mbedtls.cpp4
-rw-r--r--modules/mbedtls/ssl_context_mbedtls.h4
-rw-r--r--modules/mbedtls/stream_peer_mbedtls.cpp4
-rw-r--r--modules/mbedtls/stream_peer_mbedtls.h4
-rw-r--r--modules/mbedtls/tests/test_crypto_mbedtls.cpp4
-rw-r--r--modules/mbedtls/tests/test_crypto_mbedtls.h4
-rw-r--r--modules/meshoptimizer/register_types.cpp4
-rw-r--r--modules/meshoptimizer/register_types.h4
-rw-r--r--modules/minimp3/audio_stream_mp3.cpp4
-rw-r--r--modules/minimp3/audio_stream_mp3.h4
-rw-r--r--modules/minimp3/register_types.cpp4
-rw-r--r--modules/minimp3/register_types.h4
-rw-r--r--modules/minimp3/resource_importer_mp3.cpp4
-rw-r--r--modules/minimp3/resource_importer_mp3.h4
-rw-r--r--modules/mobile_vr/mobile_vr_interface.cpp4
-rw-r--r--modules/mobile_vr/mobile_vr_interface.h4
-rw-r--r--modules/mobile_vr/register_types.cpp4
-rw-r--r--modules/mobile_vr/register_types.h4
-rw-r--r--modules/mono/SCsub2
-rw-r--r--modules/mono/class_db_api_json.cpp4
-rw-r--r--modules/mono/class_db_api_json.h4
-rw-r--r--modules/mono/csharp_script.cpp80
-rw-r--r--modules/mono/csharp_script.h8
-rw-r--r--modules/mono/editor/bindings_generator.cpp4
-rw-r--r--modules/mono/editor/bindings_generator.h4
-rw-r--r--modules/mono/editor/code_completion.cpp4
-rw-r--r--modules/mono/editor/code_completion.h4
-rw-r--r--modules/mono/editor/editor_internal_calls.cpp4
-rw-r--r--modules/mono/editor/editor_internal_calls.h4
-rw-r--r--modules/mono/editor/godotsharp_export.cpp4
-rw-r--r--modules/mono/editor/godotsharp_export.h4
-rw-r--r--modules/mono/editor_templates/CharacterBody2D/basic_movement.cs41
-rw-r--r--modules/mono/editor_templates/CharacterBody3D/basic_movement.cs44
-rw-r--r--modules/mono/editor_templates/EditorPlugin/plugin.cs19
-rw-r--r--modules/mono/editor_templates/EditorScript/basic_editor_script.cs14
-rw-r--r--modules/mono/editor_templates/Node/default.cs19
-rw-r--r--modules/mono/editor_templates/Object/empty.cs9
-rw-r--r--modules/mono/editor_templates/SCsub16
-rw-r--r--modules/mono/editor_templates/VisualShaderNodeCustom/basic.cs67
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/GD.cs2
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs2
-rw-r--r--modules/mono/glue/arguments_vector.h4
-rw-r--r--modules/mono/glue/base_object_glue.cpp4
-rw-r--r--modules/mono/glue/callable_glue.cpp4
-rw-r--r--modules/mono/glue/collections_glue.cpp4
-rw-r--r--modules/mono/glue/gd_glue.cpp4
-rw-r--r--modules/mono/glue/glue_header.h4
-rw-r--r--modules/mono/glue/nodepath_glue.cpp4
-rw-r--r--modules/mono/glue/rid_glue.cpp4
-rw-r--r--modules/mono/glue/scene_tree_glue.cpp4
-rw-r--r--modules/mono/glue/string_glue.cpp4
-rw-r--r--modules/mono/glue/string_name_glue.cpp4
-rw-r--r--modules/mono/godotsharp_defs.h4
-rw-r--r--modules/mono/godotsharp_dirs.cpp4
-rw-r--r--modules/mono/godotsharp_dirs.h4
-rw-r--r--modules/mono/managed_callable.cpp4
-rw-r--r--modules/mono/managed_callable.h4
-rw-r--r--modules/mono/mono_gc_handle.cpp4
-rw-r--r--modules/mono/mono_gc_handle.h4
-rw-r--r--modules/mono/mono_gd/android_mono_config.h4
-rw-r--r--modules/mono/mono_gd/gd_mono.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_assembly.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_assembly.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_cache.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_cache.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_class.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_class.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_field.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_field.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_header.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_internals.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_internals.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_log.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_log.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_marshal.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_marshal.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_method.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_method.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_method_thunk.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_property.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_property.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_utils.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_utils.h4
-rw-r--r--modules/mono/mono_gd/gd_mono_wasm_m2n.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_wasm_m2n.h4
-rw-r--r--modules/mono/mono_gd/i_mono_class_member.h4
-rw-r--r--modules/mono/mono_gd/managed_type.cpp4
-rw-r--r--modules/mono/mono_gd/managed_type.h4
-rw-r--r--modules/mono/mono_gd/support/android_support.cpp4
-rw-r--r--modules/mono/mono_gd/support/android_support.h4
-rw-r--r--modules/mono/mono_gd/support/ios_support.h4
-rw-r--r--modules/mono/mono_gd/support/ios_support.mm4
-rw-r--r--modules/mono/register_types.cpp4
-rw-r--r--modules/mono/register_types.h4
-rw-r--r--modules/mono/signal_awaiter_utils.cpp4
-rw-r--r--modules/mono/signal_awaiter_utils.h4
-rw-r--r--modules/mono/utils/macros.h4
-rw-r--r--modules/mono/utils/mono_reg_utils.cpp4
-rw-r--r--modules/mono/utils/mono_reg_utils.h4
-rw-r--r--modules/mono/utils/osx_utils.cpp4
-rw-r--r--modules/mono/utils/osx_utils.h4
-rw-r--r--modules/mono/utils/path_utils.cpp4
-rw-r--r--modules/mono/utils/path_utils.h4
-rw-r--r--modules/mono/utils/string_utils.cpp4
-rw-r--r--modules/mono/utils/string_utils.h4
-rw-r--r--modules/msdfgen/register_types.cpp4
-rw-r--r--modules/msdfgen/register_types.h4
-rw-r--r--modules/navigation/godot_navigation_server.cpp4
-rw-r--r--modules/navigation/godot_navigation_server.h4
-rw-r--r--modules/navigation/nav_map.cpp4
-rw-r--r--modules/navigation/nav_map.h4
-rw-r--r--modules/navigation/nav_region.cpp4
-rw-r--r--modules/navigation/nav_region.h4
-rw-r--r--modules/navigation/nav_rid.h4
-rw-r--r--modules/navigation/nav_utils.h4
-rw-r--r--modules/navigation/navigation_mesh_editor_plugin.cpp4
-rw-r--r--modules/navigation/navigation_mesh_editor_plugin.h4
-rw-r--r--modules/navigation/navigation_mesh_generator.cpp4
-rw-r--r--modules/navigation/navigation_mesh_generator.h4
-rw-r--r--modules/navigation/register_types.cpp4
-rw-r--r--modules/navigation/register_types.h4
-rw-r--r--modules/navigation/rvo_agent.cpp4
-rw-r--r--modules/navigation/rvo_agent.h4
-rw-r--r--modules/ogg/ogg_packet_sequence.cpp4
-rw-r--r--modules/ogg/ogg_packet_sequence.h4
-rw-r--r--modules/ogg/register_types.cpp4
-rw-r--r--modules/ogg/register_types.h4
-rw-r--r--modules/opensimplex/noise_texture.cpp4
-rw-r--r--modules/opensimplex/noise_texture.h4
-rw-r--r--modules/opensimplex/open_simplex_noise.cpp4
-rw-r--r--modules/opensimplex/open_simplex_noise.h4
-rw-r--r--modules/opensimplex/register_types.cpp4
-rw-r--r--modules/opensimplex/register_types.h4
-rw-r--r--modules/pvr/image_compress_pvrtc.cpp4
-rw-r--r--modules/pvr/image_compress_pvrtc.h4
-rw-r--r--modules/pvr/register_types.cpp4
-rw-r--r--modules/pvr/register_types.h4
-rw-r--r--modules/pvr/texture_loader_pvr.cpp4
-rw-r--r--modules/pvr/texture_loader_pvr.h4
-rw-r--r--modules/raycast/lightmap_raycaster.cpp4
-rw-r--r--modules/raycast/lightmap_raycaster.h4
-rw-r--r--modules/raycast/raycast_occlusion_cull.cpp4
-rw-r--r--modules/raycast/raycast_occlusion_cull.h4
-rw-r--r--modules/raycast/register_types.cpp4
-rw-r--r--modules/raycast/register_types.h4
-rw-r--r--modules/raycast/static_raycaster.cpp4
-rw-r--r--modules/raycast/static_raycaster.h4
-rw-r--r--modules/regex/regex.cpp4
-rw-r--r--modules/regex/regex.h4
-rw-r--r--modules/regex/register_types.cpp4
-rw-r--r--modules/regex/register_types.h4
-rw-r--r--modules/regex/tests/test_regex.h4
-rw-r--r--modules/register_module_types.h4
-rw-r--r--modules/squish/image_decompress_squish.cpp4
-rw-r--r--modules/squish/image_decompress_squish.h4
-rw-r--r--modules/squish/register_types.cpp4
-rw-r--r--modules/squish/register_types.h4
-rw-r--r--modules/svg/image_loader_svg.cpp4
-rw-r--r--modules/svg/image_loader_svg.h4
-rw-r--r--modules/svg/register_types.cpp4
-rw-r--r--modules/svg/register_types.h4
-rw-r--r--modules/text_server_adv/icu_data/icudata_stub.cpp4
-rw-r--r--modules/text_server_adv/register_types.cpp4
-rw-r--r--modules/text_server_adv/register_types.h4
-rw-r--r--modules/text_server_adv/script_iterator.cpp4
-rw-r--r--modules/text_server_adv/script_iterator.h4
-rw-r--r--modules/text_server_adv/text_server_adv.cpp62
-rw-r--r--modules/text_server_adv/text_server_adv.h9
-rw-r--r--modules/text_server_fb/register_types.cpp4
-rw-r--r--modules/text_server_fb/register_types.h4
-rw-r--r--modules/text_server_fb/text_server_fb.cpp28
-rw-r--r--modules/text_server_fb/text_server_fb.h8
-rw-r--r--modules/tga/image_loader_tga.cpp4
-rw-r--r--modules/tga/image_loader_tga.h4
-rw-r--r--modules/tga/register_types.cpp4
-rw-r--r--modules/tga/register_types.h4
-rw-r--r--modules/theora/register_types.cpp4
-rw-r--r--modules/theora/register_types.h4
-rw-r--r--modules/theora/video_stream_theora.cpp4
-rw-r--r--modules/theora/video_stream_theora.h4
-rw-r--r--modules/tinyexr/image_loader_tinyexr.cpp4
-rw-r--r--modules/tinyexr/image_loader_tinyexr.h4
-rw-r--r--modules/tinyexr/image_saver_tinyexr.cpp4
-rw-r--r--modules/tinyexr/image_saver_tinyexr.h4
-rw-r--r--modules/tinyexr/register_types.cpp4
-rw-r--r--modules/tinyexr/register_types.h4
-rw-r--r--modules/upnp/register_types.cpp4
-rw-r--r--modules/upnp/register_types.h4
-rw-r--r--modules/upnp/upnp.cpp4
-rw-r--r--modules/upnp/upnp.h4
-rw-r--r--modules/upnp/upnp_device.cpp4
-rw-r--r--modules/upnp/upnp_device.h4
-rw-r--r--modules/vhacd/register_types.cpp4
-rw-r--r--modules/vhacd/register_types.h4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml78
-rw-r--r--modules/visual_script/doc_classes/VisualScriptCustomNode.xml34
-rw-r--r--modules/visual_script/editor/visual_script_editor.cpp4
-rw-r--r--modules/visual_script/editor/visual_script_editor.h4
-rw-r--r--modules/visual_script/editor/visual_script_property_selector.cpp4
-rw-r--r--modules/visual_script/editor/visual_script_property_selector.h4
-rw-r--r--modules/visual_script/register_types.cpp4
-rw-r--r--modules/visual_script/register_types.h4
-rw-r--r--modules/visual_script/visual_script.cpp19
-rw-r--r--modules/visual_script/visual_script.h83
-rw-r--r--modules/visual_script/visual_script_builtin_funcs.cpp4
-rw-r--r--modules/visual_script/visual_script_builtin_funcs.h4
-rw-r--r--modules/visual_script/visual_script_expression.cpp4
-rw-r--r--modules/visual_script/visual_script_expression.h4
-rw-r--r--modules/visual_script/visual_script_flow_control.cpp4
-rw-r--r--modules/visual_script/visual_script_flow_control.h4
-rw-r--r--modules/visual_script/visual_script_func_nodes.cpp12
-rw-r--r--modules/visual_script/visual_script_func_nodes.h4
-rw-r--r--modules/visual_script/visual_script_nodes.cpp4
-rw-r--r--modules/visual_script/visual_script_nodes.h4
-rw-r--r--modules/visual_script/visual_script_yield_nodes.cpp4
-rw-r--r--modules/visual_script/visual_script_yield_nodes.h4
-rw-r--r--modules/vorbis/audio_stream_ogg_vorbis.cpp6
-rw-r--r--modules/vorbis/audio_stream_ogg_vorbis.h4
-rw-r--r--modules/vorbis/register_types.cpp4
-rw-r--r--modules/vorbis/register_types.h4
-rw-r--r--modules/vorbis/resource_importer_ogg_vorbis.cpp4
-rw-r--r--modules/vorbis/resource_importer_ogg_vorbis.h4
-rw-r--r--modules/webp/image_loader_webp.cpp4
-rw-r--r--modules/webp/image_loader_webp.h4
-rw-r--r--modules/webp/register_types.cpp4
-rw-r--r--modules/webp/register_types.h4
-rw-r--r--modules/webrtc/doc_classes/WebRTCMultiplayerPeer.xml2
-rw-r--r--modules/webrtc/library_godot_webrtc.js4
-rw-r--r--modules/webrtc/register_types.cpp4
-rw-r--r--modules/webrtc/register_types.h4
-rw-r--r--modules/webrtc/webrtc_data_channel.cpp4
-rw-r--r--modules/webrtc/webrtc_data_channel.h4
-rw-r--r--modules/webrtc/webrtc_data_channel_extension.cpp4
-rw-r--r--modules/webrtc/webrtc_data_channel_extension.h4
-rw-r--r--modules/webrtc/webrtc_data_channel_js.cpp4
-rw-r--r--modules/webrtc/webrtc_data_channel_js.h4
-rw-r--r--modules/webrtc/webrtc_multiplayer_peer.cpp4
-rw-r--r--modules/webrtc/webrtc_multiplayer_peer.h4
-rw-r--r--modules/webrtc/webrtc_peer_connection.cpp4
-rw-r--r--modules/webrtc/webrtc_peer_connection.h4
-rw-r--r--modules/webrtc/webrtc_peer_connection_extension.cpp4
-rw-r--r--modules/webrtc/webrtc_peer_connection_extension.h4
-rw-r--r--modules/webrtc/webrtc_peer_connection_js.cpp4
-rw-r--r--modules/webrtc/webrtc_peer_connection_js.h4
-rw-r--r--modules/websocket/doc_classes/WebSocketClient.xml4
-rw-r--r--modules/websocket/editor_debugger_server_websocket.cpp4
-rw-r--r--modules/websocket/editor_debugger_server_websocket.h4
-rw-r--r--modules/websocket/emws_client.cpp4
-rw-r--r--modules/websocket/emws_client.h4
-rw-r--r--modules/websocket/emws_peer.cpp4
-rw-r--r--modules/websocket/emws_peer.h4
-rw-r--r--modules/websocket/emws_server.cpp4
-rw-r--r--modules/websocket/emws_server.h4
-rw-r--r--modules/websocket/library_godot_websocket.js4
-rw-r--r--modules/websocket/packet_buffer.h4
-rw-r--r--modules/websocket/register_types.cpp4
-rw-r--r--modules/websocket/register_types.h4
-rw-r--r--modules/websocket/remote_debugger_peer_websocket.cpp4
-rw-r--r--modules/websocket/remote_debugger_peer_websocket.h4
-rw-r--r--modules/websocket/websocket_client.cpp4
-rw-r--r--modules/websocket/websocket_client.h4
-rw-r--r--modules/websocket/websocket_macros.h4
-rw-r--r--modules/websocket/websocket_multiplayer_peer.cpp4
-rw-r--r--modules/websocket/websocket_multiplayer_peer.h4
-rw-r--r--modules/websocket/websocket_peer.cpp4
-rw-r--r--modules/websocket/websocket_peer.h4
-rw-r--r--modules/websocket/websocket_server.cpp4
-rw-r--r--modules/websocket/websocket_server.h4
-rw-r--r--modules/websocket/wsl_client.cpp4
-rw-r--r--modules/websocket/wsl_client.h4
-rw-r--r--modules/websocket/wsl_peer.cpp4
-rw-r--r--modules/websocket/wsl_peer.h4
-rw-r--r--modules/websocket/wsl_server.cpp4
-rw-r--r--modules/websocket/wsl_server.h4
-rw-r--r--modules/webxr/godot_webxr.h4
-rw-r--r--modules/webxr/register_types.cpp4
-rw-r--r--modules/webxr/register_types.h4
-rw-r--r--modules/webxr/webxr_interface.cpp4
-rw-r--r--modules/webxr/webxr_interface.h4
-rw-r--r--modules/webxr/webxr_interface_js.cpp4
-rw-r--r--modules/webxr/webxr_interface_js.h4
-rw-r--r--modules/xatlas_unwrap/register_types.cpp4
-rw-r--r--modules/xatlas_unwrap/register_types.h4
-rw-r--r--platform/android/android_input_handler.cpp4
-rw-r--r--platform/android/android_input_handler.h4
-rw-r--r--platform/android/android_keys_utils.cpp4
-rw-r--r--platform/android/android_keys_utils.h4
-rw-r--r--platform/android/api/api.cpp4
-rw-r--r--platform/android/api/api.h4
-rw-r--r--platform/android/api/java_class_wrapper.h4
-rw-r--r--platform/android/api/jni_singleton.h4
-rw-r--r--platform/android/audio_driver_opensl.cpp4
-rw-r--r--platform/android/audio_driver_opensl.h4
-rw-r--r--platform/android/dir_access_jandroid.cpp4
-rw-r--r--platform/android/dir_access_jandroid.h4
-rw-r--r--platform/android/display_server_android.cpp4
-rw-r--r--platform/android/display_server_android.h4
-rw-r--r--platform/android/export/export.cpp4
-rw-r--r--platform/android/export/export.h4
-rw-r--r--platform/android/export/export_plugin.cpp8
-rw-r--r--platform/android/export/export_plugin.h4
-rw-r--r--platform/android/export/godot_plugin_config.cpp4
-rw-r--r--platform/android/export/godot_plugin_config.h4
-rw-r--r--platform/android/export/gradle_export_util.cpp4
-rw-r--r--platform/android/export/gradle_export_util.h4
-rw-r--r--platform/android/file_access_android.cpp4
-rw-r--r--platform/android/file_access_android.h4
-rw-r--r--platform/android/java/app/src/com/godot/game/GodotApp.java4
-rw-r--r--platform/android/java/build.gradle12
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/Dictionary.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/FullScreenGodotApp.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/Godot.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotDownloaderAlarmReceiver.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotDownloaderService.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotHost.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotIO.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotInstrumentation.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotLib.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotRenderView.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotRenderer.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/input/GodotTextInputWrapper.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/input/Joystick.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPlugin.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginInfoProvider.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginRegistry.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/plugin/SignalInfo.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/plugin/UsedByGodot.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/utils/Crypt.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/utils/GLUtils.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/utils/GodotNetUtils.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/vulkan/VkRenderer.kt4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/vulkan/VkSurfaceView.kt4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/vulkan/VkThread.kt4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/xr/XRMode.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrConfigChooser.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrContextFactory.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrWindowSurfaceFactory.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularConfigChooser.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularContextFactory.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularFallbackConfigChooser.java4
-rw-r--r--platform/android/java_class_wrapper.cpp4
-rw-r--r--platform/android/java_godot_io_wrapper.cpp4
-rw-r--r--platform/android/java_godot_io_wrapper.h4
-rw-r--r--platform/android/java_godot_lib_jni.cpp4
-rw-r--r--platform/android/java_godot_lib_jni.h4
-rw-r--r--platform/android/java_godot_view_wrapper.cpp4
-rw-r--r--platform/android/java_godot_view_wrapper.h4
-rw-r--r--platform/android/java_godot_wrapper.cpp4
-rw-r--r--platform/android/java_godot_wrapper.h4
-rw-r--r--platform/android/jni_utils.cpp4
-rw-r--r--platform/android/jni_utils.h4
-rw-r--r--platform/android/net_socket_android.cpp4
-rw-r--r--platform/android/net_socket_android.h4
-rw-r--r--platform/android/os_android.cpp4
-rw-r--r--platform/android/os_android.h4
-rw-r--r--platform/android/platform_config.h4
-rw-r--r--platform/android/plugin/godot_plugin_jni.cpp4
-rw-r--r--platform/android/plugin/godot_plugin_jni.h4
-rw-r--r--platform/android/string_android.h4
-rw-r--r--platform/android/thread_jandroid.cpp4
-rw-r--r--platform/android/thread_jandroid.h4
-rw-r--r--platform/android/vulkan/vulkan_context_android.cpp4
-rw-r--r--platform/android/vulkan/vulkan_context_android.h4
-rw-r--r--platform/iphone/api/api.cpp4
-rw-r--r--platform/iphone/api/api.h4
-rw-r--r--platform/iphone/app_delegate.h4
-rw-r--r--platform/iphone/app_delegate.mm4
-rw-r--r--platform/iphone/device_metrics.h4
-rw-r--r--platform/iphone/device_metrics.m4
-rw-r--r--platform/iphone/display_layer.h4
-rw-r--r--platform/iphone/display_layer.mm4
-rw-r--r--platform/iphone/display_server_iphone.h4
-rw-r--r--platform/iphone/display_server_iphone.mm4
-rw-r--r--platform/iphone/export/export.cpp4
-rw-r--r--platform/iphone/export/export.h4
-rw-r--r--platform/iphone/export/export_plugin.cpp6
-rw-r--r--platform/iphone/export/export_plugin.h4
-rw-r--r--platform/iphone/export/godot_plugin_config.cpp4
-rw-r--r--platform/iphone/export/godot_plugin_config.h4
-rw-r--r--platform/iphone/godot_app_delegate.h4
-rw-r--r--platform/iphone/godot_app_delegate.m4
-rw-r--r--platform/iphone/godot_iphone.mm4
-rw-r--r--platform/iphone/godot_view.h4
-rw-r--r--platform/iphone/godot_view.mm4
-rw-r--r--platform/iphone/godot_view_gesture_recognizer.h4
-rw-r--r--platform/iphone/godot_view_gesture_recognizer.mm4
-rw-r--r--platform/iphone/godot_view_renderer.h4
-rw-r--r--platform/iphone/godot_view_renderer.mm4
-rw-r--r--platform/iphone/ios.h4
-rw-r--r--platform/iphone/ios.mm6
-rw-r--r--platform/iphone/joypad_iphone.h4
-rw-r--r--platform/iphone/joypad_iphone.mm6
-rw-r--r--platform/iphone/keyboard_input_view.h4
-rw-r--r--platform/iphone/keyboard_input_view.mm4
-rw-r--r--platform/iphone/main.m4
-rw-r--r--platform/iphone/os_iphone.h4
-rw-r--r--platform/iphone/os_iphone.mm4
-rw-r--r--platform/iphone/platform_config.h4
-rw-r--r--platform/iphone/view_controller.h4
-rw-r--r--platform/iphone/view_controller.mm4
-rw-r--r--platform/iphone/vulkan_context_iphone.h4
-rw-r--r--platform/iphone/vulkan_context_iphone.mm4
-rw-r--r--platform/javascript/api/api.cpp4
-rw-r--r--platform/javascript/api/api.h4
-rw-r--r--platform/javascript/api/javascript_singleton.h4
-rw-r--r--platform/javascript/api/javascript_tools_editor_plugin.cpp6
-rw-r--r--platform/javascript/api/javascript_tools_editor_plugin.h4
-rw-r--r--platform/javascript/audio_driver_javascript.cpp4
-rw-r--r--platform/javascript/audio_driver_javascript.h4
-rw-r--r--platform/javascript/display_server_javascript.cpp8
-rw-r--r--platform/javascript/display_server_javascript.h4
-rw-r--r--platform/javascript/dom_keys.inc4
-rw-r--r--platform/javascript/export/export.cpp4
-rw-r--r--platform/javascript/export/export.h4
-rw-r--r--platform/javascript/export/export_plugin.cpp6
-rw-r--r--platform/javascript/export/export_plugin.h4
-rw-r--r--platform/javascript/export/export_server.h4
-rw-r--r--platform/javascript/godot_audio.h4
-rw-r--r--platform/javascript/godot_js.h4
-rw-r--r--platform/javascript/http_client_javascript.cpp4
-rw-r--r--platform/javascript/http_client_javascript.h4
-rw-r--r--platform/javascript/javascript_main.cpp4
-rw-r--r--platform/javascript/javascript_runtime.cpp4
-rw-r--r--platform/javascript/javascript_singleton.cpp4
-rw-r--r--platform/javascript/js/libs/audio.worklet.js4
-rw-r--r--platform/javascript/js/libs/library_godot_audio.js4
-rw-r--r--platform/javascript/js/libs/library_godot_display.js4
-rw-r--r--platform/javascript/js/libs/library_godot_fetch.js4
-rw-r--r--platform/javascript/js/libs/library_godot_input.js4
-rw-r--r--platform/javascript/js/libs/library_godot_javascript_singleton.js4
-rw-r--r--platform/javascript/js/libs/library_godot_os.js4
-rw-r--r--platform/javascript/js/libs/library_godot_runtime.js4
-rw-r--r--platform/javascript/os_javascript.cpp4
-rw-r--r--platform/javascript/os_javascript.h4
-rw-r--r--platform/javascript/platform_config.h4
-rw-r--r--platform/linuxbsd/crash_handler_linuxbsd.cpp4
-rw-r--r--platform/linuxbsd/crash_handler_linuxbsd.h4
-rw-r--r--platform/linuxbsd/detect_prime_x11.cpp4
-rw-r--r--platform/linuxbsd/detect_prime_x11.h4
-rw-r--r--platform/linuxbsd/display_server_x11.cpp22
-rw-r--r--platform/linuxbsd/display_server_x11.h4
-rw-r--r--platform/linuxbsd/export/export.cpp4
-rw-r--r--platform/linuxbsd/export/export.h4
-rw-r--r--platform/linuxbsd/freedesktop_screensaver.cpp4
-rw-r--r--platform/linuxbsd/freedesktop_screensaver.h4
-rw-r--r--platform/linuxbsd/gl_manager_x11.cpp4
-rw-r--r--platform/linuxbsd/gl_manager_x11.h4
-rw-r--r--platform/linuxbsd/godot_linuxbsd.cpp4
-rw-r--r--platform/linuxbsd/joypad_linux.cpp4
-rw-r--r--platform/linuxbsd/joypad_linux.h4
-rw-r--r--platform/linuxbsd/key_mapping_x11.cpp4
-rw-r--r--platform/linuxbsd/key_mapping_x11.h4
-rw-r--r--platform/linuxbsd/os_linuxbsd.cpp8
-rw-r--r--platform/linuxbsd/os_linuxbsd.h4
-rw-r--r--platform/linuxbsd/platform_config.h4
-rw-r--r--platform/linuxbsd/vulkan_context_x11.cpp4
-rw-r--r--platform/linuxbsd/vulkan_context_x11.h4
-rw-r--r--platform/osx/crash_handler_osx.h4
-rw-r--r--platform/osx/crash_handler_osx.mm4
-rw-r--r--platform/osx/dir_access_osx.h4
-rw-r--r--platform/osx/dir_access_osx.mm4
-rw-r--r--platform/osx/display_server_osx.h4
-rw-r--r--platform/osx/display_server_osx.mm4
-rw-r--r--platform/osx/export/export.cpp4
-rw-r--r--platform/osx/export/export.h4
-rw-r--r--platform/osx/export/export_plugin.cpp191
-rw-r--r--platform/osx/export/export_plugin.h11
-rw-r--r--platform/osx/gl_manager_osx.h4
-rw-r--r--platform/osx/gl_manager_osx.mm4
-rw-r--r--platform/osx/godot_main_osx.mm4
-rw-r--r--platform/osx/joypad_osx.cpp4
-rw-r--r--platform/osx/joypad_osx.h4
-rw-r--r--platform/osx/os_osx.h4
-rw-r--r--platform/osx/os_osx.mm8
-rw-r--r--platform/osx/platform_config.h4
-rw-r--r--platform/osx/vulkan_context_osx.h4
-rw-r--r--platform/osx/vulkan_context_osx.mm4
-rw-r--r--platform/register_platform_apis.h4
-rw-r--r--platform/uwp/app_uwp.cpp4
-rw-r--r--platform/uwp/app_uwp.h4
-rw-r--r--platform/uwp/context_egl_uwp.cpp4
-rw-r--r--platform/uwp/context_egl_uwp.h4
-rw-r--r--platform/uwp/export/app_packager.cpp4
-rw-r--r--platform/uwp/export/app_packager.h4
-rw-r--r--platform/uwp/export/export.cpp4
-rw-r--r--platform/uwp/export/export.h4
-rw-r--r--platform/uwp/export/export_plugin.cpp6
-rw-r--r--platform/uwp/export/export_plugin.h4
-rw-r--r--platform/uwp/joypad_uwp.cpp4
-rw-r--r--platform/uwp/joypad_uwp.h4
-rw-r--r--platform/uwp/os_uwp.cpp25
-rw-r--r--platform/uwp/os_uwp.h4
-rw-r--r--platform/uwp/platform_config.h4
-rw-r--r--platform/windows/crash_handler_windows.cpp4
-rw-r--r--platform/windows/crash_handler_windows.h4
-rw-r--r--platform/windows/display_server_windows.cpp38
-rw-r--r--platform/windows/display_server_windows.h4
-rw-r--r--platform/windows/export/export.cpp4
-rw-r--r--platform/windows/export/export.h4
-rw-r--r--platform/windows/export/export_plugin.cpp4
-rw-r--r--platform/windows/export/export_plugin.h4
-rw-r--r--platform/windows/gl_manager_windows.cpp4
-rw-r--r--platform/windows/gl_manager_windows.h4
-rw-r--r--platform/windows/godot_windows.cpp4
-rw-r--r--platform/windows/joypad_windows.cpp4
-rw-r--r--platform/windows/joypad_windows.h4
-rw-r--r--platform/windows/key_mapping_windows.cpp321
-rw-r--r--platform/windows/key_mapping_windows.h4
-rw-r--r--platform/windows/lang_table.h4
-rw-r--r--platform/windows/os_windows.cpp21
-rw-r--r--platform/windows/os_windows.h4
-rw-r--r--platform/windows/platform_config.h4
-rw-r--r--platform/windows/vulkan_context_win.cpp4
-rw-r--r--platform/windows/vulkan_context_win.h4
-rw-r--r--platform/windows/windows_terminal_logger.cpp4
-rw-r--r--platform/windows/windows_terminal_logger.h4
-rw-r--r--scene/2d/animated_sprite_2d.cpp4
-rw-r--r--scene/2d/animated_sprite_2d.h4
-rw-r--r--scene/2d/area_2d.cpp4
-rw-r--r--scene/2d/area_2d.h4
-rw-r--r--scene/2d/audio_listener_2d.cpp4
-rw-r--r--scene/2d/audio_listener_2d.h4
-rw-r--r--scene/2d/audio_stream_player_2d.cpp4
-rw-r--r--scene/2d/audio_stream_player_2d.h4
-rw-r--r--scene/2d/back_buffer_copy.cpp4
-rw-r--r--scene/2d/back_buffer_copy.h4
-rw-r--r--scene/2d/camera_2d.cpp4
-rw-r--r--scene/2d/camera_2d.h4
-rw-r--r--scene/2d/canvas_group.cpp4
-rw-r--r--scene/2d/canvas_group.h4
-rw-r--r--scene/2d/canvas_modulate.cpp4
-rw-r--r--scene/2d/canvas_modulate.h4
-rw-r--r--scene/2d/collision_object_2d.cpp4
-rw-r--r--scene/2d/collision_object_2d.h4
-rw-r--r--scene/2d/collision_polygon_2d.cpp4
-rw-r--r--scene/2d/collision_polygon_2d.h4
-rw-r--r--scene/2d/collision_shape_2d.cpp4
-rw-r--r--scene/2d/collision_shape_2d.h4
-rw-r--r--scene/2d/cpu_particles_2d.cpp4
-rw-r--r--scene/2d/cpu_particles_2d.h4
-rw-r--r--scene/2d/gpu_particles_2d.cpp4
-rw-r--r--scene/2d/gpu_particles_2d.h4
-rw-r--r--scene/2d/joint_2d.cpp4
-rw-r--r--scene/2d/joint_2d.h4
-rw-r--r--scene/2d/light_2d.cpp4
-rw-r--r--scene/2d/light_2d.h4
-rw-r--r--scene/2d/light_occluder_2d.cpp4
-rw-r--r--scene/2d/light_occluder_2d.h4
-rw-r--r--scene/2d/line_2d.cpp4
-rw-r--r--scene/2d/line_2d.h4
-rw-r--r--scene/2d/line_builder.cpp4
-rw-r--r--scene/2d/line_builder.h4
-rw-r--r--scene/2d/mesh_instance_2d.cpp4
-rw-r--r--scene/2d/mesh_instance_2d.h4
-rw-r--r--scene/2d/multimesh_instance_2d.cpp4
-rw-r--r--scene/2d/multimesh_instance_2d.h4
-rw-r--r--scene/2d/navigation_agent_2d.cpp6
-rw-r--r--scene/2d/navigation_agent_2d.h4
-rw-r--r--scene/2d/navigation_obstacle_2d.cpp4
-rw-r--r--scene/2d/navigation_obstacle_2d.h4
-rw-r--r--scene/2d/navigation_region_2d.cpp12
-rw-r--r--scene/2d/navigation_region_2d.h4
-rw-r--r--scene/2d/node_2d.cpp4
-rw-r--r--scene/2d/node_2d.h4
-rw-r--r--scene/2d/parallax_background.cpp4
-rw-r--r--scene/2d/parallax_background.h4
-rw-r--r--scene/2d/parallax_layer.cpp4
-rw-r--r--scene/2d/parallax_layer.h4
-rw-r--r--scene/2d/path_2d.cpp8
-rw-r--r--scene/2d/path_2d.h4
-rw-r--r--scene/2d/physical_bone_2d.cpp4
-rw-r--r--scene/2d/physical_bone_2d.h4
-rw-r--r--scene/2d/physics_body_2d.cpp4
-rw-r--r--scene/2d/physics_body_2d.h4
-rw-r--r--scene/2d/polygon_2d.cpp4
-rw-r--r--scene/2d/polygon_2d.h4
-rw-r--r--scene/2d/position_2d.cpp4
-rw-r--r--scene/2d/position_2d.h4
-rw-r--r--scene/2d/ray_cast_2d.cpp4
-rw-r--r--scene/2d/ray_cast_2d.h4
-rw-r--r--scene/2d/remote_transform_2d.cpp4
-rw-r--r--scene/2d/remote_transform_2d.h4
-rw-r--r--scene/2d/shape_cast_2d.cpp6
-rw-r--r--scene/2d/shape_cast_2d.h4
-rw-r--r--scene/2d/skeleton_2d.cpp4
-rw-r--r--scene/2d/skeleton_2d.h4
-rw-r--r--scene/2d/sprite_2d.cpp4
-rw-r--r--scene/2d/sprite_2d.h4
-rw-r--r--scene/2d/tile_map.cpp10
-rw-r--r--scene/2d/tile_map.h4
-rw-r--r--scene/2d/touch_screen_button.cpp4
-rw-r--r--scene/2d/touch_screen_button.h4
-rw-r--r--scene/2d/visible_on_screen_notifier_2d.cpp4
-rw-r--r--scene/2d/visible_on_screen_notifier_2d.h4
-rw-r--r--scene/3d/area_3d.cpp4
-rw-r--r--scene/3d/area_3d.h4
-rw-r--r--scene/3d/audio_listener_3d.cpp4
-rw-r--r--scene/3d/audio_listener_3d.h4
-rw-r--r--scene/3d/audio_stream_player_3d.cpp4
-rw-r--r--scene/3d/audio_stream_player_3d.h4
-rw-r--r--scene/3d/bone_attachment_3d.cpp4
-rw-r--r--scene/3d/bone_attachment_3d.h4
-rw-r--r--scene/3d/camera_3d.cpp4
-rw-r--r--scene/3d/camera_3d.h4
-rw-r--r--scene/3d/collision_object_3d.cpp4
-rw-r--r--scene/3d/collision_object_3d.h4
-rw-r--r--scene/3d/collision_polygon_3d.cpp4
-rw-r--r--scene/3d/collision_polygon_3d.h4
-rw-r--r--scene/3d/collision_shape_3d.cpp4
-rw-r--r--scene/3d/collision_shape_3d.h4
-rw-r--r--scene/3d/cpu_particles_3d.cpp4
-rw-r--r--scene/3d/cpu_particles_3d.h4
-rw-r--r--scene/3d/decal.cpp4
-rw-r--r--scene/3d/decal.h4
-rw-r--r--scene/3d/fog_volume.cpp4
-rw-r--r--scene/3d/fog_volume.h4
-rw-r--r--scene/3d/gpu_particles_3d.cpp4
-rw-r--r--scene/3d/gpu_particles_3d.h4
-rw-r--r--scene/3d/gpu_particles_collision_3d.cpp4
-rw-r--r--scene/3d/gpu_particles_collision_3d.h4
-rw-r--r--scene/3d/importer_mesh_instance_3d.cpp4
-rw-r--r--scene/3d/importer_mesh_instance_3d.h4
-rw-r--r--scene/3d/joint_3d.cpp4
-rw-r--r--scene/3d/joint_3d.h4
-rw-r--r--scene/3d/light_3d.cpp4
-rw-r--r--scene/3d/light_3d.h4
-rw-r--r--scene/3d/lightmap_gi.cpp10
-rw-r--r--scene/3d/lightmap_gi.h4
-rw-r--r--scene/3d/lightmap_probe.cpp4
-rw-r--r--scene/3d/lightmap_probe.h4
-rw-r--r--scene/3d/lightmapper.cpp4
-rw-r--r--scene/3d/lightmapper.h4
-rw-r--r--scene/3d/mesh_instance_3d.cpp4
-rw-r--r--scene/3d/mesh_instance_3d.h4
-rw-r--r--scene/3d/multimesh_instance_3d.cpp4
-rw-r--r--scene/3d/multimesh_instance_3d.h4
-rw-r--r--scene/3d/navigation_agent_3d.cpp4
-rw-r--r--scene/3d/navigation_agent_3d.h4
-rw-r--r--scene/3d/navigation_obstacle_3d.cpp4
-rw-r--r--scene/3d/navigation_obstacle_3d.h4
-rw-r--r--scene/3d/navigation_region_3d.cpp4
-rw-r--r--scene/3d/navigation_region_3d.h4
-rw-r--r--scene/3d/node_3d.cpp132
-rw-r--r--scene/3d/node_3d.h25
-rw-r--r--scene/3d/occluder_instance_3d.cpp4
-rw-r--r--scene/3d/occluder_instance_3d.h4
-rw-r--r--scene/3d/path_3d.cpp4
-rw-r--r--scene/3d/path_3d.h4
-rw-r--r--scene/3d/physics_body_3d.cpp4
-rw-r--r--scene/3d/physics_body_3d.h4
-rw-r--r--scene/3d/position_3d.cpp4
-rw-r--r--scene/3d/position_3d.h4
-rw-r--r--scene/3d/ray_cast_3d.cpp4
-rw-r--r--scene/3d/ray_cast_3d.h4
-rw-r--r--scene/3d/reflection_probe.cpp20
-rw-r--r--scene/3d/reflection_probe.h10
-rw-r--r--scene/3d/remote_transform_3d.cpp4
-rw-r--r--scene/3d/remote_transform_3d.h4
-rw-r--r--scene/3d/skeleton_3d.cpp4
-rw-r--r--scene/3d/skeleton_3d.h4
-rw-r--r--scene/3d/skeleton_ik_3d.cpp4
-rw-r--r--scene/3d/skeleton_ik_3d.h4
-rw-r--r--scene/3d/soft_dynamic_body_3d.cpp4
-rw-r--r--scene/3d/soft_dynamic_body_3d.h4
-rw-r--r--scene/3d/spring_arm_3d.cpp4
-rw-r--r--scene/3d/spring_arm_3d.h4
-rw-r--r--scene/3d/sprite_3d.cpp4
-rw-r--r--scene/3d/sprite_3d.h4
-rw-r--r--scene/3d/vehicle_body_3d.cpp4
-rw-r--r--scene/3d/vehicle_body_3d.h4
-rw-r--r--scene/3d/velocity_tracker_3d.cpp4
-rw-r--r--scene/3d/velocity_tracker_3d.h4
-rw-r--r--scene/3d/visible_on_screen_notifier_3d.cpp4
-rw-r--r--scene/3d/visible_on_screen_notifier_3d.h4
-rw-r--r--scene/3d/visual_instance_3d.cpp28
-rw-r--r--scene/3d/visual_instance_3d.h8
-rw-r--r--scene/3d/voxel_gi.cpp6
-rw-r--r--scene/3d/voxel_gi.h6
-rw-r--r--scene/3d/voxelizer.cpp4
-rw-r--r--scene/3d/voxelizer.h4
-rw-r--r--scene/3d/world_environment.cpp4
-rw-r--r--scene/3d/world_environment.h4
-rw-r--r--scene/3d/xr_nodes.cpp4
-rw-r--r--scene/3d/xr_nodes.h4
-rw-r--r--scene/animation/animation_blend_space_1d.cpp4
-rw-r--r--scene/animation/animation_blend_space_1d.h4
-rw-r--r--scene/animation/animation_blend_space_2d.cpp4
-rw-r--r--scene/animation/animation_blend_space_2d.h4
-rw-r--r--scene/animation/animation_blend_tree.cpp4
-rw-r--r--scene/animation/animation_blend_tree.h4
-rw-r--r--scene/animation/animation_node_state_machine.cpp4
-rw-r--r--scene/animation/animation_node_state_machine.h4
-rw-r--r--scene/animation/animation_player.cpp24
-rw-r--r--scene/animation/animation_player.h4
-rw-r--r--scene/animation/animation_tree.cpp4
-rw-r--r--scene/animation/animation_tree.h4
-rw-r--r--scene/animation/easing_equations.h4
-rw-r--r--scene/animation/root_motion_view.cpp4
-rw-r--r--scene/animation/root_motion_view.h4
-rw-r--r--scene/animation/tween.cpp29
-rw-r--r--scene/animation/tween.h9
-rw-r--r--scene/audio/audio_stream_player.cpp4
-rw-r--r--scene/audio/audio_stream_player.h4
-rw-r--r--scene/debugger/scene_debugger.cpp4
-rw-r--r--scene/debugger/scene_debugger.h4
-rw-r--r--scene/gui/aspect_ratio_container.cpp4
-rw-r--r--scene/gui/aspect_ratio_container.h4
-rw-r--r--scene/gui/base_button.cpp4
-rw-r--r--scene/gui/base_button.h4
-rw-r--r--scene/gui/box_container.cpp4
-rw-r--r--scene/gui/box_container.h4
-rw-r--r--scene/gui/button.cpp17
-rw-r--r--scene/gui/button.h4
-rw-r--r--scene/gui/center_container.cpp4
-rw-r--r--scene/gui/center_container.h4
-rw-r--r--scene/gui/check_box.cpp4
-rw-r--r--scene/gui/check_box.h4
-rw-r--r--scene/gui/check_button.cpp4
-rw-r--r--scene/gui/check_button.h4
-rw-r--r--scene/gui/code_edit.cpp109
-rw-r--r--scene/gui/code_edit.h4
-rw-r--r--scene/gui/color_picker.cpp4
-rw-r--r--scene/gui/color_picker.h4
-rw-r--r--scene/gui/color_rect.cpp4
-rw-r--r--scene/gui/color_rect.h4
-rw-r--r--scene/gui/container.cpp4
-rw-r--r--scene/gui/container.h4
-rw-r--r--scene/gui/control.cpp56
-rw-r--r--scene/gui/control.h4
-rw-r--r--scene/gui/dialogs.cpp4
-rw-r--r--scene/gui/dialogs.h4
-rw-r--r--scene/gui/file_dialog.cpp5
-rw-r--r--scene/gui/file_dialog.h4
-rw-r--r--scene/gui/gradient_edit.cpp4
-rw-r--r--scene/gui/gradient_edit.h4
-rw-r--r--scene/gui/graph_edit.cpp57
-rw-r--r--scene/gui/graph_edit.h7
-rw-r--r--scene/gui/graph_node.cpp10
-rw-r--r--scene/gui/graph_node.h4
-rw-r--r--scene/gui/grid_container.cpp4
-rw-r--r--scene/gui/grid_container.h4
-rw-r--r--scene/gui/item_list.cpp16
-rw-r--r--scene/gui/item_list.h8
-rw-r--r--scene/gui/label.cpp10
-rw-r--r--scene/gui/label.h4
-rw-r--r--scene/gui/line_edit.cpp10
-rw-r--r--scene/gui/line_edit.h6
-rw-r--r--scene/gui/link_button.cpp10
-rw-r--r--scene/gui/link_button.h4
-rw-r--r--scene/gui/margin_container.cpp4
-rw-r--r--scene/gui/margin_container.h4
-rw-r--r--scene/gui/menu_button.cpp6
-rw-r--r--scene/gui/menu_button.h4
-rw-r--r--scene/gui/nine_patch_rect.cpp4
-rw-r--r--scene/gui/nine_patch_rect.h4
-rw-r--r--scene/gui/option_button.cpp7
-rw-r--r--scene/gui/option_button.h4
-rw-r--r--scene/gui/panel.cpp4
-rw-r--r--scene/gui/panel.h4
-rw-r--r--scene/gui/panel_container.cpp4
-rw-r--r--scene/gui/panel_container.h4
-rw-r--r--scene/gui/popup.cpp4
-rw-r--r--scene/gui/popup.h4
-rw-r--r--scene/gui/popup_menu.cpp24
-rw-r--r--scene/gui/popup_menu.h4
-rw-r--r--scene/gui/progress_bar.cpp4
-rw-r--r--scene/gui/progress_bar.h4
-rw-r--r--scene/gui/range.cpp4
-rw-r--r--scene/gui/range.h4
-rw-r--r--scene/gui/reference_rect.cpp4
-rw-r--r--scene/gui/reference_rect.h4
-rw-r--r--scene/gui/rich_text_effect.cpp4
-rw-r--r--scene/gui/rich_text_effect.h4
-rw-r--r--scene/gui/rich_text_label.cpp9
-rw-r--r--scene/gui/rich_text_label.h6
-rw-r--r--scene/gui/scroll_bar.cpp4
-rw-r--r--scene/gui/scroll_bar.h4
-rw-r--r--scene/gui/scroll_container.cpp12
-rw-r--r--scene/gui/scroll_container.h8
-rw-r--r--scene/gui/separator.cpp4
-rw-r--r--scene/gui/separator.h4
-rw-r--r--scene/gui/slider.cpp12
-rw-r--r--scene/gui/slider.h4
-rw-r--r--scene/gui/spin_box.cpp4
-rw-r--r--scene/gui/spin_box.h4
-rw-r--r--scene/gui/split_container.cpp4
-rw-r--r--scene/gui/split_container.h4
-rw-r--r--scene/gui/subviewport_container.cpp5
-rw-r--r--scene/gui/subviewport_container.h4
-rw-r--r--scene/gui/tab_bar.cpp77
-rw-r--r--scene/gui/tab_bar.h15
-rw-r--r--scene/gui/tab_container.cpp29
-rw-r--r--scene/gui/tab_container.h4
-rw-r--r--scene/gui/text_edit.cpp18
-rw-r--r--scene/gui/text_edit.h8
-rw-r--r--scene/gui/texture_button.cpp16
-rw-r--r--scene/gui/texture_button.h4
-rw-r--r--scene/gui/texture_progress_bar.cpp4
-rw-r--r--scene/gui/texture_progress_bar.h4
-rw-r--r--scene/gui/texture_rect.cpp26
-rw-r--r--scene/gui/texture_rect.h13
-rw-r--r--scene/gui/tree.cpp21
-rw-r--r--scene/gui/tree.h4
-rw-r--r--scene/gui/video_stream_player.cpp4
-rw-r--r--scene/gui/video_stream_player.h4
-rw-r--r--scene/main/canvas_item.cpp4
-rw-r--r--scene/main/canvas_item.h4
-rw-r--r--scene/main/canvas_layer.cpp4
-rw-r--r--scene/main/canvas_layer.h4
-rw-r--r--scene/main/http_request.cpp4
-rw-r--r--scene/main/http_request.h4
-rw-r--r--scene/main/instance_placeholder.cpp4
-rw-r--r--scene/main/instance_placeholder.h4
-rw-r--r--scene/main/node.cpp65
-rw-r--r--scene/main/node.h5
-rw-r--r--scene/main/resource_preloader.cpp4
-rw-r--r--scene/main/resource_preloader.h4
-rw-r--r--scene/main/scene_tree.cpp10
-rw-r--r--scene/main/scene_tree.h4
-rw-r--r--scene/main/shader_globals_override.cpp4
-rw-r--r--scene/main/shader_globals_override.h4
-rw-r--r--scene/main/timer.cpp4
-rw-r--r--scene/main/timer.h4
-rw-r--r--scene/main/viewport.cpp33
-rw-r--r--scene/main/viewport.h14
-rw-r--r--scene/main/window.cpp4
-rw-r--r--scene/main/window.h4
-rw-r--r--scene/property_utils.cpp37
-rw-r--r--scene/property_utils.h4
-rw-r--r--scene/register_scene_types.cpp6
-rw-r--r--scene/register_scene_types.h4
-rw-r--r--scene/resources/animation.cpp11
-rw-r--r--scene/resources/animation.h4
-rw-r--r--scene/resources/audio_stream_sample.cpp4
-rw-r--r--scene/resources/audio_stream_sample.h4
-rw-r--r--scene/resources/bit_map.cpp4
-rw-r--r--scene/resources/bit_map.h4
-rw-r--r--scene/resources/box_shape_3d.cpp4
-rw-r--r--scene/resources/box_shape_3d.h4
-rw-r--r--scene/resources/camera_effects.cpp4
-rw-r--r--scene/resources/camera_effects.h4
-rw-r--r--scene/resources/canvas_item_material.cpp4
-rw-r--r--scene/resources/canvas_item_material.h4
-rw-r--r--scene/resources/capsule_shape_2d.cpp4
-rw-r--r--scene/resources/capsule_shape_2d.h4
-rw-r--r--scene/resources/capsule_shape_3d.cpp4
-rw-r--r--scene/resources/capsule_shape_3d.h4
-rw-r--r--scene/resources/circle_shape_2d.cpp4
-rw-r--r--scene/resources/circle_shape_2d.h4
-rw-r--r--scene/resources/concave_polygon_shape_2d.cpp4
-rw-r--r--scene/resources/concave_polygon_shape_2d.h4
-rw-r--r--scene/resources/concave_polygon_shape_3d.cpp4
-rw-r--r--scene/resources/concave_polygon_shape_3d.h4
-rw-r--r--scene/resources/convex_polygon_shape_2d.cpp4
-rw-r--r--scene/resources/convex_polygon_shape_2d.h4
-rw-r--r--scene/resources/convex_polygon_shape_3d.cpp4
-rw-r--r--scene/resources/convex_polygon_shape_3d.h4
-rw-r--r--scene/resources/curve.cpp4
-rw-r--r--scene/resources/curve.h4
-rw-r--r--scene/resources/cylinder_shape_3d.cpp4
-rw-r--r--scene/resources/cylinder_shape_3d.h4
-rw-r--r--scene/resources/default_theme/default_theme.cpp20
-rw-r--r--scene/resources/default_theme/default_theme.h4
-rw-r--r--scene/resources/environment.cpp83
-rw-r--r--scene/resources/environment.h25
-rw-r--r--scene/resources/fog_material.cpp4
-rw-r--r--scene/resources/fog_material.h4
-rw-r--r--scene/resources/font.cpp125
-rw-r--r--scene/resources/font.h7
-rw-r--r--scene/resources/gradient.cpp4
-rw-r--r--scene/resources/gradient.h4
-rw-r--r--scene/resources/height_map_shape_3d.cpp4
-rw-r--r--scene/resources/height_map_shape_3d.h4
-rw-r--r--scene/resources/immediate_mesh.cpp4
-rw-r--r--scene/resources/immediate_mesh.h4
-rw-r--r--scene/resources/importer_mesh.cpp4
-rw-r--r--scene/resources/importer_mesh.h4
-rw-r--r--scene/resources/material.cpp16
-rw-r--r--scene/resources/material.h4
-rw-r--r--scene/resources/mesh.cpp188
-rw-r--r--scene/resources/mesh.h4
-rw-r--r--scene/resources/mesh_data_tool.cpp4
-rw-r--r--scene/resources/mesh_data_tool.h4
-rw-r--r--scene/resources/mesh_library.cpp4
-rw-r--r--scene/resources/mesh_library.h4
-rw-r--r--scene/resources/multimesh.cpp4
-rw-r--r--scene/resources/multimesh.h4
-rw-r--r--scene/resources/navigation_mesh.cpp4
-rw-r--r--scene/resources/navigation_mesh.h4
-rw-r--r--scene/resources/packed_scene.cpp67
-rw-r--r--scene/resources/packed_scene.h8
-rw-r--r--scene/resources/particles_material.cpp4
-rw-r--r--scene/resources/particles_material.h4
-rw-r--r--scene/resources/physics_material.cpp4
-rw-r--r--scene/resources/physics_material.h4
-rw-r--r--scene/resources/polygon_path_finder.cpp4
-rw-r--r--scene/resources/polygon_path_finder.h4
-rw-r--r--scene/resources/primitive_meshes.cpp4
-rw-r--r--scene/resources/primitive_meshes.h4
-rw-r--r--scene/resources/rectangle_shape_2d.cpp4
-rw-r--r--scene/resources/rectangle_shape_2d.h4
-rw-r--r--scene/resources/resource_format_text.cpp15
-rw-r--r--scene/resources/resource_format_text.h4
-rw-r--r--scene/resources/segment_shape_2d.cpp4
-rw-r--r--scene/resources/segment_shape_2d.h4
-rw-r--r--scene/resources/separation_ray_shape_2d.cpp4
-rw-r--r--scene/resources/separation_ray_shape_2d.h4
-rw-r--r--scene/resources/separation_ray_shape_3d.cpp4
-rw-r--r--scene/resources/separation_ray_shape_3d.h4
-rw-r--r--scene/resources/shader.cpp4
-rw-r--r--scene/resources/shader.h4
-rw-r--r--scene/resources/shape_2d.cpp4
-rw-r--r--scene/resources/shape_2d.h4
-rw-r--r--scene/resources/shape_3d.cpp4
-rw-r--r--scene/resources/shape_3d.h4
-rw-r--r--scene/resources/skeleton_modification_2d.cpp4
-rw-r--r--scene/resources/skeleton_modification_2d.h4
-rw-r--r--scene/resources/skeleton_modification_2d_ccdik.cpp4
-rw-r--r--scene/resources/skeleton_modification_2d_ccdik.h4
-rw-r--r--scene/resources/skeleton_modification_2d_fabrik.cpp4
-rw-r--r--scene/resources/skeleton_modification_2d_fabrik.h4
-rw-r--r--scene/resources/skeleton_modification_2d_jiggle.cpp4
-rw-r--r--scene/resources/skeleton_modification_2d_jiggle.h4
-rw-r--r--scene/resources/skeleton_modification_2d_lookat.cpp4
-rw-r--r--scene/resources/skeleton_modification_2d_lookat.h4
-rw-r--r--scene/resources/skeleton_modification_2d_physicalbones.cpp4
-rw-r--r--scene/resources/skeleton_modification_2d_physicalbones.h4
-rw-r--r--scene/resources/skeleton_modification_2d_stackholder.cpp4
-rw-r--r--scene/resources/skeleton_modification_2d_stackholder.h4
-rw-r--r--scene/resources/skeleton_modification_2d_twoboneik.cpp4
-rw-r--r--scene/resources/skeleton_modification_2d_twoboneik.h4
-rw-r--r--scene/resources/skeleton_modification_3d.cpp4
-rw-r--r--scene/resources/skeleton_modification_3d.h4
-rw-r--r--scene/resources/skeleton_modification_3d_ccdik.cpp4
-rw-r--r--scene/resources/skeleton_modification_3d_ccdik.h4
-rw-r--r--scene/resources/skeleton_modification_3d_fabrik.cpp4
-rw-r--r--scene/resources/skeleton_modification_3d_fabrik.h4
-rw-r--r--scene/resources/skeleton_modification_3d_jiggle.cpp6
-rw-r--r--scene/resources/skeleton_modification_3d_jiggle.h4
-rw-r--r--scene/resources/skeleton_modification_3d_lookat.cpp4
-rw-r--r--scene/resources/skeleton_modification_3d_lookat.h4
-rw-r--r--scene/resources/skeleton_modification_3d_stackholder.cpp4
-rw-r--r--scene/resources/skeleton_modification_3d_stackholder.h4
-rw-r--r--scene/resources/skeleton_modification_3d_twoboneik.cpp4
-rw-r--r--scene/resources/skeleton_modification_3d_twoboneik.h4
-rw-r--r--scene/resources/skeleton_modification_stack_2d.cpp4
-rw-r--r--scene/resources/skeleton_modification_stack_2d.h4
-rw-r--r--scene/resources/skeleton_modification_stack_3d.cpp4
-rw-r--r--scene/resources/skeleton_modification_stack_3d.h4
-rw-r--r--scene/resources/skin.cpp4
-rw-r--r--scene/resources/skin.h10
-rw-r--r--scene/resources/sky.cpp4
-rw-r--r--scene/resources/sky.h4
-rw-r--r--scene/resources/sky_material.cpp4
-rw-r--r--scene/resources/sky_material.h4
-rw-r--r--scene/resources/sphere_shape_3d.cpp4
-rw-r--r--scene/resources/sphere_shape_3d.h4
-rw-r--r--scene/resources/sprite_frames.cpp4
-rw-r--r--scene/resources/sprite_frames.h4
-rw-r--r--scene/resources/style_box.cpp4
-rw-r--r--scene/resources/style_box.h4
-rw-r--r--scene/resources/surface_tool.cpp4
-rw-r--r--scene/resources/surface_tool.h4
-rw-r--r--scene/resources/syntax_highlighter.cpp4
-rw-r--r--scene/resources/syntax_highlighter.h4
-rw-r--r--scene/resources/text_file.cpp4
-rw-r--r--scene/resources/text_file.h4
-rw-r--r--scene/resources/text_line.cpp4
-rw-r--r--scene/resources/text_line.h4
-rw-r--r--scene/resources/text_paragraph.cpp4
-rw-r--r--scene/resources/text_paragraph.h4
-rw-r--r--scene/resources/texture.cpp4
-rw-r--r--scene/resources/texture.h4
-rw-r--r--scene/resources/theme.cpp142
-rw-r--r--scene/resources/theme.h60
-rw-r--r--scene/resources/tile_set.cpp4
-rw-r--r--scene/resources/tile_set.h4
-rw-r--r--scene/resources/video_stream.h4
-rw-r--r--scene/resources/visual_shader.cpp8
-rw-r--r--scene/resources/visual_shader.h6
-rw-r--r--scene/resources/visual_shader_nodes.cpp4
-rw-r--r--scene/resources/visual_shader_nodes.h4
-rw-r--r--scene/resources/visual_shader_particle_nodes.cpp4
-rw-r--r--scene/resources/visual_shader_particle_nodes.h4
-rw-r--r--scene/resources/visual_shader_sdf_nodes.cpp4
-rw-r--r--scene/resources/visual_shader_sdf_nodes.h4
-rw-r--r--scene/resources/world_2d.cpp4
-rw-r--r--scene/resources/world_2d.h4
-rw-r--r--scene/resources/world_3d.cpp4
-rw-r--r--scene/resources/world_3d.h4
-rw-r--r--scene/resources/world_boundary_shape_2d.cpp4
-rw-r--r--scene/resources/world_boundary_shape_2d.h4
-rw-r--r--scene/resources/world_boundary_shape_3d.cpp4
-rw-r--r--scene/resources/world_boundary_shape_3d.h4
-rw-r--r--scene/scene_string_names.cpp4
-rw-r--r--scene/scene_string_names.h4
-rw-r--r--servers/audio/audio_driver_dummy.cpp4
-rw-r--r--servers/audio/audio_driver_dummy.h4
-rw-r--r--servers/audio/audio_effect.cpp4
-rw-r--r--servers/audio/audio_effect.h4
-rw-r--r--servers/audio/audio_filter_sw.cpp4
-rw-r--r--servers/audio/audio_filter_sw.h4
-rw-r--r--servers/audio/audio_rb_resampler.cpp4
-rw-r--r--servers/audio/audio_rb_resampler.h4
-rw-r--r--servers/audio/audio_stream.cpp4
-rw-r--r--servers/audio/audio_stream.h4
-rw-r--r--servers/audio/effects/audio_effect_amplify.cpp4
-rw-r--r--servers/audio/effects/audio_effect_amplify.h4
-rw-r--r--servers/audio/effects/audio_effect_capture.cpp4
-rw-r--r--servers/audio/effects/audio_effect_capture.h4
-rw-r--r--servers/audio/effects/audio_effect_chorus.cpp4
-rw-r--r--servers/audio/effects/audio_effect_chorus.h4
-rw-r--r--servers/audio/effects/audio_effect_compressor.cpp4
-rw-r--r--servers/audio/effects/audio_effect_compressor.h4
-rw-r--r--servers/audio/effects/audio_effect_delay.cpp4
-rw-r--r--servers/audio/effects/audio_effect_delay.h4
-rw-r--r--servers/audio/effects/audio_effect_distortion.cpp4
-rw-r--r--servers/audio/effects/audio_effect_distortion.h4
-rw-r--r--servers/audio/effects/audio_effect_eq.cpp4
-rw-r--r--servers/audio/effects/audio_effect_eq.h4
-rw-r--r--servers/audio/effects/audio_effect_filter.cpp4
-rw-r--r--servers/audio/effects/audio_effect_filter.h4
-rw-r--r--servers/audio/effects/audio_effect_limiter.cpp4
-rw-r--r--servers/audio/effects/audio_effect_limiter.h4
-rw-r--r--servers/audio/effects/audio_effect_panner.cpp4
-rw-r--r--servers/audio/effects/audio_effect_panner.h4
-rw-r--r--servers/audio/effects/audio_effect_phaser.cpp4
-rw-r--r--servers/audio/effects/audio_effect_phaser.h4
-rw-r--r--servers/audio/effects/audio_effect_pitch_shift.cpp4
-rw-r--r--servers/audio/effects/audio_effect_pitch_shift.h4
-rw-r--r--servers/audio/effects/audio_effect_record.cpp4
-rw-r--r--servers/audio/effects/audio_effect_record.h4
-rw-r--r--servers/audio/effects/audio_effect_reverb.cpp4
-rw-r--r--servers/audio/effects/audio_effect_reverb.h4
-rw-r--r--servers/audio/effects/audio_effect_spectrum_analyzer.cpp4
-rw-r--r--servers/audio/effects/audio_effect_spectrum_analyzer.h4
-rw-r--r--servers/audio/effects/audio_effect_stereo_enhance.cpp4
-rw-r--r--servers/audio/effects/audio_effect_stereo_enhance.h4
-rw-r--r--servers/audio/effects/audio_stream_generator.cpp4
-rw-r--r--servers/audio/effects/audio_stream_generator.h4
-rw-r--r--servers/audio/effects/eq.cpp4
-rw-r--r--servers/audio/effects/eq.h4
-rw-r--r--servers/audio/effects/reverb.cpp4
-rw-r--r--servers/audio/effects/reverb.h4
-rw-r--r--servers/audio_server.cpp6
-rw-r--r--servers/audio_server.h4
-rw-r--r--servers/camera/camera_feed.cpp4
-rw-r--r--servers/camera/camera_feed.h4
-rw-r--r--servers/camera_server.cpp4
-rw-r--r--servers/camera_server.h4
-rw-r--r--servers/display_server.cpp4
-rw-r--r--servers/display_server.h4
-rw-r--r--servers/display_server_headless.h4
-rw-r--r--servers/navigation_server_2d.cpp6
-rw-r--r--servers/navigation_server_2d.h6
-rw-r--r--servers/navigation_server_3d.cpp6
-rw-r--r--servers/navigation_server_3d.h6
-rw-r--r--servers/physics_2d/godot_area_2d.cpp4
-rw-r--r--servers/physics_2d/godot_area_2d.h4
-rw-r--r--servers/physics_2d/godot_area_pair_2d.cpp4
-rw-r--r--servers/physics_2d/godot_area_pair_2d.h4
-rw-r--r--servers/physics_2d/godot_body_2d.cpp4
-rw-r--r--servers/physics_2d/godot_body_2d.h4
-rw-r--r--servers/physics_2d/godot_body_direct_state_2d.cpp4
-rw-r--r--servers/physics_2d/godot_body_direct_state_2d.h4
-rw-r--r--servers/physics_2d/godot_body_pair_2d.cpp4
-rw-r--r--servers/physics_2d/godot_body_pair_2d.h4
-rw-r--r--servers/physics_2d/godot_broad_phase_2d.cpp4
-rw-r--r--servers/physics_2d/godot_broad_phase_2d.h4
-rw-r--r--servers/physics_2d/godot_broad_phase_2d_bvh.cpp4
-rw-r--r--servers/physics_2d/godot_broad_phase_2d_bvh.h4
-rw-r--r--servers/physics_2d/godot_collision_object_2d.cpp4
-rw-r--r--servers/physics_2d/godot_collision_object_2d.h4
-rw-r--r--servers/physics_2d/godot_collision_solver_2d.cpp4
-rw-r--r--servers/physics_2d/godot_collision_solver_2d.h4
-rw-r--r--servers/physics_2d/godot_collision_solver_2d_sat.cpp4
-rw-r--r--servers/physics_2d/godot_collision_solver_2d_sat.h4
-rw-r--r--servers/physics_2d/godot_constraint_2d.h4
-rw-r--r--servers/physics_2d/godot_joints_2d.cpp4
-rw-r--r--servers/physics_2d/godot_joints_2d.h4
-rw-r--r--servers/physics_2d/godot_physics_server_2d.cpp4
-rw-r--r--servers/physics_2d/godot_physics_server_2d.h4
-rw-r--r--servers/physics_2d/godot_shape_2d.cpp4
-rw-r--r--servers/physics_2d/godot_shape_2d.h4
-rw-r--r--servers/physics_2d/godot_space_2d.cpp4
-rw-r--r--servers/physics_2d/godot_space_2d.h4
-rw-r--r--servers/physics_2d/godot_step_2d.cpp4
-rw-r--r--servers/physics_2d/godot_step_2d.h4
-rw-r--r--servers/physics_3d/gjk_epa.cpp4
-rw-r--r--servers/physics_3d/gjk_epa.h4
-rw-r--r--servers/physics_3d/godot_area_3d.cpp4
-rw-r--r--servers/physics_3d/godot_area_3d.h4
-rw-r--r--servers/physics_3d/godot_area_pair_3d.cpp4
-rw-r--r--servers/physics_3d/godot_area_pair_3d.h4
-rw-r--r--servers/physics_3d/godot_body_3d.cpp4
-rw-r--r--servers/physics_3d/godot_body_3d.h4
-rw-r--r--servers/physics_3d/godot_body_direct_state_3d.cpp4
-rw-r--r--servers/physics_3d/godot_body_direct_state_3d.h4
-rw-r--r--servers/physics_3d/godot_body_pair_3d.cpp4
-rw-r--r--servers/physics_3d/godot_body_pair_3d.h4
-rw-r--r--servers/physics_3d/godot_broad_phase_3d.cpp4
-rw-r--r--servers/physics_3d/godot_broad_phase_3d.h4
-rw-r--r--servers/physics_3d/godot_broad_phase_3d_bvh.cpp4
-rw-r--r--servers/physics_3d/godot_broad_phase_3d_bvh.h4
-rw-r--r--servers/physics_3d/godot_collision_object_3d.cpp4
-rw-r--r--servers/physics_3d/godot_collision_object_3d.h4
-rw-r--r--servers/physics_3d/godot_collision_solver_3d.cpp4
-rw-r--r--servers/physics_3d/godot_collision_solver_3d.h4
-rw-r--r--servers/physics_3d/godot_collision_solver_3d_sat.cpp4
-rw-r--r--servers/physics_3d/godot_collision_solver_3d_sat.h4
-rw-r--r--servers/physics_3d/godot_constraint_3d.h4
-rw-r--r--servers/physics_3d/godot_joint_3d.h4
-rw-r--r--servers/physics_3d/godot_physics_server_3d.cpp4
-rw-r--r--servers/physics_3d/godot_physics_server_3d.h4
-rw-r--r--servers/physics_3d/godot_shape_3d.cpp4
-rw-r--r--servers/physics_3d/godot_shape_3d.h4
-rw-r--r--servers/physics_3d/godot_soft_body_3d.cpp4
-rw-r--r--servers/physics_3d/godot_soft_body_3d.h4
-rw-r--r--servers/physics_3d/godot_space_3d.cpp4
-rw-r--r--servers/physics_3d/godot_space_3d.h4
-rw-r--r--servers/physics_3d/godot_step_3d.cpp4
-rw-r--r--servers/physics_3d/godot_step_3d.h4
-rw-r--r--servers/physics_3d/joints/godot_cone_twist_joint_3d.cpp4
-rw-r--r--servers/physics_3d/joints/godot_cone_twist_joint_3d.h4
-rw-r--r--servers/physics_3d/joints/godot_generic_6dof_joint_3d.cpp4
-rw-r--r--servers/physics_3d/joints/godot_generic_6dof_joint_3d.h4
-rw-r--r--servers/physics_3d/joints/godot_hinge_joint_3d.cpp4
-rw-r--r--servers/physics_3d/joints/godot_hinge_joint_3d.h4
-rw-r--r--servers/physics_3d/joints/godot_jacobian_entry_3d.h4
-rw-r--r--servers/physics_3d/joints/godot_pin_joint_3d.cpp4
-rw-r--r--servers/physics_3d/joints/godot_pin_joint_3d.h4
-rw-r--r--servers/physics_3d/joints/godot_slider_joint_3d.cpp4
-rw-r--r--servers/physics_3d/joints/godot_slider_joint_3d.h4
-rw-r--r--servers/physics_server_2d.cpp4
-rw-r--r--servers/physics_server_2d.h4
-rw-r--r--servers/physics_server_2d_wrap_mt.cpp4
-rw-r--r--servers/physics_server_2d_wrap_mt.h4
-rw-r--r--servers/physics_server_3d.cpp4
-rw-r--r--servers/physics_server_3d.h4
-rw-r--r--servers/physics_server_3d_wrap_mt.cpp4
-rw-r--r--servers/physics_server_3d_wrap_mt.h4
-rw-r--r--servers/register_server_types.cpp4
-rw-r--r--servers/register_server_types.h4
-rw-r--r--servers/rendering/rasterizer_dummy.h14
-rw-r--r--servers/rendering/renderer_canvas_cull.cpp4
-rw-r--r--servers/rendering/renderer_canvas_cull.h4
-rw-r--r--servers/rendering/renderer_canvas_render.cpp4
-rw-r--r--servers/rendering/renderer_canvas_render.h4
-rw-r--r--servers/rendering/renderer_compositor.cpp4
-rw-r--r--servers/rendering/renderer_compositor.h4
-rw-r--r--servers/rendering/renderer_rd/cluster_builder_rd.cpp4
-rw-r--r--servers/rendering/renderer_rd/cluster_builder_rd.h4
-rw-r--r--servers/rendering/renderer_rd/effects_rd.cpp776
-rw-r--r--servers/rendering/renderer_rd/effects_rd.h199
-rw-r--r--servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp107
-rw-r--r--servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h19
-rw-r--r--servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp5
-rw-r--r--servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h4
-rw-r--r--servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp74
-rw-r--r--servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h17
-rw-r--r--servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp5
-rw-r--r--servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h4
-rw-r--r--servers/rendering/renderer_rd/pipeline_cache_rd.cpp4
-rw-r--r--servers/rendering/renderer_rd/pipeline_cache_rd.h4
-rw-r--r--servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp8
-rw-r--r--servers/rendering/renderer_rd/renderer_canvas_render_rd.h4
-rw-r--r--servers/rendering/renderer_rd/renderer_compositor_rd.cpp4
-rw-r--r--servers/rendering/renderer_rd/renderer_compositor_rd.h4
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_environment_rd.cpp4
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_environment_rd.h12
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp11
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_gi_rd.h22
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_render_rd.cpp498
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_render_rd.h80
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp12
-rw-r--r--servers/rendering/renderer_rd/renderer_scene_sky_rd.h4
-rw-r--r--servers/rendering/renderer_rd/renderer_storage_rd.cpp61
-rw-r--r--servers/rendering/renderer_rd/renderer_storage_rd.h17
-rw-r--r--servers/rendering/renderer_rd/shader_compiler_rd.cpp85
-rw-r--r--servers/rendering/renderer_rd/shader_compiler_rd.h4
-rw-r--r--servers/rendering/renderer_rd/shader_rd.cpp4
-rw-r--r--servers/rendering/renderer_rd/shader_rd.h4
-rw-r--r--servers/rendering/renderer_rd/shaders/copy.glsl20
-rw-r--r--servers/rendering/renderer_rd/shaders/fsr_upscale.glsl4
-rw-r--r--servers/rendering/renderer_rd/shaders/gi.glsl18
-rw-r--r--servers/rendering/renderer_rd/shaders/giprobe_write.glsl1
-rw-r--r--servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl19
-rw-r--r--servers/rendering/renderer_rd/shaders/scene_forward_clustered_inc.glsl25
-rw-r--r--servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl11
-rw-r--r--servers/rendering/renderer_rd/shaders/screen_space_reflection.glsl1
-rw-r--r--servers/rendering/renderer_rd/shaders/ss_effects_downsample.glsl (renamed from servers/rendering/renderer_rd/shaders/ssao_downsample.glsl)23
-rw-r--r--servers/rendering/renderer_rd/shaders/ssao.glsl3
-rw-r--r--servers/rendering/renderer_rd/shaders/ssao_blur.glsl14
-rw-r--r--servers/rendering/renderer_rd/shaders/ssao_importance_map.glsl7
-rw-r--r--servers/rendering/renderer_rd/shaders/ssil.glsl444
-rw-r--r--servers/rendering/renderer_rd/shaders/ssil_blur.glsl124
-rw-r--r--servers/rendering/renderer_rd/shaders/ssil_importance_map.glsl124
-rw-r--r--servers/rendering/renderer_rd/shaders/ssil_interleave.glsl102
-rw-r--r--servers/rendering/renderer_rd/shaders/volumetric_fog_process.glsl18
-rw-r--r--servers/rendering/renderer_rd/shaders/voxel_gi.glsl1
-rw-r--r--servers/rendering/renderer_rd/shaders/voxel_gi_debug.glsl56
-rw-r--r--servers/rendering/renderer_rd/shaders/voxel_gi_sdf.glsl5
-rw-r--r--servers/rendering/renderer_scene.cpp4
-rw-r--r--servers/rendering/renderer_scene.h11
-rw-r--r--servers/rendering/renderer_scene_cull.cpp47
-rw-r--r--servers/rendering/renderer_scene_cull.h15
-rw-r--r--servers/rendering/renderer_scene_occlusion_cull.cpp4
-rw-r--r--servers/rendering/renderer_scene_occlusion_cull.h4
-rw-r--r--servers/rendering/renderer_scene_render.cpp4
-rw-r--r--servers/rendering/renderer_scene_render.h11
-rw-r--r--servers/rendering/renderer_storage.cpp4
-rw-r--r--servers/rendering/renderer_storage.h9
-rw-r--r--servers/rendering/renderer_thread_pool.cpp4
-rw-r--r--servers/rendering/renderer_thread_pool.h4
-rw-r--r--servers/rendering/renderer_viewport.cpp12
-rw-r--r--servers/rendering/renderer_viewport.h8
-rw-r--r--servers/rendering/rendering_device.cpp17
-rw-r--r--servers/rendering/rendering_device.h21
-rw-r--r--servers/rendering/rendering_device_binds.cpp4
-rw-r--r--servers/rendering/rendering_device_binds.h4
-rw-r--r--servers/rendering/rendering_server_default.cpp8
-rw-r--r--servers/rendering/rendering_server_default.h13
-rw-r--r--servers/rendering/rendering_server_globals.cpp4
-rw-r--r--servers/rendering/rendering_server_globals.h4
-rw-r--r--servers/rendering/shader_language.cpp276
-rw-r--r--servers/rendering/shader_language.h26
-rw-r--r--servers/rendering/shader_types.cpp7
-rw-r--r--servers/rendering/shader_types.h4
-rw-r--r--servers/rendering/shader_warnings.cpp16
-rw-r--r--servers/rendering/shader_warnings.h11
-rw-r--r--servers/rendering_server.cpp34
-rw-r--r--servers/rendering_server.h24
-rw-r--r--servers/server_wrap_mt_common.h4
-rw-r--r--servers/text/text_server_extension.cpp19
-rw-r--r--servers/text/text_server_extension.h9
-rw-r--r--servers/text_server.cpp36
-rw-r--r--servers/text_server.h7
-rw-r--r--servers/xr/xr_interface.cpp4
-rw-r--r--servers/xr/xr_interface.h4
-rw-r--r--servers/xr/xr_interface_extension.cpp4
-rw-r--r--servers/xr/xr_interface_extension.h4
-rw-r--r--servers/xr/xr_pose.cpp4
-rw-r--r--servers/xr/xr_pose.h4
-rw-r--r--servers/xr/xr_positional_tracker.cpp4
-rw-r--r--servers/xr/xr_positional_tracker.h4
-rw-r--r--servers/xr_server.cpp4
-rw-r--r--servers/xr_server.h4
-rw-r--r--tests/core/io/test_config_file.h4
-rw-r--r--tests/core/io/test_file_access.h4
-rw-r--r--tests/core/io/test_image.h4
-rw-r--r--tests/core/io/test_json.h4
-rw-r--r--tests/core/io/test_marshalls.h4
-rw-r--r--tests/core/io/test_pck_packer.h4
-rw-r--r--tests/core/io/test_resource.h4
-rw-r--r--tests/core/io/test_xml_parser.h4
-rw-r--r--tests/core/math/test_aabb.h4
-rw-r--r--tests/core/math/test_astar.h4
-rw-r--r--tests/core/math/test_basis.h4
-rw-r--r--tests/core/math/test_color.h4
-rw-r--r--tests/core/math/test_expression.h4
-rw-r--r--tests/core/math/test_geometry_2d.h4
-rw-r--r--tests/core/math/test_geometry_3d.h4
-rw-r--r--tests/core/math/test_math.cpp4
-rw-r--r--tests/core/math/test_math.h4
-rw-r--r--tests/core/math/test_random_number_generator.h4
-rw-r--r--tests/core/math/test_rect2.h4
-rw-r--r--tests/core/object/test_class_db.h4
-rw-r--r--tests/core/object/test_method_bind.h4
-rw-r--r--tests/core/object/test_object.h4
-rw-r--r--tests/core/string/test_node_path.h4
-rw-r--r--tests/core/string/test_string.h4
-rw-r--r--tests/core/string/test_translation.h4
-rw-r--r--tests/core/templates/test_command_queue.h4
-rw-r--r--tests/core/templates/test_list.h4
-rw-r--r--tests/core/templates/test_local_vector.h15
-rw-r--r--tests/core/templates/test_lru.h4
-rw-r--r--tests/core/templates/test_oa_hash_map.cpp4
-rw-r--r--tests/core/templates/test_oa_hash_map.h4
-rw-r--r--tests/core/templates/test_ordered_hash_map.h4
-rw-r--r--tests/core/templates/test_paged_array.h4
-rw-r--r--tests/core/templates/test_vector.h15
-rw-r--r--tests/core/test_crypto.h4
-rw-r--r--tests/core/test_hashing_context.h4
-rw-r--r--tests/core/test_time.h4
-rw-r--r--tests/core/variant/test_array.h4
-rw-r--r--tests/core/variant/test_dictionary.h4
-rw-r--r--tests/core/variant/test_variant.h4
-rw-r--r--tests/scene/test_code_edit.h18
-rw-r--r--tests/scene/test_curve.h4
-rw-r--r--tests/scene/test_gradient.h4
-rw-r--r--tests/scene/test_gui.cpp4
-rw-r--r--tests/scene/test_gui.h4
-rw-r--r--tests/scene/test_path_3d.h4
-rw-r--r--tests/scene/test_path_follow_2d.h4
-rw-r--r--tests/scene/test_path_follow_3d.h4
-rw-r--r--tests/servers/test_physics_2d.cpp4
-rw-r--r--tests/servers/test_physics_2d.h4
-rw-r--r--tests/servers/test_physics_3d.cpp4
-rw-r--r--tests/servers/test_physics_3d.h4
-rw-r--r--tests/servers/test_render.cpp4
-rw-r--r--tests/servers/test_render.h4
-rw-r--r--tests/servers/test_shader_lang.cpp4
-rw-r--r--tests/servers/test_shader_lang.h4
-rw-r--r--tests/servers/test_text_server.h4
-rw-r--r--tests/test_macros.cpp4
-rw-r--r--tests/test_macros.h8
-rw-r--r--tests/test_main.cpp4
-rw-r--r--tests/test_main.h4
-rw-r--r--tests/test_tools.h4
-rw-r--r--tests/test_utils.cpp4
-rw-r--r--tests/test_utils.h4
-rw-r--r--tests/test_validate_testing.h4
-rw-r--r--thirdparty/enet/enet/godot.h4
-rw-r--r--thirdparty/enet/godot.cpp4
-rw-r--r--version.py2
2680 files changed, 152028 insertions, 26739 deletions
diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml
index 92c2e3c516..eeca57a22e 100644
--- a/.github/workflows/linux_builds.yml
+++ b/.github/workflows/linux_builds.yml
@@ -122,13 +122,13 @@ jobs:
${{ matrix.bin }} --doctool --headless 2>&1 > /dev/null || true
git diff --color --exit-code && ! git ls-files --others --exclude-standard | sed -e 's/^/New doc file missing in PR: /' | grep 'xml$'
- # Download, unzip and setup SwiftShader library [4466040]
+ # Download, unzip and setup SwiftShader library
+ # See https://github.com/godotengine/regression-test-project/releases/tag/_ci-deps for details
- name: Download SwiftShader
if: ${{ matrix.tests }}
run: |
- wget https://github.com/qarmin/gtk_library_store/releases/download/3.24.0/swiftshader2.zip
- unzip swiftshader2.zip
- rm swiftshader2.zip
+ wget https://github.com/godotengine/regression-test-project/releases/download/_ci-deps/swiftshader-ubuntu20.04-20211002.zip
+ unzip swiftshader-ubuntu20.04-20211002.zip
curr="$(pwd)/libvk_swiftshader.so"
sed -i "s|PATH_TO_CHANGE|$curr|" vk_swiftshader_icd.json
@@ -136,9 +136,9 @@ jobs:
- name: Download test project
if: ${{ matrix.proj-test }}
run: |
- wget https://github.com/qarmin/RegressionTestProject/archive/4.0.zip
+ wget https://github.com/godotengine/regression-test-project/archive/4.0.zip
unzip 4.0.zip
- mv "RegressionTestProject-4.0" "test_project"
+ mv "regression-test-project-4.0" "test_project"
# Editor is quite complicated piece of software, so it is easy to introduce bug here
- name: Open and close editor
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d1e622edb4..697e09955c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -338,13 +338,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
#### Rendering
- Some Environment settings such as depth of field have been moved to a CameraEffects resource which is assigned to individual Camera nodes.
-- [The ACES Fitted tonemapping algoirthm is now used in place of the old ACES algorithm.](https://github.com/godotengine/godot/pull/52476)
+- [The ACES Fitted tonemapping algorithm is now used in place of the old ACES algorithm.](https://github.com/godotengine/godot/pull/52476)
- The old non-fitted ACES tonemapping algorithm was removed.
- Quality settings have been moved from individual nodes and resources to the Project Settings for better centralization.
- Quality settings now have performance hints in their values' names, such as "Fast" or "Slow".
#### Shaders
+- [`DEPTH_TEXTURE` now uses normalized device coordinates between `0.0` and `1.0` (inclusive) to match Vulkan behavior.](https://docs.godotengine.org/en/latest/tutorials/shaders/advanced_postprocessing.html#depth-texture)
+ - This requires modifying most shaders that rely on `DEPTH_TEXTURE` to make them still work as expected.
+ - Previously, coordinates would be between `-1.0` and `1.0` (inclusive) to match OpenGL behavior.
- Renamed the `.shader` file extension to `.gdshader`.
- Existing text-based shader files will have to be renamed before loading the project in a new engine version.
diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt
index 07b5d4042d..b649a36de3 100644
--- a/COPYRIGHT.txt
+++ b/COPYRIGHT.txt
@@ -43,8 +43,8 @@ Source: https://github.com/godotengine/godot
Files: *
Comment: Godot Engine
-Copyright: 2007-2021, Juan Linietsky, Ariel Manzur.
- 2014-2021, Godot Engine contributors.
+Copyright: 2007-2022, Juan Linietsky, Ariel Manzur.
+ 2014-2022, Godot Engine contributors.
License: Expat
Files: ./icon.png
@@ -59,15 +59,15 @@ Files: ./core/math/convex_hull.cpp
./core/math/convex_hull.h
Comment: Bullet Continuous Collision Detection and Physics Library
Copyright: 2011, Ole Kniemeyer, MAXON, www.maxon.net
- 2007-2021, Juan Linietsky, Ariel Manzur.
- 2014-2021, Godot Engine contributors.
+ 2007-2022, Juan Linietsky, Ariel Manzur.
+ 2014-2022, Godot Engine contributors.
License: Expat and Zlib
Files: ./modules/fbx/fbx_parser/
Comment: Open Asset Import Library (FBX parser)
Copyright: 2006-2020, assimp team
- 2007-2021, Juan Linietsky, Ariel Manzur.
- 2014-2021, Godot Engine contributors.
+ 2007-2022, Juan Linietsky, Ariel Manzur.
+ 2014-2022, Godot Engine contributors.
License: BSD-3-clause
Files: ./platform/android/java/lib/aidl/com/android/*
@@ -83,8 +83,8 @@ License: Apache-2.0
Files: ./scene/animation/easing_equations.h
Comment: Robert Penner's Easing Functions
Copyright: 2001, Robert Penner
- 2007-2021 Juan Linietsky, Ariel Manzur.
- 2014-2021 Godot Engine contributors.
+ 2007-2022 Juan Linietsky, Ariel Manzur.
+ 2014-2022 Godot Engine contributors.
License: Expat
Files: ./servers/physics_3d/collision_solver_3d_sat.cpp
@@ -108,16 +108,16 @@ Files: ./servers/physics_3d/gjk_epa.cpp
./servers/physics_3d/shape_3d_sw.h
Comment: Bullet Continuous Collision Detection and Physics Library
Copyright: 2003-2008, Erwin Coumans
- 2007-2021, Juan Linietsky, Ariel Manzur.
- 2014-2021, Godot Engine contributors.
+ 2007-2022, Juan Linietsky, Ariel Manzur.
+ 2014-2022, Godot Engine contributors.
License: Expat and Zlib
Files: ./servers/physics_3d/joints/cone_twist_joint_3d_sw.cpp
./servers/physics_3d/joints/cone_twist_joint_3d_sw.h
Comment: Bullet Continuous Collision Detection and Physics Library
Copyright: 2007, Starbreeze Studios
- 2007-2021, Juan Linietsky, Ariel Manzur.
- 2014-2021, Godot Engine contributors.
+ 2007-2022, Juan Linietsky, Ariel Manzur.
+ 2014-2022, Godot Engine contributors.
License: Expat and Zlib
Files: ./thirdparty/amd-fsr/
diff --git a/LICENSE.txt b/LICENSE.txt
index bee83fb8b8..44418d6f51 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,5 +1,5 @@
-Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/SConstruct b/SConstruct
index 9dcc6c554f..bdf4937cd7 100644
--- a/SConstruct
+++ b/SConstruct
@@ -300,13 +300,6 @@ opts.Update(env_base)
env_base["platform"] = selected_platform # Must always be re-set after calling opts.Update().
Help(opts.GenerateHelpText(env_base))
-# Detect and print a warning listing unknown SCons variables to ease troubleshooting.
-unknown = opts.UnknownVariables()
-if unknown:
- print("WARNING: Unknown SCons variables were passed and will be ignored:")
- for item in unknown.items():
- print(" " + item[0] + "=" + item[1])
-
# add default include paths
env_base.Prepend(CPPPATH=["#"])
diff --git a/core/config/engine.cpp b/core/config/engine.cpp
index dc5b3e25c6..0a13becf6d 100644
--- a/core/config/engine.cpp
+++ b/core/config/engine.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/config/engine.h b/core/config/engine.h
index ae33acede2..3ec522eafc 100644
--- a/core/config/engine.h
+++ b/core/config/engine.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp
index c85b0866cb..45776c03e4 100644
--- a/core/config/project_settings.cpp
+++ b/core/config/project_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/config/project_settings.h b/core/config/project_settings.h
index 5b74356337..614a11f726 100644
--- a/core/config/project_settings.h
+++ b/core/config/project_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/core_bind.cpp b/core/core_bind.cpp
index fe026ed38f..1891ea7e3a 100644
--- a/core/core_bind.cpp
+++ b/core/core_bind.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1672,9 +1672,9 @@ void Directory::_bind_methods() {
ClassDB::bind_method(D_METHOD("rename", "from", "to"), &Directory::rename);
ClassDB::bind_method(D_METHOD("remove", "path"), &Directory::remove);
- ClassDB::bind_method(D_METHOD("set_include_navigational"), &Directory::set_include_navigational);
+ ClassDB::bind_method(D_METHOD("set_include_navigational", "enable"), &Directory::set_include_navigational);
ClassDB::bind_method(D_METHOD("get_include_navigational"), &Directory::get_include_navigational);
- ClassDB::bind_method(D_METHOD("set_include_hidden"), &Directory::set_include_hidden);
+ ClassDB::bind_method(D_METHOD("set_include_hidden", "enable"), &Directory::set_include_hidden);
ClassDB::bind_method(D_METHOD("get_include_hidden"), &Directory::get_include_hidden);
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "include_navigational"), "set_include_navigational", "get_include_navigational");
@@ -1894,7 +1894,7 @@ void Thread::_start_func(void *ud) {
Error Thread::start(const Callable &p_callable, const Variant &p_userdata, Priority p_priority) {
ERR_FAIL_COND_V_MSG(is_started(), ERR_ALREADY_IN_USE, "Thread already started.");
- ERR_FAIL_COND_V(p_callable.is_null(), ERR_INVALID_PARAMETER);
+ ERR_FAIL_COND_V(!p_callable.is_valid(), ERR_INVALID_PARAMETER);
ERR_FAIL_INDEX_V(p_priority, PRIORITY_MAX, ERR_INVALID_PARAMETER);
ret = Variant();
@@ -2297,7 +2297,7 @@ void Engine::register_singleton(const StringName &p_name, Object *p_object) {
;
}
void Engine::unregister_singleton(const StringName &p_name) {
- ERR_FAIL_COND_MSG(!has_singleton(p_name), "Attempt to remove unregisteres singleton: " + String(p_name));
+ ERR_FAIL_COND_MSG(!has_singleton(p_name), "Attempt to remove unregistered singleton: " + String(p_name));
ERR_FAIL_COND_MSG(!::Engine::get_singleton()->is_singleton_user_created(p_name), "Attempt to remove non-user created singleton: " + String(p_name));
::Engine::get_singleton()->remove_singleton(p_name);
}
diff --git a/core/core_bind.h b/core/core_bind.h
index 6da4403880..c7a406b2f3 100644
--- a/core/core_bind.h
+++ b/core/core_bind.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/core_constants.cpp b/core/core_constants.cpp
index 51fcfd5305..6f26288eb7 100644
--- a/core/core_constants.cpp
+++ b/core/core_constants.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -476,6 +476,17 @@ void register_global_constants() {
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, PROGRAM_CHANGE);
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, CHANNEL_PRESSURE);
BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, PITCH_BEND);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SYSTEM_EXCLUSIVE);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, QUARTER_FRAME);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SONG_POSITION_POINTER);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SONG_SELECT);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, TUNE_REQUEST);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, TIMING_CLOCK);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, START);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, CONTINUE);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, STOP);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, ACTIVE_SENSING);
+ BIND_CORE_ENUM_CLASS_CONSTANT(MIDIMessage, MIDI_MESSAGE, SYSTEM_RESET);
// error list
@@ -658,15 +669,15 @@ void register_global_constants() {
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_SIGNAL", Variant::SIGNAL);
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_DICTIONARY", Variant::DICTIONARY);
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_ARRAY", Variant::ARRAY);
- BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_RAW_ARRAY", Variant::PACKED_BYTE_ARRAY);
- BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_INT32_ARRAY", Variant::PACKED_INT32_ARRAY);
- BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_INT64_ARRAY", Variant::PACKED_INT64_ARRAY);
- BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_FLOAT32_ARRAY", Variant::PACKED_FLOAT32_ARRAY);
- BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_FLOAT64_ARRAY", Variant::PACKED_FLOAT64_ARRAY);
- BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_STRING_ARRAY", Variant::PACKED_STRING_ARRAY);
- BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2_ARRAY", Variant::PACKED_VECTOR2_ARRAY);
- BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3_ARRAY", Variant::PACKED_VECTOR3_ARRAY);
- BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_COLOR_ARRAY", Variant::PACKED_COLOR_ARRAY);
+ BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_BYTE_ARRAY", Variant::PACKED_BYTE_ARRAY);
+ BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_INT32_ARRAY", Variant::PACKED_INT32_ARRAY);
+ BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_INT64_ARRAY", Variant::PACKED_INT64_ARRAY);
+ BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_FLOAT32_ARRAY", Variant::PACKED_FLOAT32_ARRAY);
+ BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_FLOAT64_ARRAY", Variant::PACKED_FLOAT64_ARRAY);
+ BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_STRING_ARRAY", Variant::PACKED_STRING_ARRAY);
+ BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_VECTOR2_ARRAY", Variant::PACKED_VECTOR2_ARRAY);
+ BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_VECTOR3_ARRAY", Variant::PACKED_VECTOR3_ARRAY);
+ BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_PACKED_COLOR_ARRAY", Variant::PACKED_COLOR_ARRAY);
BIND_CORE_ENUM_CONSTANT_CUSTOM("TYPE_MAX", Variant::VARIANT_MAX);
//comparison
diff --git a/core/core_constants.h b/core/core_constants.h
index deaf9ec60f..9302c23959 100644
--- a/core/core_constants.h
+++ b/core/core_constants.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/core_string_names.cpp b/core/core_string_names.cpp
index ff8569e45d..5b5bfaecb5 100644
--- a/core/core_string_names.cpp
+++ b/core/core_string_names.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/core_string_names.h b/core/core_string_names.h
index abe751372e..2cd4e335b2 100644
--- a/core/core_string_names.h
+++ b/core/core_string_names.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/crypto/aes_context.cpp b/core/crypto/aes_context.cpp
index b387aeb27d..8ff4f6a34c 100644
--- a/core/crypto/aes_context.cpp
+++ b/core/crypto/aes_context.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/crypto/aes_context.h b/core/crypto/aes_context.h
index 2f8422f537..2121adfcc6 100644
--- a/core/crypto/aes_context.h
+++ b/core/crypto/aes_context.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/crypto/crypto.cpp b/core/crypto/crypto.cpp
index fe913549c9..f62d2cce1f 100644
--- a/core/crypto/crypto.cpp
+++ b/core/crypto/crypto.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/crypto/crypto.h b/core/crypto/crypto.h
index a46f42949d..9de2c16fbc 100644
--- a/core/crypto/crypto.h
+++ b/core/crypto/crypto.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/crypto/crypto_core.cpp b/core/crypto/crypto_core.cpp
index f90092056e..9f000c5aeb 100644
--- a/core/crypto/crypto_core.cpp
+++ b/core/crypto/crypto_core.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/crypto/crypto_core.h b/core/crypto/crypto_core.h
index 7a2f4df589..355f4a2404 100644
--- a/core/crypto/crypto_core.h
+++ b/core/crypto/crypto_core.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/crypto/hashing_context.cpp b/core/crypto/hashing_context.cpp
index 070d2d4dd7..2ff540f798 100644
--- a/core/crypto/hashing_context.cpp
+++ b/core/crypto/hashing_context.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/crypto/hashing_context.h b/core/crypto/hashing_context.h
index 31521a147c..1a7cabf0f1 100644
--- a/core/crypto/hashing_context.h
+++ b/core/crypto/hashing_context.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/debugger_marshalls.cpp b/core/debugger/debugger_marshalls.cpp
index 2353a6ebf8..1a746d59a3 100644
--- a/core/debugger/debugger_marshalls.cpp
+++ b/core/debugger/debugger_marshalls.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/debugger_marshalls.h b/core/debugger/debugger_marshalls.h
index 98ad2b98d1..fae766812a 100644
--- a/core/debugger/debugger_marshalls.h
+++ b/core/debugger/debugger_marshalls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/engine_debugger.cpp b/core/debugger/engine_debugger.cpp
index 059025aa8f..54760d8d65 100644
--- a/core/debugger/engine_debugger.cpp
+++ b/core/debugger/engine_debugger.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/engine_debugger.h b/core/debugger/engine_debugger.h
index 41142bf305..fdfa41c9cc 100644
--- a/core/debugger/engine_debugger.h
+++ b/core/debugger/engine_debugger.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/local_debugger.cpp b/core/debugger/local_debugger.cpp
index 7b397e88a3..61d75a6a0d 100644
--- a/core/debugger/local_debugger.cpp
+++ b/core/debugger/local_debugger.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/local_debugger.h b/core/debugger/local_debugger.h
index cb59eb82e9..ecd805a6cb 100644
--- a/core/debugger/local_debugger.h
+++ b/core/debugger/local_debugger.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/remote_debugger.cpp b/core/debugger/remote_debugger.cpp
index 87e65e592a..339aa9b61f 100644
--- a/core/debugger/remote_debugger.cpp
+++ b/core/debugger/remote_debugger.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/remote_debugger.h b/core/debugger/remote_debugger.h
index 73799e3f81..bd64955c89 100644
--- a/core/debugger/remote_debugger.h
+++ b/core/debugger/remote_debugger.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/remote_debugger_peer.cpp b/core/debugger/remote_debugger_peer.cpp
index ea5e32203c..a45430465f 100644
--- a/core/debugger/remote_debugger_peer.cpp
+++ b/core/debugger/remote_debugger_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/remote_debugger_peer.h b/core/debugger/remote_debugger_peer.h
index 8cba53a81c..010336ffd3 100644
--- a/core/debugger/remote_debugger_peer.h
+++ b/core/debugger/remote_debugger_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/script_debugger.cpp b/core/debugger/script_debugger.cpp
index 70ec101a03..36723e5568 100644
--- a/core/debugger/script_debugger.cpp
+++ b/core/debugger/script_debugger.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/debugger/script_debugger.h b/core/debugger/script_debugger.h
index c1d0170334..feb6702b54 100644
--- a/core/debugger/script_debugger.h
+++ b/core/debugger/script_debugger.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/doc_data.cpp b/core/doc_data.cpp
index 7334db5cb0..1e72ad1090 100644
--- a/core/doc_data.cpp
+++ b/core/doc_data.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/doc_data.h b/core/doc_data.h
index db83dda8aa..9286b843be 100644
--- a/core/doc_data.h
+++ b/core/doc_data.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/error/error_list.cpp b/core/error/error_list.cpp
index e1e94dd65d..b669e2c042 100644
--- a/core/error/error_list.cpp
+++ b/core/error/error_list.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/error/error_list.h b/core/error/error_list.h
index 852825dda5..b057ef5941 100644
--- a/core/error/error_list.h
+++ b/core/error/error_list.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/error/error_macros.cpp b/core/error/error_macros.cpp
index c236f30945..928ddd3397 100644
--- a/core/error/error_macros.cpp
+++ b/core/error/error_macros.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/error/error_macros.h b/core/error/error_macros.h
index 4eb862dce2..802d7f9ef4 100644
--- a/core/error/error_macros.h
+++ b/core/error/error_macros.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/extension/extension_api_dump.cpp b/core/extension/extension_api_dump.cpp
index fc74293d0d..3687e4f7e5 100644
--- a/core/extension/extension_api_dump.cpp
+++ b/core/extension/extension_api_dump.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/extension/extension_api_dump.h b/core/extension/extension_api_dump.h
index a7825c10a9..7346e182f1 100644
--- a/core/extension/extension_api_dump.h
+++ b/core/extension/extension_api_dump.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/extension/gdnative_interface.cpp b/core/extension/gdnative_interface.cpp
index 0c9b344a37..385117eed1 100644
--- a/core/extension/gdnative_interface.cpp
+++ b/core/extension/gdnative_interface.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/extension/gdnative_interface.h b/core/extension/gdnative_interface.h
index 2191d99dea..a2e0c7cc73 100644
--- a/core/extension/gdnative_interface.h
+++ b/core/extension/gdnative_interface.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/extension/native_extension.cpp b/core/extension/native_extension.cpp
index cfd3ac8099..1512852234 100644
--- a/core/extension/native_extension.cpp
+++ b/core/extension/native_extension.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/extension/native_extension.h b/core/extension/native_extension.h
index f7f235d8fc..b98e4925d2 100644
--- a/core/extension/native_extension.h
+++ b/core/extension/native_extension.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/extension/native_extension_manager.cpp b/core/extension/native_extension_manager.cpp
index 043843ea31..87737858a8 100644
--- a/core/extension/native_extension_manager.cpp
+++ b/core/extension/native_extension_manager.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/extension/native_extension_manager.h b/core/extension/native_extension_manager.h
index 89ccd155fe..b8339e4817 100644
--- a/core/extension/native_extension_manager.h
+++ b/core/extension/native_extension_manager.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/input/default_controller_mappings.h b/core/input/default_controller_mappings.h
index ba5e650226..f0737eea87 100644
--- a/core/input/default_controller_mappings.h
+++ b/core/input/default_controller_mappings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/input/input.cpp b/core/input/input.cpp
index 3dfe73ab8e..507a686cab 100644
--- a/core/input/input.cpp
+++ b/core/input/input.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -892,7 +892,8 @@ void Input::set_event_dispatch_function(EventDispatchFunc p_function) {
void Input::joy_button(int p_device, JoyButton p_button, bool p_pressed) {
_THREAD_SAFE_METHOD_;
Joypad &joy = joy_names[p_device];
- //printf("got button %i, mapping is %i\n", p_button, joy.mapping);
+ ERR_FAIL_INDEX((int)p_button, (int)JoyButton::MAX);
+
if (joy.last_buttons[(size_t)p_button] == p_pressed) {
return;
}
diff --git a/core/input/input.h b/core/input/input.h
index faec654a3c..b723fb563a 100644
--- a/core/input/input.h
+++ b/core/input/input.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/input/input_enums.h b/core/input/input_enums.h
index 8601007ac9..0282de2176 100644
--- a/core/input/input_enums.h
+++ b/core/input/input_enums.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -83,7 +83,7 @@ enum class JoyButton {
PADDLE4 = 19,
TOUCHPAD = 20,
SDL_MAX = 21,
- MAX = 36, // Android supports up to 36 buttons.
+ MAX = 128, // Android supports up to 36 buttons. DirectInput supports up to 128 buttons.
};
enum class MIDIMessage {
@@ -95,6 +95,17 @@ enum class MIDIMessage {
PROGRAM_CHANGE = 0xC,
CHANNEL_PRESSURE = 0xD,
PITCH_BEND = 0xE,
+ SYSTEM_EXCLUSIVE = 0xF0,
+ QUARTER_FRAME = 0xF1,
+ SONG_POSITION_POINTER = 0xF2,
+ SONG_SELECT = 0xF3,
+ TUNE_REQUEST = 0xF6,
+ TIMING_CLOCK = 0xF8,
+ START = 0xFA,
+ CONTINUE = 0xFB,
+ STOP = 0xFC,
+ ACTIVE_SENSING = 0xFE,
+ SYSTEM_RESET = 0xFF,
};
enum class MouseButton {
diff --git a/core/input/input_event.cpp b/core/input/input_event.cpp
index 7c98fa9540..794ed0275d 100644
--- a/core/input/input_event.cpp
+++ b/core/input/input_event.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/input/input_event.h b/core/input/input_event.h
index 70046e4491..184d883af8 100644
--- a/core/input/input_event.h
+++ b/core/input/input_event.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/input/input_map.cpp b/core/input/input_map.cpp
index 183a2c3e68..753ac72ab6 100644
--- a/core/input/input_map.cpp
+++ b/core/input/input_map.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/input/input_map.h b/core/input/input_map.h
index 0bf572ddca..e896d1f679 100644
--- a/core/input/input_map.h
+++ b/core/input/input_map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/input/shortcut.cpp b/core/input/shortcut.cpp
index 30e35190e4..9eeeb449ba 100644
--- a/core/input/shortcut.cpp
+++ b/core/input/shortcut.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/input/shortcut.h b/core/input/shortcut.h
index a989b10626..0c9689cdcb 100644
--- a/core/input/shortcut.h
+++ b/core/input/shortcut.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/compression.cpp b/core/io/compression.cpp
index 790b6febc0..d1f915f064 100644
--- a/core/io/compression.cpp
+++ b/core/io/compression.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/compression.h b/core/io/compression.h
index 06f26876e5..2e66970a6c 100644
--- a/core/io/compression.h
+++ b/core/io/compression.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/config_file.cpp b/core/io/config_file.cpp
index b2300574f8..c942b417e4 100644
--- a/core/io/config_file.cpp
+++ b/core/io/config_file.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/config_file.h b/core/io/config_file.h
index dbba43ace5..71e9080fb7 100644
--- a/core/io/config_file.h
+++ b/core/io/config_file.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/dir_access.cpp b/core/io/dir_access.cpp
index d804e67493..3da9288ffd 100644
--- a/core/io/dir_access.cpp
+++ b/core/io/dir_access.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/dir_access.h b/core/io/dir_access.h
index 16154a4850..8154f5366c 100644
--- a/core/io/dir_access.h
+++ b/core/io/dir_access.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/dtls_server.cpp b/core/io/dtls_server.cpp
index 655fb18535..b5c44e1b64 100644
--- a/core/io/dtls_server.cpp
+++ b/core/io/dtls_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/dtls_server.h b/core/io/dtls_server.h
index 02a32533e1..0c9b0149b0 100644
--- a/core/io/dtls_server.h
+++ b/core/io/dtls_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access.cpp b/core/io/file_access.cpp
index 1b9c43b155..bb92648484 100644
--- a/core/io/file_access.cpp
+++ b/core/io/file_access.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access.h b/core/io/file_access.h
index 5804aa2c47..5413665440 100644
--- a/core/io/file_access.h
+++ b/core/io/file_access.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access_compressed.cpp b/core/io/file_access_compressed.cpp
index df631053b8..526952b14f 100644
--- a/core/io/file_access_compressed.cpp
+++ b/core/io/file_access_compressed.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -312,10 +312,10 @@ uint64_t FileAccessCompressed::get_buffer(uint8_t *p_dst, uint64_t p_length) con
} else {
read_block--;
at_end = true;
- if (i < p_length - 1) {
+ if (i + 1 < p_length) {
read_eof = true;
}
- return i;
+ return i + 1;
}
}
}
diff --git a/core/io/file_access_compressed.h b/core/io/file_access_compressed.h
index 3389e020e3..97ef3fbdeb 100644
--- a/core/io/file_access_compressed.h
+++ b/core/io/file_access_compressed.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access_encrypted.cpp b/core/io/file_access_encrypted.cpp
index 9e316291e8..8ee19d3d06 100644
--- a/core/io/file_access_encrypted.cpp
+++ b/core/io/file_access_encrypted.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access_encrypted.h b/core/io/file_access_encrypted.h
index decffae696..be5904c894 100644
--- a/core/io/file_access_encrypted.h
+++ b/core/io/file_access_encrypted.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access_memory.cpp b/core/io/file_access_memory.cpp
index 627fd2bf9c..4aca26b007 100644
--- a/core/io/file_access_memory.cpp
+++ b/core/io/file_access_memory.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access_memory.h b/core/io/file_access_memory.h
index 14135bd68c..50b23e1f32 100644
--- a/core/io/file_access_memory.h
+++ b/core/io/file_access_memory.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access_network.cpp b/core/io/file_access_network.cpp
index 9ee3876c2f..307004b1c2 100644
--- a/core/io/file_access_network.cpp
+++ b/core/io/file_access_network.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access_network.h b/core/io/file_access_network.h
index 1d9d761fbb..6cae49b540 100644
--- a/core/io/file_access_network.h
+++ b/core/io/file_access_network.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access_pack.cpp b/core/io/file_access_pack.cpp
index e343706e66..3882627103 100644
--- a/core/io/file_access_pack.cpp
+++ b/core/io/file_access_pack.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access_pack.h b/core/io/file_access_pack.h
index 2f0ee62723..6eee2f593d 100644
--- a/core/io/file_access_pack.h
+++ b/core/io/file_access_pack.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/file_access_zip.cpp b/core/io/file_access_zip.cpp
index 53bf7456e6..6347862775 100644
--- a/core/io/file_access_zip.cpp
+++ b/core/io/file_access_zip.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -189,7 +189,7 @@ bool ZipArchive::try_open_pack(const String &p_path, bool p_replace_files, uint6
f.package = pkg_num;
unzGetFilePos(zfile, &f.file_pos);
- String fname = String("res://") + filename_inzip;
+ String fname = String("res://") + String::utf8(filename_inzip);
files[fname] = f;
uint8_t md5[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
diff --git a/core/io/file_access_zip.h b/core/io/file_access_zip.h
index cca14ded62..7cd5893101 100644
--- a/core/io/file_access_zip.h
+++ b/core/io/file_access_zip.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp
index 5c67bc4c48..4d0747c591 100644
--- a/core/io/http_client.cpp
+++ b/core/io/http_client.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/http_client.h b/core/io/http_client.h
index 9bc0134a6a..8be6e6524c 100644
--- a/core/io/http_client.h
+++ b/core/io/http_client.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/http_client_tcp.cpp b/core/io/http_client_tcp.cpp
index f2ddeddbb8..4c27cd1b10 100644
--- a/core/io/http_client_tcp.cpp
+++ b/core/io/http_client_tcp.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/http_client_tcp.h b/core/io/http_client_tcp.h
index 40a962925e..886ad0ef48 100644
--- a/core/io/http_client_tcp.h
+++ b/core/io/http_client_tcp.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -58,8 +58,8 @@ private:
Vector<uint8_t> chunk;
int chunk_left = 0;
bool chunk_trailer_part = false;
- int body_size = -1;
- int body_left = 0;
+ int64_t body_size = -1;
+ int64_t body_left = 0;
bool read_until_eof = false;
Ref<StreamPeerTCP> tcp_connection;
diff --git a/core/io/image.cpp b/core/io/image.cpp
index 3f34de132f..4a1f129245 100644
--- a/core/io/image.cpp
+++ b/core/io/image.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/image.h b/core/io/image.h
index 9023463b08..dffc5a6a5f 100644
--- a/core/io/image.h
+++ b/core/io/image.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/image_loader.cpp b/core/io/image_loader.cpp
index b9fc416f65..5518ec8ceb 100644
--- a/core/io/image_loader.cpp
+++ b/core/io/image_loader.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/image_loader.h b/core/io/image_loader.h
index 6d1b1e3646..37d7620f96 100644
--- a/core/io/image_loader.h
+++ b/core/io/image_loader.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/ip.cpp b/core/io/ip.cpp
index 68b4e4b354..4970afc1d3 100644
--- a/core/io/ip.cpp
+++ b/core/io/ip.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/ip.h b/core/io/ip.h
index 3c6040a1f0..5602710550 100644
--- a/core/io/ip.h
+++ b/core/io/ip.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/ip_address.cpp b/core/io/ip_address.cpp
index 1c1ac8a88f..38f99a08a4 100644
--- a/core/io/ip_address.cpp
+++ b/core/io/ip_address.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/ip_address.h b/core/io/ip_address.h
index 05da675704..dc0c19bf48 100644
--- a/core/io/ip_address.h
+++ b/core/io/ip_address.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/json.cpp b/core/io/json.cpp
index 5823afbdcd..7b642f6a59 100644
--- a/core/io/json.cpp
+++ b/core/io/json.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/json.h b/core/io/json.h
index f20c97f540..ed251938ec 100644
--- a/core/io/json.h
+++ b/core/io/json.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/logger.cpp b/core/io/logger.cpp
index 3330bb8149..cb6369ae3d 100644
--- a/core/io/logger.cpp
+++ b/core/io/logger.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/logger.h b/core/io/logger.h
index 48b073aa45..047ee3d0f1 100644
--- a/core/io/logger.h
+++ b/core/io/logger.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/marshalls.cpp b/core/io/marshalls.cpp
index 7c06a354d1..6a0668f027 100644
--- a/core/io/marshalls.cpp
+++ b/core/io/marshalls.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/marshalls.h b/core/io/marshalls.h
index 9ea060e48c..4d7b98b749 100644
--- a/core/io/marshalls.h
+++ b/core/io/marshalls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/net_socket.cpp b/core/io/net_socket.cpp
index b51d26ba83..3e5246a134 100644
--- a/core/io/net_socket.cpp
+++ b/core/io/net_socket.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/net_socket.h b/core/io/net_socket.h
index fd7d50c704..23eff17a61 100644
--- a/core/io/net_socket.h
+++ b/core/io/net_socket.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/packed_data_container.cpp b/core/io/packed_data_container.cpp
index d34b5b6fe3..14183b472b 100644
--- a/core/io/packed_data_container.cpp
+++ b/core/io/packed_data_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/packed_data_container.h b/core/io/packed_data_container.h
index 40772bb2bf..f042b364ee 100644
--- a/core/io/packed_data_container.h
+++ b/core/io/packed_data_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/packet_peer.cpp b/core/io/packet_peer.cpp
index 87d2b66e5b..e90d1695e5 100644
--- a/core/io/packet_peer.cpp
+++ b/core/io/packet_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/packet_peer.h b/core/io/packet_peer.h
index bc1f4aaabf..0b12640627 100644
--- a/core/io/packet_peer.h
+++ b/core/io/packet_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/packet_peer_dtls.cpp b/core/io/packet_peer_dtls.cpp
index a6d220622b..3c7ab28e12 100644
--- a/core/io/packet_peer_dtls.cpp
+++ b/core/io/packet_peer_dtls.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/packet_peer_dtls.h b/core/io/packet_peer_dtls.h
index 31c52f539f..c5443d043e 100644
--- a/core/io/packet_peer_dtls.h
+++ b/core/io/packet_peer_dtls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/packet_peer_udp.cpp b/core/io/packet_peer_udp.cpp
index f951a5158c..503eb17cae 100644
--- a/core/io/packet_peer_udp.cpp
+++ b/core/io/packet_peer_udp.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/packet_peer_udp.h b/core/io/packet_peer_udp.h
index 40d3c44e40..444a6dd5ba 100644
--- a/core/io/packet_peer_udp.h
+++ b/core/io/packet_peer_udp.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/pck_packer.cpp b/core/io/pck_packer.cpp
index 8d75581342..221a680130 100644
--- a/core/io/pck_packer.cpp
+++ b/core/io/pck_packer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/pck_packer.h b/core/io/pck_packer.h
index bd8902a01d..583171a70b 100644
--- a/core/io/pck_packer.h
+++ b/core/io/pck_packer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/resource.cpp b/core/io/resource.cpp
index 8da4e936e3..66d5c54b53 100644
--- a/core/io/resource.cpp
+++ b/core/io/resource.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -520,8 +520,8 @@ void ResourceCache::dump(const char *p_file, bool p_short) {
FileAccess *f = nullptr;
if (p_file) {
- f = FileAccess::open(p_file, FileAccess::WRITE);
- ERR_FAIL_COND_MSG(!f, "Cannot create file at path '" + String(p_file) + "'.");
+ f = FileAccess::open(String::utf8(p_file), FileAccess::WRITE);
+ ERR_FAIL_COND_MSG(!f, "Cannot create file at path '" + String::utf8(p_file) + "'.");
}
const String *K = nullptr;
diff --git a/core/io/resource.h b/core/io/resource.h
index 109c0f6611..a0800c57cb 100644
--- a/core/io/resource.h
+++ b/core/io/resource.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp
index bd040f303d..200d5fafde 100644
--- a/core/io/resource_format_binary.cpp
+++ b/core/io/resource_format_binary.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -53,9 +53,9 @@ enum {
VARIANT_PLANE = 13,
VARIANT_QUATERNION = 14,
VARIANT_AABB = 15,
- VARIANT_MATRIX3 = 16,
- VARIANT_TRANSFORM = 17,
- VARIANT_MATRIX32 = 18,
+ VARIANT_BASIS = 16,
+ VARIANT_TRANSFORM3D = 17,
+ VARIANT_TRANSFORM2D = 18,
VARIANT_COLOR = 20,
VARIANT_NODE_PATH = 22,
VARIANT_RID = 23,
@@ -63,13 +63,13 @@ enum {
VARIANT_INPUT_EVENT = 25,
VARIANT_DICTIONARY = 26,
VARIANT_ARRAY = 30,
- VARIANT_RAW_ARRAY = 31,
- VARIANT_INT32_ARRAY = 32,
- VARIANT_FLOAT32_ARRAY = 33,
- VARIANT_STRING_ARRAY = 34,
- VARIANT_VECTOR3_ARRAY = 35,
- VARIANT_COLOR_ARRAY = 36,
- VARIANT_VECTOR2_ARRAY = 37,
+ VARIANT_PACKED_BYTE_ARRAY = 31,
+ VARIANT_PACKED_INT32_ARRAY = 32,
+ VARIANT_PACKED_FLOAT32_ARRAY = 33,
+ VARIANT_PACKED_STRING_ARRAY = 34,
+ VARIANT_PACKED_VECTOR3_ARRAY = 35,
+ VARIANT_PACKED_COLOR_ARRAY = 36,
+ VARIANT_PACKED_VECTOR2_ARRAY = 37,
VARIANT_INT64 = 40,
VARIANT_DOUBLE = 41,
VARIANT_CALLABLE = 42,
@@ -78,8 +78,8 @@ enum {
VARIANT_VECTOR2I = 45,
VARIANT_RECT2I = 46,
VARIANT_VECTOR3I = 47,
- VARIANT_INT64_ARRAY = 48,
- VARIANT_FLOAT64_ARRAY = 49,
+ VARIANT_PACKED_INT64_ARRAY = 48,
+ VARIANT_PACKED_FLOAT64_ARRAY = 49,
OBJECT_EMPTY = 0,
OBJECT_EXTERNAL_RESOURCE = 1,
OBJECT_INTERNAL_RESOURCE = 2,
@@ -220,7 +220,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = v;
} break;
- case VARIANT_MATRIX32: {
+ case VARIANT_TRANSFORM2D: {
Transform2D v;
v.elements[0].x = f->get_real();
v.elements[0].y = f->get_real();
@@ -231,7 +231,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = v;
} break;
- case VARIANT_MATRIX3: {
+ case VARIANT_BASIS: {
Basis v;
v.elements[0].x = f->get_real();
v.elements[0].y = f->get_real();
@@ -245,7 +245,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = v;
} break;
- case VARIANT_TRANSFORM: {
+ case VARIANT_TRANSFORM3D: {
Transform3D v;
v.basis.elements[0].x = f->get_real();
v.basis.elements[0].y = f->get_real();
@@ -422,7 +422,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = a;
} break;
- case VARIANT_RAW_ARRAY: {
+ case VARIANT_PACKED_BYTE_ARRAY: {
uint32_t len = f->get_32();
Vector<uint8_t> array;
@@ -434,7 +434,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = array;
} break;
- case VARIANT_INT32_ARRAY: {
+ case VARIANT_PACKED_INT32_ARRAY: {
uint32_t len = f->get_32();
Vector<int32_t> array;
@@ -453,7 +453,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = array;
} break;
- case VARIANT_INT64_ARRAY: {
+ case VARIANT_PACKED_INT64_ARRAY: {
uint32_t len = f->get_32();
Vector<int64_t> array;
@@ -472,7 +472,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = array;
} break;
- case VARIANT_FLOAT32_ARRAY: {
+ case VARIANT_PACKED_FLOAT32_ARRAY: {
uint32_t len = f->get_32();
Vector<float> array;
@@ -491,7 +491,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = array;
} break;
- case VARIANT_FLOAT64_ARRAY: {
+ case VARIANT_PACKED_FLOAT64_ARRAY: {
uint32_t len = f->get_32();
Vector<double> array;
@@ -510,7 +510,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = array;
} break;
- case VARIANT_STRING_ARRAY: {
+ case VARIANT_PACKED_STRING_ARRAY: {
uint32_t len = f->get_32();
Vector<String> array;
array.resize(len);
@@ -522,7 +522,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = array;
} break;
- case VARIANT_VECTOR2_ARRAY: {
+ case VARIANT_PACKED_VECTOR2_ARRAY: {
uint32_t len = f->get_32();
Vector<Vector2> array;
@@ -547,7 +547,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = array;
} break;
- case VARIANT_VECTOR3_ARRAY: {
+ case VARIANT_PACKED_VECTOR3_ARRAY: {
uint32_t len = f->get_32();
Vector<Vector3> array;
@@ -572,7 +572,7 @@ Error ResourceLoaderBinary::parse_variant(Variant &r_v) {
r_v = array;
} break;
- case VARIANT_COLOR_ARRAY: {
+ case VARIANT_PACKED_COLOR_ARRAY: {
uint32_t len = f->get_32();
Vector<Color> array;
@@ -1476,7 +1476,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::TRANSFORM2D: {
- f->store_32(VARIANT_MATRIX32);
+ f->store_32(VARIANT_TRANSFORM2D);
Transform2D val = p_property;
f->store_real(val.elements[0].x);
f->store_real(val.elements[0].y);
@@ -1487,7 +1487,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::BASIS: {
- f->store_32(VARIANT_MATRIX3);
+ f->store_32(VARIANT_BASIS);
Basis val = p_property;
f->store_real(val.elements[0].x);
f->store_real(val.elements[0].y);
@@ -1501,7 +1501,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::TRANSFORM3D: {
- f->store_32(VARIANT_TRANSFORM);
+ f->store_32(VARIANT_TRANSFORM3D);
Transform3D val = p_property;
f->store_real(val.basis.elements[0].x);
f->store_real(val.basis.elements[0].y);
@@ -1625,7 +1625,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::PACKED_BYTE_ARRAY: {
- f->store_32(VARIANT_RAW_ARRAY);
+ f->store_32(VARIANT_PACKED_BYTE_ARRAY);
Vector<uint8_t> arr = p_property;
int len = arr.size();
f->store_32(len);
@@ -1635,7 +1635,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::PACKED_INT32_ARRAY: {
- f->store_32(VARIANT_INT32_ARRAY);
+ f->store_32(VARIANT_PACKED_INT32_ARRAY);
Vector<int32_t> arr = p_property;
int len = arr.size();
f->store_32(len);
@@ -1646,7 +1646,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::PACKED_INT64_ARRAY: {
- f->store_32(VARIANT_INT64_ARRAY);
+ f->store_32(VARIANT_PACKED_INT64_ARRAY);
Vector<int64_t> arr = p_property;
int len = arr.size();
f->store_32(len);
@@ -1657,7 +1657,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::PACKED_FLOAT32_ARRAY: {
- f->store_32(VARIANT_FLOAT32_ARRAY);
+ f->store_32(VARIANT_PACKED_FLOAT32_ARRAY);
Vector<float> arr = p_property;
int len = arr.size();
f->store_32(len);
@@ -1668,7 +1668,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::PACKED_FLOAT64_ARRAY: {
- f->store_32(VARIANT_FLOAT64_ARRAY);
+ f->store_32(VARIANT_PACKED_FLOAT64_ARRAY);
Vector<double> arr = p_property;
int len = arr.size();
f->store_32(len);
@@ -1679,7 +1679,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::PACKED_STRING_ARRAY: {
- f->store_32(VARIANT_STRING_ARRAY);
+ f->store_32(VARIANT_PACKED_STRING_ARRAY);
Vector<String> arr = p_property;
int len = arr.size();
f->store_32(len);
@@ -1690,7 +1690,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::PACKED_VECTOR3_ARRAY: {
- f->store_32(VARIANT_VECTOR3_ARRAY);
+ f->store_32(VARIANT_PACKED_VECTOR3_ARRAY);
Vector<Vector3> arr = p_property;
int len = arr.size();
f->store_32(len);
@@ -1703,7 +1703,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::PACKED_VECTOR2_ARRAY: {
- f->store_32(VARIANT_VECTOR2_ARRAY);
+ f->store_32(VARIANT_PACKED_VECTOR2_ARRAY);
Vector<Vector2> arr = p_property;
int len = arr.size();
f->store_32(len);
@@ -1715,7 +1715,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(FileAccess *f, const Varia
} break;
case Variant::PACKED_COLOR_ARRAY: {
- f->store_32(VARIANT_COLOR_ARRAY);
+ f->store_32(VARIANT_PACKED_COLOR_ARRAY);
Vector<Color> arr = p_property;
int len = arr.size();
f->store_32(len);
diff --git a/core/io/resource_format_binary.h b/core/io/resource_format_binary.h
index a6e6d1848e..ecc3e95f6b 100644
--- a/core/io/resource_format_binary.h
+++ b/core/io/resource_format_binary.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/resource_importer.cpp b/core/io/resource_importer.cpp
index fc5c434e37..470fb2d42d 100644
--- a/core/io/resource_importer.cpp
+++ b/core/io/resource_importer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/resource_importer.h b/core/io/resource_importer.h
index cd583e2533..261afbab69 100644
--- a/core/io/resource_importer.h
+++ b/core/io/resource_importer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/resource_loader.cpp b/core/io/resource_loader.cpp
index f65570bd60..8fe1ac29b3 100644
--- a/core/io/resource_loader.cpp
+++ b/core/io/resource_loader.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/resource_loader.h b/core/io/resource_loader.h
index f1d9815635..a3fdefa0f1 100644
--- a/core/io/resource_loader.h
+++ b/core/io/resource_loader.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/resource_saver.cpp b/core/io/resource_saver.cpp
index 823b5f75b1..c883e8502f 100644
--- a/core/io/resource_saver.cpp
+++ b/core/io/resource_saver.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/resource_saver.h b/core/io/resource_saver.h
index fcde835dab..2919a4cec0 100644
--- a/core/io/resource_saver.h
+++ b/core/io/resource_saver.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/resource_uid.cpp b/core/io/resource_uid.cpp
index b7d01712ff..1a16d5b47a 100644
--- a/core/io/resource_uid.cpp
+++ b/core/io/resource_uid.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/resource_uid.h b/core/io/resource_uid.h
index 2f1bfdf243..9f2ab5245b 100644
--- a/core/io/resource_uid.h
+++ b/core/io/resource_uid.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/stream_peer.cpp b/core/io/stream_peer.cpp
index 8ab025dda1..28ebe811c9 100644
--- a/core/io/stream_peer.cpp
+++ b/core/io/stream_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/stream_peer.h b/core/io/stream_peer.h
index 89432951c5..e71941b7e1 100644
--- a/core/io/stream_peer.h
+++ b/core/io/stream_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/stream_peer_ssl.cpp b/core/io/stream_peer_ssl.cpp
index 6f5a06474c..ea8435e587 100644
--- a/core/io/stream_peer_ssl.cpp
+++ b/core/io/stream_peer_ssl.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/stream_peer_ssl.h b/core/io/stream_peer_ssl.h
index 1df9ced08c..15f646d897 100644
--- a/core/io/stream_peer_ssl.h
+++ b/core/io/stream_peer_ssl.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/stream_peer_tcp.cpp b/core/io/stream_peer_tcp.cpp
index 5b794274ca..6d5784a8ab 100644
--- a/core/io/stream_peer_tcp.cpp
+++ b/core/io/stream_peer_tcp.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/stream_peer_tcp.h b/core/io/stream_peer_tcp.h
index a2a7f447d8..f2c47b25cf 100644
--- a/core/io/stream_peer_tcp.h
+++ b/core/io/stream_peer_tcp.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/tcp_server.cpp b/core/io/tcp_server.cpp
index 5e0c0390f9..f1e745cf36 100644
--- a/core/io/tcp_server.cpp
+++ b/core/io/tcp_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/tcp_server.h b/core/io/tcp_server.h
index 10985a04d5..2d427818a0 100644
--- a/core/io/tcp_server.h
+++ b/core/io/tcp_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/translation_loader_po.cpp b/core/io/translation_loader_po.cpp
index cb7d67a726..2f6742bd7a 100644
--- a/core/io/translation_loader_po.cpp
+++ b/core/io/translation_loader_po.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/translation_loader_po.h b/core/io/translation_loader_po.h
index c52820e60d..1c58896a00 100644
--- a/core/io/translation_loader_po.h
+++ b/core/io/translation_loader_po.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/udp_server.cpp b/core/io/udp_server.cpp
index 27a1cab721..4934e3a7b6 100644
--- a/core/io/udp_server.cpp
+++ b/core/io/udp_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/udp_server.h b/core/io/udp_server.h
index e49a559c51..4a7546fddf 100644
--- a/core/io/udp_server.h
+++ b/core/io/udp_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/xml_parser.cpp b/core/io/xml_parser.cpp
index 938d93a01b..360da46f96 100644
--- a/core/io/xml_parser.cpp
+++ b/core/io/xml_parser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/xml_parser.h b/core/io/xml_parser.h
index 1113cce715..da14ee8eae 100644
--- a/core/io/xml_parser.h
+++ b/core/io/xml_parser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/zip_io.cpp b/core/io/zip_io.cpp
index 24808cc8d6..2c4f8346ab 100644
--- a/core/io/zip_io.cpp
+++ b/core/io/zip_io.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/io/zip_io.h b/core/io/zip_io.h
index 776473bfa1..6a29703449 100644
--- a/core/io/zip_io.h
+++ b/core/io/zip_io.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/a_star.cpp b/core/math/a_star.cpp
index bdceae4374..ebe88fcf66 100644
--- a/core/math/a_star.cpp
+++ b/core/math/a_star.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/a_star.h b/core/math/a_star.h
index ef6f22d228..1839ec7e04 100644
--- a/core/math/a_star.h
+++ b/core/math/a_star.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/aabb.cpp b/core/math/aabb.cpp
index 0468d1e68b..4c89be7f4d 100644
--- a/core/math/aabb.cpp
+++ b/core/math/aabb.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/aabb.h b/core/math/aabb.h
index 81124002e2..2eaaafa27d 100644
--- a/core/math/aabb.h
+++ b/core/math/aabb.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/audio_frame.h b/core/math/audio_frame.h
index 4a11b99fe8..94fc3de2b1 100644
--- a/core/math/audio_frame.h
+++ b/core/math/audio_frame.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/basis.cpp b/core/math/basis.cpp
index 566300c716..a9b4651664 100644
--- a/core/math/basis.cpp
+++ b/core/math/basis.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -94,6 +94,18 @@ Basis Basis::orthonormalized() const {
return c;
}
+void Basis::orthogonalize() {
+ Vector3 scl = get_scale();
+ orthonormalize();
+ scale_local(scl);
+}
+
+Basis Basis::orthogonalized() const {
+ Basis c = *this;
+ c.orthogonalize();
+ return c;
+}
+
bool Basis::is_orthogonal() const {
Basis identity;
Basis m = (*this) * transposed();
@@ -237,6 +249,24 @@ void Basis::scale_local(const Vector3 &p_scale) {
*this = scaled_local(p_scale);
}
+void Basis::scale_orthogonal(const Vector3 &p_scale) {
+ *this = scaled_orthogonal(p_scale);
+}
+
+Basis Basis::scaled_orthogonal(const Vector3 &p_scale) const {
+ Basis m = *this;
+ Vector3 s = Vector3(-1, -1, -1) + p_scale;
+ Vector3 dots;
+ Basis b;
+ for (int i = 0; i < 3; i++) {
+ for (int j = 0; j < 3; j++) {
+ dots[j] += s[i] * abs(m.get_axis(i).normalized().dot(b.get_axis(j)));
+ }
+ }
+ m.scale_local(Vector3(1, 1, 1) + dots);
+ return m;
+}
+
float Basis::get_uniform_scale() const {
return (elements[0].length() + elements[1].length() + elements[2].length()) / 3.0;
}
@@ -931,6 +961,15 @@ void Basis::_set_diagonal(const Vector3 &p_diag) {
elements[2][2] = p_diag.z;
}
+Basis Basis::lerp(const Basis &p_to, const real_t &p_weight) const {
+ Basis b;
+ b.elements[0] = elements[0].lerp(p_to.elements[0], p_weight);
+ b.elements[1] = elements[1].lerp(p_to.elements[1], p_weight);
+ b.elements[2] = elements[2].lerp(p_to.elements[2], p_weight);
+
+ return b;
+}
+
Basis Basis::slerp(const Basis &p_to, const real_t &p_weight) const {
//consider scale
Quaternion from(*this);
diff --git a/core/math/basis.h b/core/math/basis.h
index e2fdb95685..709f2cb3cf 100644
--- a/core/math/basis.h
+++ b/core/math/basis.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -123,6 +123,9 @@ public:
void scale_local(const Vector3 &p_scale);
Basis scaled_local(const Vector3 &p_scale) const;
+ void scale_orthogonal(const Vector3 &p_scale);
+ Basis scaled_orthogonal(const Vector3 &p_scale) const;
+
void make_scale_uniform();
float get_uniform_scale() const;
@@ -168,6 +171,7 @@ public:
bool is_diagonal() const;
bool is_rotation() const;
+ Basis lerp(const Basis &p_to, const real_t &p_weight) const;
Basis slerp(const Basis &p_to, const real_t &p_weight) const;
void rotate_sh(real_t *p_values);
@@ -233,6 +237,9 @@ public:
void orthonormalize();
Basis orthonormalized() const;
+ void orthogonalize();
+ Basis orthogonalized() const;
+
#ifdef MATH_CHECKS
bool is_symmetric() const;
#endif
diff --git a/core/math/bvh.h b/core/math/bvh.h
index c1eff02178..a8e3cc7bbe 100644
--- a/core/math/bvh.h
+++ b/core/math/bvh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/bvh_abb.h b/core/math/bvh_abb.h
index bd9a01a87e..009032d34d 100644
--- a/core/math/bvh_abb.h
+++ b/core/math/bvh_abb.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/bvh_tree.h b/core/math/bvh_tree.h
index 3169d31ec7..c948d83456 100644
--- a/core/math/bvh_tree.h
+++ b/core/math/bvh_tree.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/camera_matrix.cpp b/core/math/camera_matrix.cpp
index 48984c4d5b..b968156887 100644
--- a/core/math/camera_matrix.cpp
+++ b/core/math/camera_matrix.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/camera_matrix.h b/core/math/camera_matrix.h
index 786d46055a..da1aba7562 100644
--- a/core/math/camera_matrix.h
+++ b/core/math/camera_matrix.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/color.cpp b/core/math/color.cpp
index 8310c342ed..b06d20b3d3 100644
--- a/core/math/color.cpp
+++ b/core/math/color.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/color.h b/core/math/color.h
index 815dd98d96..6c09f7941c 100644
--- a/core/math/color.h
+++ b/core/math/color.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/convex_hull.cpp b/core/math/convex_hull.cpp
index 6f551319df..912ffb8b16 100644
--- a/core/math/convex_hull.cpp
+++ b/core/math/convex_hull.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/convex_hull.h b/core/math/convex_hull.h
index 806c6cc3fb..bd86fe0eba 100644
--- a/core/math/convex_hull.h
+++ b/core/math/convex_hull.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/delaunay_2d.h b/core/math/delaunay_2d.h
index 779ac96b79..08f5df8472 100644
--- a/core/math/delaunay_2d.h
+++ b/core/math/delaunay_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/delaunay_3d.h b/core/math/delaunay_3d.h
index 81adf4d19a..7ad5f76645 100644
--- a/core/math/delaunay_3d.h
+++ b/core/math/delaunay_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/disjoint_set.h b/core/math/disjoint_set.h
index b155412f64..d16c5d3d62 100644
--- a/core/math/disjoint_set.h
+++ b/core/math/disjoint_set.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/dynamic_bvh.cpp b/core/math/dynamic_bvh.cpp
index f3fb473981..7aeb2aaaac 100644
--- a/core/math/dynamic_bvh.cpp
+++ b/core/math/dynamic_bvh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/dynamic_bvh.h b/core/math/dynamic_bvh.h
index 0b6286cd9d..3041cdf268 100644
--- a/core/math/dynamic_bvh.h
+++ b/core/math/dynamic_bvh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/expression.cpp b/core/math/expression.cpp
index fe277cff96..4f8e79038f 100644
--- a/core/math/expression.cpp
+++ b/core/math/expression.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/expression.h b/core/math/expression.h
index aecf662d0a..9b87bdd6ec 100644
--- a/core/math/expression.h
+++ b/core/math/expression.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/face3.cpp b/core/math/face3.cpp
index 31a853e1a9..ba10b50465 100644
--- a/core/math/face3.cpp
+++ b/core/math/face3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/face3.h b/core/math/face3.h
index 0a8c1c6041..5a34858ccb 100644
--- a/core/math/face3.h
+++ b/core/math/face3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/geometry_2d.cpp b/core/math/geometry_2d.cpp
index 7b2630b4ff..9fa45a3363 100644
--- a/core/math/geometry_2d.cpp
+++ b/core/math/geometry_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/geometry_2d.h b/core/math/geometry_2d.h
index 028ac0f4eb..7385dba438 100644
--- a/core/math/geometry_2d.h
+++ b/core/math/geometry_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/geometry_3d.cpp b/core/math/geometry_3d.cpp
index 88d2656025..e1bce81b6b 100644
--- a/core/math/geometry_3d.cpp
+++ b/core/math/geometry_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/geometry_3d.h b/core/math/geometry_3d.h
index 6a59b34585..0f6ab5c716 100644
--- a/core/math/geometry_3d.h
+++ b/core/math/geometry_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/math_defs.h b/core/math/math_defs.h
index 1c6139688b..b8b82f2ff4 100644
--- a/core/math/math_defs.h
+++ b/core/math/math_defs.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/math_fieldwise.cpp b/core/math/math_fieldwise.cpp
index 570c57e254..1717ecd74b 100644
--- a/core/math/math_fieldwise.cpp
+++ b/core/math/math_fieldwise.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/math_fieldwise.h b/core/math/math_fieldwise.h
index fe44d09900..f8a5b7cbb2 100644
--- a/core/math/math_fieldwise.h
+++ b/core/math/math_fieldwise.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/math_funcs.cpp b/core/math/math_funcs.cpp
index 2b6d92fe0e..614828d7cb 100644
--- a/core/math/math_funcs.cpp
+++ b/core/math/math_funcs.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/math_funcs.h b/core/math/math_funcs.h
index 8df45255c9..f3d10c3f0d 100644
--- a/core/math/math_funcs.h
+++ b/core/math/math_funcs.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/octree.h b/core/math/octree.h
index 493a63aa2e..23ba4c1aa3 100644
--- a/core/math/octree.h
+++ b/core/math/octree.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -103,7 +103,7 @@ private:
Octant *parent = nullptr;
Octant *children[8] = { nullptr };
- int children_count = 0; // cache for amount of childrens (fast check for removal)
+ int children_count = 0; // cache for amount of children (fast check for removal)
int parent_index = -1; // cache for parent index (fast check for removal)
List<Element *, AL> pairable_elements;
diff --git a/core/math/plane.cpp b/core/math/plane.cpp
index 59f7918258..8bd4b5ef4f 100644
--- a/core/math/plane.cpp
+++ b/core/math/plane.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/plane.h b/core/math/plane.h
index 18be5d5d12..bac946502b 100644
--- a/core/math/plane.h
+++ b/core/math/plane.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/quaternion.cpp b/core/math/quaternion.cpp
index 944474686a..2ce603cb13 100644
--- a/core/math/quaternion.cpp
+++ b/core/math/quaternion.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/quaternion.h b/core/math/quaternion.h
index 457d167516..cf3762e090 100644
--- a/core/math/quaternion.h
+++ b/core/math/quaternion.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/quick_hull.cpp b/core/math/quick_hull.cpp
index d438a9a377..8e87d44b7f 100644
--- a/core/math/quick_hull.cpp
+++ b/core/math/quick_hull.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/quick_hull.h b/core/math/quick_hull.h
index 48ea139cc9..b8d813c979 100644
--- a/core/math/quick_hull.h
+++ b/core/math/quick_hull.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/random_number_generator.cpp b/core/math/random_number_generator.cpp
index b40d010219..31eeed4399 100644
--- a/core/math/random_number_generator.cpp
+++ b/core/math/random_number_generator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/random_number_generator.h b/core/math/random_number_generator.h
index 06cd3999f3..9352bae0a6 100644
--- a/core/math/random_number_generator.h
+++ b/core/math/random_number_generator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/random_pcg.cpp b/core/math/random_pcg.cpp
index 681c2a9717..c69986e6df 100644
--- a/core/math/random_pcg.cpp
+++ b/core/math/random_pcg.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/random_pcg.h b/core/math/random_pcg.h
index 5a03b758ce..974dbbfc2e 100644
--- a/core/math/random_pcg.h
+++ b/core/math/random_pcg.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/rect2.cpp b/core/math/rect2.cpp
index 0e6127b017..9047c19434 100644
--- a/core/math/rect2.cpp
+++ b/core/math/rect2.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/rect2.h b/core/math/rect2.h
index 7029204cf1..1f14a01103 100644
--- a/core/math/rect2.h
+++ b/core/math/rect2.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/static_raycaster.cpp b/core/math/static_raycaster.cpp
index da05d49428..2510138d90 100644
--- a/core/math/static_raycaster.cpp
+++ b/core/math/static_raycaster.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/static_raycaster.h b/core/math/static_raycaster.h
index 3759c788a7..33254399c7 100644
--- a/core/math/static_raycaster.h
+++ b/core/math/static_raycaster.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/transform_2d.cpp b/core/math/transform_2d.cpp
index 4bdeaa2a58..0201cf575c 100644
--- a/core/math/transform_2d.cpp
+++ b/core/math/transform_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/transform_2d.h b/core/math/transform_2d.h
index 8a0e876d96..752a885eba 100644
--- a/core/math/transform_2d.h
+++ b/core/math/transform_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/transform_3d.cpp b/core/math/transform_3d.cpp
index 78ef117443..e5374315e2 100644
--- a/core/math/transform_3d.cpp
+++ b/core/math/transform_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -80,9 +80,11 @@ void Transform3D::set_look_at(const Vector3 &p_eye, const Vector3 &p_target, con
origin = p_eye;
}
-Transform3D Transform3D::interpolate_with(const Transform3D &p_transform, real_t p_c) const {
+Transform3D Transform3D::sphere_interpolate_with(const Transform3D &p_transform, real_t p_c) const {
/* not sure if very "efficient" but good enough? */
+ Transform3D interp;
+
Vector3 src_scale = basis.get_scale();
Quaternion src_rot = basis.get_rotation_quaternion();
Vector3 src_loc = origin;
@@ -91,13 +93,21 @@ Transform3D Transform3D::interpolate_with(const Transform3D &p_transform, real_t
Quaternion dst_rot = p_transform.basis.get_rotation_quaternion();
Vector3 dst_loc = p_transform.origin;
- Transform3D interp;
interp.basis.set_quaternion_scale(src_rot.slerp(dst_rot, p_c).normalized(), src_scale.lerp(dst_scale, p_c));
interp.origin = src_loc.lerp(dst_loc, p_c);
return interp;
}
+Transform3D Transform3D::interpolate_with(const Transform3D &p_transform, real_t p_c) const {
+ Transform3D interp;
+
+ interp.basis = basis.lerp(p_transform.basis, p_c);
+ interp.origin = origin.lerp(p_transform.origin, p_c);
+
+ return interp;
+}
+
void Transform3D::scale(const Vector3 &p_scale) {
basis.scale(p_scale);
origin *= p_scale;
@@ -139,6 +149,16 @@ Transform3D Transform3D::orthonormalized() const {
return _copy;
}
+void Transform3D::orthogonalize() {
+ basis.orthogonalize();
+}
+
+Transform3D Transform3D::orthogonalized() const {
+ Transform3D _copy = *this;
+ _copy.orthogonalize();
+ return _copy;
+}
+
bool Transform3D::is_equal_approx(const Transform3D &p_transform) const {
return basis.is_equal_approx(p_transform.basis) && origin.is_equal_approx(p_transform.origin);
}
diff --git a/core/math/transform_3d.h b/core/math/transform_3d.h
index 345e0fade0..c0ef2ecfc1 100644
--- a/core/math/transform_3d.h
+++ b/core/math/transform_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -69,6 +69,8 @@ public:
void orthonormalize();
Transform3D orthonormalized() const;
+ void orthogonalize();
+ Transform3D orthogonalized() const;
bool is_equal_approx(const Transform3D &p_transform) const;
bool operator==(const Transform3D &p_transform) const;
@@ -99,6 +101,7 @@ public:
void operator*=(const real_t p_val);
Transform3D operator*(const real_t p_val) const;
+ Transform3D sphere_interpolate_with(const Transform3D &p_transform, real_t p_c) const;
Transform3D interpolate_with(const Transform3D &p_transform, real_t p_c) const;
_FORCE_INLINE_ Transform3D inverse_xform(const Transform3D &t) const {
diff --git a/core/math/triangle_mesh.cpp b/core/math/triangle_mesh.cpp
index 2f3da0b6a8..debc5cd00d 100644
--- a/core/math/triangle_mesh.cpp
+++ b/core/math/triangle_mesh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/triangle_mesh.h b/core/math/triangle_mesh.h
index 2d3b4db4bb..1b99945698 100644
--- a/core/math/triangle_mesh.h
+++ b/core/math/triangle_mesh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/triangulate.cpp b/core/math/triangulate.cpp
index 28f1d96b14..f3e3de5fc2 100644
--- a/core/math/triangulate.cpp
+++ b/core/math/triangulate.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/triangulate.h b/core/math/triangulate.h
index 249ca6238f..d96bdb8cab 100644
--- a/core/math/triangulate.h
+++ b/core/math/triangulate.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/vector2.cpp b/core/math/vector2.cpp
index 718e94eee4..676a0004ea 100644
--- a/core/math/vector2.cpp
+++ b/core/math/vector2.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -210,6 +210,14 @@ Vector2i Vector2i::clamp(const Vector2i &p_min, const Vector2i &p_max) const {
CLAMP(y, p_min.y, p_max.y));
}
+int64_t Vector2i::length_squared() const {
+ return x * (int64_t)x + y * (int64_t)y;
+}
+
+double Vector2i::length() const {
+ return Math::sqrt((double)length_squared());
+}
+
Vector2i Vector2i::operator+(const Vector2i &p_v) const {
return Vector2i(x + p_v.x, y + p_v.y);
}
diff --git a/core/math/vector2.h b/core/math/vector2.h
index c0a189e040..a340036ac7 100644
--- a/core/math/vector2.h
+++ b/core/math/vector2.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -261,11 +261,16 @@ Vector2 Vector2::lerp(const Vector2 &p_to, const real_t p_weight) const {
}
Vector2 Vector2::slerp(const Vector2 &p_to, const real_t p_weight) const {
-#ifdef MATH_CHECKS
- ERR_FAIL_COND_V_MSG(!is_normalized(), Vector2(), "The start Vector2 must be normalized.");
-#endif
- real_t theta = angle_to(p_to);
- return rotated(theta * p_weight);
+ real_t start_length_sq = length_squared();
+ real_t end_length_sq = p_to.length_squared();
+ if (unlikely(start_length_sq == 0.0 || end_length_sq == 0.0)) {
+ // Zero length vectors have no angle, so the best we can do is either lerp or throw an error.
+ return lerp(p_to, p_weight);
+ }
+ real_t start_length = Math::sqrt(start_length_sq);
+ real_t result_length = Math::lerp(start_length, Math::sqrt(end_length_sq), p_weight);
+ real_t angle = angle_to(p_to);
+ return rotated(angle * p_weight) * (result_length / start_length);
}
Vector2 Vector2::direction_to(const Vector2 &p_to) const {
@@ -344,6 +349,9 @@ struct Vector2i {
bool operator==(const Vector2i &p_vec2) const;
bool operator!=(const Vector2i &p_vec2) const;
+ int64_t length_squared() const;
+ double length() const;
+
real_t aspect() const { return width / (real_t)height; }
Vector2i sign() const { return Vector2i(SIGN(x), SIGN(y)); }
Vector2i abs() const { return Vector2i(ABS(x), ABS(y)); }
diff --git a/core/math/vector3.cpp b/core/math/vector3.cpp
index b9bd04b8c1..b6965b3c32 100644
--- a/core/math/vector3.cpp
+++ b/core/math/vector3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/vector3.h b/core/math/vector3.h
index c0f80e8f11..d7a72b05a8 100644
--- a/core/math/vector3.h
+++ b/core/math/vector3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -240,8 +240,16 @@ Vector3 Vector3::lerp(const Vector3 &p_to, const real_t p_weight) const {
}
Vector3 Vector3::slerp(const Vector3 &p_to, const real_t p_weight) const {
- real_t theta = angle_to(p_to);
- return rotated(cross(p_to).normalized(), theta * p_weight);
+ real_t start_length_sq = length_squared();
+ real_t end_length_sq = p_to.length_squared();
+ if (unlikely(start_length_sq == 0.0 || end_length_sq == 0.0)) {
+ // Zero length vectors have no angle, so the best we can do is either lerp or throw an error.
+ return lerp(p_to, p_weight);
+ }
+ real_t start_length = Math::sqrt(start_length_sq);
+ real_t result_length = Math::lerp(start_length, Math::sqrt(end_length_sq), p_weight);
+ real_t angle = angle_to(p_to);
+ return rotated(cross(p_to).normalized(), angle * p_weight) * (result_length / start_length);
}
real_t Vector3::distance_to(const Vector3 &p_to) const {
diff --git a/core/math/vector3i.cpp b/core/math/vector3i.cpp
index 7812a0b41c..ac79b3c7ea 100644
--- a/core/math/vector3i.cpp
+++ b/core/math/vector3i.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/math/vector3i.h b/core/math/vector3i.h
index fba29a1f8d..1416c98057 100644
--- a/core/math/vector3i.h
+++ b/core/math/vector3i.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -31,6 +31,7 @@
#ifndef VECTOR3I_H
#define VECTOR3I_H
+#include "core/math/math_funcs.h"
#include "core/string/ustring.h"
#include "core/typedefs.h"
@@ -65,6 +66,9 @@ struct Vector3i {
Vector3i::Axis min_axis_index() const;
Vector3i::Axis max_axis_index() const;
+ _FORCE_INLINE_ int64_t length_squared() const;
+ _FORCE_INLINE_ double length() const;
+
_FORCE_INLINE_ void zero();
_FORCE_INLINE_ Vector3i abs() const;
@@ -110,6 +114,14 @@ struct Vector3i {
}
};
+int64_t Vector3i::length_squared() const {
+ return x * (int64_t)x + y * (int64_t)y + z * (int64_t)z;
+}
+
+double Vector3i::length() const {
+ return Math::sqrt((double)length_squared());
+}
+
Vector3i Vector3i::abs() const {
return Vector3i(ABS(x), ABS(y), ABS(z));
}
diff --git a/core/multiplayer/multiplayer.h b/core/multiplayer/multiplayer.h
index be398f02c8..5eb968171a 100644
--- a/core/multiplayer/multiplayer.h
+++ b/core/multiplayer/multiplayer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/multiplayer/multiplayer_api.cpp b/core/multiplayer/multiplayer_api.cpp
index 9543f77c1e..627825246a 100644
--- a/core/multiplayer/multiplayer_api.cpp
+++ b/core/multiplayer/multiplayer_api.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/multiplayer/multiplayer_api.h b/core/multiplayer/multiplayer_api.h
index 1fb0318403..713035428d 100644
--- a/core/multiplayer/multiplayer_api.h
+++ b/core/multiplayer/multiplayer_api.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/multiplayer/multiplayer_peer.cpp b/core/multiplayer/multiplayer_peer.cpp
index 3c33948e2f..ae3b139bcc 100644
--- a/core/multiplayer/multiplayer_peer.cpp
+++ b/core/multiplayer/multiplayer_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/multiplayer/multiplayer_peer.h b/core/multiplayer/multiplayer_peer.h
index 126ba9e645..dee2be7b4b 100644
--- a/core/multiplayer/multiplayer_peer.h
+++ b/core/multiplayer/multiplayer_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/multiplayer/multiplayer_replicator.cpp b/core/multiplayer/multiplayer_replicator.cpp
index c57562552a..e7de8219c7 100644
--- a/core/multiplayer/multiplayer_replicator.cpp
+++ b/core/multiplayer/multiplayer_replicator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -124,7 +124,7 @@ void MultiplayerReplicator::_process_default_sync(const ResourceUID::ID &p_id, c
ERR_FAIL_COND_MSG(p_packet_len < SYNC_CMD_OFFSET + 5, "Invalid spawn packet received");
ERR_FAIL_COND_MSG(!replications.has(p_id), "Invalid spawn ID received " + itos(p_id));
SceneConfig &cfg = replications[p_id];
- ERR_FAIL_COND_MSG(cfg.mode != REPLICATION_MODE_SERVER || multiplayer->is_server(), "The defualt implementation only allows sync packets from the server");
+ ERR_FAIL_COND_MSG(cfg.mode != REPLICATION_MODE_SERVER || multiplayer->is_server(), "The default implementation only allows sync packets from the server");
const bool same_size = p_packet[0] & BYTE_OR_ZERO_FLAG;
int ofs = SYNC_CMD_OFFSET;
int time = p_packet[ofs];
diff --git a/core/multiplayer/multiplayer_replicator.h b/core/multiplayer/multiplayer_replicator.h
index 7fa774fdf4..a9cd6e211e 100644
--- a/core/multiplayer/multiplayer_replicator.h
+++ b/core/multiplayer/multiplayer_replicator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/multiplayer/rpc_manager.cpp b/core/multiplayer/rpc_manager.cpp
index d8e875c3e6..7736637349 100644
--- a/core/multiplayer/rpc_manager.cpp
+++ b/core/multiplayer/rpc_manager.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/multiplayer/rpc_manager.h b/core/multiplayer/rpc_manager.h
index 7b99dee226..00bd1f9cb0 100644
--- a/core/multiplayer/rpc_manager.h
+++ b/core/multiplayer/rpc_manager.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/callable_method_pointer.cpp b/core/object/callable_method_pointer.cpp
index 2bfaef744d..1bf926cafc 100644
--- a/core/object/callable_method_pointer.cpp
+++ b/core/object/callable_method_pointer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/callable_method_pointer.h b/core/object/callable_method_pointer.h
index 8ba01be4e4..53410a9acf 100644
--- a/core/object/callable_method_pointer.h
+++ b/core/object/callable_method_pointer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/class_db.cpp b/core/object/class_db.cpp
index bbd3b7b8de..03774bc36a 100644
--- a/core/object/class_db.cpp
+++ b/core/object/class_db.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/class_db.h b/core/object/class_db.h
index ca9c1def29..5adf1a59a4 100644
--- a/core/object/class_db.h
+++ b/core/object/class_db.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/message_queue.cpp b/core/object/message_queue.cpp
index 736e940846..3c828eabd9 100644
--- a/core/object/message_queue.cpp
+++ b/core/object/message_queue.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/message_queue.h b/core/object/message_queue.h
index 1b8def62d3..a4449cf473 100644
--- a/core/object/message_queue.h
+++ b/core/object/message_queue.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/method_bind.cpp b/core/object/method_bind.cpp
index 642e27c41d..32269b5f19 100644
--- a/core/object/method_bind.cpp
+++ b/core/object/method_bind.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/method_bind.h b/core/object/method_bind.h
index ee003099a0..02b73fa273 100644
--- a/core/object/method_bind.h
+++ b/core/object/method_bind.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/object.cpp b/core/object/object.cpp
index 14d4e0bee6..f966607e03 100644
--- a/core/object/object.cpp
+++ b/core/object/object.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/object.h b/core/object/object.h
index fc6e6a3660..4fe2dff19b 100644
--- a/core/object/object.h
+++ b/core/object/object.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -359,9 +359,6 @@ public:
} \
return category; \
} \
- static String inherits_static() { \
- return String(#m_inherits); \
- } \
virtual bool is_class(const String &p_class) const override { \
if (_get_extension() && _get_extension()->is_class(p_class)) { \
return true; \
diff --git a/core/object/object_id.h b/core/object/object_id.h
index 0666ec0855..a36997630f 100644
--- a/core/object/object_id.h
+++ b/core/object/object_id.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/ref_counted.cpp b/core/object/ref_counted.cpp
index 2833f774dc..c9a7b2a608 100644
--- a/core/object/ref_counted.cpp
+++ b/core/object/ref_counted.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/ref_counted.h b/core/object/ref_counted.h
index f2dd2aa324..8eb1c97cce 100644
--- a/core/object/ref_counted.h
+++ b/core/object/ref_counted.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/script_language.cpp b/core/object/script_language.cpp
index 8ec1a973e7..9fec7c397d 100644
--- a/core/object/script_language.cpp
+++ b/core/object/script_language.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/script_language.h b/core/object/script_language.h
index 8d76cbf479..4b18d9a5e8 100644
--- a/core/object/script_language.h
+++ b/core/object/script_language.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -227,6 +227,7 @@ struct ScriptCodeCompletionOption {
Color font_color;
RES icon;
Variant default_value;
+ Vector<Pair<int, int>> matches;
ScriptCodeCompletionOption() {}
@@ -274,13 +275,32 @@ public:
String message;
};
+ enum TemplateLocation {
+ TEMPLATE_BUILT_IN,
+ TEMPLATE_EDITOR,
+ TEMPLATE_PROJECT
+ };
+
+ struct ScriptTemplate {
+ String inherit = "Object";
+ String name;
+ String description;
+ String content;
+ int id = 0;
+ TemplateLocation origin = TemplateLocation::TEMPLATE_BUILT_IN;
+
+ String get_hash() const {
+ return itos(origin) + inherit + name;
+ }
+ };
+
void get_core_type_words(List<String> *p_core_type_words) const;
virtual void get_reserved_words(List<String> *p_words) const = 0;
virtual bool is_control_flow_keyword(String p_string) const = 0;
virtual void get_comment_delimiters(List<String> *p_delimiters) const = 0;
virtual void get_string_delimiters(List<String> *p_delimiters) const = 0;
- virtual Ref<Script> get_template(const String &p_class_name, const String &p_base_class_name) const = 0;
- virtual void make_template(const String &p_class_name, const String &p_base_class_name, Ref<Script> &p_script) {}
+ virtual Ref<Script> make_template(const String &p_template, const String &p_class_name, const String &p_base_class_name) const { return Ref<Script>(); }
+ virtual Vector<ScriptTemplate> get_built_in_templates(StringName p_object) { return Vector<ScriptTemplate>(); }
virtual bool is_using_templates() { return false; }
virtual bool validate(const String &p_script, const String &p_path = "", List<String> *r_functions = nullptr, List<ScriptError> *r_errors = nullptr, List<Warning> *r_warnings = nullptr, Set<int> *r_safe_lines = nullptr) const = 0;
virtual String validate_path(const String &p_path) const { return ""; }
diff --git a/core/object/undo_redo.cpp b/core/object/undo_redo.cpp
index 3459506860..f72dec8edf 100644
--- a/core/object/undo_redo.cpp
+++ b/core/object/undo_redo.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/object/undo_redo.h b/core/object/undo_redo.h
index a757d154e2..75639f8abf 100644
--- a/core/object/undo_redo.h
+++ b/core/object/undo_redo.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/keyboard.cpp b/core/os/keyboard.cpp
index fdc43da7a5..3a03c0a10b 100644
--- a/core/os/keyboard.cpp
+++ b/core/os/keyboard.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/keyboard.h b/core/os/keyboard.h
index c780099553..a21d81b2e7 100644
--- a/core/os/keyboard.h
+++ b/core/os/keyboard.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/main_loop.cpp b/core/os/main_loop.cpp
index 0ba69a8d47..a96e1989f9 100644
--- a/core/os/main_loop.cpp
+++ b/core/os/main_loop.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/main_loop.h b/core/os/main_loop.h
index 4da01d767e..a6a32f0138 100644
--- a/core/os/main_loop.h
+++ b/core/os/main_loop.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/memory.cpp b/core/os/memory.cpp
index a756c1d5dd..6ff0f9ae00 100644
--- a/core/os/memory.cpp
+++ b/core/os/memory.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/memory.h b/core/os/memory.h
index ac56a12330..27eaad5010 100644
--- a/core/os/memory.h
+++ b/core/os/memory.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/midi_driver.cpp b/core/os/midi_driver.cpp
index ee33eef83f..8431ceacf9 100644
--- a/core/os/midi_driver.cpp
+++ b/core/os/midi_driver.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/midi_driver.h b/core/os/midi_driver.h
index ccf624e07e..c23614af00 100644
--- a/core/os/midi_driver.h
+++ b/core/os/midi_driver.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/mutex.cpp b/core/os/mutex.cpp
index b7d7752d35..1d4400bfc1 100644
--- a/core/os/mutex.cpp
+++ b/core/os/mutex.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/mutex.h b/core/os/mutex.h
index d77ec362a1..a51248807b 100644
--- a/core/os/mutex.h
+++ b/core/os/mutex.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/os.cpp b/core/os/os.cpp
index c8b8931919..0032e8e4bc 100644
--- a/core/os/os.cpp
+++ b/core/os/os.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -346,7 +346,7 @@ String OS::get_model_name() const {
}
void OS::set_cmdline(const char *p_execpath, const List<String> &p_args) {
- _execpath = p_execpath;
+ _execpath = String::utf8(p_execpath);
_cmdline = p_args;
}
diff --git a/core/os/os.h b/core/os/os.h
index 3042696cce..b4ad2c7345 100644
--- a/core/os/os.h
+++ b/core/os/os.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/pool_allocator.cpp b/core/os/pool_allocator.cpp
index 74e9c24e04..190617f967 100644
--- a/core/os/pool_allocator.cpp
+++ b/core/os/pool_allocator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/pool_allocator.h b/core/os/pool_allocator.h
index 49f433ba97..25b5061f62 100644
--- a/core/os/pool_allocator.h
+++ b/core/os/pool_allocator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/rw_lock.h b/core/os/rw_lock.h
index 560ec57a5f..a046f474ea 100644
--- a/core/os/rw_lock.h
+++ b/core/os/rw_lock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/semaphore.h b/core/os/semaphore.h
index 01ae7a3c65..72df52dd34 100644
--- a/core/os/semaphore.h
+++ b/core/os/semaphore.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/spin_lock.h b/core/os/spin_lock.h
index 929e8b9a58..27d915e0ae 100644
--- a/core/os/spin_lock.h
+++ b/core/os/spin_lock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/thread.cpp b/core/os/thread.cpp
index 27aefc98de..f80e8f4bb3 100644
--- a/core/os/thread.cpp
+++ b/core/os/thread.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/thread.h b/core/os/thread.h
index 59cb58ac57..f4e46059ad 100644
--- a/core/os/thread.h
+++ b/core/os/thread.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/thread_safe.h b/core/os/thread_safe.h
index 81de079bf3..fa443048e4 100644
--- a/core/os/thread_safe.h
+++ b/core/os/thread_safe.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/threaded_array_processor.h b/core/os/threaded_array_processor.h
index fec6473589..48b86cc1a1 100644
--- a/core/os/threaded_array_processor.h
+++ b/core/os/threaded_array_processor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/time.cpp b/core/os/time.cpp
index a185029969..5eae94279a 100644
--- a/core/os/time.cpp
+++ b/core/os/time.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/os/time.h b/core/os/time.h
index 4325f93d56..3f00ba1478 100644
--- a/core/os/time.h
+++ b/core/os/time.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/register_core_types.cpp b/core/register_core_types.cpp
index 5479041b29..a18ec4d6ad 100644
--- a/core/register_core_types.cpp
+++ b/core/register_core_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/register_core_types.h b/core/register_core_types.h
index 830f05607d..0fd4e73c40 100644
--- a/core/register_core_types.h
+++ b/core/register_core_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/node_path.cpp b/core/string/node_path.cpp
index bb9a44ccaf..238897c2b1 100644
--- a/core/string/node_path.cpp
+++ b/core/string/node_path.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/node_path.h b/core/string/node_path.h
index a277ab26fa..53976bd524 100644
--- a/core/string/node_path.h
+++ b/core/string/node_path.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/optimized_translation.cpp b/core/string/optimized_translation.cpp
index f8be564740..07b58f2418 100644
--- a/core/string/optimized_translation.cpp
+++ b/core/string/optimized_translation.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/optimized_translation.h b/core/string/optimized_translation.h
index bccf932383..f3dbfe8f5c 100644
--- a/core/string/optimized_translation.h
+++ b/core/string/optimized_translation.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -38,7 +38,7 @@ class OptimizedTranslation : public Translation {
//this translation uses a sort of modified perfect hash algorithm
//it requires hashing strings twice and then does a binary search,
- //so it's slower, but at the same time it has an extreemly high chance
+ //so it's slower, but at the same time it has an extremely high chance
//of catching untranslated strings
//load/store friendly types
diff --git a/core/string/print_string.cpp b/core/string/print_string.cpp
index adc218f597..97e119bcf6 100644
--- a/core/string/print_string.cpp
+++ b/core/string/print_string.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/print_string.h b/core/string/print_string.h
index 3cd170b68e..669d2ea316 100644
--- a/core/string/print_string.h
+++ b/core/string/print_string.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/string_buffer.h b/core/string/string_buffer.h
index 33897c3674..424952f786 100644
--- a/core/string/string_buffer.h
+++ b/core/string/string_buffer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/string_builder.cpp b/core/string/string_builder.cpp
index 45cc2f3280..7359ff59e1 100644
--- a/core/string/string_builder.cpp
+++ b/core/string/string_builder.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/string_builder.h b/core/string/string_builder.h
index 30ce2a06f7..897efa95ef 100644
--- a/core/string/string_builder.h
+++ b/core/string/string_builder.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/string_name.cpp b/core/string/string_name.cpp
index 0e3482e873..61742ac582 100644
--- a/core/string/string_name.cpp
+++ b/core/string/string_name.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/string_name.h b/core/string/string_name.h
index ce7988744b..9653d2b4cf 100644
--- a/core/string/string_name.h
+++ b/core/string/string_name.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/translation.cpp b/core/string/translation.cpp
index 865937e9ce..615ecf2432 100644
--- a/core/string/translation.cpp
+++ b/core/string/translation.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/translation.h b/core/string/translation.h
index 6aec0bb8ea..e95d15e2ab 100644
--- a/core/string/translation.h
+++ b/core/string/translation.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/translation_po.cpp b/core/string/translation_po.cpp
index 1da00aa54b..1c991ee12d 100644
--- a/core/string/translation_po.cpp
+++ b/core/string/translation_po.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/translation_po.h b/core/string/translation_po.h
index 0e1d03d6ca..7d63af2246 100644
--- a/core/string/translation_po.h
+++ b/core/string/translation_po.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/ucaps.h b/core/string/ucaps.h
index b785ac7879..357d36e703 100644
--- a/core/string/ucaps.h
+++ b/core/string/ucaps.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/ustring.cpp b/core/string/ustring.cpp
index 779270fe47..0949980713 100644
--- a/core/string/ustring.cpp
+++ b/core/string/ustring.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/string/ustring.h b/core/string/ustring.h
index 780515c12e..4840c236c0 100644
--- a/core/string/ustring.h
+++ b/core/string/ustring.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/bin_sorted_array.h b/core/templates/bin_sorted_array.h
index 8db3e7aeb8..59ac4cdaa1 100644
--- a/core/templates/bin_sorted_array.h
+++ b/core/templates/bin_sorted_array.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/command_queue_mt.cpp b/core/templates/command_queue_mt.cpp
index 04a8095f0b..a40ff88a19 100644
--- a/core/templates/command_queue_mt.cpp
+++ b/core/templates/command_queue_mt.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/command_queue_mt.h b/core/templates/command_queue_mt.h
index 519a896ffc..1ecb81c2a2 100644
--- a/core/templates/command_queue_mt.h
+++ b/core/templates/command_queue_mt.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/cowdata.h b/core/templates/cowdata.h
index e79ca037db..326616b607 100644
--- a/core/templates/cowdata.h
+++ b/core/templates/cowdata.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/hash_map.h b/core/templates/hash_map.h
index 45e0cc2427..82b3546f9d 100644
--- a/core/templates/hash_map.h
+++ b/core/templates/hash_map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/hashfuncs.h b/core/templates/hashfuncs.h
index c1a7c4146e..2a129f97d5 100644
--- a/core/templates/hashfuncs.h
+++ b/core/templates/hashfuncs.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/list.h b/core/templates/list.h
index afbed998c2..fe14d85d8f 100644
--- a/core/templates/list.h
+++ b/core/templates/list.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/local_vector.h b/core/templates/local_vector.h
index 4ec08821f8..f4e0748c27 100644
--- a/core/templates/local_vector.h
+++ b/core/templates/local_vector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,6 +36,8 @@
#include "core/templates/sort_array.h"
#include "core/templates/vector.h"
+#include <initializer_list>
+
template <class T, class U = uint32_t, bool force_trivial = false>
class LocalVector {
private:
@@ -228,6 +230,12 @@ public:
}
_FORCE_INLINE_ LocalVector() {}
+ _FORCE_INLINE_ LocalVector(std::initializer_list<T> p_init) {
+ reserve(p_init.size());
+ for (const T &element : p_init) {
+ push_back(element);
+ }
+ }
_FORCE_INLINE_ LocalVector(const LocalVector &p_from) {
resize(p_from.size());
for (U i = 0; i < p_from.count; i++) {
diff --git a/core/templates/lru.h b/core/templates/lru.h
index e55e40da48..48ba318b12 100644
--- a/core/templates/lru.h
+++ b/core/templates/lru.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/map.h b/core/templates/map.h
index badb407e5d..f228640a1e 100644
--- a/core/templates/map.h
+++ b/core/templates/map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/oa_hash_map.h b/core/templates/oa_hash_map.h
index 9dab36e343..c91d27ebe1 100644
--- a/core/templates/oa_hash_map.h
+++ b/core/templates/oa_hash_map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/ordered_hash_map.h b/core/templates/ordered_hash_map.h
index 928072bb18..3d1f3a08ec 100644
--- a/core/templates/ordered_hash_map.h
+++ b/core/templates/ordered_hash_map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/paged_allocator.h b/core/templates/paged_allocator.h
index dfc885c6eb..5bc723787f 100644
--- a/core/templates/paged_allocator.h
+++ b/core/templates/paged_allocator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/paged_array.h b/core/templates/paged_array.h
index 599d3dde4f..33d2757bec 100644
--- a/core/templates/paged_array.h
+++ b/core/templates/paged_array.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/pair.h b/core/templates/pair.h
index e30ee8bc56..eb86e21b03 100644
--- a/core/templates/pair.h
+++ b/core/templates/pair.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/pass_func.h b/core/templates/pass_func.h
index d2f465e91c..8bd34ddfd6 100644
--- a/core/templates/pass_func.h
+++ b/core/templates/pass_func.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/pooled_list.h b/core/templates/pooled_list.h
index b139dadb75..360fda81f8 100644
--- a/core/templates/pooled_list.h
+++ b/core/templates/pooled_list.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/rid.h b/core/templates/rid.h
index 4c7119b4ea..679c43f906 100644
--- a/core/templates/rid.h
+++ b/core/templates/rid.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/rid_owner.cpp b/core/templates/rid_owner.cpp
index 56f39ab779..7fc819e232 100644
--- a/core/templates/rid_owner.cpp
+++ b/core/templates/rid_owner.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/rid_owner.h b/core/templates/rid_owner.h
index 71d41eacc4..3ed81e76fd 100644
--- a/core/templates/rid_owner.h
+++ b/core/templates/rid_owner.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/ring_buffer.h b/core/templates/ring_buffer.h
index e7b77440f1..742f9462fb 100644
--- a/core/templates/ring_buffer.h
+++ b/core/templates/ring_buffer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/safe_list.h b/core/templates/safe_list.h
index d8f010663b..53fc3fe5f9 100644
--- a/core/templates/safe_list.h
+++ b/core/templates/safe_list.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/safe_refcount.h b/core/templates/safe_refcount.h
index e9e5695f80..76f76be96a 100644
--- a/core/templates/safe_refcount.h
+++ b/core/templates/safe_refcount.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/search_array.h b/core/templates/search_array.h
index 8efc32df82..e717a352d1 100644
--- a/core/templates/search_array.h
+++ b/core/templates/search_array.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/self_list.h b/core/templates/self_list.h
index e8d36ea358..7f2236fa3a 100644
--- a/core/templates/self_list.h
+++ b/core/templates/self_list.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/set.h b/core/templates/set.h
index 0a80ceefb5..cdc6e8447d 100644
--- a/core/templates/set.h
+++ b/core/templates/set.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -582,6 +582,9 @@ public:
}
Element *lower_bound(const T &p_value) const {
+ if (!_data._root) {
+ return nullptr;
+ }
return _lower_bound(p_value);
}
diff --git a/core/templates/simple_type.h b/core/templates/simple_type.h
index 80bfa83fde..9352b500a2 100644
--- a/core/templates/simple_type.h
+++ b/core/templates/simple_type.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/sort_array.h b/core/templates/sort_array.h
index 1656d2991d..6cf9368056 100644
--- a/core/templates/sort_array.h
+++ b/core/templates/sort_array.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/thread_work_pool.cpp b/core/templates/thread_work_pool.cpp
index 710f043a4a..a75fd06b9b 100644
--- a/core/templates/thread_work_pool.cpp
+++ b/core/templates/thread_work_pool.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/thread_work_pool.h b/core/templates/thread_work_pool.h
index 19096c496a..957af44f48 100644
--- a/core/templates/thread_work_pool.h
+++ b/core/templates/thread_work_pool.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/vector.h b/core/templates/vector.h
index 2f51a83848..4ada3b597a 100644
--- a/core/templates/vector.h
+++ b/core/templates/vector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -43,6 +43,8 @@
#include "core/templates/search_array.h"
#include "core/templates/sort_array.h"
+#include <initializer_list>
+
template <class T>
class VectorWriteProxy {
public:
@@ -258,6 +260,15 @@ public:
}
_FORCE_INLINE_ Vector() {}
+ _FORCE_INLINE_ Vector(std::initializer_list<T> p_init) {
+ Error err = _cowdata.resize(p_init.size());
+ ERR_FAIL_COND(err);
+
+ int i = 0;
+ for (const T &element : p_init) {
+ _cowdata.set(i++, element);
+ }
+ }
_FORCE_INLINE_ Vector(const Vector &p_from) { _cowdata._ref(p_from._cowdata); }
_FORCE_INLINE_ ~Vector() {}
diff --git a/core/templates/vmap.h b/core/templates/vmap.h
index 0ff105ccbf..013c4e4262 100644
--- a/core/templates/vmap.h
+++ b/core/templates/vmap.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/templates/vset.h b/core/templates/vset.h
index 94e7a17061..09bddbbe69 100644
--- a/core/templates/vset.h
+++ b/core/templates/vset.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/typedefs.h b/core/typedefs.h
index 95bd423817..e6034eb375 100644
--- a/core/typedefs.h
+++ b/core/typedefs.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/array.cpp b/core/variant/array.cpp
index 45f2e0c5ac..8d20b1bc79 100644
--- a/core/variant/array.cpp
+++ b/core/variant/array.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/array.h b/core/variant/array.h
index 6a68a9b9ff..f48444bb39 100644
--- a/core/variant/array.h
+++ b/core/variant/array.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/binder_common.h b/core/variant/binder_common.h
index 3fb4af4944..14f49d530c 100644
--- a/core/variant/binder_common.h
+++ b/core/variant/binder_common.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/callable.cpp b/core/variant/callable.cpp
index dcded6e61f..c6a67f01d5 100644
--- a/core/variant/callable.cpp
+++ b/core/variant/callable.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/callable.h b/core/variant/callable.h
index de886492ea..855ffa9129 100644
--- a/core/variant/callable.h
+++ b/core/variant/callable.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/callable_bind.cpp b/core/variant/callable_bind.cpp
index 56eda6e703..4579621760 100644
--- a/core/variant/callable_bind.cpp
+++ b/core/variant/callable_bind.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/callable_bind.h b/core/variant/callable_bind.h
index feb40d1de9..ac5797e05f 100644
--- a/core/variant/callable_bind.h
+++ b/core/variant/callable_bind.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -51,6 +51,9 @@ public:
virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const;
virtual const Callable *get_base_comparator() const;
+ Callable get_callable() { return callable; }
+ Vector<Variant> get_binds() { return binds; }
+
CallableCustomBind(const Callable &p_callable, const Vector<Variant> &p_binds);
virtual ~CallableCustomBind();
};
@@ -72,6 +75,9 @@ public:
virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const;
virtual const Callable *get_base_comparator() const;
+ Callable get_callable() { return callable; }
+ int get_unbinds() { return argcount; }
+
CallableCustomUnbind(const Callable &p_callable, int p_argcount);
virtual ~CallableCustomUnbind();
};
diff --git a/core/variant/container_type_validate.h b/core/variant/container_type_validate.h
index f13a37cddd..6171c8c88f 100644
--- a/core/variant/container_type_validate.h
+++ b/core/variant/container_type_validate.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/dictionary.cpp b/core/variant/dictionary.cpp
index 24d21386a7..cc04ae712b 100644
--- a/core/variant/dictionary.cpp
+++ b/core/variant/dictionary.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/dictionary.h b/core/variant/dictionary.h
index f8a2a7573f..16cf0c2bf8 100644
--- a/core/variant/dictionary.h
+++ b/core/variant/dictionary.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/method_ptrcall.h b/core/variant/method_ptrcall.h
index 98304621f2..75a93ac4c8 100644
--- a/core/variant/method_ptrcall.h
+++ b/core/variant/method_ptrcall.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/native_ptr.h b/core/variant/native_ptr.h
index 913d4d8f7c..fe541c8d4b 100644
--- a/core/variant/native_ptr.h
+++ b/core/variant/native_ptr.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/type_info.h b/core/variant/type_info.h
index 2c6b82d25f..5ae35c92d3 100644
--- a/core/variant/type_info.h
+++ b/core/variant/type_info.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/typed_array.h b/core/variant/typed_array.h
index 2e96f4e445..50411121bc 100644
--- a/core/variant/typed_array.h
+++ b/core/variant/typed_array.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant.cpp b/core/variant/variant.cpp
index c43ff8626e..db198da54a 100644
--- a/core/variant/variant.cpp
+++ b/core/variant/variant.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant.h b/core/variant/variant.h
index 230ed33c0c..0860e7fdc3 100644
--- a/core/variant/variant.h
+++ b/core/variant/variant.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_call.cpp b/core/variant/variant_call.cpp
index d2bda34818..ecf5009fb6 100644
--- a/core/variant/variant_call.cpp
+++ b/core/variant/variant_call.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1513,6 +1513,8 @@ static void _register_variant_builtin_methods() {
bind_method(Vector2i, aspect, sarray(), varray());
bind_method(Vector2i, max_axis_index, sarray(), varray());
bind_method(Vector2i, min_axis_index, sarray(), varray());
+ bind_method(Vector2i, length, sarray(), varray());
+ bind_method(Vector2i, length_squared, sarray(), varray());
bind_method(Vector2i, sign, sarray(), varray());
bind_method(Vector2i, abs, sarray(), varray());
bind_method(Vector2i, clamp, sarray("min", "max"), varray());
@@ -1594,6 +1596,8 @@ static void _register_variant_builtin_methods() {
bind_method(Vector3i, min_axis_index, sarray(), varray());
bind_method(Vector3i, max_axis_index, sarray(), varray());
+ bind_method(Vector3i, length, sarray(), varray());
+ bind_method(Vector3i, length_squared, sarray(), varray());
bind_method(Vector3i, sign, sarray(), varray());
bind_method(Vector3i, abs, sarray(), varray());
bind_method(Vector3i, clamp, sarray("min", "max"), varray());
diff --git a/core/variant/variant_construct.cpp b/core/variant/variant_construct.cpp
index 5c14f30180..351f4ae253 100644
--- a/core/variant/variant_construct.cpp
+++ b/core/variant/variant_construct.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_construct.h b/core/variant/variant_construct.h
index b03f4a8d3b..6027cb027e 100644
--- a/core/variant/variant_construct.h
+++ b/core/variant/variant_construct.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_destruct.cpp b/core/variant/variant_destruct.cpp
index 366b71df3a..ab8303f3ae 100644
--- a/core/variant/variant_destruct.cpp
+++ b/core/variant/variant_destruct.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_destruct.h b/core/variant/variant_destruct.h
index 7356e42201..5e3478635d 100644
--- a/core/variant/variant_destruct.h
+++ b/core/variant/variant_destruct.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_internal.h b/core/variant/variant_internal.h
index d24f3e90f5..aaafa2f6b6 100644
--- a/core/variant/variant_internal.h
+++ b/core/variant/variant_internal.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_op.cpp b/core/variant/variant_op.cpp
index b85ece338c..e0ffcc9d11 100644
--- a/core/variant/variant_op.cpp
+++ b/core/variant/variant_op.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_op.h b/core/variant/variant_op.h
index 353524469a..9791cb67b3 100644
--- a/core/variant/variant_op.h
+++ b/core/variant/variant_op.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_parser.cpp b/core/variant/variant_parser.cpp
index 47561f4621..571181f665 100644
--- a/core/variant/variant_parser.cpp
+++ b/core/variant/variant_parser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_parser.h b/core/variant/variant_parser.h
index 2e4baa6fff..e5585076c2 100644
--- a/core/variant/variant_parser.h
+++ b/core/variant/variant_parser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_setget.cpp b/core/variant/variant_setget.cpp
index b6ad2d870e..fa8d26a72b 100644
--- a/core/variant/variant_setget.cpp
+++ b/core/variant/variant_setget.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2120,7 +2120,7 @@ void Variant::interpolate(const Variant &a, const Variant &b, float c, Variant &
}
return;
case BASIS: {
- r_dst = Transform3D(*a._data._basis).interpolate_with(Transform3D(*b._data._basis), c).basis;
+ r_dst = a._data._basis->lerp(*b._data._basis, c);
}
return;
case TRANSFORM3D: {
diff --git a/core/variant/variant_setget.h b/core/variant/variant_setget.h
index dbf24ab3e3..28277fa5d0 100644
--- a/core/variant/variant_setget.h
+++ b/core/variant/variant_setget.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/variant/variant_utility.cpp b/core/variant/variant_utility.cpp
index 554b2f1c25..3fd8eb5474 100644
--- a/core/variant/variant_utility.cpp
+++ b/core/variant/variant_utility.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/core/version.h b/core/version.h
index 2a4fa9cfd4..c718d0f4d7 100644
--- a/core/version.h
+++ b/core/version.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml
index 161e6278a2..be7ac1164e 100644
--- a/doc/classes/@GlobalScope.xml
+++ b/doc/classes/@GlobalScope.xml
@@ -358,14 +358,16 @@
<argument index="1" name="to" type="float" />
<argument index="2" name="weight" type="float" />
<description>
- Returns a normalized value considering the given range. This is the opposite of [method lerp].
+ Returns an interpolation or extrapolation factor considering the range specified in [code]from[/code] and [code]to[/code], and the interpolated value specified in [code]weight[/code]. The returned value will be between [code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between [code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is located outside this range, then an extrapolation factor will be returned (return value lower than [code]0.0[/code] or greater than [code]1.0[/code]).
[codeblock]
+ # The interpolation ratio in the `lerp()` call below is 0.75.
var middle = lerp(20, 30, 0.75)
# `middle` is now 27.5.
# Now, we pretend to have forgotten the original ratio and want to get it back.
var ratio = inverse_lerp(20, 30, 27.5)
# `ratio` is now 0.75.
[/codeblock]
+ See also [method lerp] which performs the reverse of this operation.
</description>
</method>
<method name="is_equal_approx">
@@ -420,10 +422,11 @@
<argument index="1" name="to" type="float" />
<argument index="2" name="weight" type="float" />
<description>
- Linearly interpolates between two values by a normalized value. This is the opposite of [method inverse_lerp].
+ Linearly interpolates between two values by the factor defined in [code]weight[/code]. To perform interpolation, [code]weight[/code] should be between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values outside this range are allowed and can be used to perform [i]extrapolation[/i].
[codeblock]
lerp(0, 4, 0.75) # Returns 3.0
[/codeblock]
+ See also [method inverse_lerp] which performs the reverse of this operation. To perform eased interpolation with [method lerp], combine it with [method ease] or [method smoothstep].
</description>
</method>
<method name="lerp_angle">
@@ -433,7 +436,7 @@
<argument index="2" name="weight" type="float" />
<description>
Linearly interpolates between two angles (in radians) by a normalized value.
- Similar to [method lerp], but interpolates correctly when the angles wrap around [constant @GDScript.TAU].
+ Similar to [method lerp], but interpolates correctly when the angles wrap around [constant @GDScript.TAU]. To perform eased interpolation with [method lerp_angle], combine it with [method ease] or [method smoothstep].
[codeblock]
extends Sprite
var elapsed = 0.0
@@ -1256,13 +1259,13 @@
Aligns inline object (e.g. image, table) to the bottom of the text.
</constant>
<constant name="INLINE_ALIGNMENT_TOP" value="0" enum="InlineAlignment">
- Aligns top of the inline object (e.g. image, table) to the top of the text. Equvalent to [code]INLINE_ALIGNMENT_TOP_TO | INLINE_ALIGNMENT_TO_TOP[/code].
+ Aligns top of the inline object (e.g. image, table) to the top of the text. Equivalent to [code]INLINE_ALIGNMENT_TOP_TO | INLINE_ALIGNMENT_TO_TOP[/code].
</constant>
<constant name="INLINE_ALIGNMENT_CENTER" value="5" enum="InlineAlignment">
- Aligns center of the inline object (e.g. image, table) to the center of the text. Equvalent to [code]INLINE_ALIGNMENT_CENTER_TO | INLINE_ALIGNMENT_TO_CENTER[/code].
+ Aligns center of the inline object (e.g. image, table) to the center of the text. Equivalent to [code]INLINE_ALIGNMENT_CENTER_TO | INLINE_ALIGNMENT_TO_CENTER[/code].
</constant>
<constant name="INLINE_ALIGNMENT_BOTTOM" value="14" enum="InlineAlignment">
- Aligns bottom of the inline object (e.g. image, table) to the bottom of the text. Equvalent to [code]INLINE_ALIGNMENT_BOTTOM_TO | INLINE_ALIGNMENT_TO_BOTTOM[/code].
+ Aligns bottom of the inline object (e.g. image, table) to the bottom of the text. Equivalent to [code]INLINE_ALIGNMENT_BOTTOM_TO | INLINE_ALIGNMENT_TO_BOTTOM[/code].
</constant>
<constant name="KEY_SPECIAL" value="16777216" enum="Key">
Keycodes with this bit applied are non-printable.
@@ -2131,8 +2134,11 @@
<constant name="JOY_BUTTON_SDL_MAX" value="21" enum="JoyButton">
The number of SDL game controller buttons.
</constant>
- <constant name="JOY_BUTTON_MAX" value="36" enum="JoyButton">
- The maximum number of game controller buttons: Android supports up to 36 buttons.
+ <constant name="JOY_BUTTON_MAX" value="128" enum="JoyButton">
+ The maximum number of game controller buttons supported by the engine. The actual limit may be lower on specific platforms:
+ - Android: Up to 36 buttons.
+ - Linux: Up to 80 buttons.
+ - Windows and macOS: Up to 128 buttons.
</constant>
<constant name="JOY_AXIS_INVALID" value="-1" enum="JoyAxis">
An invalid game controller axis.
@@ -2162,25 +2168,58 @@
The maximum number of game controller axes: OpenVR supports up to 5 Joysticks making a total of 10 axes.
</constant>
<constant name="MIDI_MESSAGE_NOTE_OFF" value="8" enum="MIDIMessage">
- MIDI note OFF message.
+ MIDI note OFF message. See the documentation of [InputEventMIDI] for information of how to use MIDI inputs.
</constant>
<constant name="MIDI_MESSAGE_NOTE_ON" value="9" enum="MIDIMessage">
- MIDI note ON message.
+ MIDI note ON message. See the documentation of [InputEventMIDI] for information of how to use MIDI inputs.
</constant>
<constant name="MIDI_MESSAGE_AFTERTOUCH" value="10" enum="MIDIMessage">
- MIDI aftertouch message.
+ MIDI aftertouch message. This message is most often sent by pressing down on the key after it "bottoms out".
</constant>
<constant name="MIDI_MESSAGE_CONTROL_CHANGE" value="11" enum="MIDIMessage">
- MIDI control change message.
+ MIDI control change message. This message is sent when a controller value changes. Controllers include devices such as pedals and levers.
</constant>
<constant name="MIDI_MESSAGE_PROGRAM_CHANGE" value="12" enum="MIDIMessage">
- MIDI program change message.
+ MIDI program change message. This message sent when the program patch number changes.
</constant>
<constant name="MIDI_MESSAGE_CHANNEL_PRESSURE" value="13" enum="MIDIMessage">
- MIDI channel pressure message.
+ MIDI channel pressure message. This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch as it indicates the highest pressure across all keys.
</constant>
<constant name="MIDI_MESSAGE_PITCH_BEND" value="14" enum="MIDIMessage">
- MIDI pitch bend message.
+ MIDI pitch bend message. This message is sent to indicate a change in the pitch bender (wheel or lever, typically).
+ </constant>
+ <constant name="MIDI_MESSAGE_SYSTEM_EXCLUSIVE" value="240" enum="MIDIMessage">
+ MIDI system exclusive message. This has behavior exclusive to the device you're receiving input from. Getting this data is not implemented in Godot.
+ </constant>
+ <constant name="MIDI_MESSAGE_QUARTER_FRAME" value="241" enum="MIDIMessage">
+ MIDI quarter frame message. Contains timing information that is used to synchronize MIDI devices. Getting this data is not implemented in Godot.
+ </constant>
+ <constant name="MIDI_MESSAGE_SONG_POSITION_POINTER" value="242" enum="MIDIMessage">
+ MIDI song position pointer message. Gives the number of 16th notes since the start of the song. Getting this data is not implemented in Godot.
+ </constant>
+ <constant name="MIDI_MESSAGE_SONG_SELECT" value="243" enum="MIDIMessage">
+ MIDI song select message. Specifies which sequence or song is to be played. Getting this data is not implemented in Godot.
+ </constant>
+ <constant name="MIDI_MESSAGE_TUNE_REQUEST" value="246" enum="MIDIMessage">
+ MIDI tune request message. Upon receiving a tune request, all analog synthesizers should tune their oscillators.
+ </constant>
+ <constant name="MIDI_MESSAGE_TIMING_CLOCK" value="248" enum="MIDIMessage">
+ MIDI timing clock message. Sent 24 times per quarter note when synchronization is required.
+ </constant>
+ <constant name="MIDI_MESSAGE_START" value="250" enum="MIDIMessage">
+ MIDI start message. Start the current sequence playing. This message will be followed with Timing Clocks.
+ </constant>
+ <constant name="MIDI_MESSAGE_CONTINUE" value="251" enum="MIDIMessage">
+ MIDI continue message. Continue at the point the sequence was stopped.
+ </constant>
+ <constant name="MIDI_MESSAGE_STOP" value="252" enum="MIDIMessage">
+ MIDI stop message. Stop the current sequence.
+ </constant>
+ <constant name="MIDI_MESSAGE_ACTIVE_SENSING" value="254" enum="MIDIMessage">
+ MIDI active sensing message. This message is intended to be sent repeatedly to tell the receiver that a connection is alive.
+ </constant>
+ <constant name="MIDI_MESSAGE_SYSTEM_RESET" value="255" enum="MIDIMessage">
+ MIDI system reset message. Reset all receivers in the system to power-up status. It should not be sent on power-up itself.
</constant>
<constant name="OK" value="0" enum="Error">
Methods that return [enum Error] return [constant OK] when no error occurred. Note that many functions don't return an error code but will print error messages to standard output.
@@ -2663,31 +2702,31 @@
<constant name="TYPE_ARRAY" value="25" enum="Variant.Type">
Variable is of type [Array].
</constant>
- <constant name="TYPE_RAW_ARRAY" value="26" enum="Variant.Type">
+ <constant name="TYPE_PACKED_BYTE_ARRAY" value="26" enum="Variant.Type">
Variable is of type [PackedByteArray].
</constant>
- <constant name="TYPE_INT32_ARRAY" value="27" enum="Variant.Type">
+ <constant name="TYPE_PACKED_INT32_ARRAY" value="27" enum="Variant.Type">
Variable is of type [PackedInt32Array].
</constant>
- <constant name="TYPE_INT64_ARRAY" value="28" enum="Variant.Type">
+ <constant name="TYPE_PACKED_INT64_ARRAY" value="28" enum="Variant.Type">
Variable is of type [PackedInt64Array].
</constant>
- <constant name="TYPE_FLOAT32_ARRAY" value="29" enum="Variant.Type">
+ <constant name="TYPE_PACKED_FLOAT32_ARRAY" value="29" enum="Variant.Type">
Variable is of type [PackedFloat32Array].
</constant>
- <constant name="TYPE_FLOAT64_ARRAY" value="30" enum="Variant.Type">
+ <constant name="TYPE_PACKED_FLOAT64_ARRAY" value="30" enum="Variant.Type">
Variable is of type [PackedFloat64Array].
</constant>
- <constant name="TYPE_STRING_ARRAY" value="31" enum="Variant.Type">
+ <constant name="TYPE_PACKED_STRING_ARRAY" value="31" enum="Variant.Type">
Variable is of type [PackedStringArray].
</constant>
- <constant name="TYPE_VECTOR2_ARRAY" value="32" enum="Variant.Type">
+ <constant name="TYPE_PACKED_VECTOR2_ARRAY" value="32" enum="Variant.Type">
Variable is of type [PackedVector2Array].
</constant>
- <constant name="TYPE_VECTOR3_ARRAY" value="33" enum="Variant.Type">
+ <constant name="TYPE_PACKED_VECTOR3_ARRAY" value="33" enum="Variant.Type">
Variable is of type [PackedVector3Array].
</constant>
- <constant name="TYPE_COLOR_ARRAY" value="34" enum="Variant.Type">
+ <constant name="TYPE_PACKED_COLOR_ARRAY" value="34" enum="Variant.Type">
Variable is of type [PackedColorArray].
</constant>
<constant name="TYPE_MAX" value="35" enum="Variant.Type">
diff --git a/doc/classes/AudioEffectRecord.xml b/doc/classes/AudioEffectRecord.xml
index 0b6c5287cf..d523472b8e 100644
--- a/doc/classes/AudioEffectRecord.xml
+++ b/doc/classes/AudioEffectRecord.xml
@@ -1,10 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AudioEffectRecord" inherits="AudioEffect" version="4.0">
<brief_description>
- Audio effect used for recording sound from a microphone.
+ Audio effect used for recording the sound from an audio bus.
</brief_description>
<description>
- Allows the user to record sound from a microphone. It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.
+ Allows the user to record the sound from an audio bus. This can include all audio output by Godot when used on the "Master" audio bus.
+ Can be used (with an [AudioStreamMicrophone]) to record from a microphone.
+ It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.
</description>
<tutorials>
<link title="Recording with microphone">$DOCS_URL/tutorials/audio/recording_with_microphone.html</link>
diff --git a/doc/classes/BaseMaterial3D.xml b/doc/classes/BaseMaterial3D.xml
index aa2ffae48c..6f660c9a88 100644
--- a/doc/classes/BaseMaterial3D.xml
+++ b/doc/classes/BaseMaterial3D.xml
@@ -53,7 +53,6 @@
<argument index="1" name="texture" type="Texture2D" />
<description>
Sets the texture for the slot specified by [code]param[/code]. See [enum TextureParam] for available slots.
- [b]Note:[/b] When setting a roughness or metallic texture on a material that has no texture assigned to those slots, [member roughness] or [member metallic] will automatically be set to [code]1.0[/code] to ensure correct appearance.
</description>
</method>
</methods>
@@ -80,13 +79,16 @@
Threshold at which the alpha scissor will discard values.
</member>
<member name="anisotropy" type="float" setter="set_anisotropy" getter="get_anisotropy" default="0.0">
- The strength of the anisotropy effect.
+ The strength of the anisotropy effect. This is multiplied by [member anisotropy_flowmap]'s alpha channel if a texture is defined there and the texture contains an alpha channel.
</member>
<member name="anisotropy_enabled" type="bool" setter="set_feature" getter="get_feature" default="false">
- If [code]true[/code], anisotropy is enabled. Changes the shape of the specular blob and aligns it to tangent space. Mesh tangents are needed for this to work. If the mesh does not contain tangents the anisotropy effect will appear broken.
+ If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of the specular blob and aligns it to tangent space. This is useful for brushed aluminium and hair reflections.
+ [b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh does not contain tangents, the anisotropy effect will appear broken.
+ [b]Note:[/b] Material anisotropy should not to be confused with anisotropic texture filtering, which can be enabled by setting [member texture_filter] to [constant TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC].
</member>
<member name="anisotropy_flowmap" type="Texture2D" setter="set_texture" getter="get_texture">
- Texture that offsets the tangent map for anisotropy calculations.
+ Texture that offsets the tangent map for anisotropy calculations and optionally controls the anisotropy effect (if an alpha channel is present). The flowmap texture is expected to be a derivative map, with the red channel representing distortion on the X axis and green channel representing distortion on the Y axis. Values below 0.5 will result in negative distortion, whereas values above 0.5 will result in positive distortion.
+ If present, the texture's alpha channel will be used to multiply the strength of the [member anisotropy] effect. Fully opaque pixels will keep the anisotropy effect's original strength while fully transparent pixels will disable the anisotropy effect entirely. The flowmap texture's blue channel is ignored.
</member>
<member name="ao_enabled" type="bool" setter="set_feature" getter="get_feature" default="false">
If [code]true[/code], ambient occlusion is enabled. Ambient occlusion darkens areas based on the [member ao_texture].
@@ -137,7 +139,7 @@
Texture that defines the strength of the clearcoat effect and the glossiness of the clearcoat. Strength is specified in the red channel while glossiness is specified in the green channel.
</member>
<member name="cull_mode" type="int" setter="set_cull_mode" getter="get_cull_mode" enum="BaseMaterial3D.CullMode" default="0">
- Which side of the object is not drawn when backfaces are rendered. See [enum CullMode].
+ Determines which side of the triangle to cull depending on whether the triangle faces towards or away from the camera. See [enum CullMode].
</member>
<member name="depth_draw_mode" type="int" setter="set_depth_draw_mode" getter="get_depth_draw_mode" enum="BaseMaterial3D.DepthDrawMode" default="0">
Determines when depth rendering takes place. See [enum DepthDrawMode]. See also [member transparency].
@@ -156,7 +158,7 @@
</member>
<member name="detail_normal" type="Texture2D" setter="set_texture" getter="get_texture">
Texture that specifies the per-pixel normal of the detail overlay.
- [b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
+ [b]Note:[/b] Godot expects the normal map to use X+, Y+, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
</member>
<member name="detail_uv_layer" type="int" setter="set_detail_uv" getter="get_detail_uv" enum="BaseMaterial3D.DetailUV" default="0">
Specifies whether to use [code]UV[/code] or [code]UV2[/code] for the detail layer. See [enum DetailUV] for options.
@@ -230,7 +232,6 @@
</member>
<member name="metallic" type="float" setter="set_metallic" getter="get_metallic" default="0.0">
A high value makes the material appear more like a metal. Non-metals use their albedo as the diffuse color and add diffuse to the specular reflection. With non-metals, the reflection appears on top of the albedo color. Metals use their albedo as a multiplier to the specular reflection and set the diffuse color to black resulting in a tinted reflection. Materials work better when fully metal or fully non-metal, values between [code]0[/code] and [code]1[/code] should only be used for blending between metal and non-metal sections. To alter the amount of reflection use [member roughness].
- [b]Note:[/b] [member metallic] is automatically set to [code]1.0[/code] when assigning a metallic texture using [method set_texture].
</member>
<member name="metallic_specular" type="float" setter="set_specular" getter="get_specular" default="0.5">
Sets the size of the specular lobe. The specular lobe is the bright spot that is reflected from light sources.
@@ -254,7 +255,7 @@
<member name="normal_texture" type="Texture2D" setter="set_texture" getter="get_texture">
Texture used to specify the normal at a given pixel. The [code]normal_texture[/code] only uses the red and green channels; the blue and alpha channels are ignored. The normal read from [code]normal_texture[/code] is oriented around the surface normal provided by the [Mesh].
[b]Note:[/b] The mesh must have both normals and tangents defined in its vertex data. Otherwise, the normal map won't render correctly and will only appear to darken the whole surface. If creating geometry with [SurfaceTool], you can use [method SurfaceTool.generate_normals] and [method SurfaceTool.generate_tangents] to automatically generate normals and tangents respectively.
- [b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
+ [b]Note:[/b] Godot expects the normal map to use X+, Y+, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
</member>
<member name="orm_texture" type="Texture2D" setter="set_texture" getter="get_texture">
</member>
@@ -303,7 +304,6 @@
</member>
<member name="roughness" type="float" setter="set_roughness" getter="get_roughness" default="1.0">
Surface reflection. A value of [code]0[/code] represents a perfect mirror while a value of [code]1[/code] completely blurs the reflection. See also [member metallic].
- [b]Note:[/b] [member roughness] is automatically set to [code]1.0[/code] when assigning a roughness texture using [method set_texture].
</member>
<member name="roughness_texture" type="Texture2D" setter="set_texture" getter="get_texture">
Texture used to control the roughness per-pixel. Multiplied by [member roughness].
@@ -579,10 +579,10 @@
No depth draw.
</constant>
<constant name="CULL_BACK" value="0" enum="CullMode">
- Default cull mode. The back of the object is culled when not visible.
+ Default cull mode. The back of the object is culled when not visible. Back face triangles will be culled when facing the camera. This results in only the front side of triangles being drawn. For closed-surface meshes this means that only the exterior of the mesh will be visible.
</constant>
<constant name="CULL_FRONT" value="1" enum="CullMode">
- The front of the object is culled when not visible.
+ Front face triangles will be culled when facing the camera. This results in only the back side of triangles being drawn. For closed-surface meshes this means that the interior of the mesh will be drawn instead of the exterior.
</constant>
<constant name="CULL_DISABLED" value="2" enum="CullMode">
No culling is performed.
diff --git a/doc/classes/Camera2D.xml b/doc/classes/Camera2D.xml
index 1bcc9689aa..90663bfaa5 100644
--- a/doc/classes/Camera2D.xml
+++ b/doc/classes/Camera2D.xml
@@ -142,7 +142,7 @@
Top scroll limit in pixels. The camera stops moving when reaching this value, but [member offset] can push the view past the limit.
</member>
<member name="offset" type="Vector2" setter="set_offset" getter="get_offset" default="Vector2(0, 0)">
- The camera's relative offset. Useful for looking around or camera shake animations. The offseted camera can go past the limits defined in [member limit_top], [member limit_bottom], [member limit_left] and [member limit_right].
+ The camera's relative offset. Useful for looking around or camera shake animations. The offsetted camera can go past the limits defined in [member limit_top], [member limit_bottom], [member limit_left] and [member limit_right].
</member>
<member name="process_callback" type="int" setter="set_process_callback" getter="get_process_callback" enum="Camera2D.Camera2DProcessCallback" default="1">
The camera's process callback. See [enum Camera2DProcessCallback].
diff --git a/doc/classes/CanvasItem.xml b/doc/classes/CanvasItem.xml
index cf6a8bad5e..44845947b1 100644
--- a/doc/classes/CanvasItem.xml
+++ b/doc/classes/CanvasItem.xml
@@ -44,7 +44,7 @@
<argument index="6" name="width" type="float" default="1.0" />
<argument index="7" name="antialiased" type="bool" default="false" />
<description>
- Draws an arc between the given angles. The larger the value of [code]point_count[/code], the smoother the curve.
+ Draws a unfilled arc between the given angles. The larger the value of [code]point_count[/code], the smoother the curve. See also [method draw_circle].
</description>
</method>
<method name="draw_char" qualifiers="const">
@@ -67,7 +67,7 @@
<argument index="1" name="radius" type="float" />
<argument index="2" name="color" type="Color" />
<description>
- Draws a colored circle.
+ Draws a colored, unfilled circle. See also [method draw_arc], [method draw_polyline] and [method draw_polygon].
</description>
</method>
<method name="draw_colored_polygon">
@@ -77,7 +77,7 @@
<argument index="2" name="uvs" type="PackedVector2Array" default="PackedVector2Array()" />
<argument index="3" name="texture" type="Texture2D" default="null" />
<description>
- Draws a colored polygon of any amount of points, convex or concave.
+ Draws a colored polygon of any amount of points, convex or concave. Unlike [method draw_polygon], a single color must be specified for the whole polygon.
</description>
</method>
<method name="draw_end_animation">
@@ -93,7 +93,7 @@
<argument index="2" name="color" type="Color" />
<argument index="3" name="width" type="float" default="1.0" />
<description>
- Draws a line from a 2D point to another, with a given color and width.
+ Draws a line from a 2D point to another, with a given color and width. See also [method draw_multiline] and [method draw_polyline].
</description>
</method>
<method name="draw_mesh">
@@ -115,7 +115,7 @@
<argument index="4" name="outline" type="float" default="0.0" />
<argument index="5" name="pixel_range" type="float" default="4.0" />
<description>
- Draws a textured rectangle region of the multi-channel signed distance field texture at a given position, optionally modulated by a color. See [method FontData.set_multichannel_signed_distance_field] for more information and caveats about MSDF font rendering.
+ Draws a textured rectangle region of the multi-channel signed distance field texture at a given position, optionally modulated by a color. See [member FontData.multichannel_signed_distance_field] for more information and caveats about MSDF font rendering.
If [code]outline[/code] is positive, each alpha channel value of pixel in region is set to maximum value of true distance in the [code]outline[/code] radius.
Value of the [code]pixel_range[/code] should the same that was used during distance field texture generation.
</description>
@@ -126,7 +126,7 @@
<argument index="1" name="color" type="Color" />
<argument index="2" name="width" type="float" default="1.0" />
<description>
- Draws multiple, parallel lines with a uniform [code]color[/code].
+ Draws multiple disconnected lines with a uniform [code]color[/code]. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw interconnected lines, use [method draw_polyline] instead.
</description>
</method>
<method name="draw_multiline_colors">
@@ -135,7 +135,7 @@
<argument index="1" name="colors" type="PackedColorArray" />
<argument index="2" name="width" type="float" default="1.0" />
<description>
- Draws multiple, parallel lines with a uniform [code]width[/code] and segment-by-segment coloring. Colors assigned to line segments match by index between [code]points[/code] and [code]colors[/code].
+ Draws multiple disconnected lines with a uniform [code]width[/code] and segment-by-segment coloring. Colors assigned to line segments match by index between [code]points[/code] and [code]colors[/code]. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw interconnected lines, use [method draw_polyline_colors] instead.
</description>
</method>
<method name="draw_multiline_string" qualifiers="const">
@@ -170,7 +170,7 @@
<argument index="2" name="uvs" type="PackedVector2Array" default="PackedVector2Array()" />
<argument index="3" name="texture" type="Texture2D" default="null" />
<description>
- Draws a polygon of any amount of points, convex or concave.
+ Draws a solid polygon of any amount of points, convex or concave. Unlike [method draw_colored_polygon], each point's color can be changed individually. See also [method draw_polyline] and [method draw_polyline_colors].
</description>
</method>
<method name="draw_polyline">
@@ -180,7 +180,7 @@
<argument index="2" name="width" type="float" default="1.0" />
<argument index="3" name="antialiased" type="bool" default="false" />
<description>
- Draws interconnected line segments with a uniform [code]color[/code] and [code]width[/code].
+ Draws interconnected line segments with a uniform [code]color[/code] and [code]width[/code]. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw disconnected lines, use [method draw_multiline] instead. See also [method draw_polygon].
</description>
</method>
<method name="draw_polyline_colors">
@@ -190,7 +190,7 @@
<argument index="2" name="width" type="float" default="1.0" />
<argument index="3" name="antialiased" type="bool" default="false" />
<description>
- Draws interconnected line segments with a uniform [code]width[/code] and segment-by-segment coloring. Colors assigned to line segments match by index between [code]points[/code] and [code]colors[/code].
+ Draws interconnected line segments with a uniform [code]width[/code] and segment-by-segment coloring. Colors assigned to line segments match by index between [code]points[/code] and [code]colors[/code]. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw disconnected lines, use [method draw_multiline_colors] instead. See also [method draw_polygon].
</description>
</method>
<method name="draw_primitive">
@@ -201,7 +201,7 @@
<argument index="3" name="texture" type="Texture2D" default="null" />
<argument index="4" name="width" type="float" default="1.0" />
<description>
- Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle, and 4 points for a quad.
+ Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle, and 4 points for a quad. If 0 points or more than 4 points are specified, nothing will be drawn and an error message will be printed. See also [method draw_line], [method draw_polyline], [method draw_polygon], and [method draw_rect].
</description>
</method>
<method name="draw_rect">
@@ -382,7 +382,7 @@
<method name="hide">
<return type="void" />
<description>
- Hide the [CanvasItem] if it's currently visible.
+ Hide the [CanvasItem] if it's currently visible. This is equivalent to setting [member visible] to [code]false[/code].
</description>
</method>
<method name="is_local_transform_notification_enabled" qualifiers="const">
@@ -434,7 +434,7 @@
<method name="show">
<return type="void" />
<description>
- Show the [CanvasItem] if it's currently hidden. For controls that inherit [Popup], the correct way to make them visible is to call one of the multiple [code]popup*()[/code] functions instead.
+ Show the [CanvasItem] if it's currently hidden. This is equivalent to setting [member visible] to [code]true[/code]. For controls that inherit [Popup], the correct way to make them visible is to call one of the multiple [code]popup*()[/code] functions instead.
</description>
</method>
<method name="update">
diff --git a/doc/classes/CharacterBody2D.xml b/doc/classes/CharacterBody2D.xml
index 0f573dcd66..28a9107db6 100644
--- a/doc/classes/CharacterBody2D.xml
+++ b/doc/classes/CharacterBody2D.xml
@@ -95,37 +95,37 @@
<method name="is_on_ceiling" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided with the ceiling on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided with the ceiling on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "ceiling" or not.
</description>
</method>
<method name="is_on_ceiling_only" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided only with the ceiling on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided only with the ceiling on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "ceiling" or not.
</description>
</method>
<method name="is_on_floor" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided with the floor on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided with the floor on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "floor" or not.
</description>
</method>
<method name="is_on_floor_only" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided only with the floor on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided only with the floor on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "floor" or not.
</description>
</method>
<method name="is_on_wall" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided with a wall on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided with a wall on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "wall" or not.
</description>
</method>
<method name="is_on_wall_only" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided only with a wall on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided only with a wall on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "wall" or not.
</description>
</method>
<method name="move_and_slide">
@@ -135,7 +135,7 @@
This method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's [code]delta[/code] value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.
Modifies [member motion_velocity] if a slide collision occurred. To get the latest collision call [method get_last_slide_collision], for detailed information about collisions that occurred, use [method get_slide_collision].
When the body touches a moving platform, the platform's velocity is automatically added to the body motion. If a collision occurs due to the platform's motion, it will always be first in the slide collisions.
- The general behaviour and available properties change according to the [member motion_mode].
+ The general behavior and available properties change according to the [member motion_mode].
Returns [code]true[/code] if the body collided, otherwise, returns [code]false[/code].
</description>
</method>
@@ -172,13 +172,13 @@
Maximum number of times the body can change direction before it stops when calling [method move_and_slide].
</member>
<member name="motion_mode" type="int" setter="set_motion_mode" getter="get_motion_mode" enum="CharacterBody2D.MotionMode" default="0">
- Sets the motion mode which defines the behaviour of [method move_and_slide]. See [enum MotionMode] constants for available modes.
+ Sets the motion mode which defines the behavior of [method move_and_slide]. See [enum MotionMode] constants for available modes.
</member>
<member name="motion_velocity" type="Vector2" setter="set_motion_velocity" getter="get_motion_velocity" default="Vector2(0, 0)">
Current velocity vector in pixels per second, used and modified during calls to [method move_and_slide].
</member>
<member name="moving_platform_apply_velocity_on_leave" type="int" setter="set_moving_platform_apply_velocity_on_leave" getter="get_moving_platform_apply_velocity_on_leave" enum="CharacterBody2D.MovingPlatformApplyVelocityOnLeave" default="0">
- Sets the behaviour to apply when you leave a moving platform. By default, to be physically accurate, when you leave the last platform velocity is applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for available behaviour.
+ Sets the behavior to apply when you leave a moving platform. By default, to be physically accurate, when you leave the last platform velocity is applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for available behavior.
</member>
<member name="moving_platform_floor_layers" type="int" setter="set_moving_platform_floor_layers" getter="get_moving_platform_floor_layers" default="4294967295">
Collision layers that will be included for detecting floor bodies that will act as moving platforms to be followed by the [CharacterBody2D]. By default, all floor bodies are detected and propagate their velocity.
diff --git a/doc/classes/CharacterBody3D.xml b/doc/classes/CharacterBody3D.xml
index c70ce8acf9..819190fd69 100644
--- a/doc/classes/CharacterBody3D.xml
+++ b/doc/classes/CharacterBody3D.xml
@@ -81,37 +81,37 @@
<method name="is_on_ceiling" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided with the ceiling on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided with the ceiling on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "ceiling" or not.
</description>
</method>
<method name="is_on_ceiling_only" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided only with the ceiling on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided only with the ceiling on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "ceiling" or not.
</description>
</method>
<method name="is_on_floor" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided with the floor on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided with the floor on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "floor" or not.
</description>
</method>
<method name="is_on_floor_only" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided only with the floor on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided only with the floor on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "floor" or not.
</description>
</method>
<method name="is_on_wall" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided with a wall on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided with a wall on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "wall" or not.
</description>
</method>
<method name="is_on_wall_only" qualifiers="const">
<return type="bool" />
<description>
- Returns [code]true[/code] if the body collided only with a wall on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code].
+ Returns [code]true[/code] if the body collided only with a wall on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The [member up_direction] and [member floor_max_angle] are used to determine whether a surface is "wall" or not.
</description>
</method>
<method name="move_and_slide">
@@ -154,13 +154,13 @@
Maximum number of times the body can change direction before it stops when calling [method move_and_slide].
</member>
<member name="motion_mode" type="int" setter="set_motion_mode" getter="get_motion_mode" enum="CharacterBody3D.MotionMode" default="0">
- Sets the motion mode which defines the behaviour of [method move_and_slide]. See [enum MotionMode] constants for available modes.
+ Sets the motion mode which defines the behavior of [method move_and_slide]. See [enum MotionMode] constants for available modes.
</member>
<member name="motion_velocity" type="Vector3" setter="set_motion_velocity" getter="get_motion_velocity" default="Vector3(0, 0, 0)">
Current velocity vector (typically meters per second), used and modified during calls to [method move_and_slide].
</member>
<member name="moving_platform_apply_velocity_on_leave" type="int" setter="set_moving_platform_apply_velocity_on_leave" getter="get_moving_platform_apply_velocity_on_leave" enum="CharacterBody3D.MovingPlatformApplyVelocityOnLeave" default="0">
- Sets the behaviour to apply when you leave a moving platform. By default, to be physically accurate, when you leave the last platform velocity is applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for available behaviour.
+ Sets the behavior to apply when you leave a moving platform. By default, to be physically accurate, when you leave the last platform velocity is applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for available behavior.
</member>
<member name="moving_platform_floor_layers" type="int" setter="set_moving_platform_floor_layers" getter="get_moving_platform_floor_layers" default="4294967295">
Collision layers that will be included for detecting floor bodies that will act as moving platforms to be followed by the [CharacterBody2D]. By default, all floor bodies are detected and propagate their velocity.
diff --git a/doc/classes/CodeEdit.xml b/doc/classes/CodeEdit.xml
index 59da64314b..697b0443f1 100644
--- a/doc/classes/CodeEdit.xml
+++ b/doc/classes/CodeEdit.xml
@@ -234,7 +234,7 @@
<method name="get_folded_lines" qualifiers="const">
<return type="int[]" />
<description>
- Return all lines that are current folded.
+ Returns all lines that are current folded.
</description>
</method>
<method name="get_text_for_code_completion" qualifiers="const">
@@ -288,7 +288,7 @@
<argument index="0" name="line" type="int" />
<argument index="1" name="column" type="int" default="-1" />
<description>
- Return delimiter index if [code]line[/code] [code]column[/code] is in a comment. If [code]column[/code] is not provided, will return delimiter index if the entire [code]line[/code] is a comment. Otherwise [code]-1[/code].
+ Returns delimiter index if [code]line[/code] [code]column[/code] is in a comment. If [code]column[/code] is not provided, will return delimiter index if the entire [code]line[/code] is a comment. Otherwise [code]-1[/code].
</description>
</method>
<method name="is_in_string" qualifiers="const">
@@ -296,7 +296,7 @@
<argument index="0" name="line" type="int" />
<argument index="1" name="column" type="int" default="-1" />
<description>
- Return the delimiter index if [code]line[/code] [code]column[/code] is in a string. If [code]column[/code] is not provided, will return the delimiter index if the entire [code]line[/code] is a string. Otherwise [code]-1[/code].
+ Returns the delimiter index if [code]line[/code] [code]column[/code] is in a string. If [code]column[/code] is not provided, will return the delimiter index if the entire [code]line[/code] is a string. Otherwise [code]-1[/code].
</description>
</method>
<method name="is_line_bookmarked" qualifiers="const">
diff --git a/doc/classes/CodeHighlighter.xml b/doc/classes/CodeHighlighter.xml
index 064be0c29d..efd8f618e7 100644
--- a/doc/classes/CodeHighlighter.xml
+++ b/doc/classes/CodeHighlighter.xml
@@ -76,21 +76,21 @@
<return type="bool" />
<argument index="0" name="start_key" type="String" />
<description>
- Return [code]true[/code] if the start key exists, else [code]false[/code].
+ Returns [code]true[/code] if the start key exists, else [code]false[/code].
</description>
</method>
<method name="has_keyword_color" qualifiers="const">
<return type="bool" />
<argument index="0" name="keyword" type="String" />
<description>
- Return [code]true[/code] if the keyword exists, else [code]false[/code].
+ Returns [code]true[/code] if the keyword exists, else [code]false[/code].
</description>
</method>
<method name="has_member_keyword_color" qualifiers="const">
<return type="bool" />
<argument index="0" name="member_keyword" type="String" />
<description>
- Return [code]true[/code] if the member keyword exists, else [code]false[/code].
+ Returns [code]true[/code] if the member keyword exists, else [code]false[/code].
</description>
</method>
<method name="remove_color_region">
diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml
index 21d17969e2..f3fcd90f51 100644
--- a/doc/classes/Color.xml
+++ b/doc/classes/Color.xml
@@ -4,7 +4,7 @@
Color in RGBA format using floats on the range of 0 to 1.
</brief_description>
<description>
- A color represented by red, green, blue, and alpha (RGBA) components. The alpha component is often used for transparency. Values are in floating-point and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may accept values greater than 1 (overbright or HDR colors).
+ A color represented by red, green, blue, and alpha (RGBA) components. The alpha component is often used for opacity. Values are in floating-point and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may accept values greater than 1 (overbright or HDR colors).
You can also create a color from standardized color names by using the string constructor or directly using the color constants defined here. The standardized color set is based on the [url=https://en.wikipedia.org/wiki/X11_color_names]X11 color names[/url].
If you want to supply values in a range of 0 to 255, you should use [method @GDScript.Color8].
[b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/code] if it's equal to [code]Color(0, 0, 0, 1)[/code] (opaque black). Otherwise, a Color will always evaluate to [code]true[/code].
@@ -30,10 +30,10 @@
Constructs a [Color] from an existing color, but with a custom alpha value.
[codeblocks]
[gdscript]
- var red = Color(Color.red, 0.5) # 50% transparent red.
+ var red = Color(Color.red, 0.2) # 20% opaque red.
[/gdscript]
[csharp]
- var red = new Color(Colors.Red, 0.5f); // 50% transparent red.
+ var red = new Color(Colors.Red, 0.2f); // 20% opaque red.
[/csharp]
[/codeblocks]
</description>
@@ -405,7 +405,7 @@
</methods>
<members>
<member name="a" type="float" setter="" getter="" default="1.0">
- The color's alpha (transparency) component, typically on the range of 0 to 1.
+ The color's alpha component, typically on the range of 0 to 1. A value of 0 means that the color is fully transparent. A value of 1 means that the color is fully opaque.
</member>
<member name="a8" type="int" setter="" getter="" default="255">
Wrapper for [member a] that uses the range 0 to 255 instead of 0 to 1.
diff --git a/doc/classes/ColorPicker.xml b/doc/classes/ColorPicker.xml
index 22439f6ca5..cb543afaba 100644
--- a/doc/classes/ColorPicker.xml
+++ b/doc/classes/ColorPicker.xml
@@ -41,7 +41,7 @@
If [code]true[/code], the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues).
</member>
<member name="edit_alpha" type="bool" setter="set_edit_alpha" getter="is_editing_alpha" default="true">
- If [code]true[/code], shows an alpha channel slider (transparency).
+ If [code]true[/code], shows an alpha channel slider (opacity).
</member>
<member name="hsv_mode" type="bool" setter="set_hsv_mode" getter="is_hsv_mode" default="false">
If [code]true[/code], allows editing the color with Hue/Saturation/Value sliders.
diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml
index 39f8980b2c..3d8199831d 100644
--- a/doc/classes/Control.xml
+++ b/doc/classes/Control.xml
@@ -201,7 +201,7 @@
<argument index="1" name="text" type="String" />
<description>
User defined BiDi algorithm override function.
- Return [code]Array[/code] of [code]Vector2i[/code] text ranges, in the left-to-right order. Ranges should cover full source [code]text[/code] without overlaps. BiDi algorithm will be used on each range separately.
+ Returns [code]Array[/code] of [code]Vector2i[/code] text ranges, in the left-to-right order. Ranges should cover full source [code]text[/code] without overlaps. BiDi algorithm will be used on each range separately.
</description>
</method>
<method name="accept_event">
diff --git a/doc/classes/ConvexPolygonShape2D.xml b/doc/classes/ConvexPolygonShape2D.xml
index ec7583e68b..62f8f00a82 100644
--- a/doc/classes/ConvexPolygonShape2D.xml
+++ b/doc/classes/ConvexPolygonShape2D.xml
@@ -20,7 +20,7 @@
</methods>
<members>
<member name="points" type="PackedVector2Array" setter="set_points" getter="get_points" default="PackedVector2Array()">
- The polygon's list of vertices. Can be in either clockwise or counterclockwise order.
+ The polygon's list of vertices. Can be in either clockwise or counterclockwise order. Only set this property with convex hull points, use [method set_point_cloud] to generate a convex hull shape from concave shape points.
</member>
</members>
</class>
diff --git a/doc/classes/CryptoKey.xml b/doc/classes/CryptoKey.xml
index 111da858ea..9e56a41fee 100644
--- a/doc/classes/CryptoKey.xml
+++ b/doc/classes/CryptoKey.xml
@@ -14,7 +14,7 @@
<method name="is_public_only" qualifiers="const">
<return type="bool" />
<description>
- Return [code]true[/code] if this CryptoKey only has the public part, and not the private one.
+ Returns [code]true[/code] if this CryptoKey only has the public part, and not the private one.
</description>
</method>
<method name="load">
diff --git a/doc/classes/DisplayServer.xml b/doc/classes/DisplayServer.xml
index 1ca69057b4..a41875385c 100644
--- a/doc/classes/DisplayServer.xml
+++ b/doc/classes/DisplayServer.xml
@@ -392,7 +392,7 @@
<method name="screen_get_max_scale" qualifiers="const">
<return type="float" />
<description>
- Return the greatest scale factor of all screens.
+ Returns the greatest scale factor of all screens.
[b]Note:[/b] On macOS returned value is [code]2.0[/code] if there is at least one hiDPI (Retina) screen in the system, and [code]1.0[/code] in all other cases.
[b]Note:[/b] This method is implemented on macOS.
</description>
@@ -413,7 +413,7 @@
<return type="float" />
<argument index="0" name="screen" type="int" default="-1" />
<description>
- Return the scale factor of the specified screen by index.
+ Returns the scale factor of the specified screen by index.
[b]Note:[/b] On macOS returned value is [code]2.0[/code] for hiDPI (Retina) screen, and [code]1.0[/code] for all other cases.
[b]Note:[/b] This method is implemented on macOS.
</description>
diff --git a/doc/classes/EditorExportPlugin.xml b/doc/classes/EditorExportPlugin.xml
index 3830bfc60e..9c01921df1 100644
--- a/doc/classes/EditorExportPlugin.xml
+++ b/doc/classes/EditorExportPlugin.xml
@@ -96,12 +96,22 @@
Adds a static lib from the given [code]path[/code] to the iOS project.
</description>
</method>
+ <method name="add_osx_plugin_file">
+ <return type="void" />
+ <argument index="0" name="path" type="String" />
+ <description>
+ Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] directory of macOS app bundle.
+ [b]Note:[/b] This is useful only for macOS exports.
+ </description>
+ </method>
<method name="add_shared_object">
<return type="void" />
<argument index="0" name="path" type="String" />
<argument index="1" name="tags" type="PackedStringArray" />
<description>
- Adds a shared object with the given [code]tags[/code] and destination [code]path[/code].
+ Adds a shared object or a directory containing only shared objects with the given [code]tags[/code] and destination [code]path[/code].
+ [b]Note:[/b] In case of macOS exports, those shared objects will be added to [code]Frameworks[/code] directory of app bundle.
+ In case of a directory code-sign will error if you place non code object in directory.
</description>
</method>
<method name="skip">
diff --git a/doc/classes/EditorImportPlugin.xml b/doc/classes/EditorImportPlugin.xml
index 1f98781bbd..50c227dc0a 100644
--- a/doc/classes/EditorImportPlugin.xml
+++ b/doc/classes/EditorImportPlugin.xml
@@ -163,7 +163,7 @@
}
[/csharp]
[/codeblocks]
- Return [code]true[/code] to make all options always visible.
+ Returns [code]true[/code] to make all options always visible.
</description>
</method>
<method name="_get_preset_count" qualifiers="virtual const">
diff --git a/doc/classes/EditorInspector.xml b/doc/classes/EditorInspector.xml
index dbfbaf103d..39589138fa 100644
--- a/doc/classes/EditorInspector.xml
+++ b/doc/classes/EditorInspector.xml
@@ -33,6 +33,8 @@
</signal>
<signal name="property_keyed">
<argument index="0" name="property" type="String" />
+ <argument index="1" name="value" type="Variant" />
+ <argument index="2" name="advance" type="bool" />
<description>
Emitted when a property is keyed in the inspector. Properties can be keyed by clicking the "key" icon next to a property when the Animation panel is toggled.
</description>
diff --git a/doc/classes/EditorResourcePicker.xml b/doc/classes/EditorResourcePicker.xml
index b26b6f9527..f374b5f425 100644
--- a/doc/classes/EditorResourcePicker.xml
+++ b/doc/classes/EditorResourcePicker.xml
@@ -11,7 +11,7 @@
</tutorials>
<methods>
<method name="_handle_menu_selected" qualifiers="virtual">
- <return type="void" />
+ <return type="bool" />
<argument index="0" name="id" type="int" />
<description>
This virtual method can be implemented to handle context menu items not handled by default. See [method _set_create_options].
diff --git a/doc/classes/EditorSceneFormatImporter.xml b/doc/classes/EditorSceneFormatImporter.xml
index 5b5d6c4598..63f4cde5f3 100644
--- a/doc/classes/EditorSceneFormatImporter.xml
+++ b/doc/classes/EditorSceneFormatImporter.xml
@@ -37,7 +37,8 @@
<return type="Animation" />
<argument index="0" name="path" type="String" />
<argument index="1" name="flags" type="int" />
- <argument index="2" name="bake_fps" type="int" />
+ <argument index="2" name="options" type="Dictionary" />
+ <argument index="3" name="bake_fps" type="int" />
<description>
</description>
</method>
@@ -45,23 +46,8 @@
<return type="Object" />
<argument index="0" name="path" type="String" />
<argument index="1" name="flags" type="int" />
- <argument index="2" name="bake_fps" type="int" />
- <description>
- </description>
- </method>
- <method name="import_animation_from_other_importer">
- <return type="Animation" />
- <argument index="0" name="path" type="String" />
- <argument index="1" name="flags" type="int" />
- <argument index="2" name="bake_fps" type="int" />
- <description>
- </description>
- </method>
- <method name="import_scene_from_other_importer">
- <return type="Node" />
- <argument index="0" name="path" type="String" />
- <argument index="1" name="flags" type="int" />
- <argument index="2" name="bake_fps" type="int" />
+ <argument index="2" name="options" type="Dictionary" />
+ <argument index="3" name="bake_fps" type="int" />
<description>
</description>
</method>
diff --git a/doc/classes/Environment.xml b/doc/classes/Environment.xml
index c3d1dc4ab6..2090672acc 100644
--- a/doc/classes/Environment.xml
+++ b/doc/classes/Environment.xml
@@ -238,7 +238,22 @@
The distance at which objects can occlude each other when calculating screen-space ambient occlusion. Higher values will result in occlusion over a greater distance at the cost of performance and quality.
</member>
<member name="ssao_sharpness" type="float" setter="set_ssao_sharpness" getter="get_ssao_sharpness" default="0.98">
- Sharpness refers to the amount that the screen-space ambient occlusion effect is allowed to blur over the edges of objects. Setting too high will result in aliasing around the edges of objects. Setting too low will make object edges appear blurry.
+ The amount that the screen-space ambient occlusion effect is allowed to blur over the edges of objects. Setting too high will result in aliasing around the edges of objects. Setting too low will make object edges appear blurry.
+ </member>
+ <member name="ssil_enabled" type="bool" setter="set_ssil_enabled" getter="is_ssil_enabled" default="false">
+ If [code]true[/code], the screen-space indirect lighting effect is enabled. Screen space indirect lighting is a form of indirect lighting that allows diffuse light to bounce between nearby objects. Screen-space indirect lighting works very similarly to screen-space ambient occlusion, in that it only affects a limited range. It is intended to be used along with a form of proper global illumination like SDFGI or [VoxelGI]. Screen-space indirect lighting is not affected by individual light's [member Light3D.light_indirect_energy].
+ </member>
+ <member name="ssil_intensity" type="float" setter="set_ssil_intensity" getter="get_ssil_intensity" default="1.0">
+ The brightness multiplier for the screen-space indirect lighting effect. A higher value will result in brighter light.
+ </member>
+ <member name="ssil_normal_rejection" type="float" setter="set_ssil_normal_rejection" getter="get_ssil_normal_rejection" default="1.0">
+ Amount of normal rejection used when calculating screen-space indirect lighting. Normal rejection uses the normal of a given sample point to reject samples that are facing away from the current pixel. Normal rejection is necessary to avoid light leaking when only one side of an object is illuminated. However, normal rejection can be disabled if light leaking is desirable, such as when the scene mostly contains emissive objects that emit light from faces that cannot be seen from the camera.
+ </member>
+ <member name="ssil_radius" type="float" setter="set_ssil_radius" getter="get_ssil_radius" default="5.0">
+ The distance that bounced lighting can travel when using the screen space indirect lighting effect. A larger value will result in light bouncing further in a scene, but may result in under-sampling artifacts which look like long spikes surrounding light sources.
+ </member>
+ <member name="ssil_sharpness" type="float" setter="set_ssil_sharpness" getter="get_ssil_sharpness" default="0.98">
+ The amount that the screen-space indirect lighting effect is allowed to blur over the edges of objects. Setting too high will result in aliasing around the edges of objects. Setting too low will make object edges appear blurry.
</member>
<member name="tonemap_exposure" type="float" setter="set_tonemap_exposure" getter="get_tonemap_exposure" default="1.0">
The default exposure used for tonemapping.
diff --git a/doc/classes/FileDialog.xml b/doc/classes/FileDialog.xml
index 1207288159..2b0594902f 100644
--- a/doc/classes/FileDialog.xml
+++ b/doc/classes/FileDialog.xml
@@ -13,7 +13,9 @@
<return type="void" />
<argument index="0" name="filter" type="String" />
<description>
- Adds [code]filter[/code] as a custom filter; [code]filter[/code] should be of the form [code]"filename.extension ; Description"[/code]. For example, [code]"*.png ; PNG Images"[/code].
+ Adds [code]filter[/code] to the list of filters, which restricts what files can be picked.
+ A [code]filter[/code] should be of the form [code]"filename.extension ; Description"[/code], where filename and extension can be [code]*[/code] to match any string. Filters starting with [code].[/code] (i.e. empty filenames) are not allowed.
+ Example filters: [code]"*.png ; PNG Images"[/code], [code]"project.godot ; Godot Project"[/code].
</description>
</method>
<method name="clear_filters">
diff --git a/doc/classes/Font.xml b/doc/classes/Font.xml
index 275d6b6577..3537fc0b66 100644
--- a/doc/classes/Font.xml
+++ b/doc/classes/Font.xml
@@ -222,7 +222,7 @@
<return type="float" />
<argument index="0" name="size" type="int" default="16" />
<description>
- Return average pixel offset of the underline below the baseline.
+ Returns average pixel offset of the underline below the baseline.
[b]Note:[/b] Real underline position of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate.
</description>
</method>
@@ -230,7 +230,7 @@
<return type="float" />
<argument index="0" name="size" type="int" default="16" />
<description>
- Return average thickness of the underline.
+ Returns average thickness of the underline.
[b]Note:[/b] Real underline thickness of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate.
</description>
</method>
@@ -238,7 +238,7 @@
<return type="bool" />
<argument index="0" name="char" type="int" />
<description>
- Return [code]true[/code] if a Unicode [code]char[/code] is available in the font.
+ Returns [code]true[/code] if a Unicode [code]char[/code] is available in the font.
</description>
</method>
<method name="remove_data">
diff --git a/doc/classes/FontData.xml b/doc/classes/FontData.xml
index c403d238c5..36976f7083 100644
--- a/doc/classes/FontData.xml
+++ b/doc/classes/FontData.xml
@@ -79,12 +79,6 @@
Returns text server font cache entry resource id.
</description>
</method>
- <method name="get_data" qualifiers="const">
- <return type="PackedByteArray" />
- <description>
- Returns contents of the dynamic font source file.
- </description>
- </method>
<method name="get_descent" qualifiers="const">
<return type="float" />
<argument index="0" name="cache_index" type="int" />
@@ -93,30 +87,6 @@
Returns font descent (number of pixels below the baseline).
</description>
</method>
- <method name="get_fixed_size" qualifiers="const">
- <return type="int" />
- <description>
- Returns font fixed size.
- </description>
- </method>
- <method name="get_font_name" qualifiers="const">
- <return type="String" />
- <description>
- Returns font family name.
- </description>
- </method>
- <method name="get_font_style" qualifiers="const">
- <return type="int" />
- <description>
- Returns font style flags, see [enum TextServer.FontStyle].
- </description>
- </method>
- <method name="get_font_style_name" qualifiers="const">
- <return type="String" />
- <description>
- Returns font style name.
- </description>
- </method>
<method name="get_glyph_advance" qualifiers="const">
<return type="Vector2" />
<argument index="0" name="cache_index" type="int" />
@@ -180,12 +150,6 @@
Returns rectangle in the cache texture containing the glyph.
</description>
</method>
- <method name="get_hinting" qualifiers="const">
- <return type="int" enum="TextServer.Hinting" />
- <description>
- Returns the font hinting mode. Used by dynamic fonts only.
- </description>
- </method>
<method name="get_kerning" qualifiers="const">
<return type="Vector2" />
<argument index="0" name="cache_index" type="int" />
@@ -216,24 +180,6 @@
Returns list of language support overrides.
</description>
</method>
- <method name="get_msdf_pixel_range" qualifiers="const">
- <return type="int" />
- <description>
- Returns the width of the range around the shape between the minimum and maximum representable signed distance.
- </description>
- </method>
- <method name="get_msdf_size" qualifiers="const">
- <return type="int" />
- <description>
- Returns source font size used to generate MSDF textures.
- </description>
- </method>
- <method name="get_oversampling" qualifiers="const">
- <return type="float" />
- <description>
- Returns font oversampling factor, if set to [code]0.0[/code] global oversampling factor is used instead. Used by dynamic fonts only.
- </description>
- </method>
<method name="get_scale" qualifiers="const">
<return type="float" />
<argument index="0" name="cache_index" type="int" />
@@ -259,7 +205,7 @@
<return type="Array" />
<argument index="0" name="cache_index" type="int" />
<description>
- Return list of the font sizes in the cache. Each size is [code]Vector2i[/code] with font size and outline size.
+ Returns list of the font sizes in the cache. Each size is [code]Vector2i[/code] with font size and outline size.
</description>
</method>
<method name="get_spacing" qualifiers="const">
@@ -343,19 +289,7 @@
<return type="bool" />
<argument index="0" name="char" type="int" />
<description>
- Return [code]true[/code] if a Unicode [code]char[/code] is available in the font.
- </description>
- </method>
- <method name="is_antialiased" qualifiers="const">
- <return type="bool" />
- <description>
- Returns [code]true[/code] if font 8-bit anitialiased glyph rendering is supported and enabled.
- </description>
- </method>
- <method name="is_force_autohinter" qualifiers="const">
- <return type="bool" />
- <description>
- Returns [code]true[/code] if auto-hinting is supported and preffered over font built-in hinting. Used by dynamic fonts only.
+ Returns [code]true[/code] if a Unicode [code]char[/code] is available in the font.
</description>
</method>
<method name="is_language_supported" qualifiers="const">
@@ -365,12 +299,6 @@
Returns [code]true[/code], if font supports given language ([url=https://en.wikipedia.org/wiki/ISO_639-1]ISO 639[/url] code).
</description>
</method>
- <method name="is_multichannel_signed_distance_field" qualifiers="const">
- <return type="bool" />
- <description>
- Returns [code]true[/code] if glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data.
- </description>
- </method>
<method name="is_script_supported" qualifiers="const">
<return type="bool" />
<argument index="0" name="script" type="String" />
@@ -455,13 +383,6 @@
Renders the range of characters to the font cache texture.
</description>
</method>
- <method name="set_antialiased">
- <return type="void" />
- <argument index="0" name="antialiased" type="bool" />
- <description>
- If set to [code]true[/code], 8-bit antialiased glyph rendering is used, otherwise 1-bit rendering is used. Used by dynamic fonts only.
- </description>
- </method>
<method name="set_ascent">
<return type="void" />
<argument index="0" name="cache_index" type="int" />
@@ -471,13 +392,6 @@
Sets the font ascent (number of pixels above the baseline).
</description>
</method>
- <method name="set_data">
- <return type="void" />
- <argument index="0" name="data" type="PackedByteArray" />
- <description>
- Sets font source data, e.g contents of the dynamic font source file.
- </description>
- </method>
<method name="set_descent">
<return type="void" />
<argument index="0" name="cache_index" type="int" />
@@ -487,41 +401,6 @@
Sets the font descent (number of pixels below the baseline).
</description>
</method>
- <method name="set_fixed_size">
- <return type="void" />
- <argument index="0" name="fixed_size" type="int" />
- <description>
- Sets the fixed size for the font.
- </description>
- </method>
- <method name="set_font_name">
- <return type="void" />
- <argument index="0" name="name" type="String" />
- <description>
- Sets the font family name.
- </description>
- </method>
- <method name="set_font_style">
- <return type="void" />
- <argument index="0" name="style" type="int" />
- <description>
- Sets the font style flags, see [enum TextServer.FontStyle].
- </description>
- </method>
- <method name="set_font_style_name">
- <return type="void" />
- <argument index="0" name="name" type="String" />
- <description>
- Sets the font style name.
- </description>
- </method>
- <method name="set_force_autohinter">
- <return type="void" />
- <argument index="0" name="force_autohinter" type="bool" />
- <description>
- If set to [code]true[/code] auto-hinting is preffered over font built-in hinting.
- </description>
- </method>
<method name="set_glyph_advance">
<return type="void" />
<argument index="0" name="cache_index" type="int" />
@@ -573,13 +452,6 @@
Sets rectangle in the cache texture containing the glyph.
</description>
</method>
- <method name="set_hinting">
- <return type="void" />
- <argument index="0" name="hinting" type="int" enum="TextServer.Hinting" />
- <description>
- Sets font hinting mode. Used by dynamic fonts only.
- </description>
- </method>
<method name="set_kerning">
<return type="void" />
<argument index="0" name="cache_index" type="int" />
@@ -598,35 +470,6 @@
Adds override for [method is_language_supported].
</description>
</method>
- <method name="set_msdf_pixel_range">
- <return type="void" />
- <argument index="0" name="msdf_pixel_range" type="int" />
- <description>
- Sets the width of the range around the shape between the minimum and maximum representable signed distance.
- </description>
- </method>
- <method name="set_msdf_size">
- <return type="void" />
- <argument index="0" name="msdf_size" type="int" />
- <description>
- Sets source font size used to generate MSDF textures.
- </description>
- </method>
- <method name="set_multichannel_signed_distance_field">
- <return type="void" />
- <argument index="0" name="msdf" type="bool" />
- <description>
- If set to [code]true[/code], glyphs of all sizes are rendered using single multichannel signed distance field (MSDF) generated from the dynamic font vector data. MSDF rendering allows displaying the font at any scaling factor without blurriness, and without incurring a CPU cost when the font size changes (since the font no longer needs to be rasterized on the CPU). As a downside, font hinting is not available with MSDF. The lack of font hinting may result in less crisp and less readable fonts at small sizes.
- [b]Note:[/b] MSDF font rendering does not render glyphs with overlapping shapes correctly. Overlapping shapes are not valid per the OpenType standard, but are still commonly found in many font files, especially those converted by Google Fonts. To avoid issues with overlapping glyphs, consider downloading the font file directly from the type foundry instead of relying on Google Fonts.
- </description>
- </method>
- <method name="set_oversampling">
- <return type="void" />
- <argument index="0" name="oversampling" type="float" />
- <description>
- Sets font oversampling factor, if set to [code]0.0[/code] global oversampling factor is used instead. Used by dynamic fonts only.
- </description>
- </method>
<method name="set_scale">
<return type="void" />
<argument index="0" name="cache_index" type="int" />
@@ -701,4 +544,45 @@
</description>
</method>
</methods>
+ <members>
+ <member name="antialiased" type="bool" setter="set_antialiased" getter="is_antialiased" default="true">
+ If set to [code]true[/code], font 8-bit anitialiased glyph rendering is supported and enabled.
+ </member>
+ <member name="data" type="PackedByteArray" setter="set_data" getter="get_data" default="PackedByteArray()">
+ Contents of the dynamic font source file.
+ </member>
+ <member name="fixed_size" type="int" setter="set_fixed_size" getter="get_fixed_size" default="0">
+ Font size, used only for the bitmap fonts.
+ </member>
+ <member name="font_name" type="String" setter="set_font_name" getter="get_font_name" default="&quot;&quot;">
+ Font family name.
+ </member>
+ <member name="font_style" type="int" setter="set_font_style" getter="get_font_style" default="0">
+ Font style flags, see [enum TextServer.FontStyle].
+ </member>
+ <member name="force_autohinter" type="bool" setter="set_force_autohinter" getter="is_force_autohinter" default="false">
+ If set to [code]true[/code], auto-hinting is supported and preffered over font built-in hinting. Used by dynamic fonts only.
+ </member>
+ <member name="hinting" type="int" setter="set_hinting" getter="get_hinting" enum="TextServer.Hinting" default="1">
+ Font hinting mode. Used by dynamic fonts only.
+ </member>
+ <member name="msdf_pixel_range" type="int" setter="set_msdf_pixel_range" getter="get_msdf_pixel_range" default="16">
+ The width of the range around the shape between the minimum and maximum representable signed distance.
+ </member>
+ <member name="msdf_size" type="int" setter="set_msdf_size" getter="get_msdf_size" default="48">
+ Source font size used to generate MSDF textures.
+ </member>
+ <member name="multichannel_signed_distance_field" type="bool" setter="set_multichannel_signed_distance_field" getter="is_multichannel_signed_distance_field" default="false">
+ If set to [code]true[/code], glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data.
+ </member>
+ <member name="opentype_feature_overrides" type="Dictionary" setter="set_opentype_feature_overrides" getter="get_opentype_feature_overrides" default="{}">
+ Font OpenType feature set override.
+ </member>
+ <member name="oversampling" type="float" setter="set_oversampling" getter="get_oversampling" default="0.0">
+ Font oversampling factor, if set to [code]0.0[/code] global oversampling factor is used instead. Used by dynamic fonts only.
+ </member>
+ <member name="style_name" type="String" setter="set_font_style_name" getter="get_font_style_name" default="&quot;&quot;">
+ Font style name.
+ </member>
+ </members>
</class>
diff --git a/doc/classes/GeometryInstance3D.xml b/doc/classes/GeometryInstance3D.xml
index b8514c67b8..cecd1e518f 100644
--- a/doc/classes/GeometryInstance3D.xml
+++ b/doc/classes/GeometryInstance3D.xml
@@ -47,6 +47,10 @@
</member>
<member name="lod_bias" type="float" setter="set_lod_bias" getter="get_lod_bias" default="1.0">
</member>
+ <member name="material_overlay" type="Material" setter="set_material_overlay" getter="get_material_overlay">
+ The material overlay for the whole geometry.
+ If a material is assigned to this property, it will be rendered on top of any other active material for all the surfaces.
+ </member>
<member name="material_override" type="Material" setter="set_material_override" getter="get_material_override">
The material override for the whole geometry.
If a material is assigned to this property, it will be used instead of any material set in any material slot of the mesh.
@@ -59,12 +63,14 @@
</member>
<member name="visibility_range_begin_margin" type="float" setter="set_visibility_range_begin_margin" getter="get_visibility_range_begin_margin" default="0.0">
Margin for the [member visibility_range_begin] threshold. The GeometryInstance3D will only change its visibility state when it goes over or under the [member visibility_range_begin] threshold by this amount.
+ If [member visibility_range_fade_mode] is [constant VISIBILITY_RANGE_FADE_DISABLED], this acts as an hysteresis distance. If [member visibility_range_fade_mode] is [constant VISIBILITY_RANGE_FADE_SELF] or [constant VISIBILITY_RANGE_FADE_DEPENDENCIES], this acts as a fade transition distance and must be set to a value greater than [code]0.0[/code] for the effect to be noticeable.
</member>
<member name="visibility_range_end" type="float" setter="set_visibility_range_end" getter="get_visibility_range_end" default="0.0">
Distance from which the GeometryInstance3D will be hidden, taking [member visibility_range_end_margin] into account as well. The default value of 0 is used to disable the range check.
</member>
<member name="visibility_range_end_margin" type="float" setter="set_visibility_range_end_margin" getter="get_visibility_range_end_margin" default="0.0">
Margin for the [member visibility_range_end] threshold. The GeometryInstance3D will only change its visibility state when it goes over or under the [member visibility_range_end] threshold by this amount.
+ If [member visibility_range_fade_mode] is [constant VISIBILITY_RANGE_FADE_DISABLED], this acts as an hysteresis distance. If [member visibility_range_fade_mode] is [constant VISIBILITY_RANGE_FADE_SELF] or [constant VISIBILITY_RANGE_FADE_DEPENDENCIES], this acts as a fade transition distance and must be set to a value greater than [code]0.0[/code] for the effect to be noticeable.
</member>
<member name="visibility_range_fade_mode" type="int" setter="set_visibility_range_fade_mode" getter="get_visibility_range_fade_mode" enum="GeometryInstance3D.VisibilityRangeFadeMode" default="0">
Controls which instances will be faded when approaching the limits of the visibility range. See [enum VisibilityRangeFadeMode] for possible values.
@@ -111,13 +117,13 @@
Represents the size of the [enum LightmapScale] enum.
</constant>
<constant name="VISIBILITY_RANGE_FADE_DISABLED" value="0" enum="VisibilityRangeFadeMode">
- Will not fade itself nor its visibility dependencies, hysteresis will be used instead. See [member visibility_range_begin] and [member Node3D.visibility_parent] for more information.
+ Will not fade itself nor its visibility dependencies, hysteresis will be used instead. This is the fastest approach to manual LOD, but it can result in noticeable LOD transitions depending on how the LOD meshes are authored. See [member visibility_range_begin] and [member Node3D.visibility_parent] for more information.
</constant>
<constant name="VISIBILITY_RANGE_FADE_SELF" value="1" enum="VisibilityRangeFadeMode">
- Will fade-out itself when reaching the limits of its own visibility range. The fading range is determined by [member visibility_range_begin_margin] and [member visibility_range_end_margin].
+ Will fade-out itself when reaching the limits of its own visibility range. This is slower than [constant VISIBILITY_RANGE_FADE_DISABLED], but it can provide smoother transitions. The fading range is determined by [member visibility_range_begin_margin] and [member visibility_range_end_margin].
</constant>
<constant name="VISIBILITY_RANGE_FADE_DEPENDENCIES" value="2" enum="VisibilityRangeFadeMode">
- Will fade-in its visibility dependencies (see [member Node3D.visibility_parent]) when reaching the limits of its own visibility range. The fading range is determined by [member visibility_range_begin_margin] and [member visibility_range_end_margin].
+ Will fade-in its visibility dependencies (see [member Node3D.visibility_parent]) when reaching the limits of its own visibility range. This is slower than [constant VISIBILITY_RANGE_FADE_DISABLED], but it can provide smoother transitions. The fading range is determined by [member visibility_range_begin_margin] and [member visibility_range_end_margin].
</constant>
</constants>
</class>
diff --git a/doc/classes/GraphEdit.xml b/doc/classes/GraphEdit.xml
index c432410d3b..46960d7cc4 100644
--- a/doc/classes/GraphEdit.xml
+++ b/doc/classes/GraphEdit.xml
@@ -109,6 +109,14 @@
Removes the connection between the [code]from_port[/code] slot of the [code]from[/code] GraphNode and the [code]to_port[/code] slot of the [code]to[/code] GraphNode. If the connection does not exist, no connection is removed.
</description>
</method>
+ <method name="force_connection_drag_end">
+ <return type="void" />
+ <description>
+ Ends the creation of the current connection. In other words, if you are dragging a connection you can use this method to abort the process and remove the line that followed your cursor.
+ This is best used together with [signal connection_drag_started] and [signal connection_drag_ended] to add custom behavior like node addition through shortcuts.
+ [b]Note:[/b] This method suppresses any other connection request signals apart from [signal connection_drag_ended].
+ </description>
+ </method>
<method name="get_connection_line">
<return type="PackedVector2Array" />
<argument index="0" name="from" type="Vector2" />
@@ -241,6 +249,19 @@
Emitted at the beginning of a GraphNode movement.
</description>
</signal>
+ <signal name="connection_drag_ended">
+ <description>
+ Emitted at the end of a connection drag.
+ </description>
+ </signal>
+ <signal name="connection_drag_started">
+ <argument index="0" name="from" type="String" />
+ <argument index="1" name="slot" type="String" />
+ <argument index="2" name="is_output" type="bool" />
+ <description>
+ Emitted at the beginning of a connection drag.
+ </description>
+ </signal>
<signal name="connection_from_empty">
<argument index="0" name="to" type="StringName" />
<argument index="1" name="to_slot" type="int" />
diff --git a/doc/classes/HMACContext.xml b/doc/classes/HMACContext.xml
index b29f821da5..0b2d65d339 100644
--- a/doc/classes/HMACContext.xml
+++ b/doc/classes/HMACContext.xml
@@ -15,7 +15,7 @@
var err = ctx.start(HashingContext.HASH_SHA256, key)
assert(err == OK)
var msg1 = "this is ".to_utf8()
- var msg2 = "vewy vewy secret".to_utf8()
+ var msg2 = "super duper secret".to_utf8()
err = ctx.update(msg1)
assert(err == OK)
err = ctx.update(msg2)
@@ -38,7 +38,7 @@
Error err = ctx.Start(HashingContext.HASH_SHA256, key);
GD.Assert(err == OK);
PackedByteArray msg1 = String("this is ").to_utf8();
- PackedByteArray msg2 = String("vewy vew secret").to_utf8();
+ PackedByteArray msg2 = String("super duper secret").to_utf8();
err = ctx.Update(msg1);
GD.Assert(err == OK);
err = ctx.Update(msg2);
diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml
index 068106f2c7..4939e48e97 100644
--- a/doc/classes/Input.xml
+++ b/doc/classes/Input.xml
@@ -187,6 +187,7 @@
Returns [code]true[/code] when the user starts pressing the action event, meaning it's [code]true[/code] only on the frame that the user pressed down the button.
This is useful for code that needs to run only once when an action is pressed, instead of every frame while it's pressed.
If [code]exact_match[/code] is [code]false[/code], it ignores the input modifiers for [InputEventKey] and [InputEventMouseButton] events, and the direction for [InputEventJoypadMotion] events.
+ [b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may return [code]false[/code] even if one of the action's keys is pressed. See [url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input examples[/url] in the documentation for more information.
</description>
</method>
<method name="is_action_just_released" qualifiers="const">
@@ -205,6 +206,7 @@
<description>
Returns [code]true[/code] if you are pressing the action event. Note that if an action has multiple buttons assigned and more than one of them is pressed, releasing one button will release the action, even if some other button assigned to this action is still pressed.
If [code]exact_match[/code] is [code]false[/code], it ignores the input modifiers for [InputEventKey] and [InputEventMouseButton] events, and the direction for [InputEventJoypadMotion] events.
+ [b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return [code]false[/code] even if one of the action's keys is pressed. See [url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input examples[/url] in the documentation for more information.
</description>
</method>
<method name="is_joy_button_pressed" qualifiers="const">
@@ -227,6 +229,8 @@
<argument index="0" name="keycode" type="int" enum="Key" />
<description>
Returns [code]true[/code] if you are pressing the key in the current keyboard layout. You can pass a [enum Key] constant.
+ [method is_key_pressed] is only recommended over [method is_physical_key_pressed] in non-game applications. This ensures that shortcut keys behave as expected depending on the user's keyboard layout, as keyboard shortcuts are generally dependent on the keyboard layout in non-game applications. If in doubt, use [method is_physical_key_pressed].
+ [b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return [code]false[/code] even if one of the action's keys is pressed. See [url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input examples[/url] in the documentation for more information.
</description>
</method>
<method name="is_mouse_button_pressed" qualifiers="const">
@@ -241,6 +245,8 @@
<argument index="0" name="keycode" type="int" enum="Key" />
<description>
Returns [code]true[/code] if you are pressing the key in the physical location on the 101/102-key US QWERTY keyboard. You can pass a [enum Key] constant.
+ [method is_physical_key_pressed] is recommended over [method is_key_pressed] for in-game actions, as it will make [kbd]W[/kbd]/[kbd]A[/kbd]/[kbd]S[/kbd]/[kbd]D[/kbd] layouts work regardless of the user's keyboard layout. [method is_physical_key_pressed] will also ensure that the top row number keys work on any keyboard layout. If in doubt, use [method is_physical_key_pressed].
+ [b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may return [code]false[/code] even if one of the action's keys is pressed. See [url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input examples[/url] in the documentation for more information.
</description>
</method>
<method name="parse_input_event">
diff --git a/doc/classes/InputEvent.xml b/doc/classes/InputEvent.xml
index 09fbe776bf..6b7c43c373 100644
--- a/doc/classes/InputEvent.xml
+++ b/doc/classes/InputEvent.xml
@@ -53,6 +53,7 @@
<description>
Returns [code]true[/code] if the given action is being pressed (and is not an echo event for [InputEventKey] events, unless [code]allow_echo[/code] is [code]true[/code]). Not relevant for events of type [InputEventMouseMotion] or [InputEventScreenDrag].
If [code]exact_match[/code] is [code]false[/code], it ignores the input modifiers for [InputEventKey] and [InputEventMouseButton] events, and the direction for [InputEventJoypadMotion] events.
+ [b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return [code]false[/code] even if one of the action's keys is pressed. See [url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input examples[/url] in the documentation for more information.
</description>
</method>
<method name="is_action_released" qualifiers="const">
@@ -89,6 +90,7 @@
<return type="bool" />
<description>
Returns [code]true[/code] if this input event is pressed. Not relevant for events of type [InputEventMouseMotion] or [InputEventScreenDrag].
+ [b]Note:[/b] Due to keyboard ghosting, [method is_pressed] may return [code]false[/code] even if one of the action's keys is pressed. See [url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input examples[/url] in the documentation for more information.
</description>
</method>
<method name="xformed_by" qualifiers="const">
diff --git a/doc/classes/InputEventMIDI.xml b/doc/classes/InputEventMIDI.xml
index 040eee7b98..4b91b75358 100644
--- a/doc/classes/InputEventMIDI.xml
+++ b/doc/classes/InputEventMIDI.xml
@@ -1,27 +1,96 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="InputEventMIDI" inherits="InputEvent" version="4.0">
<brief_description>
+ Input event for MIDI inputs.
</brief_description>
<description>
+ InputEventMIDI allows receiving input events from MIDI devices such as a piano. MIDI stands for Musical Instrument Digital Interface.
+ MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your device supports both be sure to check the settings in the device to see which output it's using.
+ To receive input events from MIDI devices, you need to call [method OS.open_midi_inputs]. You can check which devices are detected using [method OS.get_connected_midi_inputs].
+ [codeblocks]
+ [gdscript]
+ func _ready():
+ OS.open_midi_inputs()
+ print(OS.get_connected_midi_inputs())
+
+ func _input(input_event):
+ if input_event is InputEventMIDI:
+ _print_midi_info(input_event)
+
+ func _print_midi_info(midi_event: InputEventMIDI):
+ print(midi_event)
+ print("Channel " + str(midi_event.channel))
+ print("Message " + str(midi_event.message))
+ print("Pitch " + str(midi_event.pitch))
+ print("Velocity " + str(midi_event.velocity))
+ print("Instrument " + str(midi_event.instrument))
+ print("Pressure " + str(midi_event.pressure))
+ print("Controller number: " + str(midi_event.controller_number))
+ print("Controller value: " + str(midi_event.controller_value))
+ [/gdscript]
+ [csharp]
+ public override void _Ready()
+ {
+ OS.OpenMidiInputs();
+ GD.Print(OS.GetConnectedMidiInputs());
+ }
+
+ public override void _Input(InputEvent inputEvent)
+ {
+ if (inputEvent is InputEventMIDI midiEvent)
+ {
+ PrintMIDIInfo(midiEvent);
+ }
+ }
+
+ private void PrintMIDIInfo(InputEventMIDI midiEvent)
+ {
+ GD.Print(midiEvent);
+ GD.Print("Channel " + midiEvent.Channel);
+ GD.Print("Message " + midiEvent.Message);
+ GD.Print("Pitch " + midiEvent.Pitch);
+ GD.Print("Velocity " + midiEvent.Velocity);
+ GD.Print("Instrument " + midiEvent.Instrument);
+ GD.Print("Pressure " + midiEvent.Pressure);
+ GD.Print("Controller number: " + midiEvent.ControllerNumber);
+ GD.Print("Controller value: " + midiEvent.ControllerValue);
+ }
+ [/csharp]
+ [/codeblocks]
+ Note that Godot does not currently support MIDI output, so there is no way to emit MIDI signals from Godot. Only MIDI input works.
</description>
<tutorials>
+ <link title="MIDI Message Status Byte List">https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-status-bytes</link>
+ <link title="Wikipedia General MIDI Instrument List">https://en.wikipedia.org/wiki/General_MIDI#Program_change_events</link>
+ <link title="Wikipedia Piano Key Frequencies List">https://en.wikipedia.org/wiki/Piano_key_frequencies#List</link>
</tutorials>
<members>
<member name="channel" type="int" setter="set_channel" getter="get_channel" default="0">
+ The MIDI channel of this input event. There are 16 channels, so this value ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion instruments, the rest of the channels are for non-percussion instruments.
</member>
<member name="controller_number" type="int" setter="set_controller_number" getter="get_controller_number" default="0">
+ If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates the controller number, otherwise this is zero. Controllers include devices such as pedals and levers.
</member>
<member name="controller_value" type="int" setter="set_controller_value" getter="get_controller_value" default="0">
+ If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates the controller value, otherwise this is zero. Controllers include devices such as pedals and levers.
</member>
<member name="instrument" type="int" setter="set_instrument" getter="get_instrument" default="0">
+ The instrument of this input event. This value ranges from 0 to 127. Refer to the instrument list on the General MIDI wikipedia article to see a list of instruments, except that this value is 0-index, so subtract one from every number on that chart. A standard piano will have an instrument number of 0.
</member>
<member name="message" type="int" setter="set_message" getter="get_message" enum="MIDIMessage" default="0">
+ Returns a value indicating the type of message for this MIDI signal. This is a member of the [enum @GlobalScope.MIDIMessage] enum.
+ For MIDI messages between 0x80 and 0xEF, only the left half of the bits are returned as this value, as the other part is the channel (ex: 0x94 becomes 0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.
+ Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, therefore your code should treat the input as stopped if some period of time has passed.
+ For more information, see the MIDI message status byte list chart linked above.
</member>
<member name="pitch" type="int" setter="set_pitch" getter="get_pitch" default="0">
+ The pitch index number of this MIDI signal. This value ranges from 0 to 127. On a piano, middle C is 60, and A440 is 69, see the "MIDI note" column of the piano key frequency chart on Wikipedia for more information.
</member>
<member name="pressure" type="int" setter="set_pressure" getter="get_pressure" default="0">
+ The pressure of the MIDI signal. This value ranges from 0 to 127. For many devices, this value is always zero.
</member>
<member name="velocity" type="int" setter="set_velocity" getter="get_velocity" default="0">
+ The velocity of the MIDI signal. This value ranges from 0 to 127. For a piano, this corresponds to how quickly the key was pressed, and is rarely above about 110 in practice.
</member>
</members>
</class>
diff --git a/doc/classes/InputEventMouse.xml b/doc/classes/InputEventMouse.xml
index 4878090996..5215c29b4a 100644
--- a/doc/classes/InputEventMouse.xml
+++ b/doc/classes/InputEventMouse.xml
@@ -14,10 +14,10 @@
The mouse button mask identifier, one of or a bitwise combination of the [enum MouseButton] button masks.
</member>
<member name="global_position" type="Vector2" setter="set_global_position" getter="get_global_position" default="Vector2(0, 0)">
- The global mouse position relative to the current [Viewport] when used in [method Control._gui_input], otherwise is at 0,0.
+ The global mouse position relative to the current [Viewport]. If used in [method Control._gui_input] and if the current [Control] is not under the mouse, moving it will not update this value.
</member>
<member name="position" type="Vector2" setter="set_position" getter="get_position" default="Vector2(0, 0)">
- The local mouse position relative to the [Viewport]. If used in [method Control._gui_input], the position is relative to the current [Control] which is under the mouse.
+ The local mouse position relative to the [Viewport]. If used in [method Control._gui_input], the position is relative to the current [Control] which is under the mouse. If the current [Control] is not under the mouse, moving it will not update this value.
</member>
</members>
</class>
diff --git a/doc/classes/ItemList.xml b/doc/classes/ItemList.xml
index 7263687ea8..593d0c9523 100644
--- a/doc/classes/ItemList.xml
+++ b/doc/classes/ItemList.xml
@@ -155,10 +155,10 @@
Returns an array with the indexes of the selected items.
</description>
</method>
- <method name="get_v_scroll">
+ <method name="get_v_scroll_bar">
<return type="VScrollBar" />
<description>
- Returns the [Object] ID associated with the list.
+ Returns the vertical scrollbar.
[b]Warning:[/b] This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their [member CanvasItem.visible] property.
</description>
</method>
diff --git a/doc/classes/LineEdit.xml b/doc/classes/LineEdit.xml
index c3e3088d69..b376ab5cb0 100644
--- a/doc/classes/LineEdit.xml
+++ b/doc/classes/LineEdit.xml
@@ -174,7 +174,7 @@
<member name="caret_force_displayed" type="bool" setter="set_caret_force_displayed" getter="is_caret_force_displayed" default="false">
If [code]true[/code], the [LineEdit] will always show the caret, even if focus is lost.
</member>
- <member name="caret_mid_grapheme" type="bool" setter="set_caret_mid_grapheme_enabled" getter="is_caret_mid_grapheme_enabled" default="false">
+ <member name="caret_mid_grapheme" type="bool" setter="set_caret_mid_grapheme_enabled" getter="is_caret_mid_grapheme_enabled" default="true">
Allow moving caret, selecting and removing the individual composite character components.
[b]Note:[/b] [kbd]Backspace[/kbd] is always removing individual composite character components.
</member>
diff --git a/doc/classes/MeshInstance2D.xml b/doc/classes/MeshInstance2D.xml
index 6873edb3ae..5d5471c570 100644
--- a/doc/classes/MeshInstance2D.xml
+++ b/doc/classes/MeshInstance2D.xml
@@ -15,7 +15,7 @@
</member>
<member name="normal_map" type="Texture2D" setter="set_normal_map" getter="get_normal_map">
The normal map that will be used if using the default [CanvasItemMaterial].
- [b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
+ [b]Note:[/b] Godot expects the normal map to use X+, Y+, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
</member>
<member name="texture" type="Texture2D" setter="set_texture" getter="get_texture">
The [Texture2D] that will be used if using the default [CanvasItemMaterial]. Can be accessed as [code]TEXTURE[/code] in CanvasItem shader.
diff --git a/doc/classes/MultiMeshInstance2D.xml b/doc/classes/MultiMeshInstance2D.xml
index 328ddff0eb..be01d96b5d 100644
--- a/doc/classes/MultiMeshInstance2D.xml
+++ b/doc/classes/MultiMeshInstance2D.xml
@@ -15,7 +15,7 @@
</member>
<member name="normal_map" type="Texture2D" setter="set_normal_map" getter="get_normal_map">
The normal map that will be used if using the default [CanvasItemMaterial].
- [b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
+ [b]Note:[/b] Godot expects the normal map to use X+, Y+, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines.
</member>
<member name="texture" type="Texture2D" setter="set_texture" getter="get_texture">
The [Texture2D] that will be used if using the default [CanvasItemMaterial]. Can be accessed as [code]TEXTURE[/code] in CanvasItem shader.
diff --git a/doc/classes/MultiplayerReplicator.xml b/doc/classes/MultiplayerReplicator.xml
index 0f97cc1d0a..c2e93ddeab 100644
--- a/doc/classes/MultiplayerReplicator.xml
+++ b/doc/classes/MultiplayerReplicator.xml
@@ -24,7 +24,7 @@
<argument index="1" name="object" type="Object" />
<argument index="2" name="peer_id" type="int" default="0" />
<description>
- Request a despawn for the scene identified by [code]scene_id[/code] to the given [code]peer_id[/code]. This will either trigger the default behaviour, or invoke the custom spawn/despawn callables specified in [method spawn_config]. See [method send_despawn] for the default behavior.
+ Request a despawn for the scene identified by [code]scene_id[/code] to the given [code]peer_id[/code]. This will either trigger the default behavior, or invoke the custom spawn/despawn callables specified in [method spawn_config]. See [method send_despawn] for the default behavior.
</description>
</method>
<method name="encode_state">
@@ -74,7 +74,7 @@
<argument index="1" name="object" type="Object" />
<argument index="2" name="peer_id" type="int" default="0" />
<description>
- Request a spawn for the scene identified by [code]scene_id[/code] to the given [code]peer_id[/code]. This will either trigger the default behaviour, or invoke the custom spawn/despawn callables specified in [method spawn_config]. See [method send_spawn] for the default behavior.
+ Request a spawn for the scene identified by [code]scene_id[/code] to the given [code]peer_id[/code]. This will either trigger the default behavior, or invoke the custom spawn/despawn callables specified in [method spawn_config]. See [method send_spawn] for the default behavior.
</description>
</method>
<method name="spawn_config">
@@ -85,7 +85,7 @@
<argument index="3" name="custom_send" type="Callable" />
<argument index="4" name="custom_receive" type="Callable" />
<description>
- Configures the MultiplayerReplicator to track instances of the [PackedScene] identified by [code]scene_id[/code] (see [method ResourceLoader.get_resource_uid]) for the purpose of network replication. When [code]mode[/code] is [constant REPLICATION_MODE_SERVER], the specified [code]properties[/code] will also be replicated to clients during the initial spawn. You can optionally specify a [code]custom_send[/code] and a [code]custom_receive[/code] to override the default behaviour and customize the spawn/despawn proecess.
+ Configures the MultiplayerReplicator to track instances of the [PackedScene] identified by [code]scene_id[/code] (see [method ResourceLoader.get_resource_uid]) for the purpose of network replication. When [code]mode[/code] is [constant REPLICATION_MODE_SERVER], the specified [code]properties[/code] will also be replicated to clients during the initial spawn. You can optionally specify a [code]custom_send[/code] and a [code]custom_receive[/code] to override the default behavior and customize the spawn/despawn proecess.
Tip: You can use a custom property in the scene main script to return a customly optimized state representation.
</description>
</method>
@@ -94,7 +94,7 @@
<argument index="0" name="scene_id" type="int" />
<argument index="1" name="peer_id" type="int" default="0" />
<description>
- Manually request a sync for all the instances of the scene identified by [code]scene_id[/code]. This function will trigger the default sync behaviour, or call your send custom send callable if specified in [method sync_config].
+ Manually request a sync for all the instances of the scene identified by [code]scene_id[/code]. This function will trigger the default sync behavior, or call your send custom send callable if specified in [method sync_config].
[b]Note:[/b] The default implementation only allow syncing from server to clients.
</description>
</method>
@@ -106,8 +106,8 @@
<argument index="3" name="custom_send" type="Callable" />
<argument index="4" name="custom_receive" type="Callable" />
<description>
- Configures the MultiplayerReplicator to sync instances of the [PackedScene] identified by [code]scene_id[/code] (see [method ResourceLoader.get_resource_uid]) for the purpose of network replication at the desired [code]interval[/code] (in milliseconds). The specified [code]properties[/code] will be part of the state sync. You can optionally specify a [code]custom_send[/code] and a [code]custom_receive[/code] to override the default behaviour and customize the syncronization proecess.
- Tip: You can use a custom property in the scene main script to return a customly optimized state representation (having a single property that returns a PackedByteArray is higly recommended when dealing with many instances).
+ Configures the MultiplayerReplicator to sync instances of the [PackedScene] identified by [code]scene_id[/code] (see [method ResourceLoader.get_resource_uid]) for the purpose of network replication at the desired [code]interval[/code] (in milliseconds). The specified [code]properties[/code] will be part of the state sync. You can optionally specify a [code]custom_send[/code] and a [code]custom_receive[/code] to override the default behavior and customize the synchronization proecess.
+ Tip: You can use a custom property in the scene main script to return a customly optimized state representation (having a single property that returns a PackedByteArray is highly recommended when dealing with many instances).
</description>
</method>
<method name="track">
diff --git a/doc/classes/NavigationAgent2D.xml b/doc/classes/NavigationAgent2D.xml
index 068854024c..ae904ea550 100644
--- a/doc/classes/NavigationAgent2D.xml
+++ b/doc/classes/NavigationAgent2D.xml
@@ -18,7 +18,7 @@
<method name="get_final_location">
<return type="Vector2" />
<description>
- Returns the reachable final location in global coordinates. This can change if the navigation path is altered in any way.
+ Returns the reachable final location in global coordinates. This can change if the navigation path is altered in any way. Because of this, it would be best to check this each frame.
</description>
</method>
<method name="get_nav_path" qualifiers="const">
diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml
index 753492ad34..d714fbc0d5 100644
--- a/doc/classes/Node.xml
+++ b/doc/classes/Node.xml
@@ -15,6 +15,7 @@
Finally, when a node is freed with [method Object.free] or [method queue_free], it will also free all its children.
[b]Groups:[/b] Nodes can be added to as many groups as you want to be easy to manage, you could create groups like "enemies" or "collectables" for example, depending on your game. See [method add_to_group], [method is_in_group] and [method remove_from_group]. You can then retrieve all nodes in these groups, iterate them and even call methods on groups via the methods on [SceneTree].
[b]Networking with nodes:[/b] After connecting to a server (or making one, see [ENetMultiplayerPeer]), it is possible to use the built-in RPC (remote procedure call) system to communicate over the network. By calling [method rpc] with a method name, it will be called locally and in all connected peers (peers = clients and the server that accepts connections). To identify which node receives the RPC call, Godot will use its [NodePath] (make sure node names are the same on all peers). Also, take a look at the high-level networking tutorial and corresponding demos.
+ [b]Note:[/b] The [code]script[/code] property is part of the [Object] class, not [Node]. It isn't exposed like most properties but does have a setter and getter ([code]set_script()[/code] and [code]get_script()[/code]).
</description>
<tutorials>
<link title="Nodes and scenes">$DOCS_URL/getting_started/step_by_step/nodes_and_scenes.html</link>
diff --git a/doc/classes/Node3D.xml b/doc/classes/Node3D.xml
index 1036c1fbcf..6b5a627575 100644
--- a/doc/classes/Node3D.xml
+++ b/doc/classes/Node3D.xml
@@ -134,6 +134,20 @@
Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's [Transform3D].
</description>
</method>
+ <method name="property_can_revert">
+ <return type="bool" />
+ <argument index="0" name="name" type="String" />
+ <description>
+ Returns [code]true[/code] if the property identified by [code]name[/code] can be reverted to a default value.
+ </description>
+ </method>
+ <method name="property_get_revert">
+ <return type="Variant" />
+ <argument index="0" name="name" type="String" />
+ <description>
+ Returns the default value of the Node3D property with given [code]name[/code].
+ </description>
+ </method>
<method name="rotate">
<return type="void" />
<argument index="0" name="axis" type="Vector3" />
diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml
index ffc02f09a9..1ed4b335ad 100644
--- a/doc/classes/OS.xml
+++ b/doc/classes/OS.xml
@@ -348,7 +348,7 @@
<method name="get_static_memory_usage" qualifiers="const">
<return type="int" />
<description>
- Returns the amount of static memory being used by the program in bytes.
+ Returns the amount of static memory being used by the program in bytes (only works in debug).
</description>
</method>
<method name="get_system_dir" qualifiers="const">
diff --git a/doc/classes/Object.xml b/doc/classes/Object.xml
index 860e252805..f5f6ba8b6d 100644
--- a/doc/classes/Object.xml
+++ b/doc/classes/Object.xml
@@ -27,9 +27,11 @@
The [code]in[/code] operator will evaluate to [code]true[/code] as long as the key exists, even if the value is [code]null[/code].
Objects also receive notifications. Notifications are a simple way to notify the object about different events, so they can all be handled together. See [method _notification].
[b]Note:[/b] Unlike references to a [RefCounted], references to an Object stored in a variable can become invalid without warning. Therefore, it's recommended to use [RefCounted] for data classes instead of [Object].
+ [b]Note:[/b] The [code]script[/code] property is not exposed like most properties, but it does have a setter and getter ([code]set_script()[/code] and [code]get_script()[/code]).
</description>
<tutorials>
<link title="When and how to avoid using nodes for everything">$DOCS_URL/tutorials/best_practices/node_alternatives.html</link>
+ <link title="Object notifications">$DOCS_URL/tutorials/best_practices/godot_notifications.html</link>
</tutorials>
<methods>
<method name="_get" qualifiers="virtual">
diff --git a/doc/classes/PackedByteArray.xml b/doc/classes/PackedByteArray.xml
index b16d45b8ca..686854ffe8 100644
--- a/doc/classes/PackedByteArray.xml
+++ b/doc/classes/PackedByteArray.xml
@@ -363,7 +363,7 @@
<method name="size" qualifiers="const">
<return type="int" />
<description>
- Returns the size of the array.
+ Returns the number of elements in the array.
</description>
</method>
<method name="slice" qualifiers="const">
diff --git a/doc/classes/PackedColorArray.xml b/doc/classes/PackedColorArray.xml
index 13d7440bb9..d875549319 100644
--- a/doc/classes/PackedColorArray.xml
+++ b/doc/classes/PackedColorArray.xml
@@ -126,7 +126,7 @@
<method name="size" qualifiers="const">
<return type="int" />
<description>
- Returns the size of the array.
+ Returns the number of elements in the array.
</description>
</method>
<method name="slice" qualifiers="const">
diff --git a/doc/classes/PackedFloat32Array.xml b/doc/classes/PackedFloat32Array.xml
index 151014192f..6c77c4bee2 100644
--- a/doc/classes/PackedFloat32Array.xml
+++ b/doc/classes/PackedFloat32Array.xml
@@ -127,7 +127,7 @@
<method name="size" qualifiers="const">
<return type="int" />
<description>
- Returns the size of the array.
+ Returns the number of elements in the array.
</description>
</method>
<method name="slice" qualifiers="const">
diff --git a/doc/classes/PackedFloat64Array.xml b/doc/classes/PackedFloat64Array.xml
index 963a02ace8..a8282c099a 100644
--- a/doc/classes/PackedFloat64Array.xml
+++ b/doc/classes/PackedFloat64Array.xml
@@ -127,7 +127,7 @@
<method name="size" qualifiers="const">
<return type="int" />
<description>
- Returns the size of the array.
+ Returns the number of elements in the array.
</description>
</method>
<method name="slice" qualifiers="const">
diff --git a/doc/classes/PackedInt32Array.xml b/doc/classes/PackedInt32Array.xml
index cef113dee9..da26e93b96 100644
--- a/doc/classes/PackedInt32Array.xml
+++ b/doc/classes/PackedInt32Array.xml
@@ -127,7 +127,7 @@
<method name="size" qualifiers="const">
<return type="int" />
<description>
- Returns the array size.
+ Returns the number of elements in the array.
</description>
</method>
<method name="slice" qualifiers="const">
diff --git a/doc/classes/PackedInt64Array.xml b/doc/classes/PackedInt64Array.xml
index 072df519c6..9ddf43a837 100644
--- a/doc/classes/PackedInt64Array.xml
+++ b/doc/classes/PackedInt64Array.xml
@@ -127,7 +127,7 @@
<method name="size" qualifiers="const">
<return type="int" />
<description>
- Returns the array size.
+ Returns the number of elements in the array.
</description>
</method>
<method name="slice" qualifiers="const">
diff --git a/doc/classes/PackedStringArray.xml b/doc/classes/PackedStringArray.xml
index 0bded150a3..439d59dde7 100644
--- a/doc/classes/PackedStringArray.xml
+++ b/doc/classes/PackedStringArray.xml
@@ -127,7 +127,7 @@
<method name="size" qualifiers="const">
<return type="int" />
<description>
- Returns the size of the array.
+ Returns the number of elements in the array.
</description>
</method>
<method name="slice" qualifiers="const">
diff --git a/doc/classes/PackedVector2Array.xml b/doc/classes/PackedVector2Array.xml
index 8e993c41ab..8c4f052016 100644
--- a/doc/classes/PackedVector2Array.xml
+++ b/doc/classes/PackedVector2Array.xml
@@ -127,7 +127,7 @@
<method name="size" qualifiers="const">
<return type="int" />
<description>
- Returns the size of the array.
+ Returns the number of elements in the array.
</description>
</method>
<method name="slice" qualifiers="const">
diff --git a/doc/classes/PackedVector3Array.xml b/doc/classes/PackedVector3Array.xml
index df69e3cd4a..8229af984d 100644
--- a/doc/classes/PackedVector3Array.xml
+++ b/doc/classes/PackedVector3Array.xml
@@ -126,7 +126,7 @@
<method name="size" qualifiers="const">
<return type="int" />
<description>
- Returns the size of the array.
+ Returns the number of elements in the array.
</description>
</method>
<method name="slice" qualifiers="const">
diff --git a/doc/classes/ParticlesMaterial.xml b/doc/classes/ParticlesMaterial.xml
index d2261ed4cc..6cf0ea2a93 100644
--- a/doc/classes/ParticlesMaterial.xml
+++ b/doc/classes/ParticlesMaterial.xml
@@ -15,14 +15,14 @@
<return type="float" />
<argument index="0" name="param" type="int" enum="ParticlesMaterial.Parameter" />
<description>
- Return the maximum value range for the given prameter.
+ Returns the maximum value range for the given parameter.
</description>
</method>
<method name="get_param_min" qualifiers="const">
<return type="float" />
<argument index="0" name="param" type="int" enum="ParticlesMaterial.Parameter" />
<description>
- Return the minimum value range for the given parameter.
+ Returns the minimum value range for the given parameter.
</description>
</method>
<method name="get_param_texture" qualifiers="const">
@@ -199,7 +199,7 @@
Minimum initial velocity.
</member>
<member name="lifetime_randomness" type="float" setter="set_lifetime_randomness" getter="get_lifetime_randomness" default="0.0">
- Particle lifetime randomness ratio. The lifetime will be multipled by a value interpolated between [code]1.0[/code] and a random number less than one. For example a random ratio of [code]0.4[/code] would scale the original lifetime between [code]0.4-1.0[/code] of its original value.
+ Particle lifetime randomness ratio. The lifetime will be multiplied by a value interpolated between [code]1.0[/code] and a random number less than one. For example a random ratio of [code]0.4[/code] would scale the original lifetime between [code]0.4-1.0[/code] of its original value.
</member>
<member name="linear_accel_curve" type="Texture2D" setter="set_param_texture" getter="get_param_texture">
Each particle's linear acceleration will vary along this [CurveTexture].
diff --git a/doc/classes/PhysicsTestMotionResult2D.xml b/doc/classes/PhysicsTestMotionResult2D.xml
index 355365cf25..060641caff 100644
--- a/doc/classes/PhysicsTestMotionResult2D.xml
+++ b/doc/classes/PhysicsTestMotionResult2D.xml
@@ -12,55 +12,55 @@
<method name="get_collider" qualifiers="const">
<return type="Object" />
<description>
- Returns the colliding body's attached [Object], if a collision occured.
+ Returns the colliding body's attached [Object], if a collision occurred.
</description>
</method>
<method name="get_collider_id" qualifiers="const">
<return type="int" />
<description>
- Returns the unique instance ID of the colliding body's attached [Object], if a collision occured. See [method Object.get_instance_id].
+ Returns the unique instance ID of the colliding body's attached [Object], if a collision occurred. See [method Object.get_instance_id].
</description>
</method>
<method name="get_collider_rid" qualifiers="const">
<return type="RID" />
<description>
- Returns the colliding body's [RID] used by the [PhysicsServer2D], if a collision occured.
+ Returns the colliding body's [RID] used by the [PhysicsServer2D], if a collision occurred.
</description>
</method>
<method name="get_collider_shape" qualifiers="const">
<return type="int" />
<description>
- Returns the colliding body's shape index, if a collision occured. See [CollisionObject2D].
+ Returns the colliding body's shape index, if a collision occurred. See [CollisionObject2D].
</description>
</method>
<method name="get_collider_velocity" qualifiers="const">
<return type="Vector2" />
<description>
- Returns the colliding body's velocity, if a collision occured.
+ Returns the colliding body's velocity, if a collision occurred.
</description>
</method>
<method name="get_collision_depth" qualifiers="const">
<return type="float" />
<description>
- Returns the length of overlap along the collision normal, if a collision occured.
+ Returns the length of overlap along the collision normal, if a collision occurred.
</description>
</method>
<method name="get_collision_local_shape" qualifiers="const">
<return type="int" />
<description>
- Returns the moving object's colliding shape, if a collision occured.
+ Returns the moving object's colliding shape, if a collision occurred.
</description>
</method>
<method name="get_collision_normal" qualifiers="const">
<return type="Vector2" />
<description>
- Returns the colliding body's shape's normal at the point of collision, if a collision occured.
+ Returns the colliding body's shape's normal at the point of collision, if a collision occurred.
</description>
</method>
<method name="get_collision_point" qualifiers="const">
<return type="Vector2" />
<description>
- Returns the point of collision in global coordinates, if a collision occured.
+ Returns the point of collision in global coordinates, if a collision occurred.
</description>
</method>
<method name="get_collision_safe_fraction" qualifiers="const">
@@ -72,7 +72,7 @@
<method name="get_collision_unsafe_fraction" qualifiers="const">
<return type="float" />
<description>
- Returns the minimum fraction of the motion needed to collide, if a collision occured, between [code]0[/code] and [code]1[/code].
+ Returns the minimum fraction of the motion needed to collide, if a collision occurred, between [code]0[/code] and [code]1[/code].
</description>
</method>
<method name="get_remainder" qualifiers="const">
diff --git a/doc/classes/PhysicsTestMotionResult3D.xml b/doc/classes/PhysicsTestMotionResult3D.xml
index 282c140568..96029937da 100644
--- a/doc/classes/PhysicsTestMotionResult3D.xml
+++ b/doc/classes/PhysicsTestMotionResult3D.xml
@@ -13,35 +13,35 @@
<return type="Object" />
<argument index="0" name="collision_index" type="int" default="0" />
<description>
- Returns the colliding body's attached [Object] given a collision index (the deepest collision by default), if a collision occured.
+ Returns the colliding body's attached [Object] given a collision index (the deepest collision by default), if a collision occurred.
</description>
</method>
<method name="get_collider_id" qualifiers="const">
<return type="int" />
<argument index="0" name="collision_index" type="int" default="0" />
<description>
- Returns the unique instance ID of the colliding body's attached [Object] given a collision index (the deepest collision by default), if a collision occured. See [method Object.get_instance_id].
+ Returns the unique instance ID of the colliding body's attached [Object] given a collision index (the deepest collision by default), if a collision occurred. See [method Object.get_instance_id].
</description>
</method>
<method name="get_collider_rid" qualifiers="const">
<return type="RID" />
<argument index="0" name="collision_index" type="int" default="0" />
<description>
- Returns the colliding body's [RID] used by the [PhysicsServer3D] given a collision index (the deepest collision by default), if a collision occured.
+ Returns the colliding body's [RID] used by the [PhysicsServer3D] given a collision index (the deepest collision by default), if a collision occurred.
</description>
</method>
<method name="get_collider_shape" qualifiers="const">
<return type="int" />
<argument index="0" name="collision_index" type="int" default="0" />
<description>
- Returns the colliding body's shape index given a collision index (the deepest collision by default), if a collision occured. See [CollisionObject3D].
+ Returns the colliding body's shape index given a collision index (the deepest collision by default), if a collision occurred. See [CollisionObject3D].
</description>
</method>
<method name="get_collider_velocity" qualifiers="const">
<return type="Vector3" />
<argument index="0" name="collision_index" type="int" default="0" />
<description>
- Returns the colliding body's velocity given a collision index (the deepest collision by default), if a collision occured.
+ Returns the colliding body's velocity given a collision index (the deepest collision by default), if a collision occurred.
</description>
</method>
<method name="get_collision_count" qualifiers="const">
@@ -54,28 +54,28 @@
<return type="float" />
<argument index="0" name="collision_index" type="int" default="0" />
<description>
- Returns the length of overlap along the collision normal given a collision index (the deepest collision by default), if a collision occured.
+ Returns the length of overlap along the collision normal given a collision index (the deepest collision by default), if a collision occurred.
</description>
</method>
<method name="get_collision_local_shape" qualifiers="const">
<return type="int" />
<argument index="0" name="collision_index" type="int" default="0" />
<description>
- Returns the moving object's colliding shape given a collision index (the deepest collision by default), if a collision occured.
+ Returns the moving object's colliding shape given a collision index (the deepest collision by default), if a collision occurred.
</description>
</method>
<method name="get_collision_normal" qualifiers="const">
<return type="Vector3" />
<argument index="0" name="collision_index" type="int" default="0" />
<description>
- Returns the colliding body's shape's normal at the point of collision given a collision index (the deepest collision by default), if a collision occured.
+ Returns the colliding body's shape's normal at the point of collision given a collision index (the deepest collision by default), if a collision occurred.
</description>
</method>
<method name="get_collision_point" qualifiers="const">
<return type="Vector3" />
<argument index="0" name="collision_index" type="int" default="0" />
<description>
- Returns the point of collision in global coordinates given a collision index (the deepest collision by default), if a collision occured.
+ Returns the point of collision in global coordinates given a collision index (the deepest collision by default), if a collision occurred.
</description>
</method>
<method name="get_collision_safe_fraction" qualifiers="const">
@@ -87,7 +87,7 @@
<method name="get_collision_unsafe_fraction" qualifiers="const">
<return type="float" />
<description>
- Returns the minimum fraction of the motion needed to collide, if a collision occured, between [code]0[/code] and [code]1[/code].
+ Returns the minimum fraction of the motion needed to collide, if a collision occurred, between [code]0[/code] and [code]1[/code].
</description>
</method>
<method name="get_remainder" qualifiers="const">
diff --git a/doc/classes/PrimitiveMesh.xml b/doc/classes/PrimitiveMesh.xml
index 6d63f56f1c..e9b3b887ae 100644
--- a/doc/classes/PrimitiveMesh.xml
+++ b/doc/classes/PrimitiveMesh.xml
@@ -34,7 +34,7 @@
</member>
<member name="flip_faces" type="bool" setter="set_flip_faces" getter="get_flip_faces" default="false">
If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn.
- This gives the same result as using [constant BaseMaterial3D.CULL_BACK] in [member BaseMaterial3D.cull_mode].
+ This gives the same result as using [constant BaseMaterial3D.CULL_FRONT] in [member BaseMaterial3D.cull_mode].
</member>
<member name="material" type="Material" setter="set_material" getter="get_material">
The current [Material] of the primitive mesh.
diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index 26d519506b..a249786388 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -188,6 +188,7 @@
ProjectSettings.SetSetting("application/config/name", "Example");
[/csharp]
[/codeblocks]
+ This can also be used to erase custom project settings. To do this change the setting value to [code]null[/code].
</description>
</method>
</methods>
@@ -1597,11 +1598,9 @@
<member name="rendering/camera/depth_of_field/depth_of_field_use_jitter" type="bool" setter="" getter="" default="false">
If [code]true[/code], jitters DOF samples to make effect slightly blurrier and hide lines created from low sample rates. This can result in a slightly grainy appearance when used with a low number of samples.
</member>
- <member name="rendering/driver/depth_prepass/disable_for_vendors" type="String" setter="" getter="" default="&quot;PowerVR,Mali,Adreno,Apple&quot;">
- Disables depth pre-pass for some GPU vendors (usually mobile), as their architecture already does this.
- </member>
<member name="rendering/driver/depth_prepass/enable" type="bool" setter="" getter="" default="true">
- If [code]true[/code], performs a previous depth pass before rendering materials. This increases performance in scenes with high overdraw, when complex materials and lighting are used.
+ If [code]true[/code], performs a previous depth pass before rendering 3D materials. This increases performance significantly in scenes with high overdraw, when complex materials and lighting are used. However, in scenes with few occluded surfaces, the depth prepass may reduce performance. If your game is viewed from a fixed angle that makes it easy to avoid overdraw (such as top-down or side-scrolling perspective), consider disabling the depth prepass to improve performance. This setting can be changed at run-time to optimize performance depending on the scene currently being viewed.
+ [b]Note:[/b] Only supported when using the Vulkan Clustered backend (not Vulkan Mobile or OpenGL). When using Vulkan Mobile or OpenGL, there is no depth prepass performed.
</member>
<member name="rendering/driver/driver_name" type="String" setter="" getter="" default="&quot;vulkan&quot;">
The video driver to use.
@@ -1652,6 +1651,24 @@
<member name="rendering/environment/ssao/quality" type="int" setter="" getter="" default="2">
Sets the quality of the screen-space ambient occlusion effect. Higher values take more samples and so will result in better quality, at the cost of performance. Setting to [code]ULTRA[/code] will use the [member rendering/environment/ssao/adaptive_target] setting.
</member>
+ <member name="rendering/environment/ssil/adaptive_target" type="float" setter="" getter="" default="0.5">
+ Quality target to use when [member rendering/environment/ssil/quality] is set to [code]ULTRA[/code]. A value of [code]0.0[/code] provides a quality and speed similar to [code]MEDIUM[/code] while a value of [code]1.0[/code] provides much higher quality than any of the other settings at the cost of performance. When using the adaptive target, the performance cost scales with the complexity of the scene.
+ </member>
+ <member name="rendering/environment/ssil/blur_passes" type="int" setter="" getter="" default="4">
+ Number of blur passes to use when computing screen-space indirect lighting. A higher number will result in a smoother look, but will be slower to compute and will have less high-frequency detail.
+ </member>
+ <member name="rendering/environment/ssil/fadeout_from" type="float" setter="" getter="" default="50.0">
+ Distance at which the screen-space indirect lighting effect starts to fade out. Use this hide screen-space indirect lighting at great distances.
+ </member>
+ <member name="rendering/environment/ssil/fadeout_to" type="float" setter="" getter="" default="300.0">
+ Distance at which the screen-space indirect lighting is fully faded out. Use this hide screen-space indirect lighting at great distances.
+ </member>
+ <member name="rendering/environment/ssil/half_size" type="bool" setter="" getter="" default="true">
+ If [code]true[/code], screen-space indirect lighting will be rendered at half size and then upscaled before being added to the scene. This is significantly faster but may miss small details and may result in some objects appearing to glow at their edges.
+ </member>
+ <member name="rendering/environment/ssil/quality" type="int" setter="" getter="" default="2">
+ Sets the quality of the screen-space indirect lighting effect. Higher values take more samples and so will result in better quality, at the cost of performance. Setting to [code]ULTRA[/code] will use the [member rendering/environment/ssil/adaptive_target] setting.
+ </member>
<member name="rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale" type="float" setter="" getter="" default="0.01">
Scales the depth over which the subsurface scattering effect is applied. A high value may allow light to scatter into a part of the mesh or another mesh that is close in screen space but far in depth.
</member>
@@ -1675,6 +1692,8 @@
<member name="rendering/gles2/compatibility/enable_high_float.Android" type="bool" setter="" getter="" default="false">
</member>
<member name="rendering/global_illumination/gi/use_half_resolution" type="bool" setter="" getter="" default="false">
+ If [code]true[/code], renders [VoxelGI] and SDFGI ([member Environment.sdfgi_enabled]) buffers at halved resolution (e.g. 960×540 when the viewport size is 1920×1080). This improves performance significantly when VoxelGI or SDFGI is enabled, at the cost of artifacts that may be visible on polygon edges. The loss in quality becomes less noticeable as the viewport resolution increases. [LightmapGI] rendering is not affected by this setting.
+ [b]Note:[/b] This property is only read when the project starts. To set half-resolution GI at run-time, call [method RenderingServer.gi_set_use_half_resolution] instead.
</member>
<member name="rendering/global_illumination/sdfgi/frames_to_converge" type="int" setter="" getter="" default="4">
</member>
@@ -1723,7 +1742,7 @@
<member name="rendering/mesh_lod/lod_change/threshold_pixels" type="float" setter="" getter="" default="1.0">
The automatic LOD bias to use for meshes rendered within the [ReflectionProbe]. Higher values will use less detailed versions of meshes that have LOD variations generated. If set to [code]0.0[/code], automatic LOD is disabled. Increase [member rendering/mesh_lod/lod_change/threshold_pixels] to improve performance at the cost of geometry detail.
[b]Note:[/b] [member rendering/mesh_lod/lod_change/threshold_pixels] does not affect [GeometryInstance3D] visibility ranges (also known as "manual" LOD or hierarchical LOD).
- [b]Note:[/b] This property is only read when the project starts. To adjust the automatic LOD threshold at runtime, set [member Viewport.lod_threshold] on the root [Viewport].
+ [b]Note:[/b] This property is only read when the project starts. To adjust the automatic LOD threshold at runtime, set [member Viewport.mesh_lod_threshold] on the root [Viewport].
</member>
<member name="rendering/occlusion_culling/bvh_build_quality" type="int" setter="" getter="" default="2">
</member>
diff --git a/doc/classes/RayCast3D.xml b/doc/classes/RayCast3D.xml
index 8abd3f84b1..8a8d6e73f0 100644
--- a/doc/classes/RayCast3D.xml
+++ b/doc/classes/RayCast3D.xml
@@ -38,8 +38,7 @@
<method name="force_raycast_update">
<return type="void" />
<description>
- Updates the collision information for the ray.
- Use this method to update the collision information immediately instead of waiting for the next [code]_physics_process[/code] call, for example if the ray or its parent has changed state.
+ Updates the collision information for the ray. Use this method to update the collision information immediately instead of waiting for the next [code]_physics_process[/code] call, for example if the ray or its parent has changed state.
[b]Note:[/b] [member enabled] does not need to be [code]true[/code] for this to work.
</description>
</method>
diff --git a/doc/classes/ReflectionProbe.xml b/doc/classes/ReflectionProbe.xml
index ae0eae6454..5d207c0db7 100644
--- a/doc/classes/ReflectionProbe.xml
+++ b/doc/classes/ReflectionProbe.xml
@@ -41,13 +41,13 @@
<member name="interior" type="bool" setter="set_as_interior" getter="is_set_as_interior" default="false">
If [code]true[/code], reflections will ignore sky contribution.
</member>
- <member name="lod_threshold" type="float" setter="set_lod_threshold" getter="get_lod_threshold" default="1.0">
- The automatic LOD bias to use for meshes rendered within the [ReflectionProbe] (this is analog to [member Viewport.lod_threshold]). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to [code]0.0[/code], automatic LOD is disabled. Increase [member lod_threshold] to improve performance at the cost of geometry detail, especially when using the [constant UPDATE_ALWAYS] [member update_mode].
- [b]Note:[/b] [member lod_threshold] does not affect [GeometryInstance3D] visibility ranges (also known as "manual" LOD or hierarchical LOD).
- </member>
<member name="max_distance" type="float" setter="set_max_distance" getter="get_max_distance" default="0.0">
The maximum distance away from the [ReflectionProbe] an object can be before it is culled. Decrease this to improve performance, especially when using the [constant UPDATE_ALWAYS] [member update_mode].
</member>
+ <member name="mesh_lod_threshold" type="float" setter="set_mesh_lod_threshold" getter="get_mesh_lod_threshold" default="1.0">
+ The automatic LOD bias to use for meshes rendered within the [ReflectionProbe] (this is analog to [member Viewport.mesh_lod_threshold]). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to [code]0.0[/code], automatic LOD is disabled. Increase [member mesh_lod_threshold] to improve performance at the cost of geometry detail, especially when using the [constant UPDATE_ALWAYS] [member update_mode].
+ [b]Note:[/b] [member mesh_lod_threshold] does not affect [GeometryInstance3D] visibility ranges (also known as "manual" LOD or hierarchical LOD).
+ </member>
<member name="origin_offset" type="Vector3" setter="set_origin_offset" getter="get_origin_offset" default="Vector3(0, 0, 0)">
Sets the origin offset to be used when this [ReflectionProbe] is in [member box_projection] mode. This can be set to a non-zero value to ensure a reflection fits a rectangle-shaped room, while reducing the amount of objects that "get in the way" of the reflection.
</member>
diff --git a/doc/classes/RenderingDevice.xml b/doc/classes/RenderingDevice.xml
index 442dcc7d18..31c372ec80 100644
--- a/doc/classes/RenderingDevice.xml
+++ b/doc/classes/RenderingDevice.xml
@@ -560,7 +560,8 @@
<argument index="1" name="with_texture" type="RID" />
<argument index="2" name="layer" type="int" />
<argument index="3" name="mipmap" type="int" />
- <argument index="4" name="slice_type" type="int" enum="RenderingDevice.TextureSliceType" default="0" />
+ <argument index="4" name="mipmaps" type="int" default="1" />
+ <argument index="5" name="slice_type" type="int" enum="RenderingDevice.TextureSliceType" default="0" />
<description>
</description>
</method>
@@ -654,6 +655,24 @@
</constant>
<constant name="BARRIER_MASK_NO_BARRIER" value="8">
</constant>
+ <constant name="DEVICE_TYPE_OTHER" value="0" enum="DeviceType">
+ Rendering device type does not match any of the other enum values or is unknown.
+ </constant>
+ <constant name="DEVICE_TYPE_INTEGRATED_GPU" value="1" enum="DeviceType">
+ Rendering device is an integrated GPU, which is typically [i](but not always)[/i] slower than dedicated GPUs ([constant DEVICE_TYPE_DISCRETE_GPU]). On Android and iOS, the rendering device type is always considered to be [constant DEVICE_TYPE_INTEGRATED_GPU].
+ </constant>
+ <constant name="DEVICE_TYPE_DISCRETE_GPU" value="2" enum="DeviceType">
+ Rendering device is a dedicated GPU, which is typically [i](but not always)[/i] faster than integrated GPUs ([constant DEVICE_TYPE_INTEGRATED_GPU]).
+ </constant>
+ <constant name="DEVICE_TYPE_VIRTUAL_GPU" value="3" enum="DeviceType">
+ Rendering device is an emulated GPU in a virtual environment. This is typically much slower than the host GPU, which means the expected performance level on a dedicated GPU will be roughly equivalent to [constant DEVICE_TYPE_INTEGRATED_GPU]. Virtual machine GPU passthrough (such as VFIO) will not report the device type as [constant DEVICE_TYPE_VIRTUAL_GPU]. Instead, the host GPU's device type will be reported as if the GPU was not emulated.
+ </constant>
+ <constant name="DEVICE_TYPE_CPU" value="4" enum="DeviceType">
+ Rendering device is provided by software emulation (such as Lavapipe or [url=https://github.com/google/swiftshader]SwiftShader[/url]). This is the slowest kind of rendering device available; it's typically much slower than [constant DEVICE_TYPE_INTEGRATED_GPU].
+ </constant>
+ <constant name="DEVICE_TYPE_MAX" value="5" enum="DeviceType">
+ Represents the size of the [enum DeviceType] enum.
+ </constant>
<constant name="DRIVER_RESOURCE_VULKAN_DEVICE" value="0" enum="DriverResource">
</constant>
<constant name="DRIVER_RESOURCE_VULKAN_PHYSICAL_DEVICE" value="1" enum="DriverResource">
diff --git a/doc/classes/RenderingServer.xml b/doc/classes/RenderingServer.xml
index 0700650a91..009e9d3df4 100644
--- a/doc/classes/RenderingServer.xml
+++ b/doc/classes/RenderingServer.xml
@@ -1068,7 +1068,7 @@
<argument index="8" name="light_affect" type="float" />
<argument index="9" name="ao_channel_affect" type="float" />
<description>
- Sets the variables to be used with the "screen space ambient occlusion" post-process effect. See [Environment] for more details.
+ Sets the variables to be used with the screen-space ambient occlusion (SSAO) post-process effect. See [Environment] for more details.
</description>
</method>
<method name="environment_set_ssao_quality">
@@ -1080,6 +1080,19 @@
<argument index="4" name="fadeout_from" type="float" />
<argument index="5" name="fadeout_to" type="float" />
<description>
+ Sets the quality level of the screen-space ambient occlusion (SSAO) post-process effect. See [Environment] for more details.
+ </description>
+ </method>
+ <method name="environment_set_ssil_quality">
+ <return type="void" />
+ <argument index="0" name="quality" type="int" enum="RenderingServer.EnvironmentSSILQuality" />
+ <argument index="1" name="half_size" type="bool" />
+ <argument index="2" name="adaptive_target" type="float" />
+ <argument index="3" name="blur_passes" type="int" />
+ <argument index="4" name="fadeout_from" type="float" />
+ <argument index="5" name="fadeout_to" type="float" />
+ <description>
+ Sets the quality level of the screen-space indirect lighting (SSIL) post-process effect. See [Environment] for more details.
</description>
</method>
<method name="environment_set_ssr">
@@ -1232,6 +1245,13 @@
[b]Note:[/b] When running a headless or server binary, this function returns an empty string.
</description>
</method>
+ <method name="get_video_adapter_type" qualifiers="const">
+ <return type="int" enum="RenderingDevice.DeviceType" />
+ <description>
+ Returns the type of the video adapter. Since dedicated graphics cards from a given generation will [i]usually[/i] be significantly faster than integrated graphics made in the same generation, the device type can be used as a basis for automatic graphics settings adjustment. However, this is not always true, so make sure to provide users with a way to manually override graphics settings.
+ [b]Note:[/b] When using the OpenGL backend or when running in headless mode, this function always returns [constant RenderingDevice.DEVICE_TYPE_OTHER].
+ </description>
+ </method>
<method name="get_video_adapter_vendor" qualifiers="const">
<return type="String" />
<description>
@@ -1245,6 +1265,13 @@
Returns the id of a white texture. Creates one if none exists.
</description>
</method>
+ <method name="gi_set_use_half_resolution">
+ <return type="void" />
+ <argument index="0" name="half_resolution" type="bool" />
+ <description>
+ If [code]half_resolution[/code] is [code]true[/code], renders [VoxelGI] and SDFGI ([member Environment.sdfgi_enabled]) buffers at halved resolution (e.g. 960×540 when the viewport size is 1920×1080). This improves performance significantly when VoxelGI or SDFGI is enabled, at the cost of artifacts that may be visible on polygon edges. The loss in quality becomes less noticeable as the viewport resolution increases. [LightmapGI] rendering is not affected by this setting. See also [member ProjectSettings.rendering/global_illumination/gi/use_half_resolution].
+ </description>
+ </method>
<method name="global_variable_add">
<return type="void" />
<argument index="0" name="name" type="StringName" />
@@ -1396,6 +1423,14 @@
<description>
</description>
</method>
+ <method name="instance_geometry_set_material_overlay">
+ <return type="void" />
+ <argument index="0" name="instance" type="RID" />
+ <argument index="1" name="material" type="RID" />
+ <description>
+ Sets a material that will be rendered for all surfaces on top of active materials for the mesh associated with this instance. Equivalent to [member GeometryInstance3D.material_overlay].
+ </description>
+ </method>
<method name="instance_geometry_set_material_override">
<return type="void" />
<argument index="0" name="instance" type="RID" />
@@ -2535,19 +2570,19 @@
Sets the intensity of the reflection probe. Intensity modulates the strength of the reflection. Equivalent to [member ReflectionProbe.intensity].
</description>
</method>
- <method name="reflection_probe_set_lod_threshold">
+ <method name="reflection_probe_set_max_distance">
<return type="void" />
<argument index="0" name="probe" type="RID" />
- <argument index="1" name="pixels" type="float" />
+ <argument index="1" name="distance" type="float" />
<description>
+ Sets the max distance away from the probe an object can be before it is culled. Equivalent to [member ReflectionProbe.max_distance].
</description>
</method>
- <method name="reflection_probe_set_max_distance">
+ <method name="reflection_probe_set_mesh_lod_threshold">
<return type="void" />
<argument index="0" name="probe" type="RID" />
- <argument index="1" name="distance" type="float" />
+ <argument index="1" name="pixels" type="float" />
<description>
- Sets the max distance away from the probe an object can be before it is culled. Equivalent to [member ReflectionProbe.max_distance].
</description>
</method>
<method name="reflection_probe_set_origin_offset">
@@ -4001,28 +4036,31 @@
<constant name="VIEWPORT_DEBUG_DRAW_SSAO" value="12" enum="ViewportDebugDraw">
Draws the screen space ambient occlusion texture instead of the scene so that you can clearly see how it is affecting objects. In order for this display mode to work, you must have [member Environment.ssao_enabled] set in your [WorldEnvironment].
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_PSSM_SPLITS" value="13" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_SSIL" value="13" enum="ViewportDebugDraw">
+ Draws the screen space indirect lighting texture instead of the scene so that you can clearly see how it is affecting objects. In order for this display mode to work, you must have [member Environment.ssil_enabled] set in your [WorldEnvironment].
+ </constant>
+ <constant name="VIEWPORT_DEBUG_DRAW_PSSM_SPLITS" value="14" enum="ViewportDebugDraw">
Colors each PSSM split for the [DirectionalLight3D]s in the scene a different color so you can see where the splits are. In order they will be colored red, green, blue, yellow.
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_DECAL_ATLAS" value="14" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_DECAL_ATLAS" value="15" enum="ViewportDebugDraw">
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_SDFGI" value="15" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_SDFGI" value="16" enum="ViewportDebugDraw">
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_SDFGI_PROBES" value="16" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_SDFGI_PROBES" value="17" enum="ViewportDebugDraw">
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_GI_BUFFER" value="17" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_GI_BUFFER" value="18" enum="ViewportDebugDraw">
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_DISABLE_LOD" value="18" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_DISABLE_LOD" value="19" enum="ViewportDebugDraw">
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS" value="19" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS" value="20" enum="ViewportDebugDraw">
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS" value="20" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS" value="21" enum="ViewportDebugDraw">
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS" value="21" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS" value="22" enum="ViewportDebugDraw">
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES" value="22" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES" value="23" enum="ViewportDebugDraw">
</constant>
- <constant name="VIEWPORT_DEBUG_DRAW_OCCLUDERS" value="23" enum="ViewportDebugDraw">
+ <constant name="VIEWPORT_DEBUG_DRAW_OCCLUDERS" value="24" enum="ViewportDebugDraw">
</constant>
<constant name="SKY_MODE_AUTOMATIC" value="0" enum="SkyMode">
</constant>
@@ -4113,19 +4151,34 @@
<constant name="ENV_SSR_ROUGNESS_QUALITY_HIGH" value="3" enum="EnvironmentSSRRoughnessQuality">
</constant>
<constant name="ENV_SSAO_QUALITY_VERY_LOW" value="0" enum="EnvironmentSSAOQuality">
- Lowest quality of screen space ambient occlusion.
+ Lowest quality of screen-space ambient occlusion.
</constant>
<constant name="ENV_SSAO_QUALITY_LOW" value="1" enum="EnvironmentSSAOQuality">
- Low quality screen space ambient occlusion.
+ Low quality screen-space ambient occlusion.
</constant>
<constant name="ENV_SSAO_QUALITY_MEDIUM" value="2" enum="EnvironmentSSAOQuality">
- Medium quality screen space ambient occlusion.
+ Medium quality screen-space ambient occlusion.
</constant>
<constant name="ENV_SSAO_QUALITY_HIGH" value="3" enum="EnvironmentSSAOQuality">
- High quality screen space ambient occlusion.
+ High quality screen-space ambient occlusion.
</constant>
<constant name="ENV_SSAO_QUALITY_ULTRA" value="4" enum="EnvironmentSSAOQuality">
- Highest quality screen space ambient occlusion. Uses the adaptive setting which can be dynamically adjusted to smoothly balance performance and visual quality.
+ Highest quality screen-space ambient occlusion. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality.
+ </constant>
+ <constant name="ENV_SSIL_QUALITY_VERY_LOW" value="0" enum="EnvironmentSSILQuality">
+ Lowest quality of screen-space indirect lighting.
+ </constant>
+ <constant name="ENV_SSIL_QUALITY_LOW" value="1" enum="EnvironmentSSILQuality">
+ Low quality screen-space indirect lighting.
+ </constant>
+ <constant name="ENV_SSIL_QUALITY_MEDIUM" value="2" enum="EnvironmentSSILQuality">
+ High quality screen-space indirect lighting.
+ </constant>
+ <constant name="ENV_SSIL_QUALITY_HIGH" value="3" enum="EnvironmentSSILQuality">
+ High quality screen-space indirect lighting.
+ </constant>
+ <constant name="ENV_SSIL_QUALITY_ULTRA" value="4" enum="EnvironmentSSILQuality">
+ Highest quality screen-space indirect lighting. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality.
</constant>
<constant name="ENV_SDFGI_CASCADES_4" value="0" enum="EnvironmentSDFGICascades">
</constant>
diff --git a/doc/classes/RichTextLabel.xml b/doc/classes/RichTextLabel.xml
index 132ede7a0a..c8ed373271 100644
--- a/doc/classes/RichTextLabel.xml
+++ b/doc/classes/RichTextLabel.xml
@@ -97,7 +97,7 @@
Returns the total number of characters from text tags. Does not include BBCodes.
</description>
</method>
- <method name="get_v_scroll">
+ <method name="get_v_scroll_bar">
<return type="VScrollBar" />
<description>
Returns the vertical scrollbar.
diff --git a/doc/classes/SceneState.xml b/doc/classes/SceneState.xml
index 9a22b24825..c3d726f705 100644
--- a/doc/classes/SceneState.xml
+++ b/doc/classes/SceneState.xml
@@ -59,6 +59,13 @@
Returns the path to the node that owns the method connected to the signal at [code]idx[/code], relative to the root node.
</description>
</method>
+ <method name="get_connection_unbinds" qualifiers="const">
+ <return type="int" />
+ <argument index="0" name="idx" type="int" />
+ <description>
+ Returns the number of unbound parameters for the signal at [code]idx[/code].
+ </description>
+ </method>
<method name="get_node_count" qualifiers="const">
<return type="int" />
<description>
diff --git a/doc/classes/ScrollContainer.xml b/doc/classes/ScrollContainer.xml
index 676c62c93c..948c052a20 100644
--- a/doc/classes/ScrollContainer.xml
+++ b/doc/classes/ScrollContainer.xml
@@ -24,14 +24,14 @@
[/codeblock]
</description>
</method>
- <method name="get_h_scrollbar">
+ <method name="get_h_scroll_bar">
<return type="HScrollBar" />
<description>
Returns the horizontal scrollbar [HScrollBar] of this [ScrollContainer].
[b]Warning:[/b] This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use [member horizontal_scroll_mode].
</description>
</method>
- <method name="get_v_scrollbar">
+ <method name="get_v_scroll_bar">
<return type="VScrollBar" />
<description>
Returns the vertical scrollbar [VScrollBar] of this [ScrollContainer].
diff --git a/doc/classes/Skeleton3D.xml b/doc/classes/Skeleton3D.xml
index e804e7bf24..aa56f852a7 100644
--- a/doc/classes/Skeleton3D.xml
+++ b/doc/classes/Skeleton3D.xml
@@ -297,7 +297,7 @@
<argument index="3" name="persistent" type="bool" default="false" />
<description>
Sets the global pose transform, [code]pose[/code], for the bone at [code]bone_idx[/code].
- [code]amount[/code] is the interpolation strengh that will be used when applying the pose, and [code]persistent[/code] determines if the applied pose will remain.
+ [code]amount[/code] is the interpolation strength that will be used when applying the pose, and [code]persistent[/code] determines if the applied pose will remain.
[b]Note:[/b] The pose transform needs to be a global pose! Use [method world_transform_to_global_pose] to convert a world transform, like one you can get from a [Node3D], to a global pose.
</description>
</method>
@@ -309,7 +309,7 @@
<argument index="3" name="persistent" type="bool" default="false" />
<description>
Sets the local pose transform, [code]pose[/code], for the bone at [code]bone_idx[/code].
- [code]amount[/code] is the interpolation strengh that will be used when applying the pose, and [code]persistent[/code] determines if the applied pose will remain.
+ [code]amount[/code] is the interpolation strength that will be used when applying the pose, and [code]persistent[/code] determines if the applied pose will remain.
[b]Note:[/b] The pose transform needs to be a local pose! Use [method global_pose_to_local_pose] to convert a global pose to a local pose.
</description>
</method>
diff --git a/doc/classes/SkeletonModification3D.xml b/doc/classes/SkeletonModification3D.xml
index c544473163..90ccd8f42e 100644
--- a/doc/classes/SkeletonModification3D.xml
+++ b/doc/classes/SkeletonModification3D.xml
@@ -60,7 +60,7 @@
When true, the modification's [method _execute] function will be called by the [SkeletonModificationStack3D].
</member>
<member name="execution_mode" type="int" setter="set_execution_mode" getter="get_execution_mode" default="0">
- The execution mode for the modification. This tells the modification stack when to execute the modification. Some modifications have settings that are only availible in certain execution modes.
+ The execution mode for the modification. This tells the modification stack when to execute the modification. Some modifications have settings that are only available in certain execution modes.
</member>
</members>
</class>
diff --git a/doc/classes/SkeletonModification3DCCDIK.xml b/doc/classes/SkeletonModification3DCCDIK.xml
index 55777ab0f4..606dce4961 100644
--- a/doc/classes/SkeletonModification3DCCDIK.xml
+++ b/doc/classes/SkeletonModification3DCCDIK.xml
@@ -4,7 +4,7 @@
A modification that uses CCDIK to manipulate a series of bones to reach a target.
</brief_description>
<description>
- This [SkeletonModification3D] uses an algorithm called Cyclic Coordinate Descent Inverse Kinematics, or CCDIK, to maniuplate a chain of bones in a Skeleton so it reaches a defined target.
+ This [SkeletonModification3D] uses an algorithm called Cyclic Coordinate Descent Inverse Kinematics, or CCDIK, to manipulate a chain of bones in a Skeleton so it reaches a defined target.
CCDIK works by rotating a set of bones, typically called a "bone chain", on a single axis. Each bone is rotated to face the target from the tip (by default), which over a chain of bones allow it to rotate properly to reach the target. Because the bones only rotate on a single axis, CCDIK [i]can[/i] look more robotic than other IK solvers.
[b]Note:[/b] The CCDIK modifier has [code]ccdik_joints[/code], which are the data objects that hold the data for each joint in the CCDIK chain. This is different from a bone! CCDIK joints hold the data needed for each bone in the bone chain used by CCDIK.
CCDIK also fully supports angle constraints, allowing for more control over how a solution is met.
diff --git a/doc/classes/SkeletonModification3DFABRIK.xml b/doc/classes/SkeletonModification3DFABRIK.xml
index 1c69ad7b3f..7c1a021c44 100644
--- a/doc/classes/SkeletonModification3DFABRIK.xml
+++ b/doc/classes/SkeletonModification3DFABRIK.xml
@@ -24,7 +24,7 @@
<return type="bool" />
<argument index="0" name="joint_idx" type="int" />
<description>
- Returns a boolean that indiciates whether this modification will attempt to autocalculate the length of the bone assigned to the FABRIK joint at [code]joint_idx[/code].
+ Returns a boolean that indicates whether this modification will attempt to autocalculate the length of the bone assigned to the FABRIK joint at [code]joint_idx[/code].
</description>
</method>
<method name="get_fabrik_joint_bone_index" qualifiers="const">
@@ -66,7 +66,7 @@
<return type="bool" />
<argument index="0" name="joint_idx" type="int" />
<description>
- Returns a boolean indiciating whether the FABRIK joint uses the target's [Basis] for its rotation.
+ Returns a boolean indicating whether the FABRIK joint uses the target's [Basis] for its rotation.
[b]Note:[/b] This option is only available for the final bone in the FABRIK chain, with this setting being ignored for all other bones.
</description>
</method>
diff --git a/doc/classes/SkeletonModification3DJiggle.xml b/doc/classes/SkeletonModification3DJiggle.xml
index 3c724229bd..605b28363b 100644
--- a/doc/classes/SkeletonModification3DJiggle.xml
+++ b/doc/classes/SkeletonModification3DJiggle.xml
@@ -56,7 +56,7 @@
<return type="bool" />
<argument index="0" name="joint_idx" type="int" />
<description>
- Returns a boolean that indiciates whether the joint at [code]joint_idx[/code] is overriding the default jiggle joint data defined in the modification.
+ Returns a boolean that indicates whether the joint at [code]joint_idx[/code] is overriding the default jiggle joint data defined in the modification.
</description>
</method>
<method name="get_jiggle_joint_roll" qualifiers="const">
@@ -77,7 +77,7 @@
<return type="bool" />
<argument index="0" name="joint_idx" type="int" />
<description>
- Returns a boolean that indiciates whether the joint at [code]joint_idx[/code] is using gravity or not.
+ Returns a boolean that indicates whether the joint at [code]joint_idx[/code] is using gravity or not.
</description>
</method>
<method name="get_use_colliders" qualifiers="const">
diff --git a/doc/classes/SkeletonModification3DTwoBoneIK.xml b/doc/classes/SkeletonModification3DTwoBoneIK.xml
index 0e83cd0b28..2edcda6bfd 100644
--- a/doc/classes/SkeletonModification3DTwoBoneIK.xml
+++ b/doc/classes/SkeletonModification3DTwoBoneIK.xml
@@ -4,7 +4,7 @@
A modification that moves two bones to reach the target.
</brief_description>
<description>
- This [SkeletonModification3D] uses an algorithm typically called TwoBoneIK. This algorithm works by leveraging the law of cosigns and the lengths of the bones to figure out what rotation the bones currently have, and what rotation they need to make a complete triangle, where the first bone, the second bone, and the target form the three vertices of the triangle. Because the algorithm works by making a triangle, it can only opperate on two bones.
+ This [SkeletonModification3D] uses an algorithm typically called TwoBoneIK. This algorithm works by leveraging the law of cosigns and the lengths of the bones to figure out what rotation the bones currently have, and what rotation they need to make a complete triangle, where the first bone, the second bone, and the target form the three vertices of the triangle. Because the algorithm works by making a triangle, it can only operate on two bones.
TwoBoneIK is great for arms, legs, and really any joints that can be represented by just two bones that bend to reach a target. This solver is more lightweight than [SkeletonModification3DFABRIK], but gives similar, natural looking results.
A [Node3D]-based node can be used to define the pole, or bend direction, allowing control over which direction the joint takes when bending to reach the target when the target is within reach.
</description>
diff --git a/doc/classes/SkeletonModificationStack3D.xml b/doc/classes/SkeletonModificationStack3D.xml
index 4035e39410..032fe6e032 100644
--- a/doc/classes/SkeletonModificationStack3D.xml
+++ b/doc/classes/SkeletonModificationStack3D.xml
@@ -43,7 +43,7 @@
<method name="get_is_setup" qualifiers="const">
<return type="bool" />
<description>
- Returns a boolean that indiciates whether the modification stack is setup and can execute.
+ Returns a boolean that indicates whether the modification stack is setup and can execute.
</description>
</method>
<method name="get_modification" qualifiers="const">
diff --git a/doc/classes/Slider.xml b/doc/classes/Slider.xml
index 41ceb7b8b3..9ef48afffc 100644
--- a/doc/classes/Slider.xml
+++ b/doc/classes/Slider.xml
@@ -25,4 +25,17 @@
If [code]true[/code], the slider will display ticks for minimum and maximum values.
</member>
</members>
+ <signals>
+ <signal name="drag_ended">
+ <argument index="0" name="value_changed" type="bool" />
+ <description>
+ Emitted when dragging stops. If [code]value_changed[/code] is true, [member Range.value] is different from the value when you started the dragging.
+ </description>
+ </signal>
+ <signal name="drag_started">
+ <description>
+ Emitted when dragging is started.
+ </description>
+ </signal>
+ </signals>
</class>
diff --git a/doc/classes/StreamPeer.xml b/doc/classes/StreamPeer.xml
index 805f056289..69d224ed24 100644
--- a/doc/classes/StreamPeer.xml
+++ b/doc/classes/StreamPeer.xml
@@ -70,7 +70,7 @@
<return type="String" />
<argument index="0" name="bytes" type="int" default="-1" />
<description>
- Gets a string with byte-length [code]bytes[/code] from the stream. If [code]bytes[/code] is negative (default) the length will be read from the stream using the reverse process of [method put_string].
+ Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If [code]bytes[/code] is negative (default) the length will be read from the stream using the reverse process of [method put_string].
</description>
</method>
<method name="get_u16">
diff --git a/doc/classes/String.xml b/doc/classes/String.xml
index cd6fc10931..d86c577e5e 100644
--- a/doc/classes/String.xml
+++ b/doc/classes/String.xml
@@ -340,7 +340,7 @@
<return type="String" />
<argument index="0" name="parts" type="PackedStringArray" />
<description>
- Return a [String] which is the concatenation of the [code]parts[/code]. The separator between elements is the string providing this method.
+ Returns a [String] which is the concatenation of the [code]parts[/code]. The separator between elements is the string providing this method.
Example:
[codeblocks]
[gdscript]
diff --git a/doc/classes/TabBar.xml b/doc/classes/TabBar.xml
index f97b3e08d1..71df40a693 100644
--- a/doc/classes/TabBar.xml
+++ b/doc/classes/TabBar.xml
@@ -49,19 +49,6 @@
Returns [code]true[/code] if select with right mouse button is enabled.
</description>
</method>
- <method name="get_tab_count" qualifiers="const">
- <return type="int" />
- <description>
- Returns the number of tabs.
- </description>
- </method>
- <method name="get_tab_disabled" qualifiers="const">
- <return type="bool" />
- <argument index="0" name="tab_idx" type="int" />
- <description>
- Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is disabled.
- </description>
- </method>
<method name="get_tab_icon" qualifiers="const">
<return type="Texture2D" />
<argument index="0" name="tab_idx" type="int" />
@@ -117,6 +104,13 @@
Returns the [TabBar]'s rearrange group ID.
</description>
</method>
+ <method name="is_tab_disabled" qualifiers="const">
+ <return type="bool" />
+ <argument index="0" name="tab_idx" type="int" />
+ <description>
+ Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is disabled.
+ </description>
+ </method>
<method name="move_tab">
<return type="void" />
<argument index="0" name="from" type="int" />
@@ -214,6 +208,9 @@
<member name="tab_close_display_policy" type="int" setter="set_tab_close_display_policy" getter="get_tab_close_display_policy" enum="TabBar.CloseButtonDisplayPolicy" default="0">
Sets when the close button will appear on the tabs. See [enum CloseButtonDisplayPolicy] for details.
</member>
+ <member name="tab_count" type="int" setter="set_tab_count" getter="get_tab_count" default="0">
+ The number of tabs currently in the bar.
+ </member>
</members>
<signals>
<signal name="active_tab_rearranged">
@@ -238,7 +235,7 @@
<argument index="0" name="tab" type="int" />
<description>
Emitted when a tab's close button is pressed.
- [b]Note:[/b] Tabs are not removed automatically once the close button is pressed, this behaviour needs to be programmed manually. For example:
+ [b]Note:[/b] Tabs are not removed automatically once the close button is pressed, this behavior needs to be programmed manually. For example:
[codeblocks]
[gdscript]
$TabBar.tab_close_pressed.connect($TabBar.remove_tab)
diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml
index d6738bfb89..e120f79236 100644
--- a/doc/classes/TextEdit.xml
+++ b/doc/classes/TextEdit.xml
@@ -201,7 +201,7 @@
<method name="get_last_full_visible_line" qualifiers="const">
<return type="int" />
<description>
- Return the last visible line. Use [method get_last_full_visible_line_wrap_index] for the wrap index.
+ Returns the last visible line. Use [method get_last_full_visible_line_wrap_index] for the wrap index.
</description>
</method>
<method name="get_last_full_visible_line_wrap_index" qualifiers="const">
@@ -942,7 +942,7 @@
<member name="caret_blink_speed" type="float" setter="set_caret_blink_speed" getter="get_caret_blink_speed" default="0.65">
Duration (in seconds) of a caret's blinking cycle.
</member>
- <member name="caret_mid_grapheme" type="bool" setter="set_caret_mid_grapheme_enabled" getter="is_caret_mid_grapheme_enabled" default="false">
+ <member name="caret_mid_grapheme" type="bool" setter="set_caret_mid_grapheme_enabled" getter="is_caret_mid_grapheme_enabled" default="true">
Allow moving caret, selecting and removing the individual composite character components.
[b]Note:[/b] [kbd]Backspace[/kbd] is always removing individual composite character components.
</member>
diff --git a/doc/classes/TextParagraph.xml b/doc/classes/TextParagraph.xml
index 6a510e4a74..ff193a0e4b 100644
--- a/doc/classes/TextParagraph.xml
+++ b/doc/classes/TextParagraph.xml
@@ -113,7 +113,7 @@
<method name="get_dropcap_rid" qualifiers="const">
<return type="RID" />
<description>
- Return drop cap text buffer RID.
+ Returns drop cap text buffer RID.
</description>
</method>
<method name="get_dropcap_size" qualifiers="const">
diff --git a/doc/classes/TextServer.xml b/doc/classes/TextServer.xml
index 6da45fdd4a..64989eb98b 100644
--- a/doc/classes/TextServer.xml
+++ b/doc/classes/TextServer.xml
@@ -244,7 +244,7 @@
<return type="int" />
<argument index="0" name="font_rid" type="RID" />
<description>
- Return the width of the range around the shape between the minimum and maximum representable signed distance.
+ Returns the width of the range around the shape between the minimum and maximum representable signed distance.
</description>
</method>
<method name="font_get_msdf_size" qualifiers="const">
@@ -261,6 +261,13 @@
Returns font family name.
</description>
</method>
+ <method name="font_get_opentype_feature_overrides" qualifiers="const">
+ <return type="Dictionary" />
+ <argument index="0" name="font_rid" type="RID" />
+ <description>
+ Returns font OpenType feature set override.
+ </description>
+ </method>
<method name="font_get_oversampling" qualifiers="const">
<return type="float" />
<argument index="0" name="font_rid" type="RID" />
@@ -295,7 +302,7 @@
<return type="Array" />
<argument index="0" name="font_rid" type="RID" />
<description>
- Return list of the font sizes in the cache. Each size is [code]Vector2i[/code] with font size and outline size.
+ Returns list of the font sizes in the cache. Each size is [code]Vector2i[/code] with font size and outline size.
</description>
</method>
<method name="font_get_spacing" qualifiers="const">
@@ -382,7 +389,7 @@
<argument index="0" name="font_rid" type="RID" />
<argument index="1" name="char" type="int" />
<description>
- Return [code]true[/code] if a Unicode [code]char[/code] is available in the font.
+ Returns [code]true[/code] if a Unicode [code]char[/code] is available in the font.
</description>
</method>
<method name="font_is_antialiased" qualifiers="const">
@@ -396,7 +403,7 @@
<return type="bool" />
<argument index="0" name="font_rid" type="RID" />
<description>
- Returns [code]true[/code] if auto-hinting is supported and preffered over font built-in hinting. Used by dynamic fonts only.
+ Returns [code]true[/code] if auto-hinting is supported and preferred over font built-in hinting. Used by dynamic fonts only.
</description>
</method>
<method name="font_is_language_supported" qualifiers="const">
@@ -541,7 +548,7 @@
<argument index="0" name="font_rid" type="RID" />
<argument index="1" name="force_autohinter" type="bool" />
<description>
- If set to [code]true[/code] auto-hinting is preffered over font built-in hinting.
+ If set to [code]true[/code] auto-hinting is preferred over font built-in hinting.
</description>
</method>
<method name="font_set_global_oversampling">
@@ -549,7 +556,7 @@
<argument index="0" name="oversampling" type="float" />
<description>
Sets oversampling factor, shared by all font in the TextServer.
- [b]Note:[/b] This value can be automaticaly changed by display server.
+ [b]Note:[/b] This value can be automatically changed by display server.
</description>
</method>
<method name="font_set_glyph_advance">
@@ -663,6 +670,14 @@
Sets the font family name.
</description>
</method>
+ <method name="font_set_opentype_feature_overrides">
+ <return type="void" />
+ <argument index="0" name="font_rid" type="RID" />
+ <argument index="1" name="overrides" type="Dictionary" />
+ <description>
+ Sets font OpenType feature set override.
+ </description>
+ </method>
<method name="font_set_oversampling">
<return type="void" />
<argument index="0" name="font_rid" type="RID" />
@@ -1384,7 +1399,7 @@
<constant name="OVERRUN_JUSTIFICATION_AWARE" value="16" enum="TextOverrunFlag">
</constant>
<constant name="GRAPHEME_IS_VALID" value="1" enum="GraphemeFlag">
- Grapheme is supprted by the font, and can be drawn.
+ Grapheme is supported by the font, and can be drawn.
</constant>
<constant name="GRAPHEME_IS_RTL" value="2" enum="GraphemeFlag">
Grapheme is part of right-to-left or bottom-to-top run.
diff --git a/doc/classes/TextServerExtension.xml b/doc/classes/TextServerExtension.xml
index af558150e2..aa6c93456b 100644
--- a/doc/classes/TextServerExtension.xml
+++ b/doc/classes/TextServerExtension.xml
@@ -261,6 +261,13 @@
Returns font family name.
</description>
</method>
+ <method name="_font_get_opentype_feature_overrides" qualifiers="virtual const">
+ <return type="Dictionary" />
+ <argument index="0" name="font_rid" type="RID" />
+ <description>
+ Returns font OpenType feature set override.
+ </description>
+ </method>
<method name="_font_get_oversampling" qualifiers="virtual const">
<return type="float" />
<argument index="0" name="font_rid" type="RID" />
@@ -396,7 +403,7 @@
<return type="bool" />
<argument index="0" name="font_rid" type="RID" />
<description>
- Returns [code]true[/code] if auto-hinting is supported and preffered over font built-in hinting. Used by dynamic fonts only.
+ Returns [code]true[/code] if auto-hinting is supported and preferred over font built-in hinting. Used by dynamic fonts only.
</description>
</method>
<method name="_font_is_language_supported" qualifiers="virtual const">
@@ -542,7 +549,7 @@
<argument index="0" name="font_rid" type="RID" />
<argument index="1" name="fixed_size" type="int" />
<description>
- If set to [code]true[/code] auto-hinting is preffered over font built-in hinting.
+ If set to [code]true[/code] auto-hinting is preferred over font built-in hinting.
</description>
</method>
<method name="_font_set_force_autohinter" qualifiers="virtual">
@@ -550,6 +557,7 @@
<argument index="0" name="font_rid" type="RID" />
<argument index="1" name="force_autohinter" type="bool" />
<description>
+ If set to [code]true[/code] auto-hinting is preffered over font built-in hinting.
</description>
</method>
<method name="_font_set_global_oversampling" qualifiers="virtual">
@@ -557,7 +565,7 @@
<argument index="0" name="oversampling" type="float" />
<description>
Sets oversampling factor, shared by all font in the TextServer.
- [b]Note:[/b] This value can be automaticaly changed by display server.
+ [b]Note:[/b] This value can be automatically changed by display server.
</description>
</method>
<method name="_font_set_glyph_advance" qualifiers="virtual">
@@ -670,6 +678,14 @@
Sets the font family name.
</description>
</method>
+ <method name="_font_set_opentype_feature_overrides" qualifiers="virtual">
+ <return type="void" />
+ <argument index="0" name="font_rid" type="RID" />
+ <argument index="1" name="overrides" type="Dictionary" />
+ <description>
+ Sets font OpenType feature set override.
+ </description>
+ </method>
<method name="_font_set_oversampling" qualifiers="virtual">
<return type="void" />
<argument index="0" name="font_rid" type="RID" />
diff --git a/doc/classes/TextureRect.xml b/doc/classes/TextureRect.xml
index a160eceb35..f0cbe09fb9 100644
--- a/doc/classes/TextureRect.xml
+++ b/doc/classes/TextureRect.xml
@@ -10,15 +10,15 @@
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
<members>
- <member name="expand" type="bool" setter="set_expand" getter="has_expand" default="false">
- If [code]true[/code], the texture scales to fit its bounding rectangle.
- </member>
<member name="flip_h" type="bool" setter="set_flip_h" getter="is_flipped_h" default="false">
If [code]true[/code], texture is flipped horizontally.
</member>
<member name="flip_v" type="bool" setter="set_flip_v" getter="is_flipped_v" default="false">
If [code]true[/code], texture is flipped vertically.
</member>
+ <member name="ignore_texture_size" type="bool" setter="set_ignore_texture_size" getter="get_ignore_texture_size" default="false">
+ If [code]true[/code], the size of the texture won't be considered for minimum size calculation, so the [TextureRect] can be shrunk down past the texture size. Useful for preventing [TextureRect]s from breaking GUI layout regardless of their texture size.
+ </member>
<member name="mouse_filter" type="int" setter="set_mouse_filter" getter="get_mouse_filter" overrides="Control" enum="Control.MouseFilter" default="1" />
<member name="stretch_mode" type="int" setter="set_stretch_mode" getter="get_stretch_mode" enum="TextureRect.StretchMode" default="0">
Controls the texture's behavior when resizing the node's bounding rectangle. See [enum StretchMode].
@@ -28,28 +28,25 @@
</member>
</members>
<constants>
- <constant name="STRETCH_SCALE_ON_EXPAND" value="0" enum="StretchMode">
- Scale to fit the node's bounding rectangle, only if [code]expand[/code] is [code]true[/code]. Default [code]stretch_mode[/code], for backwards compatibility. Until you set [code]expand[/code] to [code]true[/code], the texture will behave like [constant STRETCH_KEEP].
- </constant>
- <constant name="STRETCH_SCALE" value="1" enum="StretchMode">
+ <constant name="STRETCH_SCALE" value="0" enum="StretchMode">
Scale to fit the node's bounding rectangle.
</constant>
- <constant name="STRETCH_TILE" value="2" enum="StretchMode">
+ <constant name="STRETCH_TILE" value="1" enum="StretchMode">
Tile inside the node's bounding rectangle.
</constant>
- <constant name="STRETCH_KEEP" value="3" enum="StretchMode">
+ <constant name="STRETCH_KEEP" value="2" enum="StretchMode">
The texture keeps its original size and stays in the bounding rectangle's top-left corner.
</constant>
- <constant name="STRETCH_KEEP_CENTERED" value="4" enum="StretchMode">
+ <constant name="STRETCH_KEEP_CENTERED" value="3" enum="StretchMode">
The texture keeps its original size and stays centered in the node's bounding rectangle.
</constant>
- <constant name="STRETCH_KEEP_ASPECT" value="5" enum="StretchMode">
+ <constant name="STRETCH_KEEP_ASPECT" value="4" enum="StretchMode">
Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio.
</constant>
- <constant name="STRETCH_KEEP_ASPECT_CENTERED" value="6" enum="StretchMode">
+ <constant name="STRETCH_KEEP_ASPECT_CENTERED" value="5" enum="StretchMode">
Scale the texture to fit the node's bounding rectangle, center it and maintain its aspect ratio.
</constant>
- <constant name="STRETCH_KEEP_ASPECT_COVERED" value="7" enum="StretchMode">
+ <constant name="STRETCH_KEEP_ASPECT_COVERED" value="6" enum="StretchMode">
Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits.
</constant>
</constants>
diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml
index 6e552e3649..e37031f3fd 100644
--- a/doc/classes/TileMap.xml
+++ b/doc/classes/TileMap.xml
@@ -69,7 +69,7 @@
<description>
Triggers an update of the TileMap. If [code]layer[/code] is provided, only updates the given layer.
[b]Note:[/b] The TileMap node updates automatically when one of its properties is modified. A manual update is only needed if runtime modifications (implemented in [method _tile_data_runtime_update]) need to be applied.
- [b]Warning:[/b] Updating the TileMap is a performance demanding task. Limit occurences of those updates to the minimum and limit the amount tiles they impact (by segregating tiles updated often to a dedicated layer for example).
+ [b]Warning:[/b] Updating the TileMap is a performance demanding task. Limit occurrences of those updates to the minimum and limit the amount tiles they impact (by segregating tiles updated often to a dedicated layer for example).
</description>
</method>
<method name="get_cell_alternative_tile" qualifiers="const">
@@ -103,7 +103,7 @@
<return type="Vector2i" />
<argument index="0" name="body" type="RID" />
<description>
- Returns the coodinates of the tile for given physics body RID. Such RID can be retrieved from [method KinematicCollision2D.get_collider_rid], when colliding with a tile.
+ Returns the coordinates of the tile for given physics body RID. Such RID can be retrieved from [method KinematicCollision2D.get_collider_rid], when colliding with a tile.
</description>
</method>
<method name="get_layer_modulate" qualifiers="const">
@@ -144,7 +144,7 @@
<argument index="0" name="coords" type="Vector2i" />
<argument index="1" name="neighbor" type="int" enum="TileSet.CellNeighbor" />
<description>
- Returns the neighboring cell to the one at coordinates [code]coords[/code], indentified by the [code]neighbor[/code] direction. This method takes into account the different layouts a TileMap can take.
+ Returns the neighboring cell to the one at coordinates [code]coords[/code], identified by the [code]neighbor[/code] direction. This method takes into account the different layouts a TileMap can take.
</description>
</method>
<method name="get_pattern">
@@ -195,7 +195,7 @@
<argument index="1" name="coords_in_pattern" type="Vector2i" />
<argument index="2" name="pattern" type="TileMapPattern" />
<description>
- Returns for the given coodinate [code]coords_in_pattern[/code] in a [TileMapPattern] the corresponding cell coordinates if the pattern was pasted at the [code]position_in_tilemap[/code] coordinates (see [method set_pattern]). This mapping is required as in half-offset tile shapes, the mapping might not work by calculating [code]position_in_tile_map + coords_in_pattern[/code]
+ Returns for the given coordinate [code]coords_in_pattern[/code] in a [TileMapPattern] the corresponding cell coordinates if the pattern was pasted at the [code]position_in_tilemap[/code] coordinates (see [method set_pattern]). This mapping is required as in half-offset tile shapes, the mapping might not work by calculating [code]position_in_tile_map + coords_in_pattern[/code]
</description>
</method>
<method name="map_to_world" qualifiers="const">
@@ -229,7 +229,7 @@
<argument index="4" name="alternative_tile" type="int" default="-1" />
<description>
Sets the tile indentifiers for the cell on layer [code]layer[/code] at coordinates [code]coords[/code]. Each tile of the [TileSet] is identified using three parts:
- - The source indentifier [code]source_id[/code] identifies a [TileSetSource] identifier. See [method TileSet.set_source_id],
+ - The source identifier [code]source_id[/code] identifies a [TileSetSource] identifier. See [method TileSet.set_source_id],
- The atlas coordinates identifier [code]atlas_coords[/code] identifies a tile coordinates in the atlas (if the source is a [TileSetAtlasSource]. For [TileSetScenesCollectionSource] it should be 0),
- The alternative tile identifier [code]alternative_tile[/code] identifies a tile alternative the source is a [TileSetAtlasSource], and the scene for a [TileSetScenesCollectionSource].
</description>
diff --git a/doc/classes/TileSet.xml b/doc/classes/TileSet.xml
index 5d9065f823..6fc92f6a31 100644
--- a/doc/classes/TileSet.xml
+++ b/doc/classes/TileSet.xml
@@ -51,7 +51,7 @@
<argument index="0" name="pattern" type="TileMapPattern" />
<argument index="1" name="index" type="int" default="-1" />
<description>
- Adds a [TileMapPattern] to be stored in the TileSet resouce. If provided, insert it at the given [code]index[/code].
+ Adds a [TileMapPattern] to be stored in the TileSet resource. If provided, insert it at the given [code]index[/code].
</description>
</method>
<method name="add_physics_layer">
@@ -582,7 +582,7 @@
Diamond tile shape (for isometric look).
</constant>
<constant name="TILE_SHAPE_HALF_OFFSET_SQUARE" value="2" enum="TileShape">
- Rectangular tile shape with one row/colum out of two offset by half a tile.
+ Rectangular tile shape with one row/column out of two offset by half a tile.
</constant>
<constant name="TILE_SHAPE_HEXAGON" value="3" enum="TileShape">
Hexagonal tile shape.
diff --git a/doc/classes/TileSetScenesCollectionSource.xml b/doc/classes/TileSetScenesCollectionSource.xml
index 3451519ff6..f62ba7a337 100644
--- a/doc/classes/TileSetScenesCollectionSource.xml
+++ b/doc/classes/TileSetScenesCollectionSource.xml
@@ -4,8 +4,8 @@
Exposes a set of scenes as tiles for a [TileSet] resource.
</brief_description>
<description>
- When placed on a [TileMap], tiles from [TileSetScenesCollectionSource] will automatically instanciate an assiciated scene at the cell's position in the TileMap.
- Scenes are instanciated as children of the [TileMap] when it enters the tree. If you add/remove a scene tile in the [TileMap] that is already inside the tree, the [TileMap] will automatically instanciate/free the scene accordingly.
+ When placed on a [TileMap], tiles from [TileSetScenesCollectionSource] will automatically instantiate an associated scene at the cell's position in the TileMap.
+ Scenes are instantiated as children of the [TileMap] when it enters the tree. If you add/remove a scene tile in the [TileMap] that is already inside the tree, the [TileMap] will automatically instantiate/free the scene accordingly.
</description>
<tutorials>
</tutorials>
@@ -87,7 +87,7 @@
<argument index="0" name="id" type="int" />
<argument index="1" name="packed_scene" type="PackedScene" />
<description>
- Assigns a [PackedScene] resource to the scene tile with id [code]id[/code]. This will fail if the scene does not extend CanvasItem, as positionning properties are needed to place the scene on the TileMap.
+ Assigns a [PackedScene] resource to the scene tile with id [code]id[/code]. This will fail if the scene does not extend CanvasItem, as positioning properties are needed to place the scene on the TileMap.
</description>
</method>
</methods>
diff --git a/doc/classes/Transform3D.xml b/doc/classes/Transform3D.xml
index e62cb9216e..e679a8cfeb 100644
--- a/doc/classes/Transform3D.xml
+++ b/doc/classes/Transform3D.xml
@@ -60,13 +60,13 @@
<argument index="0" name="xform" type="Transform3D" />
<argument index="1" name="weight" type="float" />
<description>
- Interpolates the transform to other Transform3D by weight amount (on the range of 0.0 to 1.0).
+ Returns a transform interpolated between this transform and another by a given [code]weight[/code] (on the range of 0.0 to 1.0).
</description>
</method>
<method name="inverse" qualifiers="const">
<return type="Transform3D" />
<description>
- Returns the inverse of the transform, under the assumption that the transformation is composed of rotation and translation (no scaling, use affine_inverse for transforms with scaling).
+ Returns the inverse of the transform, under the assumption that the transformation is composed of rotation and translation (no scaling, use [method affine_inverse] for transforms with scaling).
</description>
</method>
<method name="is_equal_approx" qualifiers="const">
@@ -88,7 +88,7 @@
<method name="orthonormalized" qualifiers="const">
<return type="Transform3D" />
<description>
- Returns the transform with the basis orthogonal (90 degrees), and normalized axis vectors.
+ Returns the transform with the basis orthogonal (90 degrees), and normalized axis vectors (scale of 1 or -1).
</description>
</method>
<method name="rotated" qualifiers="const">
diff --git a/doc/classes/Tween.xml b/doc/classes/Tween.xml
index 05c83f0423..1cba995366 100644
--- a/doc/classes/Tween.xml
+++ b/doc/classes/Tween.xml
@@ -303,46 +303,64 @@
</signals>
<constants>
<constant name="TWEEN_PROCESS_PHYSICS" value="0" enum="TweenProcessMode">
- The [Tween] updates during physics frame.
+ The [Tween] updates during the physics frame.
</constant>
<constant name="TWEEN_PROCESS_IDLE" value="1" enum="TweenProcessMode">
- The [Tween] updates during idle
+ The [Tween] updates during the idle frame.
</constant>
<constant name="TWEEN_PAUSE_BOUND" value="0" enum="TweenPauseMode">
+ If the [Tween] has a bound node, it will process when that node can process (see [member Node.process_mode]). Otherwise it's the same as [constant TWEEN_PAUSE_STOP].
</constant>
<constant name="TWEEN_PAUSE_STOP" value="1" enum="TweenPauseMode">
+ If [SceneTree] is paused, the [Tween] will also pause.
</constant>
<constant name="TWEEN_PAUSE_PROCESS" value="2" enum="TweenPauseMode">
+ The [Tween] will process regardless of whether [SceneTree] is paused.
</constant>
<constant name="TRANS_LINEAR" value="0" enum="TransitionType">
+ The animation is interpolated linearly.
</constant>
<constant name="TRANS_SINE" value="1" enum="TransitionType">
+ The animation is interpolated using a sine function.
</constant>
<constant name="TRANS_QUINT" value="2" enum="TransitionType">
+ The animation is interpolated with a quintic (to the power of 5) function.
</constant>
<constant name="TRANS_QUART" value="3" enum="TransitionType">
+ The animation is interpolated with a quartic (to the power of 4) function.
</constant>
<constant name="TRANS_QUAD" value="4" enum="TransitionType">
+ The animation is interpolated with a quadratic (to the power of 2) function.
</constant>
<constant name="TRANS_EXPO" value="5" enum="TransitionType">
+ The animation is interpolated with an exponential (to the power of x) function.
</constant>
<constant name="TRANS_ELASTIC" value="6" enum="TransitionType">
+ The animation is interpolated with elasticity, wiggling around the edges.
</constant>
<constant name="TRANS_CUBIC" value="7" enum="TransitionType">
+ The animation is interpolated with a cubic (to the power of 3) function.
</constant>
<constant name="TRANS_CIRC" value="8" enum="TransitionType">
+ The animation is interpolated with a function using square roots.
</constant>
<constant name="TRANS_BOUNCE" value="9" enum="TransitionType">
+ The animation is interpolated by bouncing at the end.
</constant>
<constant name="TRANS_BACK" value="10" enum="TransitionType">
+ The animation is interpolated backing out at ends.
</constant>
<constant name="EASE_IN" value="0" enum="EaseType">
+ The interpolation starts slowly and speeds up towards the end.
</constant>
<constant name="EASE_OUT" value="1" enum="EaseType">
+ The interpolation starts quickly and slows down towards the end.
</constant>
<constant name="EASE_IN_OUT" value="2" enum="EaseType">
+ A combination of [constant EASE_IN] and [constant EASE_OUT]. The interpolation is slowest at both ends.
</constant>
<constant name="EASE_OUT_IN" value="3" enum="EaseType">
+ A combination of [constant EASE_IN] and [constant EASE_OUT]. The interpolation is fastest at both ends.
</constant>
</constants>
</class>
diff --git a/doc/classes/UndoRedo.xml b/doc/classes/UndoRedo.xml
index 044460f569..0bb64fb845 100644
--- a/doc/classes/UndoRedo.xml
+++ b/doc/classes/UndoRedo.xml
@@ -162,7 +162,7 @@
<method name="get_history_count">
<return type="int" />
<description>
- Return how many elements are in the history.
+ Returns how many elements are in the history.
</description>
</method>
<method name="get_version" qualifiers="const">
diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml
index f3c2d743b6..6c39efd2f9 100644
--- a/doc/classes/Vector2.xml
+++ b/doc/classes/Vector2.xml
@@ -95,7 +95,7 @@
<method name="ceil" qualifiers="const">
<return type="Vector2" />
<description>
- Returns the vector with all components rounded up (towards positive infinity).
+ Returns a new vector with all components rounded up (towards positive infinity).
</description>
</method>
<method name="clamp" qualifiers="const">
@@ -158,7 +158,7 @@
<method name="floor" qualifiers="const">
<return type="Vector2" />
<description>
- Returns the vector with all components rounded down (towards negative infinity).
+ Returns a new vector with all components rounded down (towards negative infinity).
</description>
</method>
<method name="from_angle" qualifiers="static">
@@ -231,7 +231,7 @@
<argument index="0" name="to" type="Vector2" />
<argument index="1" name="delta" type="float" />
<description>
- Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] amount. Will not go past the final value.
+ Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/code] amount. Will not go past the final value.
</description>
</method>
<method name="normalized" qualifiers="const">
@@ -264,14 +264,14 @@
<return type="Vector2" />
<argument index="0" name="b" type="Vector2" />
<description>
- Returns the vector projected onto the vector [code]b[/code].
+ Returns this vector projected onto the vector [code]b[/code].
</description>
</method>
<method name="reflect" qualifiers="const">
<return type="Vector2" />
<argument index="0" name="n" type="Vector2" />
<description>
- Returns the vector reflected from a plane defined by the given normal.
+ Returns the vector reflected (i.e. mirrored, or symmetric) over a line defined by the given direction vector [code]n[/code].
</description>
</method>
<method name="rotated" qualifiers="const">
@@ -284,13 +284,13 @@
<method name="round" qualifiers="const">
<return type="Vector2" />
<description>
- Returns the vector with all components rounded to the nearest integer, with halfway cases rounded away from zero.
+ Returns a new vector with all components rounded to the nearest integer, with halfway cases rounded away from zero.
</description>
</method>
<method name="sign" qualifiers="const">
<return type="Vector2" />
<description>
- Returns the vector with each component set to one or negative one, depending on the signs of the components, or zero if the component is zero, by calling [method @GlobalScope.sign] on each component.
+ Returns a new vector with each component set to one or negative one, depending on the signs of the components, or zero if the component is zero, by calling [method @GlobalScope.sign] on each component.
</description>
</method>
<method name="slerp" qualifiers="const">
@@ -299,7 +299,7 @@
<argument index="1" name="weight" type="float" />
<description>
Returns the result of spherical linear interpolation between this vector and [code]to[/code], by amount [code]weight[/code]. [code]weight[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation.
- [b]Note:[/b] Both vectors must be normalized.
+ This method also handles interpolating the lengths if the input vectors have different lengths. For the special case of one or both input vectors having zero length, this method behaves like [method lerp].
</description>
</method>
<method name="slide" qualifiers="const">
diff --git a/doc/classes/Vector2i.xml b/doc/classes/Vector2i.xml
index a9334d924f..721c73d603 100644
--- a/doc/classes/Vector2i.xml
+++ b/doc/classes/Vector2i.xml
@@ -53,7 +53,7 @@
<method name="aspect" qualifiers="const">
<return type="float" />
<description>
- Returns the ratio of [member x] to [member y].
+ Returns the aspect ratio of this vector, the ratio of [member x] to [member y].
</description>
</method>
<method name="clamp" qualifiers="const">
@@ -64,6 +64,19 @@
Returns a new vector with all components clamped between the components of [code]min[/code] and [code]max[/code], by running [method @GlobalScope.clamp] on each component.
</description>
</method>
+ <method name="length" qualifiers="const">
+ <return type="float" />
+ <description>
+ Returns the length (magnitude) of this vector.
+ </description>
+ </method>
+ <method name="length_squared" qualifiers="const">
+ <return type="int" />
+ <description>
+ Returns the squared length (squared magnitude) of this vector.
+ This method runs faster than [method length], so prefer it if you need to compare vectors or need the squared distance for some formula.
+ </description>
+ </method>
<method name="max_axis_index" qualifiers="const">
<return type="int" />
<description>
@@ -79,7 +92,7 @@
<method name="sign" qualifiers="const">
<return type="Vector2i" />
<description>
- Returns the vector with each component set to one or negative one, depending on the signs of the components.
+ Returns a new vector with each component set to one or negative one, depending on the signs of the components, or zero if the component is zero, by calling [method @GlobalScope.sign] on each component.
</description>
</method>
</methods>
diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml
index da5e4f4f43..ead08d86df 100644
--- a/doc/classes/Vector3.xml
+++ b/doc/classes/Vector3.xml
@@ -96,7 +96,7 @@
<argument index="2" name="post_b" type="Vector3" />
<argument index="3" name="weight" type="float" />
<description>
- Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by the given amount [code]weight[/code]. [code]weight[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation.
+ Performs a cubic interpolation between this vector and [code]b[/code] using [code]pre_a[/code] and [code]post_b[/code] as handles, and returns the result at position [code]weight[/code]. [code]weight[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation.
</description>
</method>
<method name="direction_to" qualifiers="const">
@@ -201,7 +201,7 @@
<argument index="0" name="to" type="Vector3" />
<argument index="1" name="delta" type="float" />
<description>
- Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] amount. Will not go past the final value.
+ Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/code] amount. Will not go past the final value.
</description>
</method>
<method name="normalized" qualifiers="const">
@@ -246,7 +246,7 @@
<return type="Vector3" />
<argument index="0" name="b" type="Vector3" />
<description>
- Returns this vector projected onto another vector [code]b[/code].
+ Returns this vector projected onto the vector [code]b[/code].
</description>
</method>
<method name="reflect" qualifiers="const">
@@ -267,13 +267,13 @@
<method name="round" qualifiers="const">
<return type="Vector3" />
<description>
- Returns this vector with all components rounded to the nearest integer, with halfway cases rounded away from zero.
+ Returns a new vector with all components rounded to the nearest integer, with halfway cases rounded away from zero.
</description>
</method>
<method name="sign" qualifiers="const">
<return type="Vector3" />
<description>
- Returns a vector with each component set to one or negative one, depending on the signs of this vector's components, or zero if the component is zero, by calling [method @GlobalScope.sign] on each component.
+ Returns a new vector with each component set to one or negative one, depending on the signs of the components, or zero if the component is zero, by calling [method @GlobalScope.sign] on each component.
</description>
</method>
<method name="signed_angle_to" qualifiers="const">
@@ -290,7 +290,7 @@
<argument index="1" name="weight" type="float" />
<description>
Returns the result of spherical linear interpolation between this vector and [code]to[/code], by amount [code]weight[/code]. [code]weight[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation.
- [b]Note:[/b] Both vectors must be normalized.
+ This method also handles interpolating the lengths if the input vectors have different lengths. For the special case of one or both input vectors having zero length, this method behaves like [method lerp].
</description>
</method>
<method name="slide" qualifiers="const">
diff --git a/doc/classes/Vector3i.xml b/doc/classes/Vector3i.xml
index 9b952292b6..da729e1ec2 100644
--- a/doc/classes/Vector3i.xml
+++ b/doc/classes/Vector3i.xml
@@ -58,6 +58,19 @@
Returns a new vector with all components clamped between the components of [code]min[/code] and [code]max[/code], by running [method @GlobalScope.clamp] on each component.
</description>
</method>
+ <method name="length" qualifiers="const">
+ <return type="float" />
+ <description>
+ Returns the length (magnitude) of this vector.
+ </description>
+ </method>
+ <method name="length_squared" qualifiers="const">
+ <return type="int" />
+ <description>
+ Returns the squared length (squared magnitude) of this vector.
+ This method runs faster than [method length], so prefer it if you need to compare vectors or need the squared distance for some formula.
+ </description>
+ </method>
<method name="max_axis_index" qualifiers="const">
<return type="int" />
<description>
diff --git a/doc/classes/Viewport.xml b/doc/classes/Viewport.xml
index 4708654f9f..4a11fbb489 100644
--- a/doc/classes/Viewport.xml
+++ b/doc/classes/Viewport.xml
@@ -215,10 +215,10 @@
</member>
<member name="handle_input_locally" type="bool" setter="set_handle_input_locally" getter="is_handling_input_locally" default="true">
</member>
- <member name="lod_threshold" type="float" setter="set_lod_threshold" getter="get_lod_threshold" default="1.0">
- The automatic LOD bias to use for meshes rendered within the [Viewport] (this is analogous to [member ReflectionProbe.lod_threshold]). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to [code]0.0[/code], automatic LOD is disabled. Increase [member lod_threshold] to improve performance at the cost of geometry detail.
+ <member name="mesh_lod_threshold" type="float" setter="set_mesh_lod_threshold" getter="get_mesh_lod_threshold" default="1.0">
+ The automatic LOD bias to use for meshes rendered within the [Viewport] (this is analogous to [member ReflectionProbe.mesh_lod_threshold]). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to [code]0.0[/code], automatic LOD is disabled. Increase [member mesh_lod_threshold] to improve performance at the cost of geometry detail.
To control this property on the root viewport, set the [member ProjectSettings.rendering/mesh_lod/lod_change/threshold_pixels] project setting.
- [b]Note:[/b] [member lod_threshold] does not affect [GeometryInstance3D] visibility ranges (also known as "manual" LOD or hierarchical LOD).
+ [b]Note:[/b] [member mesh_lod_threshold] does not affect [GeometryInstance3D] visibility ranges (also known as "manual" LOD or hierarchical LOD).
</member>
<member name="msaa" type="int" setter="set_msaa" getter="get_msaa" enum="Viewport.MSAA" default="0">
The multisample anti-aliasing mode. A higher number results in smoother edges at the cost of significantly worse performance. A value of 2 or 4 is best unless targeting very high-end systems. See also bilinear scaling 3d [member scaling_3d_mode] for supersampling, which provides higher quality but is much more expensive.
@@ -409,29 +409,32 @@
<constant name="DEBUG_DRAW_SSAO" value="12" enum="DebugDraw">
Draws the screen-space ambient occlusion texture instead of the scene so that you can clearly see how it is affecting objects. In order for this display mode to work, you must have [member Environment.ssao_enabled] set in your [WorldEnvironment].
</constant>
- <constant name="DEBUG_DRAW_PSSM_SPLITS" value="13" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_SSIL" value="13" enum="DebugDraw">
+ Draws the screen-space indirect lighting texture instead of the scene so that you can clearly see how it is affecting objects. In order for this display mode to work, you must have [member Environment.ssil_enabled] set in your [WorldEnvironment].
+ </constant>
+ <constant name="DEBUG_DRAW_PSSM_SPLITS" value="14" enum="DebugDraw">
Colors each PSSM split for the [DirectionalLight3D]s in the scene a different color so you can see where the splits are. In order, they will be colored red, green, blue, and yellow.
</constant>
- <constant name="DEBUG_DRAW_DECAL_ATLAS" value="14" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_DECAL_ATLAS" value="15" enum="DebugDraw">
Draws the decal atlas used by [Decal]s and light projector textures in the upper left quadrant of the [Viewport].
</constant>
- <constant name="DEBUG_DRAW_SDFGI" value="15" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_SDFGI" value="16" enum="DebugDraw">
</constant>
- <constant name="DEBUG_DRAW_SDFGI_PROBES" value="16" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_SDFGI_PROBES" value="17" enum="DebugDraw">
</constant>
- <constant name="DEBUG_DRAW_GI_BUFFER" value="17" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_GI_BUFFER" value="18" enum="DebugDraw">
</constant>
- <constant name="DEBUG_DRAW_DISABLE_LOD" value="18" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_DISABLE_LOD" value="19" enum="DebugDraw">
</constant>
- <constant name="DEBUG_DRAW_CLUSTER_OMNI_LIGHTS" value="19" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_CLUSTER_OMNI_LIGHTS" value="20" enum="DebugDraw">
</constant>
- <constant name="DEBUG_DRAW_CLUSTER_SPOT_LIGHTS" value="20" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_CLUSTER_SPOT_LIGHTS" value="21" enum="DebugDraw">
</constant>
- <constant name="DEBUG_DRAW_CLUSTER_DECALS" value="21" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_CLUSTER_DECALS" value="22" enum="DebugDraw">
</constant>
- <constant name="DEBUG_DRAW_CLUSTER_REFLECTION_PROBES" value="22" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_CLUSTER_REFLECTION_PROBES" value="23" enum="DebugDraw">
</constant>
- <constant name="DEBUG_DRAW_OCCLUDERS" value="23" enum="DebugDraw">
+ <constant name="DEBUG_DRAW_OCCLUDERS" value="24" enum="DebugDraw">
</constant>
<constant name="DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST" value="0" enum="DefaultCanvasItemTextureFilter">
The texture filter reads from the nearest pixel only. The simplest and fastest method of filtering, but the texture will look pixelized.
diff --git a/doc/classes/VisualShaderNodeCustom.xml b/doc/classes/VisualShaderNodeCustom.xml
index 995f2796dd..b9ff711f44 100644
--- a/doc/classes/VisualShaderNodeCustom.xml
+++ b/doc/classes/VisualShaderNodeCustom.xml
@@ -25,7 +25,7 @@
</method>
<method name="_get_code" qualifiers="virtual const">
<return type="String" />
- <argument index="0" name="input_vars" type="PackedStringArray" />
+ <argument index="0" name="input_vars" type="String[]" />
<argument index="1" name="output_vars" type="String[]" />
<argument index="2" name="mode" type="int" enum="Shader.Mode" />
<argument index="3" name="type" type="int" enum="VisualShader.Type" />
diff --git a/doc/classes/VoxelGIData.xml b/doc/classes/VoxelGIData.xml
index 36907c88ba..f9688c0bc3 100644
--- a/doc/classes/VoxelGIData.xml
+++ b/doc/classes/VoxelGIData.xml
@@ -60,7 +60,7 @@
<member name="bias" type="float" setter="set_bias" getter="get_bias" default="1.5">
The normal bias to use for indirect lighting and reflections. Higher values reduce self-reflections visible in non-rough materials, at the cost of more visible light leaking and flatter-looking indirect lighting. To prioritize hiding self-reflections over lighting quality, set [member bias] to [code]0.0[/code] and [member normal_bias] to a value between [code]1.0[/code] and [code]2.0[/code].
</member>
- <member name="dynamic_range" type="float" setter="set_dynamic_range" getter="get_dynamic_range" default="4.0">
+ <member name="dynamic_range" type="float" setter="set_dynamic_range" getter="get_dynamic_range" default="2.0">
The dynamic range to use ([code]1.0[/code] represents a low dynamic range scene brightness). Higher values can be used to provide brighter indirect lighting, at the cost of more visible color banding in dark areas (both in indirect lighting and reflections). To avoid color banding, it's recommended to use the lowest value that does not result in visible light clipping.
</member>
<member name="energy" type="float" setter="set_energy" getter="get_energy" default="1.0">
diff --git a/doc/tools/doc_status.py b/doc/tools/doc_status.py
index 629b5a032b..cc0733cab2 100755
--- a/doc/tools/doc_status.py
+++ b/doc/tools/doc_status.py
@@ -66,10 +66,23 @@ table_columns = [
"methods",
"constants",
"members",
- "signals",
"theme_items",
+ "signals",
+ "operators",
+ "constructors",
+]
+table_column_names = [
+ "Name",
+ "Brief Desc.",
+ "Desc.",
+ "Methods",
+ "Constants",
+ "Members",
+ "Theme Items",
+ "Signals",
+ "Operators",
+ "Constructors",
]
-table_column_names = ["Name", "Brief Desc.", "Desc.", "Methods", "Constants", "Members", "Signals", "Theme Items"]
colors = {
"name": [36], # cyan
"part_big_problem": [4, 31], # underline, red
@@ -82,7 +95,7 @@ colors = {
"state_on": [1, 35], # bold, magenta/plum
"bold": [1], # bold
}
-overall_progress_description_weigth = 10
+overall_progress_description_weight = 10
################################################################################
@@ -180,6 +193,8 @@ class ClassStatus:
"members": ClassStatusProgress(),
"theme_items": ClassStatusProgress(),
"signals": ClassStatusProgress(),
+ "operators": ClassStatusProgress(),
+ "constructors": ClassStatusProgress(),
}
def __add__(self, other):
@@ -218,12 +233,12 @@ class ClassStatus:
output["description"] = ok_string if self.has_description else missing_string
description_progress = ClassStatusProgress(
- (self.has_brief_description + self.has_description) * overall_progress_description_weigth,
- 2 * overall_progress_description_weigth,
+ (self.has_brief_description + self.has_description) * overall_progress_description_weight,
+ 2 * overall_progress_description_weight,
)
items_progress = ClassStatusProgress()
- for k in ["methods", "constants", "members", "signals", "theme_items"]:
+ for k in ["methods", "constants", "members", "theme_items", "signals", "constructors", "operators"]:
items_progress += self.progresses[k]
output[k] = self.progresses[k].to_configured_colored_string()
@@ -260,7 +275,7 @@ class ClassStatus:
elif tag.tag == "description":
status.has_description = len(tag.text.strip()) > 0
- elif tag.tag in ["methods", "signals"]:
+ elif tag.tag in ["methods", "signals", "operators", "constructors"]:
for sub_tag in list(tag):
descr = sub_tag.find("description")
status.progresses[tag.tag].increment(len(descr.text.strip()) > 0)
@@ -272,9 +287,6 @@ class ClassStatus:
elif tag.tag in ["tutorials"]:
pass # Ignore those tags for now
- elif tag.tag in ["theme_items"]:
- pass # Ignore those tags, since they seem to lack description at all
-
else:
print(tag.tag, tag.attrib)
diff --git a/doc/tools/make_rst.py b/doc/tools/make_rst.py
index 4cb9de6d58..9e18866ca3 100755
--- a/doc/tools/make_rst.py
+++ b/doc/tools/make_rst.py
@@ -19,10 +19,11 @@ GODOT_DOCS_PATTERN = re.compile(r"^\$DOCS_URL/(.*)\.html(#.*)?$")
MARKUP_ALLOWED_PRECEDENT = " -:/'\"<([{"
MARKUP_ALLOWED_SUBSEQUENT = " -.,:;!?\\/'\")]}>"
-# Used to translate the section headings when required with --lang argument.
-# The HEADINGS list should be synced with what we actually write with `make_heading`,
-# and also hardcoded in `doc/translations/extract.py`.
-HEADINGS = [
+# Used to translate section headings and other hardcoded strings when required with
+# the --lang argument. The BASE_STRINGS list should be synced with what we actually
+# write in this script (check `translate()` uses), and also hardcoded in
+# `doc/translations/extract.py` to include them in the source POT file.
+BASE_STRINGS = [
"Description",
"Tutorials",
"Properties",
@@ -38,8 +39,21 @@ HEADINGS = [
"Method Descriptions",
"Operator Descriptions",
"Theme Property Descriptions",
+ "Inherits:",
+ "Inherited By:",
+ "(overrides %s)",
+ "Default",
+ "Setter",
+ "value",
+ "Getter",
+ "This method should typically be overridden by the user to have any effect.",
+ "This method has no side effects. It doesn't modify any of the instance's member variables.",
+ "This method accepts any number of arguments after the ones described here.",
+ "This method is used to construct a type.",
+ "This method doesn't need an instance to be called, so it can be called directly using the class name.",
+ "This method describes a valid operator to use with this type as left-hand operand.",
]
-headings_l10n = {}
+strings_l10n = {}
def print_error(error, state): # type: (str, State) -> None
@@ -408,13 +422,13 @@ def main(): # type: () -> None
try:
import polib
except ImportError:
- print("Section heading localization requires `polib`.")
+ print("Base template strings localization requires `polib`.")
exit(1)
pofile = polib.pofile(lang_file)
for entry in pofile.translated_entries():
- if entry.msgid in HEADINGS:
- headings_l10n[entry.msgid] = entry.msgstr
+ if entry.msgid in BASE_STRINGS:
+ strings_l10n[entry.msgid] = entry.msgstr
else:
print("No PO file at '{}' for language '{}'.".format(lang_file, args.lang))
@@ -494,6 +508,14 @@ def main(): # type: () -> None
exit(1)
+def translate(string): # type: (str) -> str
+ """Translate a string based on translations sourced from `doc/translations/*.po`
+ for a language if defined via the --lang command line argument.
+ Returns the original string if no translation exists.
+ """
+ return strings_l10n.get(string, string)
+
+
def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, State, bool, str) -> None
class_name = class_def.name
@@ -515,7 +537,7 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S
# Ascendants
if class_def.inherits:
inh = class_def.inherits.strip()
- f.write("**Inherits:** ")
+ f.write("**" + translate("Inherits:") + "** ")
first = True
while inh in state.classes:
if not first:
@@ -538,7 +560,7 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S
inherited.append(c.name)
if len(inherited):
- f.write("**Inherited By:** ")
+ f.write("**" + translate("Inherited By:") + "** ")
for i, child in enumerate(inherited):
if i > 0:
f.write(", ")
@@ -569,7 +591,8 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S
default = property_def.default_value
if default is not None and property_def.overrides:
ref = ":ref:`{1}<class_{1}_property_{0}>`".format(property_def.name, property_def.overrides)
- ml.append((type_rst, property_def.name, default + " (overrides " + ref + ")"))
+ # Not using translate() for now as it breaks table formatting.
+ ml.append((type_rst, property_def.name, default + " " + "(overrides %s)" % ref))
else:
ref = ":ref:`{0}<class_{1}_property_{0}>`".format(property_def.name, class_name)
ml.append((type_rst, ref, default))
@@ -687,12 +710,13 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S
f.write("- {} **{}**\n\n".format(property_def.type_name.to_rst(state), property_def.name))
info = []
+ # Not using translate() for now as it breaks table formatting.
if property_def.default_value is not None:
- info.append(("*Default*", property_def.default_value))
+ info.append(("*" + "Default" + "*", property_def.default_value))
if property_def.setter is not None and not property_def.setter.startswith("_"):
- info.append(("*Setter*", property_def.setter + "(value)"))
+ info.append(("*" + "Setter" + "*", property_def.setter + "(" + "value" + ")"))
if property_def.getter is not None and not property_def.getter.startswith("_"):
- info.append(("*Getter*", property_def.getter + "()"))
+ info.append(("*" + "Getter" + "*", property_def.getter + "()"))
if len(info) > 0:
format_table(f, info)
@@ -781,7 +805,8 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S
info = []
if theme_item_def.default_value is not None:
- info.append(("*Default*", theme_item_def.default_value))
+ # Not using translate() for now as it breaks table formatting.
+ info.append(("*" + "Default" + "*", theme_item_def.default_value))
if len(info) > 0:
format_table(f, info)
@@ -1306,8 +1331,9 @@ def make_method_signature(
def make_heading(title, underline, l10n=True): # type: (str, str, bool) -> str
if l10n:
- if title in headings_l10n:
- title = headings_l10n.get(title)
+ new_title = translate(title)
+ if new_title != title:
+ title = new_title
underline *= 2 # Double length to handle wide chars.
return title + "\n" + (underline * len(title)) + "\n\n"
@@ -1317,12 +1343,12 @@ def make_footer(): # type: () -> str
# This way, we avoid bloating the generated rST with duplicate abbreviations.
# fmt: off
return (
- ".. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`\n"
- ".. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`\n"
- ".. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`\n"
- ".. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`\n"
- ".. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`\n"
- ".. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`\n"
+ ".. |virtual| replace:: :abbr:`virtual (" + translate("This method should typically be overridden by the user to have any effect.") + ")`\n"
+ ".. |const| replace:: :abbr:`const (" + translate("This method has no side effects. It doesn't modify any of the instance's member variables.") + ")`\n"
+ ".. |vararg| replace:: :abbr:`vararg (" + translate("This method accepts any number of arguments after the ones described here.") + ")`\n"
+ ".. |constructor| replace:: :abbr:`constructor (" + translate("This method is used to construct a type.") + ")`\n"
+ ".. |static| replace:: :abbr:`static (" + translate("This method doesn't need an instance to be called, so it can be called directly using the class name.") + ")`\n"
+ ".. |operator| replace:: :abbr:`operator (" + translate("This method describes a valid operator to use with this type as left-hand operand.") + ")`\n"
)
# fmt: on
diff --git a/doc/translations/ar.po b/doc/translations/ar.po
index 61e2ab8de7..4ed6776561 100644
--- a/doc/translations/ar.po
+++ b/doc/translations/ar.po
@@ -1,6 +1,6 @@
# Arabic translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Airbus5717 <Abdussamadf350@gmail.com>, 2020.
@@ -13,12 +13,13 @@
# xX-Void-Xx <arandomdude75@gmail.com>, 2021.
# Alaa alden Aldroubi <alaa.aldroubi@gmail.com>, 2021.
# يزن حمزه <yznhamzeh@gmail.com>, 2021.
+# HASSAN GAMER - حسن جيمر <gamerhassan55@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-10-31 13:40+0000\n"
-"Last-Translator: يزن حمزه <yznhamzeh@gmail.com>\n"
+"PO-Revision-Date: 2022-01-03 03:53+0000\n"
+"Last-Translator: HASSAN GAMER - حسن جيمر <gamerhassan55@gmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/"
"godot-class-reference/ar/>\n"
"Language: ar\n"
@@ -27,7 +28,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -35,7 +36,7 @@ msgstr "الوصÙ"
#: doc/tools/make_rst.py
msgid "Tutorials"
-msgstr "دورات تعليمية"
+msgstr "شروحات"
#: doc/tools/make_rst.py
msgid "Properties"
@@ -43,7 +44,7 @@ msgstr "خاصيات"
#: doc/tools/make_rst.py
msgid "Methods"
-msgstr "Ø§Ù„Ø·ÙØ±Ù‚"
+msgstr "طرق"
#: doc/tools/make_rst.py
msgid "Theme Properties"
@@ -59,7 +60,7 @@ msgstr "التعدادات"
#: doc/tools/make_rst.py
msgid "Constants"
-msgstr "الثوابت"
+msgstr "ثوابت"
#: doc/tools/make_rst.py
msgid "Property Descriptions"
@@ -69,6 +70,71 @@ msgstr "أوصا٠المÙلكية"
msgid "Method Descriptions"
msgstr "أوصا٠الدوال"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "أوصا٠المÙلكية"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "دوال GDScript المدمجة"
@@ -539,16 +605,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -598,8 +672,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -608,7 +685,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -616,7 +696,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1462,7 +1543,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2972,31 +3061,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7061,7 +7227,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11968,7 +12137,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12036,11 +12205,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12048,23 +12219,26 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "ÙŠÙØ±Ø¬Ø¹ جيب المَعلم."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12072,7 +12246,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12160,8 +12334,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12171,17 +12346,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12192,16 +12373,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12213,27 +12400,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12353,7 +12552,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12412,7 +12613,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12770,8 +12972,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12820,6 +13022,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13319,6 +13527,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13745,9 +13954,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13990,7 +14199,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14658,7 +14869,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16676,7 +16887,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17993,7 +18206,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19516,6 +19729,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19533,11 +19753,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19617,8 +19839,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20061,10 +20294,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20113,7 +20345,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20283,8 +20517,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20293,7 +20527,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21368,6 +21604,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21844,10 +22088,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22327,7 +22573,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22962,7 +23208,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23898,14 +24144,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -23981,7 +24227,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26098,6 +26344,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26326,7 +26578,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26349,7 +26601,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28637,7 +28889,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28658,7 +28914,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28677,8 +28937,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28691,7 +28960,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29009,7 +29287,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29037,7 +29319,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29232,6 +29518,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29248,15 +29631,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29861,9 +30246,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30794,6 +31179,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34018,16 +34426,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34048,10 +34453,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34067,25 +34469,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34102,14 +34495,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34118,35 +34508,402 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "ÙŠÙØ±Ø¬Ø¹ قيمة ظل الزاوية للمَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "ÙŠÙØ±Ø¬Ø¹ جيب المَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "ÙŠÙØ±Ø¬Ø¹ القيمة المعاكسة للمَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "ÙŠÙØ±Ø¬Ø¹ القيمة المعاكسة للمَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "ÙŠÙØ±Ø¬Ø¹ جيب المَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "ÙŠÙØ±Ø¬Ø¹ القيمة المعاكسة للمَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "ÙŠÙØ±Ø¬Ø¹ قيمة الجيب العكسية للمَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "ÙŠÙØ±Ø¬Ø¹ جيب التمام \"cosine \" لقيمة المَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "ÙŠÙØ±Ø¬Ø¹ قيمة الجيب العكسية للمَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "ÙŠÙØ±Ø¬Ø¹ جيب المَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "ÙŠÙØ±Ø¬Ø¹ القيمة المعاكسة للمَعلم."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "ÙŠÙØ±Ø¬Ø¹ قيمة الجيب العكسية للمَعلم."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "ÙŠÙØ±Ø¬Ø¹ قيمة الجيب العكسية للمَعلم."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34246,10 +35003,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34409,22 +35162,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34523,6 +35366,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "ÙŠÙØ±Ø¬Ø¹ عكس قيمة الجذر التربيعي للمَعلم."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "ÙŠÙØ±Ø¬Ø¹ قيمة الجيب العكسية للمَعلم."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "ÙŠÙØ±Ø¬Ø¹ جيب المَعلم."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37857,7 +38769,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42471,16 +43385,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42542,12 +43456,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42628,10 +43536,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46080,7 +46984,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46123,8 +47027,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46136,6 +47041,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46995,12 +47913,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47129,15 +48047,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48400,14 +49309,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49454,7 +50355,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49637,7 +50538,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49744,7 +50645,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51810,7 +52711,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51834,19 +52735,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53544,7 +54464,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54229,6 +55149,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57447,7 +58377,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57469,9 +58399,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58573,17 +59505,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58603,10 +59535,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58730,25 +59662,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60904,9 +61817,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60961,9 +61874,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61004,10 +61917,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61028,12 +61941,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "ÙŠÙØ±Ø¬Ø¹ باقي قسمة كل من Ø§Ù„Ù…ÙØªØ¬Ù‡ÙŠÙ† (الشعاعين)."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61042,17 +61958,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61153,21 +62069,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "ÙŠÙØ±Ø¬Ø¹ باقي قسمة كل من Ø§Ù„Ù…ÙØªØ¬Ù‡ÙŠÙ† (الشعاعين)."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61191,12 +62101,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61223,20 +62127,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61248,19 +62142,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61957,10 +62838,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62076,6 +62959,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62594,7 +63489,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67584,6 +68479,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68420,6 +69331,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "ÙŠÙØ±Ø¬Ø¹ جيب المَعلم."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/ca.po b/doc/translations/ca.po
index b55099a376..96ab70929c 100644
--- a/doc/translations/ca.po
+++ b/doc/translations/ca.po
@@ -1,6 +1,6 @@
# Catalan translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# roger <616steam@gmail.com>, 2020.
@@ -61,6 +61,71 @@ msgstr "Descripcions de la Propietat"
msgid "Method Descriptions"
msgstr "Descripcions dels Mètodes"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Descripcions de la Propietat"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Funcions GDScript integrades."
@@ -582,16 +647,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -641,8 +714,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -651,7 +727,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -659,7 +738,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1491,7 +1571,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -3001,31 +3089,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7085,7 +7250,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11973,7 +12141,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12038,11 +12206,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12050,7 +12220,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12058,15 +12230,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12074,7 +12246,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12162,8 +12334,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12173,17 +12346,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12194,16 +12373,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12215,27 +12400,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12355,7 +12552,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12414,7 +12613,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12772,8 +12972,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12822,6 +13022,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13321,6 +13527,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13746,9 +13953,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13988,7 +14195,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14656,7 +14865,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16672,7 +16881,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17989,7 +18200,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/3.4/getting_started/scripting/c_sharp/index."
"html"
@@ -19508,6 +19719,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19525,11 +19743,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19609,8 +19829,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20053,10 +20284,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20105,7 +20335,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20275,8 +20507,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20285,7 +20517,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21360,6 +21594,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21836,10 +22078,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22319,7 +22563,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22953,7 +23197,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23888,14 +24132,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/3.4/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/3.4/tutorials/plugins/gdnative/gdnative-cpp-"
"example.html"
@@ -23971,7 +24215,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/3.4/getting_started/scripting/gdscript/index."
"html"
@@ -26086,6 +26330,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26314,7 +26564,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26337,7 +26587,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28623,7 +28873,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28644,7 +28898,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28663,8 +28921,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28677,7 +28944,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28994,7 +29270,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29022,7 +29302,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29216,6 +29500,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29232,15 +29613,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29843,9 +30226,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30775,6 +31158,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33990,16 +34396,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://godotengine.org/asset-library/asset/124"
@@ -34019,10 +34422,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34038,25 +34438,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34073,14 +34464,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://godotengine.org/asset-library/asset/117"
@@ -34088,35 +34476,389 @@ msgstr "https://godotengine.org/asset-library/asset/117"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34215,10 +34957,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34377,22 +35115,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34491,6 +35319,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37816,7 +38710,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42407,16 +43303,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42478,12 +43374,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42564,10 +43454,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46014,7 +46900,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46057,8 +46943,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46070,6 +46957,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46930,12 +47830,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47064,15 +47964,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48334,14 +49225,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49386,7 +50269,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49569,7 +50452,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49676,7 +50559,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51737,7 +52620,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51761,19 +52644,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53471,7 +54373,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54156,6 +55058,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57365,7 +58277,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57387,9 +58299,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58491,17 +59405,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58521,10 +59435,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58648,25 +59562,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60819,9 +61714,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60876,9 +61771,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60919,10 +61814,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60943,12 +61838,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60957,17 +61854,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61067,21 +61964,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61105,12 +61996,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61137,20 +62022,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61162,19 +62037,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61864,10 +62726,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61983,6 +62847,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62501,7 +63377,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/3.4/getting_started/scripting/visual_script/"
"index.html"
@@ -67473,6 +68349,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68307,6 +69199,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/classes.pot b/doc/translations/classes.pot
index 2dd90f52af..0df1f347d0 100644
--- a/doc/translations/classes.pot
+++ b/doc/translations/classes.pot
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
@@ -54,6 +54,70 @@ msgstr ""
msgid "Method Descriptions"
msgstr ""
+#: doc/tools/make_rst.py
+msgid "Theme Property Descriptions"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr ""
@@ -463,16 +527,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -522,8 +594,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -532,7 +607,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -540,7 +618,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1372,7 +1451,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2882,31 +2969,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6957,7 +7121,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -10279,7 +10446,7 @@ msgstr ""
#: doc/classes/BakedLightmap.xml
msgid ""
-"Determines the amount of samples per texel used in indrect light baking. The "
+"Determines the amount of samples per texel used in indirect light baking. The "
"amount of samples for each quality level can be configured in the project "
"settings."
msgstr ""
@@ -11832,7 +11999,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11897,11 +12064,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11909,7 +12078,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11917,15 +12088,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11933,7 +12104,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12019,8 +12190,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12030,17 +12202,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12051,16 +12229,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12072,27 +12256,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12212,7 +12408,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12271,7 +12469,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12625,8 +12824,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12675,6 +12874,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13174,6 +13379,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13596,9 +13802,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13838,7 +14044,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14506,7 +14714,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16520,7 +16728,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17834,7 +18044,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -19344,6 +19554,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19361,11 +19578,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19445,8 +19664,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19889,10 +20119,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -19941,7 +20170,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20108,8 +20339,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20118,7 +20349,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21188,6 +21421,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21661,10 +21902,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22141,7 +22384,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22770,7 +23013,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23704,11 +23947,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -23781,7 +24024,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -25893,6 +26136,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26121,7 +26370,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26144,7 +26393,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28418,7 +28667,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28439,7 +28692,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28458,8 +28715,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28472,7 +28738,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28788,7 +29063,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28816,7 +29095,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29008,6 +29291,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29024,15 +29404,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29630,9 +30012,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30553,6 +30935,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33751,16 +34156,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33780,10 +34182,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33799,25 +34198,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33834,14 +34224,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -33849,35 +34236,389 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -33976,10 +34717,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34138,22 +34875,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34252,6 +35079,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37565,7 +38458,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42152,16 +43047,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42223,12 +43118,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42309,10 +43198,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45759,7 +46644,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45802,8 +46687,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -45815,6 +46701,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46450,7 +47349,7 @@ msgid ""
"result, it should not be depended upon for reproducible random streams "
"across Godot versions.\n"
"To generate a random float number (within a given range) based on a time-"
-"dependant seed:\n"
+"dependent seed:\n"
"[codeblock]\n"
"var rng = RandomNumberGenerator.new()\n"
"func _ready():\n"
@@ -46669,12 +47568,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46803,15 +47702,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48070,14 +48960,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49122,7 +50004,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49305,7 +50187,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49412,7 +50294,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51458,7 +52340,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51482,19 +52364,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53192,7 +54093,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -53874,6 +54775,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57080,7 +57991,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57102,9 +58013,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58206,17 +59119,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58236,10 +59149,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58363,25 +59276,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60530,9 +61424,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60587,9 +61481,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60630,10 +61524,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60654,12 +61548,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60668,17 +61564,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60778,21 +61674,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -60816,12 +61706,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -60848,20 +61732,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -60873,19 +61747,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61575,10 +62436,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61694,6 +62557,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62211,7 +63086,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -67177,6 +68052,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68005,6 +68896,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
@@ -69589,7 +70526,7 @@ msgid ""
"signals is the same id as used in [member ARVRController.controller_id].\n"
"You can use one or all of these methods to allow your game or app to support "
"a wider or narrower set of devices and input methods, or to allow more "
-"advanced interations with more advanced devices."
+"advanced interactions with more advanced devices."
msgstr ""
#: modules/webxr/doc_classes/WebXRInterface.xml
diff --git a/doc/translations/cs.po b/doc/translations/cs.po
index 062e450559..ac77c85061 100644
--- a/doc/translations/cs.po
+++ b/doc/translations/cs.po
@@ -1,6 +1,6 @@
# Czech translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Ondrej Pavelka <ondrej.pavelka@outlook.com>, 2020.
@@ -68,6 +68,71 @@ msgstr "Popisy vlastnosti"
msgid "Method Descriptions"
msgstr "Popisy metod"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Popisy vlastnosti"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Vestavěné funkce GDScriptu."
@@ -715,27 +780,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"Vrátí normalizovanou hodnotu, s tím, že bere v potaz daný rozsah. Jedná se "
-"opak [method lerp].\n"
-"[codeblock]\n"
-"var stred = lerp(20, 30, 0.75)\n"
-"# `stred` teÄ je 27.5.\n"
-"# Nyní budeme předstírat, že jsme předchozí poměr zapomněli a chceme ho "
-"zpět\n"
-"var pomer = inverse_lerp(20, 30, 27.5)\n"
-"# `pomer` teÄ je 0.75.\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -805,8 +868,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -815,7 +881,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"Lineární interpolace mezi dvěma hodnotami normalizovanou hodnout. Toto je "
"opak [method inverse_lerp].\n"
@@ -830,11 +899,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1881,7 +1952,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -3391,31 +3470,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7476,7 +7632,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -12377,7 +12536,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12445,11 +12604,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12457,23 +12618,27 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Vrací [code]true[/code] pokud [code]s[/code] je nula nebo téměř nula."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr ""
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "Vrací [code]true[/code] pokud [code]s[/code] je nula nebo téměř nula."
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12481,7 +12646,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12569,8 +12734,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12580,17 +12746,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12601,16 +12773,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12622,27 +12800,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12762,7 +12952,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12821,7 +13013,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -13177,8 +13370,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -13227,6 +13420,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13727,6 +13926,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -14153,9 +14353,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14395,7 +14595,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -15063,8 +15265,9 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
-msgstr ""
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
+msgstr "Vrátí [code] true [/code], pokud je vektor normalizován, jinak false."
#: doc/classes/ColorPicker.xml
msgid ""
@@ -17105,7 +17308,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18422,7 +18627,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -19946,6 +20151,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19963,11 +20175,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20047,8 +20261,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20491,10 +20716,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20543,7 +20767,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20713,8 +20939,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20723,7 +20949,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21799,6 +22027,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -22280,10 +22516,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22763,7 +23001,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -23397,7 +23635,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -24333,14 +24571,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -24416,7 +24654,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26537,6 +26775,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26765,7 +27009,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26788,7 +27032,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -29077,7 +29321,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29098,7 +29346,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29117,8 +29369,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29131,7 +29392,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29449,7 +29719,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29477,7 +29751,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29672,6 +29950,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29688,15 +30063,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -30301,9 +30678,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -31234,6 +31611,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34460,16 +34860,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -34489,10 +34886,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34508,25 +34902,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34543,14 +34928,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -34558,35 +34940,405 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr "Vrátí [code] true [/code], pokud je vektor normalizován, jinak false."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Vrátí tangens parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Vrátí sinus parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Vrátí opaÄnou hodnotu parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Vrátí opaÄnou hodnotu parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Vrátí sinus parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Vrátí opaÄnou hodnotu parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Vrátí arkus sinus parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Vrátí [code] true [/code], pokud je vektor normalizován, jinak false."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Vrátí arkus sinus parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Vrátí sinus parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "Vrátí opaÄnou hodnotu parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Vrátí arkus sinus parametru."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr "Vrátí [code] true [/code], pokud je vektor normalizován, jinak false."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr "Vrátí [code] true [/code], pokud je vektor normalizován, jinak false."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Vrátí arkus sinus parametru."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34686,10 +35438,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34849,22 +35597,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34963,6 +35801,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Vrátí inverzní odmocninu z parametru."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Vrátí arkus sinus parametru."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Vrátí sinus parametru."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -38299,7 +39206,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42919,16 +43828,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42990,12 +43899,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -43076,10 +43979,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46529,7 +47428,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46572,8 +47471,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46585,6 +47485,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47446,12 +48359,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47580,15 +48493,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48852,14 +49756,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49904,7 +50800,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -50087,7 +50983,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -50194,7 +51090,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -52261,7 +53157,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -52285,19 +53181,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53999,7 +54914,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54687,6 +55602,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57931,7 +58856,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57953,9 +58878,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -59060,17 +59987,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -59090,10 +60017,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -59217,25 +60144,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -61388,9 +62296,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -61445,9 +62353,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61490,10 +62398,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61514,12 +62422,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "Vrací [code]true[/code] pokud [code]s[/code] je nula nebo téměř nula."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61528,17 +62439,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61640,21 +62551,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "Vrátí tangens parametru."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61678,12 +62583,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61710,20 +62609,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61735,19 +62624,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -62443,10 +63319,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62562,6 +63440,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -63080,7 +63970,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -68074,6 +68964,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68908,6 +69814,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Vrátí sinus parametru."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/de.po b/doc/translations/de.po
index 5aeed6dec2..8b52b03270 100644
--- a/doc/translations/de.po
+++ b/doc/translations/de.po
@@ -1,6 +1,6 @@
# German translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Jaigskim <filzstift112@gmail.com>, 2020.
@@ -39,12 +39,13 @@
# Bastian <bastian.ike@gmail.com>, 2021.
# KuhnChris <kuhnchris@kuhnchris.eu>, 2021.
# Rémi Verschelde <remi@godotengine.org>, 2021.
+# Antonio Noack <corperateraider@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-12-16 12:44+0000\n"
-"Last-Translator: Rémi Verschelde <remi@godotengine.org>\n"
+"PO-Revision-Date: 2022-01-03 03:53+0000\n"
+"Last-Translator: Antonio Noack <corperateraider@gmail.com>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot-class-reference/de/>\n"
"Language: de\n"
@@ -52,7 +53,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -80,7 +81,7 @@ msgstr "Signale"
#: doc/tools/make_rst.py
msgid "Enumerations"
-msgstr "Aufzählungen"
+msgstr "Aufzählungstypen"
#: doc/tools/make_rst.py
msgid "Constants"
@@ -94,6 +95,71 @@ msgstr "Eigenschaften-Beschreibung"
msgid "Method Descriptions"
msgstr "Methoden-Beschreibung"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Eigenschaften-Beschreibung"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Native GDScript-Funktionen."
@@ -472,6 +538,21 @@ msgid ""
"want a true content-aware comparison, you have to use [code]deep_equal[/"
"code]."
msgstr ""
+"Vergleicht zwei Werte, indem es deren tatsächlichen Inhalt überprüft. Die "
+"Methode geht dabei in jedes `Array` oder `Dictionary` bis zum aller tiefsten "
+"Level.\n"
+"Was ist der Unterschied zu [code]==[/code]?\n"
+"- Für die Typen [code]null[/code], [code]int[/code], [code]float[/code], "
+"[code]String[/code], [code]Object[/code] und [code]RID[/code] sind "
+"[code]deep_equal[/code] und [code]==[/code] identisch.\n"
+"- Für [code]Dictionary[/code]s, prüft [code]==[/code] nur, ob es dasselbe "
+"Objekt ist .\n"
+"- Für [code]Array[/code]s, [code]==[/code] werden die Arrays elementweise "
+"mit [code]==[/code] verglichen. Der Elemente-Vergleich ist also wieder "
+"einfach, nicht tief.\n"
+"Zusammengefasst, immer wenn ein [code]Dictionary[/code] potentiell "
+"involviert ist, und du einen wahren Inhaltsvergleich brauchst, musst du "
+"[code]deep_equal[/code] verwenden."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -764,27 +845,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"Gibt den normalisierten Wert innerhalb eines Zahlenraums zurück. Das "
-"Gegenteil von [method lerp]\n"
-"[codeblock]\n"
-"var middle = lerp(20, 30, 0.75)\n"
-"# `middle` ist jetzt 27.5.\n"
-"# Nun tun wir so, als hätten wir das Original vergessen und wollten es "
-"zurückbekommen.\n"
-"var ratio = inverse_lerp(20, 30, 27.5)\n"
-"# `ratio` ist jetzt 0.75.\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -858,8 +937,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -868,7 +950,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"Interpoliert einen normalisierten Wert linear zwischen zwei Grenzwerten. "
"Dies entspricht der Umkehrfunktion von [method inverse_lerp].\n"
@@ -883,11 +968,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1449,7 +1536,6 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
-#, fuzzy
msgid ""
"Returns a random unsigned 32-bit integer. Use remainder to obtain a random "
"value in the interval [code][0, N - 1][/code] (where N is smaller than "
@@ -1465,10 +1551,14 @@ msgstr ""
"Modulo, um einen Zufallswert im Intervall [code][0, N - 1][/code] zu "
"erhalten (wobei N kleiner als 2^32 ist).\n"
"[codeblock]\n"
-"randi() # Returns random integer between 0 and 2^32 - 1\n"
-"randi() % 20 # Returns random integer between 0 and 19\n"
-"randi() % 100 # Returns random integer between 0 and 99\n"
-"randi() % 100 + 1 # Returns random integer between 1 and 100\n"
+"randi() # Gibt Zufallswert zwischen 0 und 2^32 - 1 zurück "
+"(inklusiv)\n"
+"randi() % 20 # Gibt einen Zufallswert zwischen 0 and 19 zurück "
+"(inklusiv)\n"
+"randi() % 100 # Gibt einen Zufallswert zwischen 0 und 99 zurück "
+"(inklusiv)\n"
+"randi() % 100 + 1 # Gibt einen Zufallswert zwischen 1 and 100 zurück "
+"(inklusiv)\n"
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -1666,7 +1756,6 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
-#, fuzzy
msgid ""
"Returns the square root of [code]s[/code], where [code]s[/code] is a non-"
"negative number.\n"
@@ -1681,12 +1770,11 @@ msgstr ""
"[codeblock]\n"
"sqrt(9) # Ergibt 3\n"
"[/codeblock]\n"
-"[b]Note:[/b]Negative Werte von [code]s[/code] ergeben NaN. Falls Sie die "
+"[b]Notiz:[/b]Negative Werte von [code]s[/code] ergeben NaN. Falls Sie die "
"Quadratwurzel negativer Zahlen ziehen müssen, verwenden Sie [code]System."
"Numerics.Complex[/code] in C#."
#: modules/gdscript/doc_classes/@GDScript.xml
-#, fuzzy
msgid ""
"Returns the position of the first non-zero digit, after the decimal point. "
"Note that the maximum return value is 10, which is a design decision in the "
@@ -1701,12 +1789,9 @@ msgstr ""
"Merke, dass der höchste Rückgabewert 10 ist, was eine Entwurfsentscheidung "
"in der Implementation ist.\n"
"[codeblock]\n"
-"# n ist 0\n"
-"n = step_decimals(5)\n"
-"# n ist 4\n"
-"n = step_decimals(1.0005)\n"
-"# n ist 9\n"
-"n = step_decimals(0.000000005)\n"
+"n = step_decimals(5) # n ist 0\n"
+"n = step_decimals(1.0005) # n ist 4\n"
+"n = step_decimals(0.000000005) # n ist 9\n"
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -1730,7 +1815,6 @@ msgstr ""
"Siehe auch [method ceil], [method floor], [method round], und [int]."
#: modules/gdscript/doc_classes/@GDScript.xml
-#, fuzzy
msgid ""
"Converts one or more arguments of any type to string in the best way "
"possible.\n"
@@ -1745,8 +1829,8 @@ msgstr ""
"[codeblock]\n"
"var a = [10, 20, 30]\n"
"var b = str(a);\n"
-"len(a) # Returns 3\n"
-"len(b) # Returns 12\n"
+"len(a) # Ergibt 3\n"
+"len(b) # Ergibt 12\n"
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -1829,7 +1913,6 @@ msgstr ""
"Text."
#: modules/gdscript/doc_classes/@GDScript.xml
-#, fuzzy
msgid ""
"Returns whether the given class exists in [ClassDB].\n"
"[codeblock]\n"
@@ -1839,8 +1922,8 @@ msgid ""
msgstr ""
"Gibt zurück ob die gegebene Klasse in [ClassDB] existiert.\n"
"[codeblock]\n"
-"type_exists(\"Sprite2D\") # Returns true\n"
-"type_exists(\"Variant\") # Returns false\n"
+"type_exists(\"Sprite\") # Ergibt true\n"
+"type_exists(\"Variant\") # Ergibt false\n"
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -2080,11 +2163,12 @@ msgstr ""
"Umfang passt. Dies ist äquivalent zu [code]TAU / 2[/code]."
#: modules/gdscript/doc_classes/@GDScript.xml
-#, fuzzy
msgid ""
"The circle constant, the circumference of the unit circle in radians. This "
"is equivalent to [code]PI * 2[/code], or 360 degrees in rotations."
-msgstr "Die Kreiskonstante, der Umfang des Einheitskreises im Bogenmaß."
+msgstr ""
+"Die Kreiskonstante, der Umfang des Einheitskreises im Bogenmaß. Sie ist "
+"äquivalent mit [code]PI * 2[/code], oder einer 360°-Drehung."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -2152,9 +2236,8 @@ msgstr ""
"werden kann."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "The [ARVRServer] singleton."
-msgstr "Das [XRServer] Singleton."
+msgstr "Das [ARVRServer] Singleton."
#: doc/classes/@GlobalScope.xml
msgid "The [AudioServer] singleton."
@@ -2173,9 +2256,8 @@ msgid "The [Engine] singleton."
msgstr "Das [Engine] Singleton."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "The [Geometry] singleton."
-msgstr "Das [Geometry2D] Singleton."
+msgstr "Das [Geometry] Singleton."
#: doc/classes/@GlobalScope.xml
msgid "The [IP] singleton."
@@ -2215,8 +2297,18 @@ msgstr "Das [Marshalls] Singleton."
#: doc/classes/@GlobalScope.xml
#, fuzzy
-msgid "The [EditorNavigationMeshGenerator] singleton."
-msgstr "Das [NavigationMeshGenerator] Singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr "Das [TranslationServer] Singleton."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr "Das [EditorNavigationMeshGenerator] Singleton."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "Das [TranslationServer] Singleton."
#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
@@ -2227,14 +2319,12 @@ msgid "The [Performance] singleton."
msgstr "Das [Performance] Singleton."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "The [Physics2DServer] singleton."
-msgstr "Das [PhysicsServer2D] Singleton."
+msgstr "Das [Physics2DServer] Singleton."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "The [PhysicsServer] singleton."
-msgstr "Das [PhysicsServer2D] Singleton."
+msgstr "Das [PhysicsServer] Singleton."
#: doc/classes/@GlobalScope.xml
msgid "The [ProjectSettings] singleton."
@@ -2249,9 +2339,8 @@ msgid "The [ResourceSaver] singleton."
msgstr "Das [ResourceSaver] Singleton."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "The [Time] singleton."
-msgstr "Das [Engine] Singleton."
+msgstr "Das [Time] Singleton."
#: doc/classes/@GlobalScope.xml
msgid "The [TranslationServer] singleton."
@@ -2262,9 +2351,8 @@ msgid "The [VisualScriptEditor] singleton."
msgstr "Das [VisualScriptEditor] Singleton."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "The [VisualServer] singleton."
-msgstr "Das [DisplayServer] Singleton."
+msgstr "Das [VisualServer] Singleton."
#: doc/classes/@GlobalScope.xml
msgid "Left margin, usually used for [Control] or [StyleBox]-derived classes."
@@ -2360,10 +2448,10 @@ msgstr ""
"Klassen."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Scancodes with this bit applied are non-printable."
msgstr ""
-"Tastencodes, für die dieses Bit gesetzt ist, können nicht ausgegeben werden."
+"Tastencodes, für die dieses Bit gesetzt ist, können nicht in der Konsole "
+"ausgegeben werden."
#: doc/classes/@GlobalScope.xml
msgid "Escape key."
@@ -2634,20 +2722,20 @@ msgstr "Rechte Richtungs-Taste."
msgid ""
"Media back key. Not to be confused with the Back button on an Android device."
msgstr ""
+"Medien-Zurück-Taste. Nicht zu verwechseln mit dem Zurück-Knopf bei einem "
+"Android-Gerät."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Media forward key."
-msgstr "Medium aufnehmen Taste."
+msgstr "Medien-Vorwärts-Taste."
#: doc/classes/@GlobalScope.xml
msgid "Media stop key."
msgstr "Medium stoppen Taste."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Media refresh key."
-msgstr "Medium aufnehmen Taste."
+msgstr "Medien-Neuladen-Taste."
#: doc/classes/@GlobalScope.xml
msgid "Volume down key."
@@ -3435,23 +3523,20 @@ msgid "Extra mouse button 2 mask."
msgstr "Extra Maustaste 2 Maske."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Invalid button or axis."
-msgstr "ungültige Zeitdauer."
+msgstr "Ungültiger Knopf oder ungültige Achse."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 0."
msgstr "Gamepad-Taste 0."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Gamepad button 1."
-msgstr "Extra Maustaste 1 Maske."
+msgstr "Gamepad Taste 1."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Gamepad button 2."
-msgstr "Extra Maustaste 2 Maske."
+msgstr "Gamepad Taste 2."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 3."
@@ -3534,9 +3619,8 @@ msgid "Gamepad button 22."
msgstr "Gamepad-Taste 22."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Represents the maximum number of joystick buttons supported."
-msgstr "Die maximale Anzahl der Tasten des Game Controllers."
+msgstr "Die maximale Anzahl der Tasten des Game-Controllers."
#: doc/classes/@GlobalScope.xml
msgid "DualShock circle button."
@@ -3555,53 +3639,45 @@ msgid "DualShock triangle button."
msgstr "DualShock-Dreieck-Taste."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Xbox controller B button."
-msgstr "Game-Controller SDL-Taste A."
+msgstr "XBox-Controller B-Taste."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Xbox controller A button."
-msgstr "Game-Controller SDL-Taste A."
+msgstr "XBox-Controller A-Taste."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Xbox controller X button."
-msgstr "Game-Controller SDL-Taste A."
+msgstr "XBox-Controller X-Taste."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Xbox controller Y button."
-msgstr "Game-Controller SDL-Taste A."
+msgstr "XBox-Controller Y-Taste."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Nintendo controller A button."
-msgstr "Game-Controller SDL-Taste A."
+msgstr "Nintendo-Controller A-Taste."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Nintendo controller B button."
-msgstr "Game-Controller SDL-Taste A."
+msgstr "Nintendo-Controller B-Taste."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Nintendo controller X button."
-msgstr "Game-Controller SDL-Taste A."
+msgstr "Nintendo-Controller X-Taste."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Nintendo controller Y button."
-msgstr "Game-Controller SDL-Taste A."
+msgstr "Nintendo-Controller Y-Taste."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Grip (side) buttons on a VR controller."
-msgstr "Grip (Seiten) Knopf an einem VR-Controller"
+msgstr "Grip-Knopf(Seite) an einem VR-Controller"
#: doc/classes/@GlobalScope.xml
msgid "Push down on the touchpad or main joystick on a VR controller."
msgstr ""
+"Drücke auf das Touchpad oder den Haupt-Joystick auf einem VR-Controller."
#: doc/classes/@GlobalScope.xml
msgid "Trigger on a VR controller."
@@ -3663,7 +3739,7 @@ msgstr "Spiel-Controller SDL-Führungstaste."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL miscellaneous button."
-msgstr ""
+msgstr "Controller SDL Sonstiges-Taste."
#: doc/classes/@GlobalScope.xml
#, fuzzy
@@ -3801,32 +3877,109 @@ msgstr ""
"Controllern)."
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
-msgstr "MIDI-Note-OFF-Meldung."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
-msgstr "MIDI-Note-ON-Meldung."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
-msgstr "MIDI Aftertouch-Nachricht."
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
-msgstr "MIDI-Steuerelement-Änderungsmeldung."
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
-msgstr "MIDI-Programmwechselmeldung."
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
-msgstr "MIDI-Kanal Druckmeldung."
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
-msgstr "MIDI Pitch Bend Nachricht."
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
+msgstr ""
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -8932,7 +9085,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr "Gibt die Nummer von Elementen innerhalb eines Arrays wieder."
@@ -10919,15 +11075,15 @@ msgstr ""
#: doc/classes/AudioEffectFilter.xml
msgid "Allows frequencies other than the [member cutoff_hz] to pass."
-msgstr ""
+msgstr "Lässt andere Frequenzen als den [member cutoff_hz] passieren."
#: doc/classes/AudioEffectFilter.xml
msgid "Threshold frequency for the filter, in Hz."
-msgstr ""
+msgstr "Schwellenfrequenz für den Filter, in Hz."
#: doc/classes/AudioEffectFilter.xml
msgid "Gain amount of the frequencies after the filter."
-msgstr ""
+msgstr "Verstärkungsgrad der Frequenzen nach dem Filter."
#: doc/classes/AudioEffectFilter.xml
msgid "Amount of boost in the frequency range near the cutoff frequency."
@@ -10935,7 +11091,7 @@ msgstr ""
#: doc/classes/AudioEffectHighPassFilter.xml
msgid "Adds a high-pass filter to the Audio Bus."
-msgstr ""
+msgstr "Fügt dem Audiobus einen Hochpassfilter hinzu."
#: doc/classes/AudioEffectHighPassFilter.xml
msgid ""
@@ -13867,7 +14023,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -13937,11 +14093,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -13950,23 +14108,26 @@ msgstr ""
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Returns the [CameraFeed] with this id."
-msgstr "Gibt die Uhrzeit zurück, zu der sich der Schlüssel befindet."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Liefert die Position des Punktes bei Index [code]Punkt[/code]."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr ""
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "Entfernt die Animation mit dem key [code]name[/code]."
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -13974,7 +14135,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -14062,8 +14223,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -14073,17 +14235,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -14094,16 +14262,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -14115,27 +14289,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -14255,7 +14441,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -14314,7 +14502,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -14684,8 +14873,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -14734,6 +14923,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -15257,6 +15452,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -15710,9 +15906,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -15955,10 +16151,10 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
-"Die Alpha-Komponente (Transparenz) der Farbe, normalerweise im Bereich von 0 "
-"bis 1."
#: doc/classes/Color.xml
msgid "Wrapper for [member a] that uses the range 0 to 255 instead of 0 to 1."
@@ -16648,7 +16844,8 @@ msgstr ""
"angewendet (was zu Leistungsproblemen führen kann)."
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
"Wenn [code]true[/code], wird ein Alphakanal-Schieberegler (Transparenz) "
"angezeigt."
@@ -18740,7 +18937,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -19131,7 +19330,7 @@ msgstr ""
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/ParticlesMaterial.xml
msgid "Radial acceleration randomness ratio."
-msgstr ""
+msgstr "Radialbeschleunigungs-Zufallsverhältnis."
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/Particles2D.xml
@@ -19141,7 +19340,7 @@ msgstr ""
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/ParticlesMaterial.xml
msgid "Initial scale applied to each particle."
-msgstr ""
+msgstr "Auf jedes Partikel angewendete Anfangsskalierung."
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
msgid "Each particle's scale will vary along this [Curve]."
@@ -20065,7 +20264,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -21592,6 +21791,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -21609,11 +21815,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -21692,13 +21900,21 @@ msgid "Adds a static lib from the given [code]path[/code] to the iOS project."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
-#, fuzzy
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
-"Erzeugt einen neuen [Vector2] aus den übergeben [code]x[/code] und [code]y[/"
-"code]."
#: doc/classes/EditorExportPlugin.xml
msgid ""
@@ -22140,10 +22356,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -22192,7 +22407,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -22362,8 +22579,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -22372,7 +22589,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -23454,6 +23673,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -23935,10 +24162,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -24422,7 +24651,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -25059,7 +25288,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -26000,14 +26229,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/de/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/de/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -26083,7 +26312,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/de/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -28232,6 +28461,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -28460,7 +28695,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -28483,7 +28718,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -30784,7 +31019,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -30805,7 +31044,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -30826,11 +31069,19 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
-msgstr "Gibt [code]true[/code] zurück, wenn eine Animation abgespielt wird."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
#: doc/classes/Input.xml
msgid ""
@@ -30839,12 +31090,20 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
-msgstr "Gibt [code]true[/code] zurück, wenn eine Animation abgespielt wird."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
#: doc/classes/Input.xml
msgid ""
@@ -31161,7 +31420,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -31189,7 +31452,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -31384,6 +31651,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -31400,15 +31764,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -32017,9 +32383,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -32953,6 +33319,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -36184,16 +36573,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/de/latest/tutorials/vr/index.html"
@@ -36214,10 +36600,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -36233,30 +36616,17 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-#, fuzzy
-msgid "Removes the [NavigationMesh] with the given ID."
-msgstr "Gibt das AnimationNode mit dem gegebenen Namen zurück."
-
-#: doc/classes/Navigation.xml
-#, fuzzy
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
-"Gibt den Vektor, eingerastet auf das Gitter entstehend aus der übergebenen "
-"Größe, zurück."
#: doc/classes/Navigation.xml
msgid ""
@@ -36272,14 +36642,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/de/latest/tutorials/vr/index.html"
@@ -36288,40 +36655,424 @@ msgstr "https://docs.godotengine.org/de/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+#, fuzzy
+msgid "The XY plane cell size to use for fields."
+msgstr "Der Anrufmodus, der für Spuren der Anrufmethode verwendet werden soll."
+
+#: doc/classes/Navigation2DServer.xml
+#, fuzzy
+msgid "Server interface for low-level 2D navigation access."
+msgstr "Schnittstelle zu AES-Verschlüsselungsfunktionen auf niedriger Ebene."
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Creates the agent."
+msgstr "Benennt das übergebene Node um."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der Graph das übergebene Node enthält."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Gibt den Tangens des Parameters zurück."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Ruft den Namen eines Eingangs nach Index ab."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Liefert die Position der 8 Endpunkte des [AABB] im Raum."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Gibt den inversen Wert des Parameters zurück."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Der Zeichen-Offset der Textur."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Legt den aktuell sichtbaren Rahmen der Textur fest."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Destroys the given RID."
+msgstr "Gibt den gegebenen Übergang zurück."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Gibt das letzte Node des Graphen zurück."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+"Liefert die Position des Punktes bei Index [code]Punkt[/code] im Dreieck von "
+"Index [code]Dreieck[/code]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Gibt [code]true[/code] zurück falls das Array leer ist."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Die letzte Aktion wiederholen."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Gibt die Größe des Arrays zurück."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
#, fuzzy
-msgid "Removes the [NavigationPolygon] with the given ID."
+msgid "Sets the navigation mesh for the region."
msgstr "Gibt das AnimationNode mit dem gegebenen Namen zurück."
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr ""
+"Gibt zurück, ob die Knochenauflage für den Bone an [code]bone_idx[/code] "
+"deaktiviert ist."
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Returns the path from start to finish in global coordinates."
+msgstr "Gibt die Rotation in Radians zurück."
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Liefert die Fläche des [Rect2i]."
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr "Gibt das AnimationNode mit dem gegebenen Namen zurück."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr "Gibt [code]true[/code] zurück, ob ein gegebener Pfad gefiltert ist."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die spezifizerte Flagge aktiviert ist. "
+"Siehe die [enum Flags] Aufzählung für Optionen."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The radius of the agent."
+msgstr "Der Name des Audiobusses des Bereichs."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Notifies when the final location is reached."
+msgstr "Benachrichtigt, wenn die Wiedergabe einer Animation beendet ist."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Liefert die Fläche des [Rect2i]."
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr "Gibt das AnimationNode mit dem gegebenen Namen zurück."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
-"Gibt den Vektor, eingerastet auf das Gitter entstehend aus der übergebenen "
-"Größe, zurück."
#: doc/classes/NavigationMesh.xml
msgid "A mesh to approximate the walkable areas and obstacles."
@@ -36421,10 +37172,6 @@ msgid "The Y axis cell size to use for fields."
msgstr "Der Anrufmodus, der für Spuren der Anrufmethode verwendet werden soll."
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -36587,26 +37334,119 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr "Steht für die Größe von [enum TextureRepeat] enum."
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+#, fuzzy
+msgid "Clears the navigation mesh."
+msgstr "Enthält die Audio Daten in Bytes."
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-#, fuzzy
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
-msgstr "Wenn [code]true[/code], wird der [AnimationTree] verarbeitet."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
msgstr "Das [NavigationMeshGenerator] Singleton."
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr "Benachrichtigt, wenn eine Animation abgespielt wird."
+
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr "Benachrichtigt, wenn eine Animation abgespielt wird."
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr "Gibt das AnimationNode mit dem gegebenen Namen zurück."
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
#: doc/classes/NavigationPolygon.xml
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
@@ -36703,6 +37543,77 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Server interface for low-level 3D navigation access."
+msgstr "Schnittstelle zu AES-Verschlüsselungsfunktionen auf niedriger Ebene."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Gibt die inverse Quadratwurzel des Parameters zurück."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr "Gibt den Namen der nächsten Animation in der Warteschlange zurück."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Gibt das letzte Node des Graphen zurück."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Beendet die Tonausgabe."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -40046,7 +40957,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -44703,16 +45616,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -44780,12 +45693,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr "Gibt die Größe des Arrays zurück."
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -44888,10 +45795,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr "Ändert den [Vector2] am übergeben Index."
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
#, fuzzy
msgid "A pooled [Array] of reals ([float])."
@@ -48395,7 +49298,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -48438,8 +49341,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -48451,6 +49355,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -49331,12 +50248,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -49475,15 +50392,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -50759,14 +51667,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -51816,7 +52716,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -51999,7 +52899,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -52106,7 +53006,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -54191,7 +55091,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -54215,19 +55115,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -55950,7 +56869,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -56656,6 +57575,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -59942,7 +60871,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -59964,9 +60893,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -61071,17 +62002,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -61101,10 +62032,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -61228,25 +62159,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -63467,13 +64379,13 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr "Gibt den Vektor reflektiert an der Ebene des Normalenvektors zurück."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
-"Liefert den Vektor mit allen Komponenten aufgerundet (gegen positive "
-"Unendlichkeit)."
+"Gibt einen neuen Vektor zurück, bei dem alle Komponenten aufgerundet sind "
+"(gegen positive Unendlichkeit)."
#: doc/classes/Vector2.xml
#, fuzzy
@@ -63540,13 +64452,13 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
-"Liefert den Vektor mit allen Komponenten abgerundet (gegen negative "
-"Unendlichkeit)."
+"Gibt einen neuen Vektor zurück, bei dem alle Komponenten abgerundet sind "
+"(gegen negativ unendlich)."
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -63600,10 +64512,11 @@ msgstr ""
"[code]b[/code] um den Wert [code]t[/code] zurück. [code]t[/code] liegt "
"zwischen 0.0 und 1.0 und bezeichnet den Grad der Interpolation."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
"Bewegt den Vektor Richtung [code]to[/code] für den festen Betrag "
"[code]delta[/code]."
@@ -63633,12 +64546,16 @@ msgstr ""
"Gibt den Vektor zurück der entsteht, wenn [method @GDScript.fposmod] auf die "
"Komponenten dieses Vektors und [code]modv[/code] ausgeführt wird."
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr "Gibt die Projektion dieses Vektors auf [code]b[/code] zurück."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+#, fuzzy
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
"Gibt die Reflexion dieses Vektors auf die Ebene des übergebenen "
"Normalenvektors zurück."
@@ -63651,20 +64568,21 @@ msgstr ""
"Gibt den Vektor rotiert um [code]phi[/code] rad zurück. Siehe auch [method "
"@GDScript.deg2rad]."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
"Gibt den Vektor zurück der entsteht wenn alle Komponenten zur nächsten "
"Ganzzahl gerundet werden, wobei 0,5 immer weg von der Null gerundet wird."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
#, fuzzy
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
"Gibt den Vektor zurück, bei dem jede Komponente auf eins oder negativ "
"gesetzt ist, je nach Vorzeichen der Komponenten, oder null, wenn die "
@@ -63788,29 +64706,21 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "Gibt den minimalen Winkel zum angegebenen Vektor in Bogenmaß zurück."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-"Gibt einen neuen Vektor zurück, bei dem alle Komponenten aufgerundet sind "
-"(gegen positive Unendlichkeit)."
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "Gibt das Kreuzprodukt aus diesem Vektor und [code]b[/code] zurück."
#: doc/classes/Vector3.xml
#, fuzzy
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-"Führt eine kubische Interpolation zwischen den Vektoren [code]pre_a[/code], "
-"[code]a[/code], [code]b[/code], [code]post_b[/code] ([code]a[/code] ist "
-"aktuell), um den angegebenen Betrag [code]t[/code] durch. [code]t[/code] "
-"liegt im Bereich von 0,0 bis 1,0 und stellt den Betrag der Interpolation dar."
+"Interpoliert kubisch zwischen diesem Vektor und [code]b[/code], wobei "
+"[code]pre_a[/code] und [code]post_b[/code] als Griffe benutzt werden, und "
+"gibt das Ergebnis an der Stelle [code]t[/code] zurück. [code]t[/code] liegt "
+"zwischen 0.0 und 1.0 und bezeichnet den Grad der Interpolation."
#: doc/classes/Vector3.xml
msgid "Returns the distance between this vector and [code]b[/code]."
@@ -63833,14 +64743,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-"Gibt einen neuen Vektor zurück, bei dem alle Komponenten abgerundet sind "
-"(gegen negativ unendlich)."
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -63871,23 +64773,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-"Bewegt den Vektor Richtung [code]to[/code] für den festen Betrag "
-"[code]delta[/code]."
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-"Gibt diesen Vektor projiziert auf einen anderen Vektor [code]b[/code] zurück."
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
"Gibt die Reflexion dieses Vektors auf die Ebene des übergebenen "
@@ -63903,26 +64792,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-"Gibt diesen Vektor mit allen Komponenten auf die nächste Ganzzahl gerundet "
-"zurück, wobei die Hälfte der Fälle von Null abgerundet wird."
-
-#: doc/classes/Vector3.xml
-#, fuzzy
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-"Gibt einen Vektor zurück, bei dem jede Komponente auf eins oder negativ "
-"gesetzt ist, je nach Vorzeichen der Komponenten dieses Vektors, oder null, "
-"wenn die Komponente null ist, indem die [method@GDScript.sign] für jede "
-"Komponente aufgerufen wird."
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -64625,10 +65494,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -64750,6 +65621,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -65276,7 +66159,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/de/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -70328,6 +71211,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -71166,6 +72065,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Stellt die Größe dar des [enum Variant.Type] enum."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/el.po b/doc/translations/el.po
index 784c133b51..f983a43b79 100644
--- a/doc/translations/el.po
+++ b/doc/translations/el.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Dabs Yt <dabsgt1@gmail.com>, 2020.
@@ -63,6 +63,71 @@ msgstr "ΠεÏιγÏαφές ιδιοτήτων"
msgid "Method Descriptions"
msgstr "ΠεÏιγÏαφές μεθόδων"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "ΠεÏιγÏαφές ιδιοτήτων"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Ενσωματωμένες συναÏτήσεις GDScript."
@@ -475,16 +540,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -534,8 +607,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -544,7 +620,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -552,7 +631,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1384,7 +1464,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2894,31 +2982,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6983,7 +7148,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11890,7 +12058,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11958,11 +12126,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11970,23 +12140,26 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "ΕπιστÏέφει το ημίτονο της παÏαμέτÏου."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11994,7 +12167,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12082,8 +12255,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12093,17 +12267,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12114,16 +12294,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12135,27 +12321,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12275,7 +12473,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12334,7 +12534,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12692,8 +12893,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12742,6 +12943,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13241,6 +13448,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13667,9 +13875,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13912,7 +14120,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14580,7 +14790,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16598,7 +16808,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17915,7 +18127,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19438,6 +19650,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19455,11 +19674,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19539,8 +19760,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19983,10 +20215,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20035,7 +20266,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20205,8 +20438,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20215,7 +20448,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21290,6 +21525,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21766,10 +22009,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22249,7 +22494,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22884,7 +23129,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23820,14 +24065,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -23903,7 +24148,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26020,6 +26265,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26248,7 +26499,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26271,7 +26522,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28559,7 +28810,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28580,7 +28835,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28599,8 +28858,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28613,7 +28881,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28931,7 +29208,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28959,7 +29240,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29154,6 +29439,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29170,15 +29552,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29783,9 +30167,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30716,6 +31100,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33934,16 +34341,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -33964,10 +34368,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33983,25 +34384,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34018,14 +34410,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34034,35 +34423,402 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "ΕπιστÏέφει την εφαπτομένη της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "ΕπιστÏέφει το ημίτονο της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "ΕπιστÏέφει την αντίθετη τιμή της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "ΕπιστÏέφει την αντίθετη τιμή της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "ΕπιστÏέφει το ημίτονο της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "ΕπιστÏέφει την αντίθετη τιμή της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "ΕπιστÏέφει το τόξο ημιτόνου της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "ΕπιστÏέφει το συνημίτονο της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "ΕπιστÏέφει το τόξο ημιτόνου της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "ΕπιστÏέφει το ημίτονο της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "ΕπιστÏέφει την αντίθετη τιμή της παÏαμέτÏου."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "ΕπιστÏέφει το τόξο ημιτόνου της παÏαμέτÏου."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "ΕπιστÏέφει το τόξο ημιτόνου της παÏαμέτÏου."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34162,10 +34918,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34325,22 +35077,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34439,6 +35281,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "ΕπιστÏέφει το αντίστÏοφο της τετÏαγωνικής Ïίζας της παÏαμέτÏου."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "ΕπιστÏέφει το τόξο ημιτόνου της παÏαμέτÏου."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "ΕπιστÏέφει το ημίτονο της παÏαμέτÏου."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37773,7 +38684,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42375,16 +43288,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42446,12 +43359,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42532,10 +43439,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45984,7 +46887,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46027,8 +46930,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46040,6 +46944,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46899,12 +47816,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47033,15 +47950,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48304,14 +49212,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49358,7 +50258,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49541,7 +50441,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49648,7 +50548,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51714,7 +52614,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51738,19 +52638,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53448,7 +54367,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54133,6 +55052,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57351,7 +58280,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57373,9 +58302,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58477,17 +59408,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58507,10 +59438,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58634,25 +59565,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60808,9 +61720,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60865,9 +61777,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60908,10 +61820,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60932,12 +61844,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "ΕπιστÏέφει το υπόλοιπο των 2 διανυσμάτων."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60946,17 +61861,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61057,21 +61972,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "ΕπιστÏέφει το υπόλοιπο των 2 διανυσμάτων."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61095,12 +62004,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61127,20 +62030,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61152,19 +62045,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61861,10 +62741,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61980,6 +62862,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62498,7 +63392,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67488,6 +68382,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68324,6 +69234,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "ΕπιστÏέφει το ημίτονο της παÏαμέτÏου."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/es.po b/doc/translations/es.po
index 87fa3198df..59ace9c817 100644
--- a/doc/translations/es.po
+++ b/doc/translations/es.po
@@ -1,6 +1,6 @@
# Spanish translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# 44pes Games <44pes.games@gmail.com>, 2020.
@@ -83,6 +83,71 @@ msgstr "Descripciones de Propiedades"
msgid "Method Descriptions"
msgstr "Descripciones de Métodos"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Descripciones de Propiedades"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Funciones GDScript Incorporadas."
@@ -752,27 +817,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"Devuelve un valor normalizado considerando el rango dado. Esto es lo "
-"contrario a [method lerp].\n"
-"[codeblock]\n"
-"var mitad = lerp(20, 30, 0.75)\n"
-"# `mitad` es ahora 27.5.\n"
-"# Ahora, vamos a suponer que hemos olvidado el ratio original y queremos "
-"volver a atras.\n"
-"var ratio = inverse_lerp(20, 30, 27.5)\n"
-"# `ratio` es ahora 0.75.\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -842,9 +905,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -853,7 +920,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"Interpola linealmente entre dos valores por un valor normalizado. Esto es la "
"función inversa de [method inverse_lerp].\n"
@@ -868,11 +938,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -2238,10 +2310,20 @@ msgstr "El singleton [Marshalls]."
#: doc/classes/@GlobalScope.xml
#, fuzzy
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr "El singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
msgstr "El singleton [NavigationMeshGenerator]."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "El singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
msgstr "El singleton [OS]."
@@ -3819,32 +3901,109 @@ msgstr ""
"Touch y Windows MR)."
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
-msgstr "Nota Midi Mensaje OFF."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
-msgstr "Nota MIDI Mensaje ON."
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
-msgstr "Nota MIDI Mensaje Despues de tocar."
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
-msgstr "Nota MIDI Control cambiar mensaje."
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
-msgstr "Nota MIDI Mensaje cambiar programa."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
-msgstr "Nota MIDI Mensaje presion de canal."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
-msgstr "Nota MIDI Cambio de Tono."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
+msgstr ""
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -9042,7 +9201,10 @@ msgstr ""
"que una nueva semilla sea utilizada cada vez si tu no quieres reproducir el "
"orden de los items."
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr "Devuelve el numer de elementos en el array."
@@ -15526,7 +15688,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -15609,7 +15771,9 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
"El [CameraServer] lleva un registro de las diferentes cámaras accesibles en "
"Godot. Estas son cámaras externas como las webcams o las cámaras de su "
@@ -15621,7 +15785,7 @@ msgstr ""
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr "Añade la cámara [code]feed[/code] al servidor de la cámara."
#: doc/classes/CameraServer.xml
@@ -15630,8 +15794,10 @@ msgstr "Devuelve una array de [CameraFeed]s."
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Returns the [CameraFeed] with this id."
-msgstr "Devuelve el nombre de esta señal."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Devuelve el índice del artículo con el [code]id[/code] dado."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
@@ -15639,19 +15805,19 @@ msgstr "Devuelve el número de [CameraFeed]s registrados."
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Removes a [CameraFeed]."
-msgstr "Textura proporcionada por un [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "Elimina el elemento en el índice [code]idx[/code]."
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
"Se emite cuando se agrega una [CameraFeed] (por ejemplo, se conecta una "
"cámara web)."
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
"Se emite cuando se retira una [CameraFeed] (por ejemplo, se desenchufa una "
"cámara web)."
@@ -15662,8 +15828,10 @@ msgstr "La imagen de la cámara RGBA."
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "The YCbCr camera image."
-msgstr "La imagen de la cámara del componente CbCr."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
+msgstr ""
+"Utiliza el método de compresión [url=https://en.wikipedia.org/wiki/"
+"DEFLATE]DEFLATE[/url]."
#: doc/classes/CameraServer.xml
msgid "The Y component camera image."
@@ -15786,9 +15954,11 @@ msgstr ""
"el objeto canvas."
#: doc/classes/CanvasItem.xml
+#, fuzzy
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
"Dibuja un arco entre los ángulos dados. Cuanto mayor sea el valor de "
"[code]point_count[/code], más suave será la curva."
@@ -15803,11 +15973,17 @@ msgstr ""
"siguiente carácter."
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
-msgstr "Dibuja un círculo de color."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
+msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+#, fuzzy
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
"Dibuja un polígono coloreado de cualquier cantidad de puntos, convexo o "
"cóncavo."
@@ -15816,7 +15992,8 @@ msgstr ""
#, fuzzy
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
"Dibuja una línea desde un punto 2D a otro, con un color y un ancho "
"determinados."
@@ -15830,18 +16007,28 @@ msgstr ""
"[MeshInstance2D] para la documentación relacionada."
#: doc/classes/CanvasItem.xml
+#, fuzzy
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
+"Dibuja múltiples líneas paralelas con un [code]width[/code] uniforme y "
+"coloración segmento por segmento. Los colores asignados a los segmentos de "
+"línea coinciden por índice entre [code]points[/code] y [code]colors[/code]."
#: doc/classes/CanvasItem.xml
#, fuzzy
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -15858,25 +16045,31 @@ msgstr ""
"[MultiMeshInstance2D] para la documentación relacionada."
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
-msgstr "Dibuja un polígono de cualquier cantidad de puntos, convexo o cóncavo."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
+msgstr ""
#: doc/classes/CanvasItem.xml
-#, fuzzy
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
-"Dibuja segmentos de línea interconectados con un [code]color[/code] y un "
-"[code]width[/code] uniformes."
#: doc/classes/CanvasItem.xml
#, fuzzy
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
"Dibuja segmentos de líneas interconectadas con un [code]width[/code] "
"uniforme y coloración segmento por segmento. Los colores asignados a los "
@@ -15884,13 +16077,13 @@ msgstr ""
"[code]colors[/code]."
#: doc/classes/CanvasItem.xml
-#, fuzzy
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
-"Dibuja un primitiva personalizada. 1 punto por un punto, 2 puntos por una "
-"línea, 3 puntos por un triángulo y 4 puntos para un cuadrilátero."
#: doc/classes/CanvasItem.xml
#, fuzzy
@@ -16053,8 +16246,13 @@ msgid "Returns the [World2D] where this item is in."
msgstr "Devuelve el [World2D] donde está este objeto."
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
-msgstr "Ocultar el [CanvasItem] si es visible actualmente."
+#, fuzzy
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
+msgstr ""
+"Limpia el array. Esto es equivalente a usar [method resize] con un tamaño de "
+"[code]0[/code]."
#: doc/classes/CanvasItem.xml
msgid ""
@@ -16131,8 +16329,10 @@ msgstr ""
"con los datos de transformación global."
#: doc/classes/CanvasItem.xml
+#, fuzzy
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -16569,9 +16769,10 @@ msgstr ""
"https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project"
#: doc/classes/CharFXTransform.xml
+#, fuzzy
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
"El índice del carácter actual (a partir de 0). Establecer esta propiedad no "
"afectará al dibujo."
@@ -16651,6 +16852,15 @@ msgstr ""
"píxeles)."
#: doc/classes/CharFXTransform.xml
+#, fuzzy
+msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+"El índice del carácter actual (a partir de 0). Establecer esta propiedad no "
+"afectará al dibujo."
+
+#: doc/classes/CharFXTransform.xml
msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
@@ -17318,6 +17528,7 @@ msgstr ""
"configurado."
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr "Devuelve el [RID] del objeto."
@@ -17886,9 +18097,9 @@ msgstr "Color en formato RGBA usando reales en el rango de 0 a 1."
#, fuzzy
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -18284,10 +18495,10 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
-"El componente alfa (transparencia) del color, típicamente en el rango de 0 a "
-"1."
#: doc/classes/Color.xml
msgid "Wrapper for [member a] that uses the range 0 to 255 instead of 0 to 1."
@@ -18970,7 +19181,8 @@ msgstr ""
"de rendimiento)."
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
"Si [code]true[/code], muestra un deslizador de canal alfa (transparencia)."
@@ -21822,10 +22034,10 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
-"La lista de vértices del polígono. Puede ser en el sentido de las agujas del "
-"reloj o en el sentido contrario."
#: doc/classes/CPUParticles.xml
msgid "CPU-based 3D particle emitter."
@@ -23507,7 +23719,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/es/latest/getting_started/step_by_step/"
"animations.html"
@@ -25664,6 +25876,13 @@ msgstr ""
"las opciones."
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr "Desactiva la indicación de la fuente (más suave pero menos nítida)."
@@ -25684,11 +25903,13 @@ msgstr "Un script que se ejecuta al exportar proyectos."
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -25776,13 +25997,21 @@ msgstr ""
"crt\")."
#: doc/classes/EditorExportPlugin.xml
-#, fuzzy
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
-"Añade un hueso con el [code]path[/code] y el [code]weights[/code] "
-"especificados."
#: doc/classes/EditorExportPlugin.xml
msgid ""
@@ -26353,11 +26582,11 @@ msgstr ""
"para analizar cualquier archivo e importarlo como un nuevo tipo de recurso."
#: doc/classes/EditorImportPlugin.xml
+#, fuzzy
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -26406,7 +26635,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
"EditorImportPlugins proporcionan una forma de ampliar la funcionalidad de "
"importación de recursos del editor. Utilícelos para importar recursos de "
@@ -26708,8 +26939,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
#, fuzzy
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -26718,7 +26949,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
"Este plugin permite añadir editores de propiedades personalizados a "
"[EditorInspector].\n"
@@ -28121,6 +28354,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr "Importa escenas de archivos 3D de terceros."
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -28838,10 +29079,12 @@ msgstr "Usado por el editor para definir los tipos de gizmo de Spatial."
#: doc/classes/EditorSpatialGizmoPlugin.xml
#, fuzzy
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
"EditorSpatialGizmoPlugin te permite definir un nuevo tipo de Gizmo. Hay dos "
"formas principales de hacerlo: extendiendo [EditorSpatialGizmoPlugin] para "
@@ -29545,7 +29788,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -30378,7 +30621,7 @@ msgstr "Operador de mazos fílmicos."
#: doc/classes/Environment.xml
#, fuzzy
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr "Operador del Sistema de Codificación de Color de la Academia."
@@ -31611,14 +31854,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/es/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/es/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -31731,7 +31974,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/es/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -34554,6 +34797,12 @@ msgstr "La [MeshLibrary] asignada."
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -34847,7 +35096,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -34870,7 +35119,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -38011,7 +38260,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
"Devuelve [code]true[/code] cuando el usuario empieza a pulsar el evento de "
"acción, lo que significa que es [code]true[/code] sólo en el marco en el que "
@@ -38044,7 +38297,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
"Devuelve [code]true[/code] si está pulsando el evento de acción. Ten en "
"cuenta que si una acción tiene varios botones asignados y se pulsa más de "
@@ -38074,13 +38331,19 @@ msgstr ""
"así se pueden recuperar eventos de ellos."
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
-"Devuelve [code]true[/code] si está pulsando la tecla en la disposición "
-"actual del teclado. Puedes pasar una constante [enum KeyList]."
#: doc/classes/Input.xml
msgid ""
@@ -38091,14 +38354,20 @@ msgstr ""
"[enum ButtonList]."
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
-"Devuelve [code]true[/code] si está pulsando la tecla en la disposición "
-"actual del teclado. Puedes pasar una constante [enum KeyList]."
#: doc/classes/Input.xml
msgid ""
@@ -38524,7 +38793,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
"Devuelve [code]true[/code] si se está pulsando la acción dada (y no es un "
"evento de eco para los eventos [InputEventKey], a menos que "
@@ -38563,13 +38836,19 @@ msgstr ""
"(sólo para eventos del tipo [InputEventKey])."
#: doc/classes/InputEvent.xml
+#, fuzzy
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
-"Devuelve [code]true[/code] si se pulsa este evento de entrada. No es "
-"relevante para eventos del tipo [InputEventMouseMotion] o "
-"[InputEventScreenDrag]."
+"Devuelve [code]true[/code] si se está pulsando la acción dada (y no es un "
+"evento de eco para los eventos [InputEventKey], a menos que "
+"[code]allow_echo[/code] sea [code]true[/code]). No es relevante para los "
+"eventos de tipo [InputEventMouseMotion] o [InputEventScreenDrag]."
#: doc/classes/InputEvent.xml
msgid ""
@@ -38843,6 +39122,104 @@ msgstr ""
"complejas no estén disponibles a menos que el modo de entrada IME esté "
"activo. Consulte [method Window.set_ime_active] para obtener más información."
+#: doc/classes/InputEventMIDI.xml
+#, fuzzy
+msgid "Input event for MIDI inputs."
+msgstr "Tipo de evento de entrada para las acciones."
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr "Tipo de evento de entrada base para eventos de ratón."
@@ -38860,18 +39237,23 @@ msgstr ""
"botón [enum ButtonList] o una combinación de ellas."
#: doc/classes/InputEventMouse.xml
+#, fuzzy
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
-"La posición global del ratón en relación con el [Viewport] actual cuando se "
-"utiliza en el [method Control._gui_input], de lo contrario está a 0,0."
+"La posición local del ratón relativa al [Viewport]. Si se utiliza en [method "
+"Control._gui_input], la posición es relativa al [Control] actual que está "
+"bajo el ratón."
#: doc/classes/InputEventMouse.xml
+#, fuzzy
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
"La posición local del ratón relativa al [Viewport]. Si se utiliza en [method "
"Control._gui_input], la posición es relativa al [Control] actual que está "
@@ -39691,9 +40073,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr "Devuelve un array con los índices de los elementos seleccionados."
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -40907,6 +41289,30 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+#, fuzzy
+msgid "Do nothing when leaving a platform."
+msgstr "Utiliza esto cuando uses las transformadas 2D."
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr "Nodo 2D del cuerpo cinético."
@@ -45162,13 +45568,9 @@ msgstr "Nodo de navegación y busqueda de caminos basado en una malla."
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
"Proporciona navegación y búsqueda de caminos dentro de una colección de "
"[NavigationMesh]es. Estos serán recogidos automáticamente de los nodos hijos "
@@ -45177,6 +45579,7 @@ msgstr ""
"navegando."
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -45198,13 +45601,13 @@ msgid ""
msgstr ""
#: doc/classes/Navigation.xml
+#, fuzzy
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
+"Devuelve el polígono de navegación del subsuelo de un atlas/autotile dadas "
+"sus coordenadas."
#: doc/classes/Navigation.xml
msgid ""
@@ -45220,9 +45623,7 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
"Devuelve el camino entre dos puntos dados. Los puntos están en el espacio de "
"coordenadas locales. Si [code]optimize[/code] es [code]true[/code] (el valor "
@@ -45230,23 +45631,14 @@ msgstr ""
"(radio, altura, etc.) se consideran en el cálculo del camino, de lo "
"contrario se ignoran."
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-#, fuzzy
-msgid "Removes the [NavigationMesh] with the given ID."
-msgstr "Devuelve el nodo animacion con el nombre dado."
-
-#: doc/classes/Navigation.xml
-#, fuzzy
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
-msgstr "Devuelve la transformada aplicada a la malla de navegación del objeto."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
+msgstr ""
#: doc/classes/Navigation.xml
msgid ""
@@ -45265,17 +45657,14 @@ msgstr "Navegación 2D y nodo de búsqueda de caminos."
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
"Navigation2D proporciona navegación y busqueda de caminos dentro de un área "
"2D, especificada como una colección de recursos de [NavigationPolygon]. "
"Estos se recogen automáticamente de los nodos hijos de [NavigationRegion2D]."
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -45284,9 +45673,7 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
@@ -45294,9 +45681,7 @@ msgstr ""
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
"Devuelve el camino entre dos puntos dados. Los puntos están en el espacio de "
"coordenadas locales. Si [code]optimize[/code] es [code]true[/code] (el valor "
@@ -45304,24 +45689,423 @@ msgstr ""
"es posible."
#: doc/classes/Navigation2D.xml
+#, fuzzy
+msgid "The XY plane cell size to use for fields."
+msgstr "El modo de llamada a utilizar para las Call Method Tracks."
+
+#: doc/classes/Navigation2DServer.xml
+#, fuzzy
+msgid "Server interface for low-level 2D navigation access."
+msgstr "Interfaz de servidor para acceso de audio de bajo nivel."
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Creates the agent."
+msgstr "Crea un [HingeJoint]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr "Devuelve [code]true[/code] si el script puede ser instanciado."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Devuelve la tangente de la entrada."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
#, fuzzy
-msgid "Removes the [NavigationPolygon] with the given ID."
-msgstr "Devuelve el polígono de navegación del tile."
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Establece el [enum BitmaskMode] del autotile."
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Establece la posición del vértice dado."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Establece la normal del vértice dado."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Establece los huesos del vértice dado."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Devuelve la tiempo actual del tween."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Destroys the given RID."
+msgstr "Quita la identificación del tile dado."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Create a new map."
+msgstr "Crea un [Area2D]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Devuelve el tamaño del array."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
#, fuzzy
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+"Devuelve la posición del punto en el índice [code]point[/code] en el "
+"triángulo del índice [code]triangle[/code]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+"Devuelve el número de puertos de entrada en uso. Alternativa para [method "
+"get_free_input_port_id]."
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr "Devuelve el polígono de navegación del tile."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Devuelve [code]true[/code] si la selección está activa."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Detiene el temporizador."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Set the map cell size used to weld the navigation mesh polygons."
msgstr "Devuelve la transformada aplicada a la malla de navegación del objeto."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Creates a new region."
+msgstr "Crea un [Area2D]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Establece los metadatos del borde dado."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "Establece la malla de navegación del objeto."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "Establece la matriz de transformación global del Viewport."
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Returns the path from start to finish in global coordinates."
+msgstr "Devuelve el RID del viewport del [VisualServer]."
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Devuelve el caché de puntos como un [PackedVector3Array]."
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr "Devuelve el nodo animacion con el nombre dado."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr "Devuelve el texto de error si el [method parse] ha fallado."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr "Devuelve [code]true[/code] si un camino dado es filtrado."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+"Devuelve [code]true[/code] si el nodo está configurado como de nivel "
+"superior. Ver [method set_as_toplevel]."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid "The agent height offset to match the navigation mesh height."
+msgstr "Devuelve el desplazamiento del polígono de navegación del tile."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr "El valor máximo de luminosidad para la exposición automática."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The maximum speed that an agent can move."
+msgstr "El valor máximo que puede alcanzar la curva."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The distance to search for other agents."
+msgstr "La instancia no tiene un tipo."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The radius of the agent."
+msgstr "El radio del cilindro."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Notifies when the final location is reached."
+msgstr "Notifica cuando una animación ha terminado de reproducirse."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Devuelve el caché de puntos como un [PackedVector2Array]."
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr "Devuelve el nodo animacion con el nombre dado."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
#: doc/classes/NavigationMesh.xml
msgid "A mesh to approximate the walkable areas and obstacles."
msgstr ""
@@ -45437,10 +46221,6 @@ msgid "The Y axis cell size to use for fields."
msgstr "El modo de llamada a utilizar para las Call Method Tracks."
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -45610,27 +46390,123 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr "Representa el tamaño del enum [enum ShaderMode]."
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+#, fuzzy
+msgid "Clears the navigation mesh."
+msgstr "Establece la malla de navegación del objeto."
+
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "Node that instances navigation meshes into a scenario."
-msgstr "Nodo que instancia mallas en un escenario."
+msgid "An instance of a [NavigationMesh]."
+msgstr "Nodo que instancia un [MultiMesh]."
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-#, fuzzy
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
-msgstr "Si [code]true[/code], el [AnimationTree] se procesará."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
msgstr "El recurso [Mesh] para la instancia."
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr "Notifica cuando una animación comienza a reproducirse."
+
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr "Notifica cuando una animación comienza a reproducirse."
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr "Devuelve el nodo animacion con el nombre dado."
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+#, fuzzy
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+"Fondo utilizado cuando [LineEdit] está en modo de sólo lectura ([member "
+"editable] está configurado como [code]false[/code])."
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
#: doc/classes/NavigationPolygon.xml
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
@@ -45779,6 +46655,81 @@ msgstr ""
"Cambia un contorno creado en el editor o por el script. Tienes que llamar a "
"[method make_polygons_from_outlines] para que los polígonos se actualicen."
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Server interface for low-level 3D navigation access."
+msgstr "Interfaz de servidor para acceso de audio de bajo nivel."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+"Devuelve la normalidad de la forma del objeto que se intersecta en el punto "
+"de colisión."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr "El estilo de los puntos entre el comienzo y el final."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Devuelve las dimensiones del mapa de bits."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Detiene el audio."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Bakes the navigation mesh."
+msgstr "Establece la malla de navegación del objeto."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Control activation of this server."
+msgstr "Traducción local de este nodo."
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -50546,7 +51497,10 @@ msgstr ""
"la depuración)."
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+#, fuzzy
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
"Devuelve la cantidad de memoria estática que está siendo utilizada por el "
"programa en bytes."
@@ -56695,16 +57649,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -56786,12 +57740,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr "Cambia el byte en el índice dado."
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr "Devuelve el tamaño del array."
-
#: doc/classes/PoolByteArray.xml
#, fuzzy
msgid ""
@@ -56910,10 +57858,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr "Cambia el entero en el índice dado."
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr "Devuelve el tamaño del array."
-
#: doc/classes/PoolRealArray.xml
#, fuzzy
msgid "A pooled [Array] of reals ([float])."
@@ -61311,7 +62255,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -61358,8 +62302,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -61374,6 +62319,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -62492,20 +63450,19 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr "Elimina todas las excepciones de colisión para este rayo."
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
#, fuzzy
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
-"Actualiza la información de la colisión para el rayo.\n"
-"Utiliza este método para actualizar la información de la colisión "
-"inmediatamente en lugar de esperar a la siguiente llamada a "
-"[code]_physics_process[/code], por ejemplo si el rayo o su padre ha cambiado "
-"de estado.\n"
+"Actualiza la información de la colisión para el rayo. Utiliza este método "
+"para actualizar la información de la colisión inmediatamente en lugar de "
+"esperar a la siguiente llamada a [code]_physics_process[/code], por ejemplo "
+"si el rayo o su padre ha cambiado de estado.\n"
"[b]Nota: [/b] [member enabled] no necesita ser [code]true[/code] para que "
"esto funcione."
@@ -62685,22 +63642,6 @@ msgstr ""
"después de ajustar el raycast."
#: doc/classes/RayCast2D.xml
-#, fuzzy
-msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-"Actualiza la información de la colisión para el rayo. Utiliza este método "
-"para actualizar la información de la colisión inmediatamente en lugar de "
-"esperar a la siguiente llamada a [code]_physics_process[/code], por ejemplo "
-"si el rayo o su padre ha cambiado de estado.\n"
-"[b]Nota: [/b] [member enabled] no necesita ser [code]true[/code] para que "
-"esto funcione."
-
-#: doc/classes/RayCast2D.xml
msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
@@ -64443,14 +65384,6 @@ msgstr ""
"los BBCodes."
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr "Devuelve el número de líneas visibles."
@@ -65864,7 +66797,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -66047,7 +66980,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -66154,7 +67087,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -68833,7 +69766,7 @@ msgstr ""
#, fuzzy
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -68865,25 +69798,39 @@ msgstr ""
"textura básica de los objetos."
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
-msgstr "La fuerza del efecto de anisotropía."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
+msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
-"Si [code]true[/code], la anisotropía está activada. Cambia la forma de la "
-"mancha especular y la alinea con el espacio tangente. Las tangentes de malla "
-"son necesarias para que esto funcione. Si la malla no contiene tangentes el "
-"efecto de anisotropía aparecerá roto."
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
-"Textura que desplaza el mapa de la tangente para los cálculos de anisotropía."
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71056,8 +72003,9 @@ msgstr ""
"Error], y una array de datos."
#: doc/classes/StreamPeer.xml
+#, fuzzy
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -71934,6 +72882,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -76104,7 +77062,7 @@ msgstr ""
#: doc/classes/TileMap.xml
#, fuzzy
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -76142,10 +77100,13 @@ msgstr ""
"[/codeblock]"
#: doc/classes/TileMap.xml
+#, fuzzy
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -77491,23 +78452,24 @@ msgstr ""
"Devuelve el inverso de la transformada, bajo el supuesto de que la "
"transformación se compone de rotación, escalado y traslación."
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
+#, fuzzy
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-"Interpola la transformada a otra Transformación por cantidad de pesos (en el "
-"rango de 0.0 a 1.0)."
+"Devuelve una transformación interpolada entre esta transformada y otra por "
+"un peso determinado (en el rango de 0.0 a 1.0)."
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
"Devuelve el inverso de la transformada, bajo el supuesto de que la "
-"transformación se compone de rotación y traslación (sin escalamiento, use "
-"affine_inverse para las transformadas con escalamiento)."
+"transformación se compone de rotación y traslación (sin escalamiento, "
+"utilice [method affine_inverse] para las transformadas con escalamiento)."
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
@@ -77536,13 +78498,13 @@ msgstr ""
"code] como al [code]up[/code].\n"
"Las operaciones tienen lugar en el espacio global."
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
"Devuelve la transformada con la base ortogonal (90 grados), y los vectores "
-"del eje normalizado."
+"del eje normalizado (escala de 1 o -1)."
#: doc/classes/Transform.xml
msgid ""
@@ -77705,33 +78667,6 @@ msgid "Returns the scale."
msgstr "Devuelve la escala."
#: doc/classes/Transform2D.xml
-#, fuzzy
-msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-"Devuelve una transformación interpolada entre esta transformada y otra por "
-"un peso determinado (en el rango de 0.0 a 1.0)."
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-"Devuelve el inverso de la transformada, bajo el supuesto de que la "
-"transformación se compone de rotación y traslación (sin escalamiento, "
-"utilice [method affine_inverse] para las transformadas con escalamiento)."
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-"Devuelve la transformada con la base ortogonal (90 grados), y los vectores "
-"del eje normalizado (escala de 1 o -1)."
-
-#: doc/classes/Transform2D.xml
msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
@@ -80648,13 +81583,13 @@ msgid ""
msgstr ""
"Devuelve el vector \"rebotado\" de un plano definido por la normalidad dada."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
-"Devuelve el vector con todos los componentes redondeados hacia arriba (hacia "
-"el infinito positivo)."
+"Devuelve un nuevo vector con todos los componentes redondeados hacia arriba "
+"(hacia el infinito positivo)."
#: doc/classes/Vector2.xml
#, fuzzy
@@ -80732,13 +81667,13 @@ msgstr ""
"grados) cuando los vectores estén alineados.\n"
"[b]Nota: [/b] [code]a.dot(b)[/code] es equivalente a [code]b.dot(a)[/code]."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
-"Devuelve el vector con todos los componentes redondeados hacia abajo (hacia "
-"el infinito negativo)."
+"Devuelve un nuevo vector con todos los componentes redondeados hacia abajo "
+"(hacia el infinito negativo)."
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -80793,10 +81728,11 @@ msgstr ""
"[code]b[/code] por la cantidad [code]t[/code]. [code]t[/code] se encuentra "
"en el rango de 0.0 a 1.0, representando la cantidad de la interpolación."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
"Mueve el vector hacia [code]a[/code] por la cantidad fija de [code]delta[/"
"code]."
@@ -80825,12 +81761,16 @@ msgstr ""
"Devuelve un vector compuesto por el [method @GDScript.fposmod] de los "
"componentes de este vector y los componentes del [code]modv[/code]."
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr "Devuelve el vector proyectado sobre el vector [code]b[/code]."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+#, fuzzy
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
"Devuelve el vector reflejado desde un plano definido por la normal dada."
@@ -80842,20 +81782,21 @@ msgstr ""
"Devuelve el vector rotado por [code]phi[/code] radianes. Ver también [method "
"@GDScript.deg2rad]."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
"Devuelve el vector con todos los componentes redondeados al entero más "
"cercano, con los casos intermedios redondeados desde cero."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
#, fuzzy
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
"Devuelve el vector con cada componente puesto a uno o negativo, dependiendo "
"de los signos de los componentes, o cero si el componente es cero, llamando "
@@ -80994,29 +81935,21 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "Devuelve el ángulo mínimo del vector dado, en radianes."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-"Devuelve un nuevo vector con todos los componentes redondeados hacia arriba "
-"(hacia el infinito positivo)."
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "Devuelve el producto vectorial de este vector y [code]b[/code]."
#: doc/classes/Vector3.xml
#, fuzzy
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-"Realiza una interpolación cúbica entre los vectores [code]pre_a[/code], "
-"[code]a[/code], [code]b[/code], [code]post_b[/code] ([code]a[/code] es "
-"actual), por la cantidad dada [code]t[/code]. [code]t[/code] está en el "
-"rango de 0.0 a 1.0, representando la cantidad de interpolación."
+"Cúbicamente interpola entre este vector y [code]b[/code] usando [code]pre_a[/"
+"code] y [code]post_b[/code] como manejadores, y devuelve el resultado en la "
+"posición [code]t[/code]. [code]t[/code] está en el rango de 0.0 a 1.0, "
+"representando la cantidad de interpolación."
#: doc/classes/Vector3.xml
msgid "Returns the distance between this vector and [code]b[/code]."
@@ -81050,14 +81983,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-"Devuelve un nuevo vector con todos los componentes redondeados hacia abajo "
-"(hacia el infinito negativo)."
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -81096,22 +82021,10 @@ msgstr ""
"devuelve [constant AXIS_Z]."
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-"Mueve este vector hacia [code]to[/code] por la cantidad fija de [code]delta[/"
-"code]."
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr "Devuelve el producto exterior con [code]b[/code]."
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr "Devuelve el producto exterior con [code]b[/code]."
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
"Devuelve este vector reflejado desde un plano definido por la normalidad "
@@ -81127,25 +82040,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-"Devuelve este vector con todos los componentes redondeados al entero más "
-"cercano, con los casos intermedios redondeados desde cero."
-
-#: doc/classes/Vector3.xml
-#, fuzzy
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-"Devuelve un vector con cada componente puesto a uno o negativo, dependiendo "
-"de los signos de los componentes de este vector, o cero si el componente es "
-"cero, llamando al [method @GDScript.sign] en cada componente."
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -82084,10 +82978,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -82230,6 +83126,18 @@ msgid "The rendering mode of viewport."
msgstr "El modo de selección a utilizar."
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
#, fuzzy
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -82917,7 +83825,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -89262,6 +90170,23 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr "Traducido a [code]bool[/code] uniforme en el lenguaje de los shaders."
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+#, fuzzy
+msgid "A default value to be assigned within the shader."
+msgstr "Un efecto Fresnel para ser usado dentro del gráfico shader visual."
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -90449,6 +91374,53 @@ msgstr ""
"Devuelve un escalar asociado si el valor booleano proporcionado es "
"[code]true[/code] o [code]false[/code]."
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Representa el tamaño del enum [enum Monitor]."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/extract.py b/doc/translations/extract.py
index 214a756e64..f8223701d5 100644
--- a/doc/translations/extract.py
+++ b/doc/translations/extract.py
@@ -8,8 +8,8 @@ from collections import OrderedDict
EXTRACT_TAGS = ["description", "brief_description", "member", "constant", "theme_item", "link"]
HEADER = """\
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
@@ -26,7 +26,7 @@ msgstr ""
"""
# Some strings used by make_rst.py are normally part of the editor translations,
# so we need to include them manually here for the online docs.
-HEADINGS = [
+BASE_STRINGS = [
"Description",
"Tutorials",
"Properties",
@@ -42,6 +42,19 @@ HEADINGS = [
"Method Descriptions",
"Operator Descriptions",
"Theme Property Descriptions",
+ "Inherits:",
+ "Inherited By:",
+ "(overrides %s)",
+ "Default",
+ "Setter",
+ "value",
+ "Getter",
+ "This method should typically be overridden by the user to have any effect.",
+ "This method has no side effects. It doesn't modify any of the instance's member variables.",
+ "This method accepts any number of arguments after the ones described here.",
+ "This method is used to construct a type.",
+ "This method doesn't need an instance to be called, so it can be called directly using the class name.",
+ "This method describes a valid operator to use with this type as left-hand operand.",
]
## <xml-line-number-hack from="https://stackoverflow.com/a/36430270/10846399">
@@ -229,12 +242,12 @@ def _make_translation_catalog(classes):
def _generate_translation_catalog_file(unique_msgs, output, location_line=False):
with open(output, "w", encoding="utf8") as f:
f.write(HEADER)
- for msg in HEADINGS:
+ for msg in BASE_STRINGS:
f.write("#: doc/tools/make_rst.py\n")
f.write('msgid "{}"\n'.format(msg))
f.write('msgstr ""\n\n')
for msg in unique_msgs:
- if len(msg) == 0 or msg in HEADINGS:
+ if len(msg) == 0 or msg in BASE_STRINGS:
continue
f.write("#:")
diff --git a/doc/translations/fa.po b/doc/translations/fa.po
index 37bc3eb2bf..214910a78f 100644
--- a/doc/translations/fa.po
+++ b/doc/translations/fa.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Tetra Homer <tetrahomer@gmail.com>, 2020.
@@ -68,6 +68,71 @@ msgstr "توضیحات خصیصه"
msgid "Method Descriptions"
msgstr "توضیحات تابع"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "توضیحات خصیصه"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "توابع داخلی GDScript."
@@ -712,27 +777,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"مقدار نرمال شده را با توجه به دامنه داده شده برمی گرداند. این مخال٠[روش "
-"lerp] است.\n"
-"[codeblock]\n"
-"var middle = lerp (20 ، 30 ، 0.75)\n"
-"# \"وسط\" اکنون 27.5 است.\n"
-"# اکنون ØŒ ما وانمود Ù…ÛŒ کنیم Ú©Ù‡ نسبت اصلی را ÙØ±Ø§Ù…وش کرده ایم Ùˆ Ù…ÛŒ خواهیم آن "
-"را پس بگیریم.\n"
-"نسبت var = وارون_معکوس (20 ، 30 ، 27.5)\n"
-"نسبت # \"اکنون 0.75 است.\n"
-"[/ codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -805,8 +868,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -815,7 +881,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"با یک مقدار نرمال شده بین دو مقدار درون یابی می کند. این مخال٠[روش "
"inverse_lerp] است.\n"
@@ -830,11 +899,13 @@ msgstr ""
"[/ codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1818,7 +1889,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -3328,31 +3407,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7416,7 +7572,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -12320,7 +12479,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12385,11 +12544,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12397,7 +12558,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12405,15 +12568,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12421,7 +12584,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12509,8 +12672,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12520,17 +12684,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12541,16 +12711,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12562,27 +12738,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12702,7 +12890,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12761,7 +12951,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -13119,8 +13310,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -13169,6 +13360,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13668,6 +13865,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -14094,9 +14292,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14339,7 +14537,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -15007,7 +15207,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -17025,7 +17225,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18342,7 +18544,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19861,6 +20063,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19878,11 +20087,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19962,8 +20173,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20406,10 +20628,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20458,7 +20679,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20628,8 +20851,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20638,7 +20861,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21713,6 +21938,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -22189,10 +22422,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22672,7 +22907,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -23307,7 +23542,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -24242,14 +24477,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -24325,7 +24560,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26441,6 +26676,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26669,7 +26910,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26692,7 +26933,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28978,7 +29219,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28999,7 +29244,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29018,8 +29267,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29032,7 +29290,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29350,7 +29617,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29378,7 +29649,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29573,6 +29848,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29589,15 +29961,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -30201,9 +30575,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -31134,6 +31508,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34356,16 +34753,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34386,10 +34780,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34405,25 +34796,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34440,14 +34822,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34456,35 +34835,389 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34583,10 +35316,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34745,22 +35474,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "The [NavigationMesh] resource to use."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34859,6 +35678,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -38190,7 +39075,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42796,16 +43683,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42867,12 +43754,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42953,10 +43834,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46404,7 +47281,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46447,8 +47324,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46460,6 +47338,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47323,12 +48214,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47457,15 +48348,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48728,14 +49610,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49782,7 +50656,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49965,7 +50839,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -50072,7 +50946,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -52138,7 +53012,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -52162,19 +53036,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53872,7 +54765,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54557,6 +55450,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57769,7 +58672,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57791,9 +58694,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58895,17 +59800,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58925,10 +59830,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -59052,25 +59957,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -61224,9 +62110,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -61281,9 +62167,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61324,10 +62210,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61348,12 +62234,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61362,17 +62250,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61472,21 +62360,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61510,12 +62392,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61542,20 +62418,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61567,19 +62433,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -62273,10 +63126,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62392,6 +63247,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62910,7 +63777,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67883,6 +68750,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68717,6 +69600,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/fi.po b/doc/translations/fi.po
index 7580f9c3f0..3719071c3f 100644
--- a/doc/translations/fi.po
+++ b/doc/translations/fi.po
@@ -1,6 +1,6 @@
# Finnish translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Tapani Niemi <tapani.niemi@kapsi.fi>, 2020, 2021.
@@ -62,6 +62,71 @@ msgstr "Ominaisuuksien kuvaukset"
msgid "Method Descriptions"
msgstr "Metodien kuvaukset"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Ominaisuuksien kuvaukset"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Sisäänrakennetut GDScript funktiot."
@@ -488,16 +553,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -547,8 +620,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -557,7 +633,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -565,7 +644,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1397,7 +1477,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2907,31 +2995,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6996,7 +7161,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11891,7 +12059,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11959,11 +12127,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11971,23 +12141,27 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Laskee kahden vektorin ristitulon."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr ""
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "Laskee kahden vektorin ristitulon."
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11995,7 +12169,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12083,8 +12257,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12094,17 +12269,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12115,16 +12296,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12136,27 +12323,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12276,7 +12475,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12335,7 +12536,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12693,8 +12895,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12743,6 +12945,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13242,6 +13450,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13668,9 +13877,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13910,7 +14119,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14578,7 +14789,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16596,7 +16807,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17913,7 +18126,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19436,6 +19649,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19453,11 +19673,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19537,8 +19759,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19981,10 +20214,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20033,7 +20265,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20203,8 +20437,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20213,7 +20447,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21288,6 +21524,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21764,10 +22008,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22247,7 +22493,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22881,7 +23127,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23817,14 +24063,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -23900,7 +24146,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26023,6 +26269,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26251,7 +26503,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26274,7 +26526,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28562,7 +28814,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28583,7 +28839,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28602,8 +28862,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28616,7 +28885,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28934,7 +29212,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28962,7 +29244,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29157,6 +29443,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29173,15 +29556,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29786,9 +30171,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30718,6 +31103,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33937,16 +34345,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33966,10 +34371,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33985,25 +34387,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34020,14 +34413,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -34035,35 +34425,403 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Palauttaa parametrin tangentin."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Palauttaa parametrin sinin."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Palauttaa parametrin vasta-arvon."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Palauttaa parametrin vasta-arvon."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Palauttaa parametrin sinin."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Palauttaa parametrin vasta-arvon."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Palauttaa parametrin arkussinin."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Palauttaa parametrin kosinin."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Palauttaa parametrin arkussinin."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Palauttaa parametrin sinin."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "Palauttaa parametrin vasta-arvon."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "Laskee kahden vektorin ristitulon."
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Palauttaa parametrin arkussinin."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Palauttaa parametrin arkussinin."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34163,10 +34921,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34326,22 +35080,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "Notifies when the navigation mesh bake operation is completed."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34440,6 +35284,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Palauttaa parametrin käänteisen neliöjuuren."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Palauttaa parametrin arkussinin."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Palauttaa parametrin sinin."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37772,7 +38685,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42372,16 +43287,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42443,12 +43358,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42529,10 +43438,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45980,7 +46885,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46023,8 +46928,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46036,6 +46942,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46893,12 +47812,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47027,15 +47946,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48296,14 +49206,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49348,7 +50250,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49531,7 +50433,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49638,7 +50540,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51704,7 +52606,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51728,19 +52630,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53439,7 +54360,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54124,6 +55045,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57343,7 +58274,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57365,9 +58296,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58469,17 +59402,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58499,10 +59432,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58626,25 +59559,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60797,9 +61711,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60855,9 +61769,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60899,10 +61813,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60923,12 +61837,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "Laskee kahden vektorin ristitulon."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60937,17 +61854,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61049,22 +61966,16 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "Palauttaa kahden vektorin jäännöksen."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
#, fuzzy
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "Laskee kahden vektorin ristitulon."
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61088,12 +61999,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61120,20 +62025,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61145,19 +62040,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61850,10 +62732,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61969,6 +62853,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62487,7 +63383,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -67478,6 +68374,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68312,6 +69224,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Palauttaa parametrin sinin."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/fil.po b/doc/translations/fil.po
index 8bd5bde27e..fbcff01819 100644
--- a/doc/translations/fil.po
+++ b/doc/translations/fil.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Jethro Parker <lionbearjet@hotmail.com>, 2020.
@@ -61,6 +61,70 @@ msgstr ""
msgid "Method Descriptions"
msgstr ""
+#: doc/tools/make_rst.py
+msgid "Theme Property Descriptions"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr ""
@@ -470,16 +534,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -529,8 +601,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -539,7 +614,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -547,7 +625,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1379,7 +1458,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2889,31 +2976,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6977,7 +7141,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11881,7 +12048,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11946,11 +12113,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11958,7 +12127,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11966,15 +12137,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11982,7 +12153,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12070,8 +12241,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12081,17 +12253,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12102,16 +12280,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12123,27 +12307,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12263,7 +12459,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12322,7 +12520,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12680,8 +12879,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12730,6 +12929,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13229,6 +13434,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13655,9 +13861,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13900,7 +14106,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14568,7 +14776,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16586,7 +16794,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17903,7 +18113,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19422,6 +19632,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19439,11 +19656,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19523,8 +19742,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19967,10 +20197,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20019,7 +20248,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20189,8 +20420,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20199,7 +20430,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21274,6 +21507,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21750,10 +21991,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22233,7 +22476,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22868,7 +23111,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23803,14 +24046,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -23886,7 +24129,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26002,6 +26245,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26230,7 +26479,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26253,7 +26502,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28539,7 +28788,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28560,7 +28813,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28579,8 +28836,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28593,7 +28859,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28911,7 +29186,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28939,7 +29218,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29134,6 +29417,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29150,15 +29530,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29762,9 +30144,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30695,6 +31077,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33911,16 +34316,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -33941,10 +34343,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33960,25 +34359,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33995,14 +34385,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34011,35 +34398,389 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34138,10 +34879,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34300,22 +35037,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34414,6 +35241,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37745,7 +38638,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42339,16 +43234,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42410,12 +43305,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42496,10 +43385,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45947,7 +46832,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45990,8 +46875,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46003,6 +46889,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46862,12 +47761,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46996,15 +47895,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48267,14 +49157,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49321,7 +50203,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49504,7 +50386,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49611,7 +50493,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51677,7 +52559,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51701,19 +52583,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53411,7 +54312,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54096,6 +54997,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57308,7 +58219,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57330,9 +58241,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58434,17 +59347,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58464,10 +59377,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58591,25 +59504,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60763,9 +61657,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60820,9 +61714,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60863,10 +61757,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60887,12 +61781,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60901,17 +61797,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61011,21 +61907,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61049,12 +61939,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61081,20 +61965,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61106,19 +61980,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61812,10 +62673,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61931,6 +62794,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62449,7 +63324,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67422,6 +68297,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68256,6 +69147,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/fr.po b/doc/translations/fr.po
index 656c6c5e0b..b2e5eda16a 100644
--- a/doc/translations/fr.po
+++ b/doc/translations/fr.po
@@ -1,6 +1,6 @@
# French translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Rémi Verschelde <remi@godotengine.org>, 2020, 2021.
@@ -50,13 +50,15 @@
# Timothée MB <timothee.me@gmail.com>, 2021.
# Florent <fnuttens@dabao.fr>, 2021.
# Benjamin Peter <benji.peter@hotmail.fr>, 2021.
+# Maxime Leroy <lisacintosh@gmail.com>, 2021.
+# ASTRALE <jules.cercy@etu.univ-lyon1.fr>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-19 17:31+0000\n"
-"Last-Translator: Benjamin Peter <benji.peter@hotmail.fr>\n"
+"PO-Revision-Date: 2021-12-27 15:29+0000\n"
+"Last-Translator: ASTRALE <jules.cercy@etu.univ-lyon1.fr>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot-class-reference/fr/>\n"
"Language: fr\n"
@@ -64,7 +66,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 4.10\n"
+"X-Generator: Weblate 4.10.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -106,6 +108,71 @@ msgstr "Description des propriétés"
msgid "Method Descriptions"
msgstr "Descriptions des méthodes"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Description des propriétés"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Fonctions intégrées à GDScript."
@@ -487,6 +554,24 @@ msgid ""
"want a true content-aware comparison, you have to use [code]deep_equal[/"
"code]."
msgstr ""
+"Compare deux valeurs en verifiant leur contenu, recursivement dans les "
+"tableaux et les dictionnaires jusqu'à leur niveau le plus profond.\n"
+"Il y a plusieurs similiratité avec [code]==[/code] :\n"
+"- Pour [code]null[/code], [code]int[/code], [code]float[/code], "
+"[code]String[/code], [code]Object[/code] et [code]RID[/code], les résultats "
+"de [code]deep_equal[/code] et [code]==[/code] sont les mêmes.\n"
+"- Pour [code]Dictionary[/code], [code]==[/code] considère que l'égalité est "
+"respéctée si et seulement si les deux variables pointent vers le même "
+"[code]Dictionary[/code], sans recursion ou connaissance du contenu des "
+"variables.\n"
+"- For [code]Array[/code], [code]==[/code] considère que l'égalité est "
+"respéctée si et seulement si chaque élement du premier [code]Tableau[/code] "
+"est égal à l'élément au même index du second [code]Array[/code], évalué par "
+"[code]==[/code] lui même. Cela implique que [code]==[/code] recurses dans un "
+"[code]Array[/code], mais pas dans un [code]Dictionary[/code].\n"
+"Rapidement, dès qu'un [code]Dictionary[/code] est potentiellement impliqué, "
+"si une vraie comparaison du contenu est souhaité, il faut utiliser "
+"[code]deep_equal[/code]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -777,27 +862,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"Renvoie une valeur normalisée en tenant compte de la fourchette donnée. "
-"C'est l'inverse de [method lerp].\n"
-"[codeblock]\n"
-"var milieu = lerp(20, 30, 0.75)\n"
-"# `milieu` vaut maintenant 27.5.\n"
-"# Maintenant, nous prétendons avoir oublié le ratio d'origine et nous "
-"voulons le récupérer.\n"
-"var ratio = inverse_lerp(20, 30, 27.5)\n"
-"# `ratio` vaut maintenant 0.75.\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -869,9 +952,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -880,7 +967,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"Interpolation linéaire entre deux valeurs par une valeur normalisée. C'est "
"l'inverse de [method inverse_lerp].\n"
@@ -895,11 +985,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1495,6 +1587,7 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Returns an array with the given range. Range can be 1 argument [code]N[/"
"code] (0 to [code]N[/code] - 1), two arguments ([code]initial[/code], "
@@ -1535,6 +1628,45 @@ msgid ""
"3\n"
"[/codeblock]"
msgstr ""
+"Renvoie un tableau avec la plage donnée reçu. La plage peut être un argument "
+"[code]N[/code] (0 à [code]N[/code] - 1), deux arguments ([code]initial[/"
+"code], [code]final - 1[/code]) ou trois arguments ([code]initial[/code], "
+"[code]final - 1[/code], [code]increment[/code]). Renvoie un tableau vide si "
+"la plage n'est pas valide (par exemple [code]plage(2, 5, -1)[/code] ou "
+"[code]plage(5, 5, 1)[/code]).[/code]\n"
+"Renvoie un tableau avec la plage donnée. [code]range()[/code] peut avoir 1 "
+"argument N ([code]0[/code] à [code]N - 1[/code]), deux arguments "
+"([code]initial[/code], [code]final - 1[/code]) ou trois arguments "
+"([code]initial[/code], [code]final - 1[/code], [code]increment[/code]). "
+"[code]increment[/code] peut être négatif. Si [code]increment[/code] est "
+"négatif, [code]final - 1[/code] deviendra [code]final + 1[/code]. De plus, "
+"la valeur initiale doit être supérieure à la valeur finale pour que la "
+"boucle s'exécute.\n"
+"[bloc de code]\n"
+"print(range(4))\n"
+"print(range(2, 5))\n"
+"print(range(0, 6, 2))\n"
+"[codeblock]\n"
+"Sortie :\n"
+"[codeblock]\n"
+"[0, 1, 2, 3]\n"
+"[2, 3, 4]\n"
+"[0, 2, 4]\n"
+"[codeblock]\n"
+"Pour itérer sur un tableau en arrière, utilisez :\n"
+"[codeblock]\n"
+"var array = [3, 6, 9]\n"
+"var i := array.size() - 1\n"
+"while i >= 0 :\n"
+" print(array[i])\n"
+" i -= 1\n"
+"[/codeblock]\n"
+"Sortie :\n"
+"[codeblock]\n"
+"9\n"
+"6\n"
+"3\n"
+"[codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -2198,10 +2330,21 @@ msgid "The [Marshalls] singleton."
msgstr "Le singleton [Marshalls]."
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+#, fuzzy
+msgid "The [Navigation2DServer] singleton."
+msgstr "Le singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
msgstr "Le singleton [EditorNavigationMeshGenerator]."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "Le singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
msgstr "Le singleton [OS]."
@@ -3767,32 +3910,109 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
-msgstr "Message MIDI note OFF."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
-msgstr "Message MIDI note ON."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
-msgstr "Message suite à une pression MIDI."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
-msgstr "Message MIDI de changement de valeur d'un contrôleur (message CC)."
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
-msgstr "Message de changement de programme MIDI."
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
-msgstr "Message de pression du canal MIDI."
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
-msgstr "Message de modulation de fréquence MIDI."
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
+msgstr ""
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -6196,9 +6416,8 @@ msgstr ""
#: doc/classes/Mesh.xml doc/classes/MeshInstance.xml doc/classes/Particles.xml
#: doc/classes/Quat.xml doc/classes/Skeleton.xml doc/classes/SpotLight.xml
#: doc/classes/StaticBody.xml doc/classes/WorldEnvironment.xml
-#, fuzzy
msgid "https://godotengine.org/asset-library/asset/678"
-msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
+msgstr "https://godotengine.org/asset-library/asset/678"
#: doc/classes/AnimationNodeAnimation.xml
msgid "Input animation to use in an [AnimationNodeBlendTree]."
@@ -6222,9 +6441,8 @@ msgstr ""
#: doc/classes/KinematicBody.xml doc/classes/Mesh.xml
#: doc/classes/MeshInstance.xml doc/classes/MeshLibrary.xml
#: doc/classes/ProjectSettings.xml doc/classes/Transform.xml
-#, fuzzy
msgid "https://godotengine.org/asset-library/asset/125"
-msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
+msgstr "https://godotengine.org/asset-library/asset/125"
#: doc/classes/AnimationNodeAnimation.xml
msgid ""
@@ -7702,9 +7920,8 @@ msgstr ""
#: doc/classes/Area.xml doc/classes/QuadMesh.xml doc/classes/Viewport.xml
#: doc/classes/ViewportTexture.xml
-#, fuzzy
msgid "https://godotengine.org/asset-library/asset/127"
-msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
+msgstr "https://godotengine.org/asset-library/asset/127"
#: doc/classes/Area.xml
msgid ""
@@ -8477,7 +8694,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -13517,7 +13737,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -13589,12 +13809,14 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr "Ajoute un [Shape2D] au propriétaire de la forme."
#: doc/classes/CameraServer.xml
@@ -13603,8 +13825,10 @@ msgstr "Retourne un tableau de [CameraFeed]s."
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Returns the [CameraFeed] with this id."
-msgstr "Retourne le nombre de [CameraFeed] enregistrés."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Retourne la position du point à l'index [code]point[/code]."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
@@ -13612,16 +13836,17 @@ msgstr "Retourne le nombre de [CameraFeed] enregistrés."
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Removes a [CameraFeed]."
-msgstr "Texture fournie par un [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "Supprime l’animation avec la touche [code]name[/code]."
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
-msgstr ""
+#, fuzzy
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
+msgstr "Émis lorsqu'une interface est supprimée."
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr "Émis lorsqu'une interface est supprimée."
#: doc/classes/CameraServer.xml
@@ -13630,8 +13855,10 @@ msgstr "L’image de la caméra RGBA."
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "The YCbCr camera image."
-msgstr "L'image de la caméra du composant CbCr."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
+msgstr ""
+"Utilise la méthode de compression [url=https://en.wikipedia.org/wiki/"
+"DEFLATE]DEFLATE[/url]."
#: doc/classes/CameraServer.xml
msgid "The Y component camera image."
@@ -13718,8 +13945,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13729,17 +13957,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
-msgstr "Dessine un cercle coloré."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
+msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13749,18 +13983,29 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
+#, fuzzy
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
+"Dessine des segments de ligne interconnectés avec une [code]width[/code] "
+"uniforme et une coloration segment par segment. Les couleurs attribuées aux "
+"segments de ligne correspondent par index entre [code]points[/code] et "
+"[code]colors[/code]."
#: doc/classes/CanvasItem.xml
#, fuzzy
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -13776,25 +14021,31 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
-#, fuzzy
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
-"Dessine des segments de ligne interconnectés avec une [code]color[/code] et "
-"[code]width[/code] uniforme."
#: doc/classes/CanvasItem.xml
#, fuzzy
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
"Dessine des segments de ligne interconnectés avec une [code]width[/code] "
"uniforme et une coloration segment par segment. Les couleurs attribuées aux "
@@ -13802,13 +14053,13 @@ msgstr ""
"[code]colors[/code]."
#: doc/classes/CanvasItem.xml
-#, fuzzy
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
-"Dessine un primitif personnalisé. 1 point pour un point, 2 points pour une "
-"ligne, 3 points pour un triangle, et 4 points pour un quad."
#: doc/classes/CanvasItem.xml
msgid ""
@@ -13945,8 +14196,10 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
-msgstr "Masquer le [CanvasItem] s’il est actuellement visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
+msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
@@ -14004,7 +14257,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -14363,9 +14617,10 @@ msgstr ""
"https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project"
#: doc/classes/CharFXTransform.xml
+#, fuzzy
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
"L'index du caractère actuel (commence à 0). Régler cette propriété n'affecte "
"pas l'affichage."
@@ -14448,6 +14703,15 @@ msgstr ""
"pixels)."
#: doc/classes/CharFXTransform.xml
+#, fuzzy
+msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+"L'index du caractère actuel (commence à 0). Régler cette propriété n'affecte "
+"pas l'affichage."
+
+#: doc/classes/CharFXTransform.xml
msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
@@ -14965,6 +15229,7 @@ msgid ""
msgstr "Retourne si la [code]class[/code] spécifiée est disponible ou non."
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr "Retourne le [RID] de l'objet."
@@ -15408,9 +15673,9 @@ msgstr "Couleur au format RGBA usant de floats sur la plage de 0 à 1."
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -15754,12 +16019,11 @@ msgstr ""
"[/codeblock]"
#: doc/classes/Color.xml
-#, fuzzy
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
-"Le composant alpha (transparence) de la couleur, généralement sur une "
-"échelle de 0 à 1."
#: doc/classes/Color.xml
msgid "Wrapper for [member a] that uses the range 0 to 255 instead of 0 to 1."
@@ -16467,8 +16731,9 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
-msgstr ""
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
+msgstr "Si [code]true[/code], le GraphNode est sélectionné."
#: doc/classes/ColorPicker.xml
msgid ""
@@ -18535,10 +18800,10 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
-"La liste des sommets du polygone. Peut être dans le sens horaire ou "
-"antihoraire."
#: doc/classes/CPUParticles.xml
msgid "CPU-based 3D particle emitter."
@@ -19891,7 +20156,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -21443,6 +21708,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -21461,11 +21733,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -21545,8 +21819,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -21997,10 +22282,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -22049,7 +22333,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -22220,8 +22506,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -22230,7 +22516,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -23326,6 +23614,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr "Importe des scènes à partir de fichiers 3D de tiers."
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -23811,10 +24107,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -24306,7 +24604,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -24957,7 +25255,7 @@ msgstr "Opérateur de tonte de film."
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -25915,14 +26213,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -25998,7 +26296,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -28192,6 +28490,12 @@ msgstr "La [MeshLibrary] assignée."
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -28424,7 +28728,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -28447,7 +28751,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -30770,7 +31074,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -30791,7 +31099,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -30812,13 +31124,19 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
-"Retourne [code]true[/code] (vrai) si la chaîne de caractères finit par la "
-"chaîne de caractères donnée."
#: doc/classes/Input.xml
msgid ""
@@ -30827,14 +31145,20 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
-"Retourne [code]true[/code] (vrai) si la chaîne de caractères finit par la "
-"chaîne de caractères donnée."
#: doc/classes/Input.xml
msgid ""
@@ -31151,7 +31475,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -31179,7 +31507,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -31376,6 +31708,104 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+#, fuzzy
+msgid "Input event for MIDI inputs."
+msgstr "Type d’évènement d’entrée pour les actions."
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr "Type d’événement d’entrée de base pour les événements de la souris."
@@ -31392,15 +31822,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -32036,9 +32468,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -32987,6 +33419,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr "Nœud 2D du corps cinématique."
@@ -36269,16 +36724,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -36299,10 +36751,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -36318,26 +36767,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-#, fuzzy
-msgid "Removes the [NavigationMesh] with the given ID."
-msgstr "Renvoie le traqueur de position à l'identification donnée."
-
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -36354,14 +36793,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -36370,36 +36806,421 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+#, fuzzy
+msgid "Server interface for low-level 2D navigation access."
+msgstr "Interface de serveur pour l'accès audio de bas niveau."
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Creates the agent."
+msgstr "Crée un [HingeJoint3D]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr "Renvoie [code]true[/code] si le chemin donné est filtré."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Renvoie la tangente du paramètre."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Obtient le nom d'un entrée par son index."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Définit la position du nœud spécifié."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Le rayon extérieur du tore."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Obtient l'objet édité."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Définit le trame présentement visible de l'animation."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Destroys the given RID."
+msgstr "Supprime l'ID de la tuile donnée."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
#, fuzzy
-msgid "Removes the [NavigationPolygon] with the given ID."
+msgid "Create a new map."
+msgstr "Crée un [Area2D]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Retourne la taille du tableau."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr "Retourne la position du point à l'index [code]point[/code]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the navigation path to reach the destination from the origin."
msgstr "Renvoie le traqueur de position à l'identification donnée."
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Retourne [code]true[/code] si l'[AABB] est vide."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Arrête la minuterie."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr "Définit le polygone de navigation de la tuile."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Creates a new region."
+msgstr "Crée un [Area2D]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Retourne la hauteur du contenu."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "Définit le polygone de navigation de la tuile."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "Retourne la matrice de transformation globale de cet élément."
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Returns the path from start to finish in global coordinates."
+msgstr "Le point de collision, dans les coordonnées globales."
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Retourne le cache de points sous forme de [PackedVector3Array]."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr "Renvoie le mode de remplacement de l’espace pour la zone."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr "Renvoie [code]true[/code] si le chemin donné est filtré."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr "Retourne [code]true[/code] si le vecteur est normalisé, et faux sinon."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr "La valeur de luminance maximale pour l'exposition automatique."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The maximum speed that an agent can move."
+msgstr "Rotation maximale à travers la charnière."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The distance to search for other agents."
+msgstr "L’instance n’a pas de type."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The radius of the agent."
+msgstr "Le rayon du cylindre."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Notifies when the final location is reached."
+msgstr "Avertit quand une animation commence à jouer."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Retourne le cache de points sous forme de [PackedVector3Array]."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -36501,10 +37322,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -36667,27 +37484,119 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr "Représente la taille de l'énumération [enum Method]."
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+#, fuzzy
+msgid "Clears the navigation mesh."
+msgstr "Effacer la sélection."
+
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "Node that instances navigation meshes into a scenario."
-msgstr "Nœud qui instancie des meshes dans un scénario."
+msgid "An instance of a [NavigationMesh]."
+msgstr "L’instance est un multi-maillage."
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-#, fuzzy
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
-msgstr "Si [code]true[/code], les nœuds [RigidBody3D] seront mis en pause."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
msgstr "Le singleton [NavigationMeshGenerator]."
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr "Avertit quand une animation commence à jouer."
+
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr "Avertit quand une animation commence à jouer."
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
#: doc/classes/NavigationPolygon.xml
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
@@ -36784,6 +37693,77 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Server interface for low-level 3D navigation access."
+msgstr "Interface de serveur pour l'accès audio de bas niveau."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Renvoie l'inverse de la racine carrée du paramètre."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Retourne les dimensions de bitmap."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Arrête l'audio."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Bakes the navigation mesh."
+msgstr "Définit le maillage de l'élément."
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -40168,7 +41148,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -44905,16 +45887,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -44976,12 +45958,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -45067,10 +46043,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr "Modifie le [Vector2] à l’index donné."
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr "Retourne la taille du tableau."
-
#: doc/classes/PoolRealArray.xml
#, fuzzy
msgid "A pooled [Array] of reals ([float])."
@@ -48567,7 +49539,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -48613,8 +49585,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -48626,6 +49599,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -49495,12 +50481,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -49632,15 +50618,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -50918,14 +51895,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr "Renvoie le nombre de lignes visibles."
@@ -51979,7 +52948,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -52162,7 +53131,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -52269,7 +53238,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -54369,7 +55338,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -54393,19 +55362,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -56148,7 +57136,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -56913,6 +57901,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -60258,7 +61256,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -60280,9 +61278,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -61415,17 +62415,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -61445,11 +62445,13 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
+"Retourne le transform avec la base orthogonale (90 degrés) et les vecteurs "
+"d’axe normalisé (échelle de 1 ou -1)."
#: doc/classes/Transform.xml
msgid ""
@@ -61586,27 +62588,6 @@ msgstr "Retourne l’échelle."
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-"Retourne le transform avec la base orthogonale (90 degrés) et les vecteurs "
-"d’axe normalisé (échelle de 1 ou -1)."
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -63798,13 +64779,11 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
-"Retourne le vecteur avec toutes les composantes arrondies au chiffre "
-"supérieur (vers l'infini positif)."
#: doc/classes/Vector2.xml
msgid ""
@@ -63857,13 +64836,11 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
-"Renvoie le vecteur avec tous les composants arrondis vers le bas (vers "
-"l’infini négatif)."
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -63904,11 +64881,14 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
+"Renvoie [code]true[/code] (vrai) si [code]a[/code] et [code]b[/code] sont "
+"approximativement égaux l'un à l'autre."
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -63928,12 +64908,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr "Retourne le vecteur projeté sur le vecteur [code]b[/code]."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -63942,17 +64925,20 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
+"Renvoie le vecteur avec tous les composants arrondis vers le bas (vers "
+"l’infini négatif)."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -64056,21 +65042,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "Renvoie le reste de deux vecteurs."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "Calcule le produit vectoriel de ce vecteur et[code]b[/code]."
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -64094,12 +65074,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -64126,20 +65100,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -64151,19 +65115,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -64868,10 +65819,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -64992,6 +65945,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
#, fuzzy
msgid "The custom [World] which can be used as 3D environment source."
msgstr "Une constante [Transform], qui peut être utilisée comme nœud d’entrée."
@@ -65538,7 +66503,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -70910,6 +71875,25 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+#, fuzzy
+msgid "A default value to be assigned within the shader."
+msgstr ""
+"Un opérateur scalaire à virgule flottante à utiliser dans le graphique du "
+"nuanceur visuel."
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -71762,6 +72746,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Représente la taille de l’enum [enum TabAlign]."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/gl.po b/doc/translations/gl.po
index b8f09e678b..438057cdb3 100644
--- a/doc/translations/gl.po
+++ b/doc/translations/gl.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Andy Barcia <andybarcia4@gmail.com>, 2021.
@@ -61,6 +61,71 @@ msgstr "Descrición de Propiedades"
msgid "Method Descriptions"
msgstr "Descrición de Métodos"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Descrición de Propiedades"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr ""
@@ -470,16 +535,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -529,8 +602,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -539,7 +615,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -547,7 +626,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1379,7 +1459,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2889,31 +2977,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6964,7 +7129,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11839,7 +12007,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11904,11 +12072,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11916,7 +12086,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11924,15 +12096,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11940,7 +12112,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12026,8 +12198,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12037,17 +12210,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12058,16 +12237,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12079,27 +12264,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12219,7 +12416,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12278,7 +12477,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12632,8 +12832,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12682,6 +12882,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13181,6 +13387,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13603,9 +13810,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13845,7 +14052,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14513,7 +14722,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16527,7 +16736,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17841,7 +18052,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -19351,6 +19562,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19368,11 +19586,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19452,8 +19672,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19896,10 +20127,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -19948,7 +20178,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20115,8 +20347,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20125,7 +20357,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21195,6 +21429,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21668,10 +21910,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22148,7 +22392,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22777,7 +23021,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23711,11 +23955,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -23788,7 +24032,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -25900,6 +26144,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26128,7 +26378,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26151,7 +26401,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28425,7 +28675,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28446,7 +28700,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28465,8 +28723,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28479,7 +28746,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28795,7 +29071,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28823,7 +29103,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29015,6 +29299,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29031,15 +29412,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29637,9 +30020,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30560,6 +30943,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33758,16 +34164,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33787,10 +34190,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33806,25 +34206,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33841,14 +34232,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -33856,35 +34244,389 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -33983,10 +34725,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34145,22 +34883,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34259,6 +35087,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37572,7 +38466,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42159,16 +43055,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42230,12 +43126,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42316,10 +43206,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45766,7 +46652,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45809,8 +46695,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -45822,6 +46709,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46676,12 +47576,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46810,15 +47710,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48077,14 +48968,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49129,7 +50012,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49312,7 +50195,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49419,7 +50302,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51465,7 +52348,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51489,19 +52372,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53199,7 +54101,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -53881,6 +54783,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57087,7 +57999,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57109,9 +58021,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58213,17 +59127,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58243,10 +59157,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58370,25 +59284,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60537,9 +61432,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60594,9 +61489,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60637,10 +61532,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60661,12 +61556,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60675,17 +61572,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60785,21 +61682,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -60823,12 +61714,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -60855,20 +61740,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -60880,19 +61755,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61582,10 +62444,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61701,6 +62565,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62218,7 +63094,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -67184,6 +68060,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68012,6 +68904,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/hi.po b/doc/translations/hi.po
index 6931864536..0979c6c95d 100644
--- a/doc/translations/hi.po
+++ b/doc/translations/hi.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# harvinder rathor <harvinderr09@gmail.com>, 2021.
@@ -59,6 +59,71 @@ msgstr ""
msgid "Method Descriptions"
msgstr ""
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "थीम विशेषता"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr ""
@@ -468,16 +533,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -527,8 +600,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -537,7 +613,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -545,7 +624,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1377,7 +1457,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2887,31 +2975,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6962,7 +7127,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11837,7 +12005,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11902,11 +12070,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11914,7 +12084,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11922,15 +12094,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11938,7 +12110,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12024,8 +12196,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12035,17 +12208,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12056,16 +12235,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12077,27 +12262,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12217,7 +12414,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12276,7 +12475,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12630,8 +12830,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12680,6 +12880,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13179,6 +13385,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13601,9 +13808,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13843,7 +14050,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14511,7 +14720,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16525,7 +16734,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17839,7 +18050,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -19349,6 +19560,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19366,11 +19584,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19450,8 +19670,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19894,10 +20125,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -19946,7 +20176,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20113,8 +20345,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20123,7 +20355,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21193,6 +21427,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21666,10 +21908,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22146,7 +22390,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22775,7 +23019,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23709,11 +23953,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -23786,7 +24030,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -25898,6 +26142,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26126,7 +26376,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26149,7 +26399,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28423,7 +28673,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28444,7 +28698,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28463,8 +28721,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28477,7 +28744,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28793,7 +29069,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28821,7 +29101,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29013,6 +29297,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29029,15 +29410,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29635,9 +30018,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30558,6 +30941,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33756,16 +34162,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33785,10 +34188,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33804,25 +34204,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33839,14 +34230,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -33854,35 +34242,389 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -33981,10 +34723,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34143,22 +34881,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34257,6 +35085,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37570,7 +38464,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42157,16 +43053,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42228,12 +43124,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42314,10 +43204,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45764,7 +46650,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45807,8 +46693,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -45820,6 +46707,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46674,12 +47574,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46808,15 +47708,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48075,14 +48966,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49127,7 +50010,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49310,7 +50193,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49417,7 +50300,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51463,7 +52346,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51487,19 +52370,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53197,7 +54099,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -53879,6 +54781,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57085,7 +57997,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57107,9 +58019,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58211,17 +59125,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58241,10 +59155,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58368,25 +59282,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60535,9 +61430,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60592,9 +61487,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60635,10 +61530,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60659,12 +61554,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60673,17 +61570,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60783,21 +61680,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -60821,12 +61712,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -60853,20 +61738,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -60878,19 +61753,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61580,10 +62442,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61699,6 +62563,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62216,7 +63092,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -67182,6 +68058,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68010,6 +68902,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/hu.po b/doc/translations/hu.po
index ca30f7bc67..0a786cfcd4 100644
--- a/doc/translations/hu.po
+++ b/doc/translations/hu.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Misi <varady.misi@gmail.com>, 2021.
@@ -8,12 +8,13 @@
# Frontrider <frontrider@tutanota.com>, 2021.
# Andras Virag <snowflake71@gmail.com>, 2021.
# balintmaci <balintmaci@gmail.com>, 2021.
+# Balázs Püspök-Kiss <pkblazsak@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-12-06 21:43+0000\n"
-"Last-Translator: balintmaci <balintmaci@gmail.com>\n"
+"PO-Revision-Date: 2021-12-23 17:58+0000\n"
+"Last-Translator: Balázs Püspök-Kiss <pkblazsak@gmail.com>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/"
"godot-class-reference/hu/>\n"
"Language: hu\n"
@@ -21,7 +22,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -63,6 +64,71 @@ msgstr "Tulajdonság leírásai"
msgid "Method Descriptions"
msgstr "Metódus leírások"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Tulajdonság leírásai"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Beépített GDScript függvények"
@@ -485,16 +551,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -544,8 +618,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -554,7 +631,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -562,7 +642,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1394,7 +1475,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2285,7 +2374,7 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "± key."
-msgstr ""
+msgstr "± gomb."
#: doc/classes/@GlobalScope.xml
msgid "² key."
@@ -2904,31 +2993,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6979,7 +7145,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11854,7 +12023,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11919,11 +12088,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11931,7 +12102,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11939,15 +12112,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11955,7 +12128,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12041,8 +12214,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12052,17 +12226,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12073,16 +12253,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12094,27 +12280,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12234,7 +12432,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12293,7 +12493,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12647,8 +12848,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12697,6 +12898,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13196,6 +13403,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13618,9 +13826,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13860,7 +14068,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14528,7 +14738,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16542,7 +16752,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17856,7 +18068,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -19366,6 +19578,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19383,11 +19602,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19467,8 +19688,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19911,10 +20143,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -19963,7 +20194,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20130,8 +20363,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20140,7 +20373,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21210,6 +21445,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21683,10 +21926,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22163,7 +22408,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22792,7 +23037,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23726,11 +23971,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -23803,7 +24048,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -25915,6 +26160,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26143,7 +26394,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26166,7 +26417,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28440,7 +28691,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28461,7 +28716,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28480,8 +28739,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28494,7 +28762,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28810,7 +29087,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28838,7 +29119,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29030,6 +29315,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29046,15 +29428,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29652,9 +30036,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30575,6 +30959,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33773,16 +34180,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33802,10 +34206,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33821,25 +34222,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33856,14 +34248,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -33871,35 +34260,389 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -33998,10 +34741,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34160,22 +34899,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34274,6 +35103,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37587,7 +38482,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42174,16 +43071,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42245,12 +43142,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42331,10 +43222,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45781,7 +46668,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45824,8 +46711,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -45837,6 +46725,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46691,12 +47592,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46825,15 +47726,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48092,14 +48984,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49144,7 +50028,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49327,7 +50211,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49434,7 +50318,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51480,7 +52364,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51504,19 +52388,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53214,7 +54117,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -53896,6 +54799,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57102,7 +58015,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57124,9 +58037,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58228,17 +59143,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58258,10 +59173,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58385,25 +59300,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60552,9 +61448,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60609,9 +61505,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60652,10 +61548,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60676,12 +61572,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60690,17 +61588,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60800,21 +61698,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -60838,12 +61730,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -60870,20 +61756,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -60895,19 +61771,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61597,10 +62460,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61716,6 +62581,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62233,7 +63110,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -67199,6 +68076,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68027,6 +68920,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/id.po b/doc/translations/id.po
index cd91e76ef4..4279718983 100644
--- a/doc/translations/id.po
+++ b/doc/translations/id.po
@@ -1,6 +1,6 @@
# Indonesian translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Sofyan Sugianto <sofyanartem@gmail.com>, 2020, 2021.
@@ -66,6 +66,71 @@ msgstr "Deskripsi Properti"
msgid "Method Descriptions"
msgstr "Deskripsi Method"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Deskripsi Properti"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Fungsi bawaan GDScript."
@@ -654,16 +719,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -713,8 +786,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -723,7 +799,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -731,7 +810,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1583,7 +1663,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -3093,31 +3181,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid "MIDI stop message. Stop the current sequence."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7181,7 +7346,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -12085,7 +12253,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12151,11 +12319,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12163,7 +12333,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12171,15 +12343,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12187,7 +12359,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12275,8 +12447,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12286,17 +12459,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12307,16 +12486,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12328,27 +12513,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12468,7 +12665,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12527,7 +12726,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12885,8 +13085,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12935,6 +13135,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13434,6 +13640,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13860,9 +14067,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14105,7 +14312,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14773,7 +14982,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16791,7 +17000,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18108,7 +18319,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19627,6 +19838,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19644,11 +19862,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19728,8 +19948,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20172,10 +20403,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20224,7 +20454,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20394,8 +20626,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20404,7 +20636,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21479,6 +21713,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21955,10 +22197,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22438,7 +22682,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -23073,7 +23317,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -24009,14 +24253,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -24092,7 +24336,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26208,6 +26452,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26436,7 +26686,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26459,7 +26709,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28745,7 +28995,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28766,7 +29020,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28785,8 +29043,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28799,7 +29066,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29117,7 +29393,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29145,7 +29425,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29340,6 +29624,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29356,15 +29737,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29968,9 +30351,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30901,6 +31284,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34123,16 +34529,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34153,10 +34556,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34172,25 +34572,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34207,14 +34598,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34223,35 +34611,395 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Mengembalikan nilai hiperbolik tangen dari parameter."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Mengembalikan nilai hiperbolik tangen dari parameter."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Mengembalikan nilai hiperbolik tangen dari parameter."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Mengembalikan nilai hiperbolik tangen dari parameter."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Mengembalikan nilai hiperbolik tangen dari parameter."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "Mengembalikan nilai hiperbolik tangen dari parameter."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34350,10 +35098,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34512,22 +35256,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34626,6 +35460,73 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Mengembalikan nilai hiperbolik tangen dari parameter."
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37957,7 +38858,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42567,16 +43470,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42638,12 +43541,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42724,10 +43621,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46175,7 +47068,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46218,8 +47111,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46231,6 +47125,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47090,12 +47997,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47224,15 +48131,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48495,14 +49393,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49549,7 +50439,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49732,7 +50622,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49839,7 +50729,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51905,7 +52795,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51929,19 +52819,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53639,7 +54548,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54324,6 +55233,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57538,7 +58457,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57560,9 +58479,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58664,17 +59585,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58694,10 +59615,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58821,25 +59742,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60993,9 +61895,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -61050,9 +61952,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61093,10 +61995,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61117,12 +62019,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61131,17 +62035,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61241,21 +62145,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61279,12 +62177,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61311,20 +62203,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61336,19 +62218,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -62042,10 +62911,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62161,6 +63032,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62679,7 +63562,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67657,6 +68540,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68491,6 +69390,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Mengembalikan nilai hiperbolik tangen dari parameter."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/is.po b/doc/translations/is.po
index 961bfaa2f7..871771e31d 100644
--- a/doc/translations/is.po
+++ b/doc/translations/is.po
@@ -1,6 +1,6 @@
# Icelandic translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Tumi Gudmundsson <tumi435@gmail.com>, 2021.
@@ -60,6 +60,71 @@ msgstr "Lýsing á Breytum"
msgid "Method Descriptions"
msgstr ""
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Lýsing á Breytum"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr ""
@@ -469,16 +534,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -528,8 +601,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -538,7 +614,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -546,7 +625,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1378,7 +1458,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2888,31 +2976,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6963,7 +7128,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11838,7 +12006,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11903,11 +12071,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11915,7 +12085,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11923,15 +12095,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11939,7 +12111,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12025,8 +12197,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12036,17 +12209,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12057,16 +12236,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12078,27 +12263,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12218,7 +12415,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12277,7 +12476,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12631,8 +12831,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12681,6 +12881,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13180,6 +13386,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13602,9 +13809,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13844,7 +14051,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14512,7 +14721,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16526,7 +16735,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17840,7 +18051,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -19350,6 +19561,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19367,11 +19585,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19451,8 +19671,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19895,10 +20126,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -19947,7 +20177,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20114,8 +20346,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20124,7 +20356,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21194,6 +21428,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21667,10 +21909,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22147,7 +22391,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22776,7 +23020,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23710,11 +23954,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -23787,7 +24031,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -25899,6 +26143,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26127,7 +26377,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26150,7 +26400,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28424,7 +28674,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28445,7 +28699,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28464,8 +28722,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28478,7 +28745,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28794,7 +29070,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28822,7 +29102,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29014,6 +29298,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29030,15 +29411,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29636,9 +30019,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30559,6 +30942,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33757,16 +34163,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33786,10 +34189,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33805,25 +34205,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33840,14 +34231,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -33855,35 +34243,389 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -33982,10 +34724,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34144,22 +34882,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34258,6 +35086,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37571,7 +38465,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42158,16 +43054,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42229,12 +43125,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42315,10 +43205,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45765,7 +46651,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45808,8 +46694,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -45821,6 +46708,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46675,12 +47575,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46809,15 +47709,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48076,14 +48967,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49128,7 +50011,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49311,7 +50194,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49418,7 +50301,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51464,7 +52347,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51488,19 +52371,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53198,7 +54100,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -53880,6 +54782,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57086,7 +57998,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57108,9 +58020,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58212,17 +59126,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58242,10 +59156,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58369,25 +59283,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60536,9 +61431,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60593,9 +61488,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60636,10 +61531,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60660,12 +61555,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60674,17 +61571,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60784,21 +61681,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -60822,12 +61713,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -60854,20 +61739,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -60879,19 +61754,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61581,10 +62443,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61700,6 +62564,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62217,7 +63093,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -67183,6 +68059,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68011,6 +68903,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/it.po b/doc/translations/it.po
index 57e295c28d..e32a94b9cd 100644
--- a/doc/translations/it.po
+++ b/doc/translations/it.po
@@ -1,13 +1,13 @@
# Italian translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Micila Micillotto <micillotto@gmail.com>, 2020, 2021.
# Bob <spiroski.boban@gmail.com>, 2020.
# Riccardo Ferro <Riccardo3Ferro@gmail.com>, 2020.
# Lorenzo Asolan <brixiumx@gmail.com>, 2020.
-# Mirko <miknsop@gmail.com>, 2020.
+# Mirko <miknsop@gmail.com>, 2020, 2021.
# Lorenzo Cerqua <lorenzocerqua@tutanota.com>, 2020.
# StarFang208 <polaritymanx@yahoo.it>, 2020.
# Giacomo Bertolotti <giacomo.chappo@hotmail.it>, 2020, 2021.
@@ -27,8 +27,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-11-15 21:14+0000\n"
-"Last-Translator: Andrea Leganza <neogene@gmail.com>\n"
+"PO-Revision-Date: 2021-12-31 09:51+0000\n"
+"Last-Translator: Mirko <miknsop@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot-class-reference/it/>\n"
"Language: it\n"
@@ -36,7 +36,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.9.1-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -78,6 +78,71 @@ msgstr "Descrizioni delle proprietà"
msgid "Method Descriptions"
msgstr "Descrizioni del metodo"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Descrizioni delle proprietà"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Funzioni di GDScript integrate."
@@ -738,27 +803,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"Restituisce un valore normalizzato considerando il range dato. Questo è "
-"l'opposto di [metodo lerp].\n"
-"[codeblock]\n"
-"var medio = lerp(20, 30, 0.75)\n"
-"# `medio` è ora 27.5.\n"
-"# Ora, fingiamo di aver dimenticato il rapporto originale e di volerlo "
-"recuperare.\n"
-"var rapporto = inverse_lerp(20, 30, 27.5)\n"
-"# `rapporto` è ora 0.75.\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -827,9 +890,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -838,7 +905,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"Interpola linearmente tra due valori mediante un valore normalizzato. Questo "
"metodo è l'opposto di [method inverse_lerp].\n"
@@ -854,11 +924,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -2141,10 +2213,21 @@ msgid "The [Marshalls] singleton."
msgstr "Il singleton [Marshalls]."
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+#, fuzzy
+msgid "The [Navigation2DServer] singleton."
+msgstr "Il singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
msgstr "Il singleton [EditorNavigationMeshGenerator]."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "Il singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
msgstr "Il singleton [OS]."
@@ -2375,8 +2458,9 @@ msgid "Num Lock key."
msgstr "Tasto Num Lock/Bloc num."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Scroll Lock key."
-msgstr ""
+msgstr "Tasto Blocco scorrimento."
#: doc/classes/@GlobalScope.xml
msgid "F1 key."
@@ -2511,16 +2595,19 @@ msgid "Right Super key (Windows key)."
msgstr "Tasto 'Windows' destro."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Context menu key."
-msgstr ""
+msgstr "Tasto menu contestuale."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Left Hyper key."
-msgstr ""
+msgstr "Tasto Hyper sinistro."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Right Hyper key."
-msgstr ""
+msgstr "Tasto Hyper destro."
#: doc/classes/@GlobalScope.xml
msgid "Help key."
@@ -2552,16 +2639,19 @@ msgid "Media refresh key."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Volume down key."
-msgstr ""
+msgstr "Tasto volume giù."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Mute volume key."
-msgstr ""
+msgstr "Tasto volume muto."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Volume up key."
-msgstr ""
+msgstr "Tasto del volume su."
#: doc/classes/@GlobalScope.xml
msgid "Bass Boost key."
@@ -2588,28 +2678,33 @@ msgid "Media play key."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Previous song key."
-msgstr ""
+msgstr "Tasto brano precedente."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Next song key."
-msgstr ""
+msgstr "Tasto brano successivo."
#: doc/classes/@GlobalScope.xml
msgid "Media record key."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Home page key."
-msgstr ""
+msgstr "Tasto pagina iniziale."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Favorites key."
-msgstr ""
+msgstr "Tasto Preferiti."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Search key."
-msgstr ""
+msgstr "Tasto Ricerca."
#: doc/classes/@GlobalScope.xml
msgid "Standby key."
@@ -2696,544 +2791,677 @@ msgid "Unknown key."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Space key."
-msgstr ""
+msgstr "Tasto spazio."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "! key."
-msgstr ""
+msgstr "Tasto !."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "\" key."
-msgstr ""
+msgstr "Tasto \"."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "# key."
-msgstr ""
+msgstr "Tasto #."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "$ key."
-msgstr ""
+msgstr "Tasto $."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "% key."
-msgstr ""
+msgstr "Tasto %."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "& key."
-msgstr ""
+msgstr "Tasto &."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "' key."
-msgstr ""
+msgstr "Tasto '."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "( key."
-msgstr ""
+msgstr "Tasto (."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid ") key."
-msgstr ""
+msgstr "Tasto )."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "* key."
-msgstr ""
+msgstr "Tasto *."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "+ key."
-msgstr ""
+msgstr "Tasto +."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid ", key."
-msgstr ""
+msgstr "Tasto ,."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "- key."
-msgstr ""
+msgstr "Tasto -."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid ". key."
-msgstr ""
+msgstr "Tasto \".\"."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "/ key."
-msgstr ""
+msgstr "Tasto /."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Number 0."
-msgstr ""
+msgstr "Numero 0."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Number 1."
-msgstr ""
+msgstr "Numero 1."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Number 2."
-msgstr ""
+msgstr "Numero 2."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Number 3."
-msgstr ""
+msgstr "Numero 3."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Number 4."
-msgstr ""
+msgstr "Numero 4."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Number 5."
-msgstr ""
+msgstr "Numero 5."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Number 6."
-msgstr ""
+msgstr "Numero 6."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Number 7."
-msgstr ""
+msgstr "Numero 7."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Number 8."
-msgstr ""
+msgstr "Numero 8."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Number 9."
-msgstr ""
+msgstr "Numero 9."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid ": key."
-msgstr ""
+msgstr "Tasto :."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "; key."
-msgstr ""
+msgstr "Tasto ;."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "< key."
-msgstr ""
+msgstr "Tasto <."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "= key."
-msgstr ""
+msgstr "Tasto =."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "> key."
-msgstr ""
+msgstr "Tasto >."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "? key."
-msgstr ""
+msgstr "Tasto ?."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "@ key."
-msgstr ""
+msgstr "Tasto @."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "A key."
-msgstr ""
+msgstr "Tasto A."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "B key."
-msgstr ""
+msgstr "Tasto B."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "C key."
-msgstr ""
+msgstr "Tasto C."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "D key."
-msgstr ""
+msgstr "Tasto D."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "E key."
-msgstr ""
+msgstr "Tasto E."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "F key."
-msgstr ""
+msgstr "Tasto F."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "G key."
-msgstr ""
+msgstr "Tasto G."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "H key."
-msgstr ""
+msgstr "Tasto H."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "I key."
-msgstr ""
+msgstr "Tasto I."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "J key."
-msgstr ""
+msgstr "Tasto J."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "K key."
-msgstr ""
+msgstr "Tasto K."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "L key."
-msgstr ""
+msgstr "Tasto L."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "M key."
-msgstr ""
+msgstr "Tasto M."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "N key."
-msgstr ""
+msgstr "Tasto N."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "O key."
-msgstr ""
+msgstr "Tasto O."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "P key."
-msgstr ""
+msgstr "Tasto P."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Q key."
-msgstr ""
+msgstr "Tasto Q."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "R key."
-msgstr ""
+msgstr "Tasto R."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "S key."
-msgstr ""
+msgstr "Tasto S."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "T key."
-msgstr ""
+msgstr "Tasto T."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "U key."
-msgstr ""
+msgstr "Tasto U."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "V key."
-msgstr ""
+msgstr "Tasto V."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "W key."
-msgstr ""
+msgstr "Tasto W."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "X key."
-msgstr ""
+msgstr "Tasto X."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Y key."
-msgstr ""
+msgstr "Tasto Y."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Z key."
-msgstr ""
+msgstr "Tasto Z."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "[ key."
-msgstr ""
+msgstr "Tasto [."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "\\ key."
-msgstr ""
+msgstr "Tasto \\."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "] key."
-msgstr ""
+msgstr "Tasto ]."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "^ key."
-msgstr ""
+msgstr "Tasto ^."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "_ key."
-msgstr ""
+msgstr "Tasto _."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "` key."
-msgstr ""
+msgstr "Tasto '."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "{ key."
-msgstr ""
+msgstr "Tasto {."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "| key."
-msgstr ""
+msgstr "Tasto |."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "} key."
-msgstr ""
+msgstr "Tasto }."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "~ key."
-msgstr ""
+msgstr "Tasto ~."
#: doc/classes/@GlobalScope.xml
msgid "Non-breakable space key."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¡ key."
-msgstr ""
+msgstr "Tasto ¡."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¢ key."
-msgstr ""
+msgstr "Tasto ¢."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "£ key."
-msgstr ""
+msgstr "Tasto £."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¤ key."
-msgstr ""
+msgstr "Tasto ¤."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Â¥ key."
-msgstr ""
+msgstr "Tasto ¥."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¦ key."
-msgstr ""
+msgstr "Tasto ¦."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "§ key."
-msgstr ""
+msgstr "Tasto §."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¨ key."
-msgstr ""
+msgstr "Tasto ¨."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "© key."
-msgstr ""
+msgstr "Tasto ©."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "ª key."
-msgstr ""
+msgstr "Tasto ª."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "« key."
-msgstr ""
+msgstr "Tasto «."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¬ key."
-msgstr ""
+msgstr "Tasto ¬."
#: doc/classes/@GlobalScope.xml
msgid "Soft hyphen key."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "® key."
-msgstr ""
+msgstr "Tasto ®."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¯ key."
-msgstr ""
+msgstr "Tasto ¯."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "° key."
-msgstr ""
+msgstr "Tasto °."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "± key."
-msgstr ""
+msgstr "Tasto ±."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "² key."
-msgstr ""
+msgstr "Tasto ²."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "³ key."
-msgstr ""
+msgstr "Tasto ³."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "´ key."
-msgstr ""
+msgstr "Tasto ´."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "µ key."
-msgstr ""
+msgstr "Tasto µ."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¶ key."
-msgstr ""
+msgstr "Tasto ¶."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "· key."
-msgstr ""
+msgstr "Tasto ·."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¸ key."
-msgstr ""
+msgstr "Tasto ¸."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¹ key."
-msgstr ""
+msgstr "Tasto ¹."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "º key."
-msgstr ""
+msgstr "Tasto º."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "» key."
-msgstr ""
+msgstr "Tasto »."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¼ key."
-msgstr ""
+msgstr "Tasto ¼."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "½ key."
-msgstr ""
+msgstr "Tasto ½."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¾ key."
-msgstr ""
+msgstr "Tasto ¾."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "¿ key."
-msgstr ""
+msgstr "Tasto ¿."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "À key."
-msgstr ""
+msgstr "Tasto À."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ã key."
-msgstr ""
+msgstr "Tasto Ã."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Â key."
-msgstr ""
+msgstr "Tasto Â."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ã key."
-msgstr ""
+msgstr "Tasto Ã."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ä key."
-msgstr ""
+msgstr "Tasto Ä."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ã… key."
-msgstr ""
+msgstr "Tasto Ã…."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Æ key."
-msgstr ""
+msgstr "Tasto Æ."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ç key."
-msgstr ""
+msgstr "Tasto Ç."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "È key."
-msgstr ""
+msgstr "Tasto È."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "É key."
-msgstr ""
+msgstr "Tasto É."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ê key."
-msgstr ""
+msgstr "Tasto Ê."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ë key."
-msgstr ""
+msgstr "Tasto Ë."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ì key."
-msgstr ""
+msgstr "Tasto Ì."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ã key."
-msgstr ""
+msgstr "Tasto Ã."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "ÃŽ key."
-msgstr ""
+msgstr "Tasto ÃŽ."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ã key."
-msgstr ""
+msgstr "Tasto Ã."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ã key."
-msgstr ""
+msgstr "Tasto Ã."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ñ key."
-msgstr ""
+msgstr "Tasto Ñ."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ã’ key."
-msgstr ""
+msgstr "Tasto Ã’."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ó key."
-msgstr ""
+msgstr "Tasto Ó."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ô key."
-msgstr ""
+msgstr "Tasto Ô."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Õ key."
-msgstr ""
+msgstr "Tasto Õ."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ö key."
-msgstr ""
+msgstr "Tasto Ö."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "× key."
-msgstr ""
+msgstr "Tasto ×."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ø key."
-msgstr ""
+msgstr "Tasto Ø."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ù key."
-msgstr ""
+msgstr "Tasto Ù."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ú key."
-msgstr ""
+msgstr "Tasto Ú."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Û key."
-msgstr ""
+msgstr "Tasto Û."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ü key."
-msgstr ""
+msgstr "Tasto Ü."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Ã key."
-msgstr ""
+msgstr "Tasto Ã."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Þ key."
-msgstr ""
+msgstr "Tasto Þ."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "ß key."
-msgstr ""
+msgstr "Tasto ß."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "÷ key."
-msgstr ""
+msgstr "Tasto ÷."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "ÿ key."
-msgstr ""
+msgstr "Tasto ÿ."
#: doc/classes/@GlobalScope.xml
msgid "Key Code mask."
@@ -3276,16 +3504,19 @@ msgid "Group Switch key mask."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Left mouse button."
-msgstr ""
+msgstr "Tasto sinistro del mouse."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Right mouse button."
-msgstr ""
+msgstr "Tasto destro del mouse."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Middle mouse button."
-msgstr ""
+msgstr "Tasto centrale del mouse."
#: doc/classes/@GlobalScope.xml
msgid "Extra mouse button 1 (only present on some mice)."
@@ -3660,31 +3891,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -3705,20 +4013,24 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Generic error."
-msgstr ""
+msgstr "Errore generico."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Unavailable error."
-msgstr ""
+msgstr "Errore non disponibile."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Unconfigured error."
-msgstr ""
+msgstr "Errore non configurato."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Unauthorized error."
-msgstr ""
+msgstr "Errore non autorizzato."
#: doc/classes/@GlobalScope.xml
msgid "Parameter range error."
@@ -3761,8 +4073,9 @@ msgid "File: Can't read error."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "File: Unrecognized error."
-msgstr ""
+msgstr "File: Errore non riconosciuto."
#: doc/classes/@GlobalScope.xml
msgid "File: Corrupt error."
@@ -3777,12 +4090,14 @@ msgid "File: End of file (EOF) error."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Can't open error."
-msgstr ""
+msgstr "Impossibile aprire l'errore."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Can't create error."
-msgstr ""
+msgstr "Impossibile creare l'errore."
#: doc/classes/@GlobalScope.xml
msgid "Query failed error."
@@ -3793,24 +4108,28 @@ msgid "Already in use error."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Locked error."
-msgstr ""
+msgstr "Errore bloccato."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Timeout error."
-msgstr ""
+msgstr "Errore di timeout."
#: doc/classes/@GlobalScope.xml
msgid "Can't connect error."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Can't resolve error."
-msgstr ""
+msgstr "Impossibile risolvere l'errore."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Connection error."
-msgstr ""
+msgstr "Errore di connessione."
#: doc/classes/@GlobalScope.xml
msgid "Can't acquire resource error."
@@ -3825,24 +4144,28 @@ msgid "Invalid data error."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Invalid parameter error."
-msgstr ""
+msgstr "Errore di parametro non valido."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Already exists error."
-msgstr ""
+msgstr "Esiste già l'errore."
#: doc/classes/@GlobalScope.xml
msgid "Does not exist error."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Database: Read error."
-msgstr ""
+msgstr "Database: Errore di lettura."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Database: Write error."
-msgstr ""
+msgstr "Database: Errore di scrittura."
#: doc/classes/@GlobalScope.xml
msgid "Compilation failed error."
@@ -3865,8 +4188,9 @@ msgid "Cycling link (import cycle) error."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Invalid declaration error."
-msgstr ""
+msgstr "Errore di dichiarazione non valida."
#: doc/classes/@GlobalScope.xml
msgid "Duplicate symbol error."
@@ -4120,8 +4444,9 @@ msgid "Default method flags."
msgstr ""
#: doc/classes/@GlobalScope.xml
+#, fuzzy
msgid "Variable is [code]null[/code]."
-msgstr ""
+msgstr "La variabile è [code]null[/code]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [bool]."
@@ -4354,13 +4679,15 @@ msgstr ""
#: doc/classes/AABB.xml doc/classes/Basis.xml doc/classes/Plane.xml
#: doc/classes/Rect2.xml doc/classes/Transform.xml doc/classes/Transform2D.xml
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/math/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/math/index.html"
#: doc/classes/AABB.xml doc/classes/Rect2.xml doc/classes/Vector2.xml
#: doc/classes/Vector3.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/math/vector_math.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/math/vector_math.html"
#: doc/classes/AABB.xml doc/classes/Rect2.xml doc/classes/Vector2.xml
#: doc/classes/Vector3.xml
@@ -4936,8 +5263,9 @@ msgid ""
msgstr ""
#: doc/classes/Animation.xml doc/classes/AnimationPlayer.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/animation/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/animation/index.html"
#: doc/classes/Animation.xml
msgid "Adds a track to the Animation."
@@ -5330,12 +5658,14 @@ msgid "No interpolation (nearest value)."
msgstr ""
#: doc/classes/Animation.xml
+#, fuzzy
msgid "Linear interpolation."
-msgstr ""
+msgstr "Interpolazione lineare."
#: doc/classes/Animation.xml
+#, fuzzy
msgid "Cubic interpolation."
-msgstr ""
+msgstr "Interpolazione cubica."
#: doc/classes/Animation.xml
msgid "Update between keyframes."
@@ -6964,32 +7294,38 @@ msgid "Animation node."
msgstr ""
#: doc/classes/AnimationTreePlayer.xml
+#, fuzzy
msgid "OneShot node."
-msgstr ""
+msgstr "Nodo OneShot."
#: doc/classes/AnimationTreePlayer.xml
msgid "Mix node."
msgstr ""
#: doc/classes/AnimationTreePlayer.xml
+#, fuzzy
msgid "Blend2 node."
-msgstr ""
+msgstr "Nodo Blend2."
#: doc/classes/AnimationTreePlayer.xml
+#, fuzzy
msgid "Blend3 node."
-msgstr ""
+msgstr "Nodo Blend3."
#: doc/classes/AnimationTreePlayer.xml
+#, fuzzy
msgid "Blend4 node."
-msgstr ""
+msgstr "Nodo Blend4."
#: doc/classes/AnimationTreePlayer.xml
+#, fuzzy
msgid "TimeScale node."
-msgstr ""
+msgstr "Nodo TimeScale."
#: doc/classes/AnimationTreePlayer.xml
+#, fuzzy
msgid "TimeSeek node."
-msgstr ""
+msgstr "Nodo TimeSeek."
#: doc/classes/AnimationTreePlayer.xml
msgid "Transition node."
@@ -7759,7 +8095,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -8152,8 +8491,9 @@ msgstr ""
#: doc/classes/ARVRCamera.xml doc/classes/ARVRController.xml
#: doc/classes/ARVRInterface.xml doc/classes/ARVROrigin.xml
#: doc/classes/ARVRPositionalTracker.xml doc/classes/ARVRServer.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/vr/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/vr/index.html"
#: doc/classes/ARVRController.xml
msgid "A spatial node representing a spatially-tracked controller."
@@ -11165,8 +11505,9 @@ msgid ""
msgstr ""
#: doc/classes/BakedLightmap.xml doc/classes/SpatialMaterial.xml
+#, fuzzy
msgid "Currently unused."
-msgstr ""
+msgstr "Attualmente inutilizzato."
#: doc/classes/BakedLightmap.xml
#, fuzzy
@@ -12676,7 +13017,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12726,8 +13067,9 @@ msgid ""
msgstr ""
#: doc/classes/CameraFeed.xml
+#, fuzzy
msgid "Unspecified position."
-msgstr ""
+msgstr "Posizione non specificata."
#: doc/classes/CameraFeed.xml
msgid "Camera is mounted at the front of the device."
@@ -12745,11 +13087,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12757,23 +13101,27 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Ritorna [code]true[/code] se [code]s[/code] è zero o quasi zero."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr ""
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "Calcola il prodotto vettoriale di questo vettore e [code]with[/code]."
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12781,7 +13129,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12852,8 +13200,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml doc/classes/CanvasLayer.xml
#: doc/classes/InputEvent.xml doc/classes/Viewport.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/2d/2d_transforms.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/2d/2d_transforms.html"
#: doc/classes/CanvasItem.xml doc/classes/Control.xml doc/classes/Node2D.xml
#, fuzzy
@@ -12869,8 +13218,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12880,17 +13230,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12901,16 +13257,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12922,27 +13284,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13062,7 +13436,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13121,7 +13497,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -13333,8 +13710,9 @@ msgid ""
msgstr ""
#: doc/classes/CanvasLayer.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/2d/canvas_layers.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/2d/canvas_layers.html"
#: doc/classes/CanvasLayer.xml
msgid "Returns the RID of the canvas used by this layer."
@@ -13479,8 +13857,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -13529,6 +13907,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -14030,6 +14414,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -14457,9 +14842,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14702,7 +15087,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14754,44 +15141,52 @@ msgid "Antique white color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Aqua color."
-msgstr ""
+msgstr "Colore acqua."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Aquamarine color."
-msgstr ""
+msgstr "Colore acquamarina."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Azure color."
-msgstr ""
+msgstr "Colore azzurro."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Beige color."
-msgstr ""
+msgstr "Colore beige."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Bisque color."
-msgstr ""
+msgstr "Colore biscotto."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Black color."
-msgstr ""
+msgstr "Colore nero."
#: doc/classes/Color.xml
msgid "Blanche almond color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Blue color."
-msgstr ""
+msgstr "Colore blu."
#: doc/classes/Color.xml
msgid "Blue violet color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Brown color."
-msgstr ""
+msgstr "Colore marrone."
#: doc/classes/Color.xml
msgid "Burly wood color."
@@ -14802,32 +15197,38 @@ msgid "Cadet blue color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Chartreuse color."
-msgstr ""
+msgstr "Colore chartreuse."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Chocolate color."
-msgstr ""
+msgstr "Colore cioccolato."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Coral color."
-msgstr ""
+msgstr "Colore corallo."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Cornflower color."
-msgstr ""
+msgstr "Colore fiordaliso."
#: doc/classes/Color.xml
msgid "Corn silk color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Crimson color."
-msgstr ""
+msgstr "Colore cremisi."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Cyan color."
-msgstr ""
+msgstr "Colore ciano."
#: doc/classes/Color.xml
msgid "Dark blue color."
@@ -14914,8 +15315,9 @@ msgid "Dodger blue color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Firebrick color."
-msgstr ""
+msgstr "Colore mattone refrattario."
#: doc/classes/Color.xml
msgid "Floral white color."
@@ -14926,40 +15328,47 @@ msgid "Forest green color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Fuchsia color."
-msgstr ""
+msgstr "Colore fucsia."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Gainsboro color."
-msgstr ""
+msgstr "Colore Gainsboro."
#: doc/classes/Color.xml
msgid "Ghost white color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Gold color."
-msgstr ""
+msgstr "Colore oro."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Goldenrod color."
-msgstr ""
+msgstr "Colore verga d'oro."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Gray color."
-msgstr ""
+msgstr "Colore grigio."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Green color."
-msgstr ""
+msgstr "Colore verde."
#: doc/classes/Color.xml
msgid "Green yellow color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Honeydew color."
-msgstr ""
+msgstr "Colore melata."
#: doc/classes/Color.xml
msgid "Hot pink color."
@@ -14970,20 +15379,24 @@ msgid "Indian red color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Indigo color."
-msgstr ""
+msgstr "Colore indaco."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Ivory color."
-msgstr ""
+msgstr "Colore avorio."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Khaki color."
-msgstr ""
+msgstr "Colore cachi."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Lavender color."
-msgstr ""
+msgstr "Colore lavanda."
#: doc/classes/Color.xml
msgid "Lavender blush color."
@@ -15050,24 +15463,28 @@ msgid "Light yellow color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Lime color."
-msgstr ""
+msgstr "Colore lime."
#: doc/classes/Color.xml
msgid "Lime green color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Linen color."
-msgstr ""
+msgstr "Colore lino."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Magenta color."
-msgstr ""
+msgstr "Colore magenta."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Maroon color."
-msgstr ""
+msgstr "Colore marrone."
#: doc/classes/Color.xml
msgid "Medium aquamarine color."
@@ -15118,8 +15535,9 @@ msgid "Misty rose color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Moccasin color."
-msgstr ""
+msgstr "Colore mocassino."
#: doc/classes/Color.xml
msgid "Navajo white color."
@@ -15134,24 +15552,27 @@ msgid "Old lace color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Olive color."
-msgstr ""
+msgstr "Colore oliva."
#: doc/classes/Color.xml
msgid "Olive drab color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Orange color."
-msgstr ""
+msgstr "Colore arancione."
#: doc/classes/Color.xml
msgid "Orange red color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Orchid color."
-msgstr ""
+msgstr "Colore orchidea."
#: doc/classes/Color.xml
msgid "Pale goldenrod color."
@@ -15178,32 +15599,37 @@ msgid "Peach puff color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Peru color."
-msgstr ""
+msgstr "Colore peru."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Pink color."
-msgstr ""
+msgstr "Colore rosa."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Plum color."
-msgstr ""
+msgstr "Colore prugna."
#: doc/classes/Color.xml
msgid "Powder blue color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Purple color."
-msgstr ""
+msgstr "Colore viola."
#: doc/classes/Color.xml
msgid "Rebecca purple color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Red color."
-msgstr ""
+msgstr "Colore rosso."
#: doc/classes/Color.xml
msgid "Rosy brown color."
@@ -15218,8 +15644,9 @@ msgid "Saddle brown color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Salmon color."
-msgstr ""
+msgstr "Colore salmone."
#: doc/classes/Color.xml
msgid "Sandy brown color."
@@ -15230,16 +15657,19 @@ msgid "Sea green color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Seashell color."
-msgstr ""
+msgstr "Colore conchiglia."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Sienna color."
-msgstr ""
+msgstr "Colore terra di Siena."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Silver color."
-msgstr ""
+msgstr "Colore argento."
#: doc/classes/Color.xml
msgid "Sky blue color."
@@ -15254,8 +15684,9 @@ msgid "Slate gray color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Snow color."
-msgstr ""
+msgstr "Colore neve."
#: doc/classes/Color.xml
msgid "Spring green color."
@@ -15266,32 +15697,38 @@ msgid "Steel blue color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Tan color."
-msgstr ""
+msgstr "Colore marrone chiaro."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Teal color."
-msgstr ""
+msgstr "Color verde acqua."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Thistle color."
-msgstr ""
+msgstr "Colore cardo."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Tomato color."
-msgstr ""
+msgstr "Colore pomodoro."
#: doc/classes/Color.xml
msgid "Transparent color (white with no alpha)."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Turquoise color."
-msgstr ""
+msgstr "Colore turchese."
#: doc/classes/Color.xml
+#, fuzzy
msgid "Violet color."
-msgstr ""
+msgstr "Colore viola."
#: doc/classes/Color.xml
msgid "Web gray color."
@@ -15310,20 +15747,23 @@ msgid "Web purple color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Wheat color."
-msgstr ""
+msgstr "Colore grano."
#: doc/classes/Color.xml
+#, fuzzy
msgid "White color."
-msgstr ""
+msgstr "Colore bianco."
#: doc/classes/Color.xml
msgid "White smoke color."
msgstr ""
#: doc/classes/Color.xml
+#, fuzzy
msgid "Yellow color."
-msgstr ""
+msgstr "Colore giallo."
#: doc/classes/Color.xml
msgid "Yellow green color."
@@ -15370,8 +15810,11 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
+"Se [code] vero [/code], i nodi figli sono ordinati, altrimenti l'ordinamento "
+"è disabilitato."
#: doc/classes/ColorPicker.xml
msgid ""
@@ -15554,8 +15997,9 @@ msgid "[StyleBox] used when the [ColorPickerButton] is being pressed."
msgstr ""
#: doc/classes/ColorRect.xml
+#, fuzzy
msgid "Colored rectangle."
-msgstr ""
+msgstr "Rettangolo colorato."
#: doc/classes/ColorRect.xml
msgid ""
@@ -15942,8 +16386,9 @@ msgid ""
msgstr ""
#: doc/classes/Control.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/ui/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/ui/index.html"
#: doc/classes/Control.xml
#, fuzzy
@@ -17412,7 +17857,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18729,10 +19176,8 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
-msgstr ""
-"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
-"index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
+msgstr "$DOCS_URL/tutorials/scripting/index.html"
#: modules/mono/doc_classes/CSharpScript.xml
#: modules/gdnative/doc_classes/PluginScript.xml
@@ -20253,6 +20698,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -20270,11 +20722,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20354,8 +20808,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20798,10 +21263,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20850,7 +21314,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -21020,8 +21486,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -21030,7 +21496,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -22110,6 +22578,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -22589,10 +23065,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -23072,7 +23550,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -23707,7 +24185,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -24476,8 +24954,9 @@ msgid "https://en.wikipedia.org/wiki/Double-precision_floating-point_format"
msgstr ""
#: doc/classes/float.xml
+#, fuzzy
msgid "https://en.wikipedia.org/wiki/Single-precision_floating-point_format"
-msgstr ""
+msgstr "https://en.wikipedia.org/wiki/Single-precision_floating-point_format"
#: doc/classes/float.xml
msgid ""
@@ -24644,14 +25123,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -24727,10 +25206,8 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
-msgstr ""
-"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
-"index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
+msgstr "$DOCS_URL/tutorials/scripting/index.html"
#: modules/gdscript/doc_classes/GDScript.xml
msgid "Returns byte code for the script source code."
@@ -25775,8 +26252,9 @@ msgid ""
msgstr ""
#: doc/classes/GIProbe.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/3d/gi_probes.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/3d/gi_probes.html"
#: doc/classes/GIProbe.xml
msgid ""
@@ -26862,6 +27340,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -27090,7 +27574,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -27113,7 +27597,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -27205,8 +27689,9 @@ msgid "Used as background when the [ScrollBar] has the GUI focus."
msgstr ""
#: doc/classes/HSeparator.xml
+#, fuzzy
msgid "Horizontal separator."
-msgstr ""
+msgstr "Separatore orizzontale."
#: doc/classes/HSeparator.xml
msgid ""
@@ -28224,8 +28709,9 @@ msgid "Emitted when a request is completed."
msgstr ""
#: doc/classes/HTTPRequest.xml
+#, fuzzy
msgid "Request successful."
-msgstr ""
+msgstr "Richiesta riuscita."
#: doc/classes/HTTPRequest.xml
msgid "Request failed while connecting."
@@ -29200,8 +29686,9 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/inputs/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/inputs/index.html"
#: doc/classes/Input.xml
msgid ""
@@ -29402,7 +29889,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29423,7 +29914,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29442,11 +29937,19 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
-msgstr "Ritorna [code]true[/code] se [Rect2i] contiene un punto."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
#: doc/classes/Input.xml
msgid ""
@@ -29455,12 +29958,20 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
-msgstr "Ritorna [code]true[/code] se [Rect2i] contiene un punto."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
#: doc/classes/Input.xml
msgid ""
@@ -29777,7 +30288,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29805,7 +30320,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -30000,6 +30519,105 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+#, fuzzy
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr "https://en.wikipedia.org/wiki/Single-precision_floating-point_format"
+
+#: doc/classes/InputEventMIDI.xml
+#, fuzzy
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr "https://en.wikipedia.org/wiki/Single-precision_floating-point_format"
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -30016,15 +30634,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -30632,9 +31252,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -31566,6 +32186,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34073,8 +34716,9 @@ msgid ""
msgstr ""
#: doc/classes/MeshInstance2D.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/2d/2d_meshes.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/2d/2d_meshes.html"
#: doc/classes/MeshInstance2D.xml
msgid "The [Mesh] that will be drawn by the [MeshInstance2D]."
@@ -34793,16 +35437,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34823,10 +35464,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34842,25 +35480,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34877,14 +35506,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34893,35 +35519,407 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr "Ritorna [code]true[/code] se [Rect2i] contiene un punto."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Restituisce la tangente del parametro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Restituisce il seno del parametro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Restituisce il valore opposto del parametro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Restituisce il valore opposto del parametro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Restituisce il seno del parametro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Restituisce il valore opposto del parametro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Restituisce l'arco-seno del parametro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Ritorna [code]true[/code] se [Rect2i] è piano o vuoto."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Restituisce l'arco-seno del parametro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Restituisce il seno del parametro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "Restituisce il valore opposto del parametro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "Calcola il prodotto vettoriale di questo vettore e [code]b[/code]."
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Restituisce l'arco-seno del parametro."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr "Ritorna [code]true[/code] se [Rect2i] contiene un punto."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+"Ritorna [code]true[/code] se il vettore è normalizzato, o falso altrimenti."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Restituisce l'arco-seno del parametro."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -35021,10 +36019,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -35187,22 +36181,113 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "The [NavigationMesh] resource to use."
+msgstr "Il singleton [EditorNavigationMeshGenerator]."
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -35301,6 +36386,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Restituisce l'inversa della radice quadrata del parametro."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Restituisce l'arco-seno del parametro."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Restituisce il seno del parametro."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -35554,8 +36708,9 @@ msgid ""
msgstr ""
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+#, fuzzy
msgid "[url=https://facebook.github.io/zstd/]Zstandard[/url] compression."
-msgstr ""
+msgstr "Compressione [url=https://facebook.github.io/zstd/]Zstandard[/url]."
#: doc/classes/NetworkedMultiplayerPeer.xml
msgid "A high-level network interface to simplify multiplayer interactions."
@@ -36934,8 +38089,9 @@ msgid ""
msgstr ""
#: doc/classes/Node2D.xml
+#, fuzzy
msgid "Global position."
-msgstr ""
+msgstr "Posizione globale."
#: doc/classes/Node2D.xml
msgid "Global rotation in radians."
@@ -36946,12 +38102,14 @@ msgid "Global rotation in degrees."
msgstr ""
#: doc/classes/Node2D.xml
+#, fuzzy
msgid "Global scale."
-msgstr ""
+msgstr "Scala globale."
#: doc/classes/Node2D.xml
+#, fuzzy
msgid "Global [Transform2D]."
-msgstr ""
+msgstr "Globale [Transform2D]."
#: doc/classes/Node2D.xml
msgid "Position, relative to the node's parent."
@@ -36970,8 +38128,9 @@ msgid "The node's scale. Unscaled value: [code](1, 1)[/code]."
msgstr ""
#: doc/classes/Node2D.xml
+#, fuzzy
msgid "Local [Transform2D]."
-msgstr ""
+msgstr "Locale [Transform2D]."
#: doc/classes/Node2D.xml
msgid ""
@@ -38639,7 +39798,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -40886,8 +42047,9 @@ msgid "Represents the size of the [enum Monitor] enum."
msgstr ""
#: doc/classes/PHashTranslation.xml
+#, fuzzy
msgid "Optimized translation."
-msgstr ""
+msgstr "Traduzione ottimizzata."
#: doc/classes/PHashTranslation.xml
msgid ""
@@ -43270,16 +44432,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -43341,12 +44503,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -43427,10 +44583,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46881,7 +48033,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46924,8 +48076,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46937,6 +48090,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47799,12 +48965,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47936,15 +49102,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -49208,14 +50365,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -50262,7 +51411,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -50445,7 +51594,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -50552,7 +51701,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51236,8 +52385,9 @@ msgid ""
msgstr ""
#: doc/classes/Script.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/scripting/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/scripting/index.html"
#: doc/classes/Script.xml
msgid "Returns [code]true[/code] if the script can be instanced."
@@ -51544,8 +52694,9 @@ msgid ""
msgstr ""
#: doc/classes/Shader.xml doc/classes/ShaderMaterial.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/shaders/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/shaders/index.html"
#: doc/classes/Shader.xml
#, fuzzy
@@ -52622,7 +53773,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -52646,19 +53797,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -54362,7 +55532,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -55049,6 +56219,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -56094,8 +57274,9 @@ msgid "Sets [Material] to be used by the [Mesh] you are constructing."
msgstr ""
#: doc/classes/TabContainer.xml
+#, fuzzy
msgid "Tabbed container."
-msgstr ""
+msgstr "Contenitore a schede."
#: doc/classes/TabContainer.xml
msgid ""
@@ -56538,8 +57719,9 @@ msgid ""
msgstr ""
#: doc/classes/TCP_Server.xml
+#, fuzzy
msgid "Stops listening."
-msgstr ""
+msgstr "Smette di ascoltare."
#: doc/classes/TCP_Server.xml
msgid ""
@@ -57742,8 +58924,9 @@ msgid ""
msgstr ""
#: doc/classes/Theme.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/ui/gui_skinning.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/ui/gui_skinning.html"
#: doc/classes/Theme.xml
msgid "Clears all values on the theme."
@@ -58294,7 +59477,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -58316,9 +59499,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -59371,8 +60556,9 @@ msgid "Emitted when the button is released (up)."
msgstr ""
#: doc/classes/TouchScreenButton.xml
+#, fuzzy
msgid "Always visible."
-msgstr ""
+msgstr "Sempre visibile."
#: doc/classes/TouchScreenButton.xml
msgid "Visible on touch screens only."
@@ -59423,17 +60609,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -59453,10 +60639,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -59580,25 +60766,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -59662,8 +60829,9 @@ msgstr ""
"internationalizing_games.html"
#: doc/classes/Translation.xml doc/classes/TranslationServer.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/i18n/locales.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/i18n/locales.html"
#: doc/classes/Translation.xml
msgid "Virtual method to override [method get_message]."
@@ -61369,8 +62537,9 @@ msgid ""
msgstr ""
#: modules/upnp/doc_classes/UPNP.xml
+#, fuzzy
msgid "Inconsistent parameters."
-msgstr ""
+msgstr "Parametri incoerenti."
#: modules/upnp/doc_classes/UPNP.xml
msgid ""
@@ -61435,32 +62604,39 @@ msgid "Invalid gateway."
msgstr ""
#: modules/upnp/doc_classes/UPNP.xml
+#, fuzzy
msgid "Invalid port."
-msgstr ""
+msgstr "Porta non valida."
#: modules/upnp/doc_classes/UPNP.xml
+#, fuzzy
msgid "Invalid protocol."
-msgstr ""
+msgstr "Protocollo non valido."
#: modules/upnp/doc_classes/UPNP.xml
+#, fuzzy
msgid "Invalid duration."
-msgstr ""
+msgstr "Durata non valida."
#: modules/upnp/doc_classes/UPNP.xml
+#, fuzzy
msgid "Invalid arguments."
-msgstr ""
+msgstr "Argomenti non validi."
#: modules/upnp/doc_classes/UPNP.xml
+#, fuzzy
msgid "Invalid response."
-msgstr ""
+msgstr "Risposta non valida."
#: modules/upnp/doc_classes/UPNP.xml
+#, fuzzy
msgid "Invalid parameter."
-msgstr ""
+msgstr "Parametro non valido."
#: modules/upnp/doc_classes/UPNP.xml modules/upnp/doc_classes/UPNPDevice.xml
+#, fuzzy
msgid "HTTP error."
-msgstr ""
+msgstr "Errore HTTP."
#: modules/upnp/doc_classes/UPNP.xml
msgid "Socket error."
@@ -61483,12 +62659,14 @@ msgid ""
msgstr ""
#: modules/upnp/doc_classes/UPNP.xml modules/upnp/doc_classes/UPNPDevice.xml
+#, fuzzy
msgid "Unknown error."
-msgstr ""
+msgstr "Errore sconosciuto."
#: modules/upnp/doc_classes/UPNPDevice.xml
+#, fuzzy
msgid "UPNP device."
-msgstr ""
+msgstr "Dispositivo UPNP."
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid ""
@@ -61546,8 +62724,9 @@ msgid "IGD status. See [enum IGDStatus]."
msgstr ""
#: modules/upnp/doc_classes/UPNPDevice.xml
+#, fuzzy
msgid "Service type."
-msgstr ""
+msgstr "Tipo di servizio."
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "OK."
@@ -61566,16 +62745,19 @@ msgid "Not a valid IGD."
msgstr ""
#: modules/upnp/doc_classes/UPNPDevice.xml
+#, fuzzy
msgid "Disconnected."
-msgstr ""
+msgstr "Disconnesso."
#: modules/upnp/doc_classes/UPNPDevice.xml
+#, fuzzy
msgid "Unknown device."
-msgstr ""
+msgstr "Dispositivo sconosciuto."
#: modules/upnp/doc_classes/UPNPDevice.xml
+#, fuzzy
msgid "Invalid control."
-msgstr ""
+msgstr "Controllo non valido."
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Memory allocation error."
@@ -61703,9 +62885,11 @@ msgid ""
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
"https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab"
msgstr ""
+"https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab"
#: doc/classes/Vector2.xml
msgid ""
@@ -61757,9 +62941,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -61814,9 +62998,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61859,11 +63043,14 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
+"Restituisce [code]true[/code] se [code]a[/code] e [code]b[/code] sono "
+"approssimativamente uguali tra di loro."
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -61883,12 +63070,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "Calcola il prodotto vettoriale di questo vettore e [code]b[/code]."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61897,17 +63087,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -62009,21 +63199,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "Restituisce il resto dei due vettori."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "Calcola il prodotto vettoriale di questo vettore e [code]b[/code]."
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -62047,12 +63231,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -62079,20 +63257,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -62104,19 +63272,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -62599,8 +63754,9 @@ msgid ""
msgstr ""
#: doc/classes/Viewport.xml
+#, fuzzy
msgid "$DOCS_URL/tutorials/rendering/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/rendering/index.html"
#: doc/classes/Viewport.xml doc/classes/ViewportTexture.xml
#, fuzzy
@@ -62818,10 +63974,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62941,6 +64099,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -63459,7 +64629,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -64630,20 +65800,23 @@ msgid "The math constant."
msgstr ""
#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+#, fuzzy
msgid "Unity: [code]1[/code]."
-msgstr ""
+msgstr "Unity: [code]1[/code]."
#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+#, fuzzy
msgid "Pi: [code]3.141593[/code]."
-msgstr ""
+msgstr "Pi: [code]3.141593[/code]."
#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
msgid "Pi divided by two: [code]1.570796[/code]."
msgstr ""
#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+#, fuzzy
msgid "Tau: [code]6.283185[/code]."
-msgstr ""
+msgstr "Tau: [code]6.283185[/code]."
#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
msgid ""
@@ -64656,8 +65829,9 @@ msgid "Square root of two: [code]1.414214[/code]."
msgstr ""
#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+#, fuzzy
msgid "Infinity: [code]inf[/code]."
-msgstr ""
+msgstr "Infinito: [code]inf[/code]."
#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
msgid "Not a number: [code]nan[/code]."
@@ -68466,6 +69640,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -69302,6 +70492,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Restituisce il seno del parametro."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
@@ -70894,8 +72131,9 @@ msgid ""
msgstr ""
#: modules/webxr/doc_classes/WebXRInterface.xml
+#, fuzzy
msgid "https://www.snopekgames.com/blog/2020/how-make-vr-game-webxr-godot"
-msgstr ""
+msgstr "https://www.snopekgames.com/blog/2020/how-make-vr-game-webxr-godot"
#: modules/webxr/doc_classes/WebXRInterface.xml
msgid ""
@@ -71389,16 +72627,19 @@ msgid ""
msgstr ""
#: doc/classes/XMLParser.xml
+#, fuzzy
msgid "There's no node (no file or buffer opened)."
-msgstr ""
+msgstr "Non c'è nessun nodo (nessun file o buffer aperto)."
#: doc/classes/XMLParser.xml
+#, fuzzy
msgid "Element (tag)."
-msgstr ""
+msgstr "Elemento (tag)."
#: doc/classes/XMLParser.xml
+#, fuzzy
msgid "End of element."
-msgstr ""
+msgstr "Fine dell'elemento."
#: doc/classes/XMLParser.xml
msgid "Text node."
diff --git a/doc/translations/ja.po b/doc/translations/ja.po
index b299c3791d..bf6d51175e 100644
--- a/doc/translations/ja.po
+++ b/doc/translations/ja.po
@@ -1,6 +1,6 @@
# Japanese translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Wataru Onuki <bettawat@yahoo.co.jp>, 2020, 2021.
@@ -65,6 +65,71 @@ msgstr "プロパティã®èª¬æ˜Ž"
msgid "Method Descriptions"
msgstr "メソッドã®èª¬æ˜Ž"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "プロパティã®èª¬æ˜Ž"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "組ã¿è¾¼ã¿GDScript関数。"
@@ -732,26 +797,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"与ãˆã‚‰ã‚ŒãŸç¯„囲ã«ãŠã„ã¦æ­£è¦åŒ–ã•れãŸå€¤ã‚’è¿”ã—ã¾ã™ã€‚ã“れ㯠[method lerp] ã®é€†ã§"
-"ã™ã€‚\n"
-"[codeblock]\n"
-"var middle = lerp(20, 30, 0.75)\n"
-"# `middle` 㯠27.5 ã«ãªã‚‹ã€‚\n"
-"# å…ƒã®æ¯”を忘れã¦ã—ã¾ã£ã¦ã€ã¾ãŸçŸ¥ã‚ŠãŸã„ã¨ã—ã¾ã™ã€‚\n"
-"var ratio = inverse_lerp(20, 30, 27.5)\n"
-"# `ratio` 㯠0.75 ã«ãªã‚‹ã€‚\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -823,8 +887,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -833,7 +900,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"ï¼’ã¤ã®å€¤ãŠã‚ˆã³æ­£è¦åŒ–ã•れãŸå€¤ã‹ã‚‰ç·šå½¢è£œé–“ã—ã¾ã™ã€‚ã“れ㯠[method inverse_lerp] "
"ã®é€†ã§ã™ã€‚\n"
@@ -848,11 +918,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -2166,10 +2238,20 @@ msgstr "[Marshalls] シングルトン。"
#: doc/classes/@GlobalScope.xml
#, fuzzy
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr "[TranslationServer] シングルトン。"
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
msgstr "[NavigationMeshGenerator] シングルトン。"
#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "[TranslationServer] シングルトン。"
+
+#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
msgstr "[OS] シングルトン。"
@@ -3735,32 +3817,109 @@ msgstr ""
"ティック軸)。"
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
-msgstr "MIDIノート オフメッセージ。"
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
-msgstr "MIDIノート オンメッセージ。"
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
-msgstr "MIDIアフタータッムメッセージ。"
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
-msgstr "MIDIコントロールãƒã‚§ãƒ³ã‚¸ メッセージ。"
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
-msgstr "MIDIプログラムãƒã‚§ãƒ³ã‚¸ メッセージ。"
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
-msgstr "MIDIãƒãƒ£ãƒ³ãƒãƒ«ãƒ—レッシャー メッセージ。"
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
-msgstr "MIDIピッãƒãƒ™ãƒ³ãƒ‰ メッセージ。"
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
+msgstr ""
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -8803,7 +8962,10 @@ msgstr ""
"ã™ã€‚å†ç¾ä¸å¯èƒ½ãªã‚·ãƒ£ãƒƒãƒ•ルを行ã„ãŸã„å ´åˆã¯ [method @GDScript.randomize]を呼ã³"
"出ã—ã¦ã€æ¯Žå›žæ–°ã—ã„シードãŒä½¿ç”¨ã•れるよã†ã«ã—ã¦ãã ã•ã„。"
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr "é…列ã®è¦ç´ æ•°ã‚’è¿”ã—ã¾ã™ã€‚"
@@ -14551,7 +14713,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -14621,12 +14783,15 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
-msgstr ""
+#, fuzzy
+msgid "Adds the camera [code]feed[/code] to the camera server."
+msgstr "ディテールテクスãƒãƒ£ã¨å…±ã« [code]UV[/code] を使用ã—ã¾ã™ã€‚"
#: doc/classes/CameraServer.xml
msgid "Returns an array of [CameraFeed]s."
@@ -14634,24 +14799,28 @@ msgstr ""
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Returns the [CameraFeed] with this id."
-msgstr "ã“ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã§ã®ãƒ–レンドシェイプã®åå‰ã‚’è¿”ã—ã¾ã™ã€‚"
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "インデックス [code]bus_idx[/code] ã‚’æŒã¤ãƒã‚¹ã®åå‰ã‚’è¿”ã—ã¾ã™ã€‚"
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr ""
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "インデックス [code]index[/code] ã®ãƒã‚¹ã‚’削除ã—ã¾ã™ã€‚"
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
-msgstr ""
+#, fuzzy
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
+msgstr "プロパティãŒã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã‹ã‚‰å‰Šé™¤ã•れãŸã¨ãã«ç™ºä¿¡ã€‚"
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr "プロパティãŒã‚¤ãƒ³ã‚¹ãƒšã‚¯ã‚¿ã‹ã‚‰å‰Šé™¤ã•れãŸã¨ãã«ç™ºä¿¡ã€‚"
#: doc/classes/CameraServer.xml
@@ -14659,7 +14828,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -14747,8 +14916,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -14758,17 +14928,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -14779,16 +14955,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -14800,27 +14982,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -14940,8 +15134,13 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+#, fuzzy
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
+"é…列をクリアã—ã¾ã™ã€‚ã“れã¯ã€[code]0[/code]ã®ã‚µã‚¤ã‚ºã§[method resize]を使用ã™ã‚‹"
+"ã®ã¨åŒã˜ã§ã™ã€‚"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -14999,7 +15198,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -15363,8 +15563,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -15413,6 +15613,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -15932,6 +16138,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -16389,9 +16596,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -16634,7 +16841,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -17302,8 +17511,9 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
-msgstr ""
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
+msgstr "[code]true[/code] ã§ã‚れã°ã€ãƒ†ã‚¯ã‚¹ãƒãƒ£ã¯ä¸­å¤®ã«ãªã‚Šã¾ã™ã€‚"
#: doc/classes/ColorPicker.xml
msgid ""
@@ -19347,7 +19557,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -20709,7 +20921,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/ja/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -22241,6 +22453,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -22258,11 +22477,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -22343,13 +22564,21 @@ msgstr ""
"ç§’å˜ä½ã§ä¸Žãˆã‚‰ã‚ŒãŸä½ç½® [code]from_position[/code] ã‹ã‚‰ã®éŸ³å£°ã‚’å†ç”Ÿã—ã¾ã™ã€‚"
#: doc/classes/EditorExportPlugin.xml
-#, fuzzy
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
-"[code]path[/code]ã«ã‚ã‚‹[code]*.fnt[/code]ファイルã‹ã‚‰ã€BitmapFontを作æˆã—ã¾"
-"ã™ã€‚"
#: doc/classes/EditorExportPlugin.xml
msgid ""
@@ -22792,10 +23021,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -22844,7 +23072,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -23014,8 +23244,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -23024,7 +23254,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -24109,6 +24341,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -24590,10 +24830,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -25073,7 +25315,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -25719,7 +25961,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -26657,14 +26899,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/ja/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/ja/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -26740,7 +26982,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/ja/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -28900,6 +29142,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -29128,7 +29376,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -29151,7 +29399,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -31448,7 +31696,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -31469,7 +31721,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -31490,13 +31746,19 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
-"ボタン内ã«ãƒžã‚¦ã‚¹ãŒå…¥ã‚Šã€ã¾ã ãƒœã‚¿ãƒ³ã‹ã‚‰é›¢ã‚Œã¦ã„ãªã„å ´åˆã« [code]true[/code] ã‚’"
-"è¿”ã—ã¾ã™ã€‚"
#: doc/classes/Input.xml
msgid ""
@@ -31505,14 +31767,20 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
-"ボタン内ã«ãƒžã‚¦ã‚¹ãŒå…¥ã‚Šã€ã¾ã ãƒœã‚¿ãƒ³ã‹ã‚‰é›¢ã‚Œã¦ã„ãªã„å ´åˆã« [code]true[/code] ã‚’"
-"è¿”ã—ã¾ã™ã€‚"
#: doc/classes/Input.xml
msgid ""
@@ -31829,7 +32097,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -31857,7 +32129,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -32052,6 +32328,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -32068,15 +32441,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -32686,9 +33061,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -33642,6 +34017,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -36882,16 +37280,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/ja/latest/tutorials/vr/index.html"
@@ -36912,10 +37307,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -36931,28 +37323,17 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-#, fuzzy
-msgid "Removes the [NavigationMesh] with the given ID."
-msgstr "指定ã•れãŸåå‰ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ãƒŽãƒ¼ãƒ‰ã‚’è¿”ã—ã¾ã™ã€‚"
-
-#: doc/classes/Navigation.xml
-#, fuzzy
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
-msgstr "指定ã•れãŸåå‰ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ãƒŽãƒ¼ãƒ‰ã‚’è¿”ã—ã¾ã™ã€‚"
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
+msgstr ""
#: doc/classes/Navigation.xml
msgid ""
@@ -36968,14 +37349,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/ja/latest/tutorials/vr/index.html"
@@ -36984,36 +37362,420 @@ msgstr "https://docs.godotengine.org/ja/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+#, fuzzy
+msgid "The XY plane cell size to use for fields."
+msgstr "メソッド呼ã³å‡ºã—トラックã§ä½¿ã†ã€å‘¼ã³å‡ºã—モード。"
+
+#: doc/classes/Navigation2DServer.xml
+#, fuzzy
+msgid "Server interface for low-level 2D navigation access."
+msgstr "低レベルã®ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªã‚¢ã‚¯ã‚»ã‚¹ç”¨ã®ã‚µãƒ¼ãƒãƒ¼ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースã§ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Creates the agent."
+msgstr "指定ã•れãŸãƒŽãƒ¼ãƒ‰ã®åå‰ã‚’変ãˆã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr "与ãˆã‚‰ã‚ŒãŸãƒŽãƒ¼ãƒ‰ã‚’å«ã‚€ã‚°ãƒ©ãƒ•ã®å ´åˆã€[code]true[/code] ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "パラメータã®ã‚¿ãƒ³ã‚¸ã‚§ãƒ³ãƒˆã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "入力ã®åå‰ã‚’インデックスã§å–å¾—ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "空間ã«ã‚ã‚‹ [AABB] ã® 8 ãƒã‚¤ãƒ³ãƒˆã®ä½ç½®ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "パラメータã®å対ã®å€¤ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "テクスãƒãƒ£ã®æå†™ã‚ªãƒ•セット。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
#, fuzzy
-msgid "Removes the [NavigationPolygon] with the given ID."
+msgid "Sets the current velocity of the agent."
+msgstr "テクスãƒãƒ£ã®ç¾åœ¨è¡¨ç¤ºã•れã¦ã„るフレームを設定ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Destroys the given RID."
+msgstr "指定ã•れãŸé·ç§»ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "グラフã®çµ‚端ノードを返ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+"インデックス [code]triangle[/code] ã®ä¸‰è§’形内ã«ã‚ã‚‹ã€ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ "
+"[code]point[/code] ã®ãƒã‚¤ãƒ³ãƒˆã®ä½ç½®ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "é…列ãŒç©ºã®å ´åˆã¯[code]true[/code]ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªã‚’åœæ­¢ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "行列ã®é€†è¡Œåˆ—ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
msgstr "指定ã•れãŸåå‰ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ãƒŽãƒ¼ãƒ‰ã‚’è¿”ã—ã¾ã™ã€‚"
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "行列ã®è»¢ç½®ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "ブレンド軸上ã®ãƒã‚¤ãƒ³ãƒˆã®æ•°ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr "指定ã•れãŸåå‰ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ãƒŽãƒ¼ãƒ‰ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+"指定ã—ãŸãƒ‘スãŒãƒ•ィルタリングã•れã¦ã„れ㰠[code]true[/code] ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+"指定ã—ãŸãƒ•ãƒ©ã‚°ãŒæœ‰åйãªå ´åˆã€[code]true[/code] ã‚’è¿”ã—ã¾ã™ã€‚オプションã«ã¤ã„ã¦"
+"㯠[enum Flags] 列挙å­ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The radius of the agent."
+msgstr "円柱ã®åŠå¾„。"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Notifies when the final location is reached."
+msgstr "アニメーションã®å†ç”ŸãŒçµ‚了ã—ãŸã¨ãã«é€šçŸ¥ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "ブレンド軸上ã®ãƒã‚¤ãƒ³ãƒˆã®æ•°ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr "指定ã•れãŸåå‰ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ãƒŽãƒ¼ãƒ‰ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -37114,10 +37876,6 @@ msgid "The Y axis cell size to use for fields."
msgstr "メソッド呼ã³å‡ºã—トラックã§ä½¿ã†ã€å‘¼ã³å‡ºã—モード。"
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -37280,26 +38038,119 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr "[enum Feature] enum ã®ã‚µã‚¤ã‚ºã‚’表ã—ã¾ã™ã€‚"
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+#, fuzzy
+msgid "Clears the navigation mesh."
+msgstr "ã™ã¹ã¦ã®ç‚¹ãŠã‚ˆã³ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚’クリアã—ã¾ã™ã€‚"
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-#, fuzzy
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
-msgstr "[code]true[/code] ã§ã‚れã°ã€[AnimationTree] ã®ãƒ—ロセスを行ã„ã¾ã™ã€‚"
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
msgstr "[NavigationMeshGenerator] シングルトン。"
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr "アニメーションã®å†ç”ŸãŒé–‹å§‹ã—ãŸã¨ãã«é€šçŸ¥ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr "アニメーションã®å†ç”ŸãŒé–‹å§‹ã—ãŸã¨ãã«é€šçŸ¥ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr "指定ã•れãŸåå‰ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ãƒŽãƒ¼ãƒ‰ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
#: doc/classes/NavigationPolygon.xml
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
@@ -37396,6 +38247,77 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Server interface for low-level 3D navigation access."
+msgstr "低レベルã®ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªã‚¢ã‚¯ã‚»ã‚¹ç”¨ã®ã‚µãƒ¼ãƒãƒ¼ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースã§ã™ã€‚"
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "パラメータã®å¹³æ–¹æ ¹ã®é€†æ•°ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr "ã‚­ãƒ¥ãƒ¼å†…ã§æ¬¡ã«ã‚るアニメーションã®åå‰ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "ビットマップã®å¯¸æ³•ã‚’è¿”ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªã‚’åœæ­¢ã—ã¾ã™ã€‚"
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -40742,7 +41664,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -45390,16 +46314,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -45461,12 +46385,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -45553,10 +46471,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr "サブノードã®åå‰ã‚’変更ã—ã¾ã™ã€‚"
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -49033,7 +49947,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -49076,8 +49990,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -49089,6 +50004,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -49954,12 +50882,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -50097,15 +51025,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -51380,14 +52299,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -52437,7 +53348,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -52620,7 +53531,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -52727,7 +53638,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -54820,7 +55731,7 @@ msgstr ""
#, fuzzy
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -54852,23 +55763,39 @@ msgstr ""
"ãƒãƒ£ãƒªãƒ³ã‚°ã«ä½¿ç”¨ã—ã¾ã™ã€‚"
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
-msgstr "異方性効果ã®å¼·ã•ã§ã™ã€‚"
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
+msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
-"[code]true[/code]ã®å ´åˆã€ç•°æ–¹æ€§ãŒæœ‰åйã«ãªã‚Šã¾ã™ã€‚é¡é¢ãƒ–ロブã®å½¢çŠ¶ã‚’å¤‰æ›´ã—ã€æŽ¥"
-"ç·šç©ºé–“ã«æ•´åˆ—ã•ã›ã¾ã™ã€‚ã“ã®æ©Ÿèƒ½ã‚’動作ã•ã›ã‚‹ã«ã¯ã€ãƒ¡ãƒƒã‚·ãƒ¥ã®æŽ¥ç·šãŒå¿…è¦ã§ã™ã€‚"
-"ãƒ¡ãƒƒã‚·ãƒ¥ã«æŽ¥ç·šãŒå«ã¾ã‚Œã¦ã„ãªã„å ´åˆã€ç•°æ–¹æ€§åŠ¹æžœã¯å£Šã‚Œã¦ã„るよã†ã«è¦‹ãˆã¾ã™ã€‚"
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
-msgstr "異方性計算ã®ãŸã‚ã®æŽ¥ç·šãƒžãƒƒãƒ—ã‚’ã‚ªãƒ•ã‚»ãƒƒãƒˆã™ã‚‹ãƒ†ã‚¯ã‚¹ãƒãƒ£ã§ã™ã€‚"
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
+msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -56831,7 +57758,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -57530,6 +58457,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -60810,7 +61747,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -60832,9 +61769,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -61944,17 +62883,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -61974,10 +62913,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -62101,25 +63040,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -64291,9 +65211,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -64348,9 +65268,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -64394,11 +65314,14 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
+"ã‚‚ã— [code]a[/code] 㨠[code]b[/code] ãŒã»ã¨ã‚“ã©ç­‰ã—ã„ãªã‚‰ã° [code]true[/"
+"code] ã‚’è¿”ã—ã¾ã™ã€‚"
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -64418,13 +65341,17 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "ã“ã®ãƒ™ã‚¯ãƒˆãƒ«ã‚’別ã®ãƒ™ã‚¯ãƒˆãƒ« [code]b[/code] ã«æŠ•å½±ã—ãŸã‚‚ã®ã‚’è¿”ã—ã¾ã™ã€‚"
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
+msgstr "ã“ã®ãƒ™ã‚¯ãƒˆãƒ«ã‚’別ã®ãƒ™ã‚¯ãƒˆãƒ« [code]b[/code] ã«æŠ•å½±ã—ãŸã‚‚ã®ã‚’è¿”ã—ã¾ã™ã€‚"
#: doc/classes/Vector2.xml
msgid ""
@@ -64432,17 +65359,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -64544,21 +65471,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "与ãˆã‚‰ã‚ŒãŸãƒ™ã‚¯ãƒˆãƒ«ã«å¯¾ã™ã‚‹æœ€å°è§’度をã€ãƒ©ã‚¸ã‚¢ãƒ³ã§è¿”ã—ã¾ã™ã€‚"
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "ã“ã®ãƒ™ã‚¯ãƒˆãƒ«ã¨ [code]b[/code] ã®ã‚¯ãƒ­ã‚¹ç©ã‚’è¿”ã—ã¾ã™ã€‚"
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -64582,12 +65503,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -64614,20 +65529,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr "ã“ã®ãƒ™ã‚¯ãƒˆãƒ«ã‚’別ã®ãƒ™ã‚¯ãƒˆãƒ« [code]b[/code] ã«æŠ•å½±ã—ãŸã‚‚ã®ã‚’è¿”ã—ã¾ã™ã€‚"
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -64639,19 +65544,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -65354,10 +66246,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -65477,6 +66371,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -66001,7 +66907,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/ja/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -71070,6 +71976,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -71906,6 +72828,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "[enum Feature] enum ã®ã‚µã‚¤ã‚ºã‚’表ã—ã¾ã™ã€‚"
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/ko.po b/doc/translations/ko.po
index 5766aec44d..7e7d886ea0 100644
--- a/doc/translations/ko.po
+++ b/doc/translations/ko.po
@@ -1,6 +1,6 @@
# Korean translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Doyun Kwon <caen4516@gmail.com>, 2020.
@@ -68,6 +68,71 @@ msgstr "ì†ì„± 설명"
msgid "Method Descriptions"
msgstr "메서드 설명"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "ì†ì„± 설명"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "내장 GD스í¬ë¦½íЏ 함수들."
@@ -574,16 +639,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -633,8 +706,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -643,7 +719,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -651,7 +730,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1505,7 +1585,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -3015,31 +3103,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7105,7 +7270,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -12012,7 +12180,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12080,11 +12248,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12092,23 +12262,26 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12116,7 +12289,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12204,8 +12377,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12215,17 +12389,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12236,16 +12416,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12257,27 +12443,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12397,7 +12595,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12456,7 +12656,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12814,8 +13015,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12864,6 +13065,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13363,6 +13570,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13789,9 +13997,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14063,7 +14271,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14731,7 +14941,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16749,7 +16959,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18066,7 +18278,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19650,6 +19862,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19667,11 +19886,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19751,8 +19972,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20195,10 +20427,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20247,7 +20478,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20417,8 +20650,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20427,7 +20660,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21502,6 +21737,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21978,10 +22221,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22461,7 +22706,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -23096,7 +23341,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -24032,14 +24277,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -24115,7 +24360,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26232,6 +26477,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26460,7 +26711,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26483,7 +26734,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28777,7 +29028,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28798,7 +29053,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28817,8 +29076,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28831,7 +29099,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29149,7 +29426,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29177,7 +29458,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29372,6 +29657,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29388,15 +29770,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -30001,9 +30385,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30935,6 +31319,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34159,16 +34566,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34189,10 +34593,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34208,25 +34609,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34243,14 +34635,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34259,35 +34648,402 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ íƒ„ì  íŠ¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ë°˜ëŒ€ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ë°˜ëŒ€ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ë°˜ëŒ€ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì•„í¬ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì½”ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì•„í¬ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ë°˜ëŒ€ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì•„í¬ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì•„í¬ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34387,10 +35143,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34550,22 +35302,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34664,6 +35506,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì œê³±ê·¼ 역함수 ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì•„í¬ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -38124,7 +39035,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42738,16 +43651,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42809,12 +43722,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42895,10 +43802,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46347,7 +47250,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46390,8 +47293,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46403,6 +47307,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47262,12 +48179,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47396,15 +48313,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48667,14 +49575,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49721,7 +50621,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49904,7 +50804,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -50011,7 +50911,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -52077,7 +52977,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -52101,19 +53001,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53811,7 +54730,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54496,6 +55415,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57714,7 +58643,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57736,9 +58665,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58840,17 +59771,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58870,10 +59801,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58997,25 +59928,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -61171,9 +62083,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -61228,9 +62140,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61271,10 +62183,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61295,12 +62207,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "ë‘ ë²¡í„°ì˜ ë‚˜ë¨¸ì§€ë¥¼ 반환합니다."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61309,17 +62224,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61420,21 +62335,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "ë‘ ë²¡í„°ì˜ ë‚˜ë¨¸ì§€ë¥¼ 반환합니다."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61458,12 +62367,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61490,20 +62393,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61515,19 +62408,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -62236,10 +63116,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62355,6 +63237,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62873,7 +63767,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67863,6 +68757,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68699,6 +69609,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "ë§¤ê°œë³€ìˆ˜ì˜ ì‚¬ì¸ ê°’ì„ ë°˜í™˜í•©ë‹ˆë‹¤."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/lv.po b/doc/translations/lv.po
index 58a37bc032..7fd77a6adc 100644
--- a/doc/translations/lv.po
+++ b/doc/translations/lv.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Agnis Aldiņš <agnis16@gmail.com>, 2020.
@@ -63,6 +63,71 @@ msgstr "Iestatījumu apraksti"
msgid "Method Descriptions"
msgstr "Metožu Apraksts"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Iestatījumu apraksti"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "IebÅ«vÄ“tÄs GDScript funkcijas."
@@ -484,16 +549,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -543,8 +616,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -553,7 +629,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -561,7 +640,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1393,7 +1473,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2903,31 +2991,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6991,7 +7156,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11895,7 +12063,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11960,11 +12128,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11972,7 +12142,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11980,15 +12152,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11996,7 +12168,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12084,8 +12256,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12095,17 +12268,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12116,16 +12295,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12137,27 +12322,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12277,7 +12474,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12336,7 +12535,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12694,8 +12894,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12744,6 +12944,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13243,6 +13449,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13669,9 +13876,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13914,7 +14121,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14582,7 +14791,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16600,7 +16809,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17917,7 +18128,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19436,6 +19647,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19453,11 +19671,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19537,8 +19757,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19981,10 +20212,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20033,7 +20263,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20203,8 +20435,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20213,7 +20445,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21288,6 +21522,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21764,10 +22006,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22247,7 +22491,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22882,7 +23126,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23817,14 +24061,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -23900,7 +24144,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26016,6 +26260,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26244,7 +26494,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26267,7 +26517,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28553,7 +28803,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28574,7 +28828,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28593,8 +28851,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28607,7 +28874,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28925,7 +29201,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28953,7 +29233,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29148,6 +29432,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29164,15 +29545,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29776,9 +30159,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30709,6 +31092,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33925,16 +34331,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -33955,10 +34358,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33974,25 +34374,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34009,14 +34400,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34025,35 +34413,389 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34152,10 +34894,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34314,22 +35052,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34428,6 +35256,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37759,7 +38653,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42353,16 +43249,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42424,12 +43320,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42510,10 +43400,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45961,7 +46847,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46004,8 +46890,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46017,6 +46904,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46876,12 +47776,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47010,15 +47910,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48281,14 +49172,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49335,7 +50218,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49518,7 +50401,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49625,7 +50508,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51691,7 +52574,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51715,19 +52598,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53425,7 +54327,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54110,6 +55012,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57322,7 +58234,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57344,9 +58256,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58448,17 +59362,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58478,10 +59392,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58605,25 +59519,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60777,9 +61672,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60834,9 +61729,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60877,10 +61772,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60901,12 +61796,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60915,17 +61812,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61025,21 +61922,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61063,12 +61954,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61095,20 +61980,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61120,19 +61995,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61826,10 +62688,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61945,6 +62809,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62463,7 +63339,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67436,6 +68312,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68270,6 +69162,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/mr.po b/doc/translations/mr.po
index e381f8808f..da3c6ecbe3 100644
--- a/doc/translations/mr.po
+++ b/doc/translations/mr.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Prachi Joshi <josprachi@yahoo.com>, 2020.
@@ -59,6 +59,70 @@ msgstr ""
msgid "Method Descriptions"
msgstr ""
+#: doc/tools/make_rst.py
+msgid "Theme Property Descriptions"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr ""
@@ -468,16 +532,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -527,8 +599,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -537,7 +612,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -545,7 +623,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1377,7 +1456,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2887,31 +2974,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6962,7 +7126,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11837,7 +12004,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11902,11 +12069,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11914,7 +12083,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11922,15 +12093,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11938,7 +12109,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12024,8 +12195,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12035,17 +12207,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12056,16 +12234,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12077,27 +12261,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12217,7 +12413,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12276,7 +12474,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12630,8 +12829,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12680,6 +12879,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13179,6 +13384,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13601,9 +13807,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13843,7 +14049,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14511,7 +14719,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16525,7 +16733,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17839,7 +18049,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -19349,6 +19559,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19366,11 +19583,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19450,8 +19669,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19894,10 +20124,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -19946,7 +20175,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20113,8 +20344,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20123,7 +20354,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21193,6 +21426,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21666,10 +21907,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22146,7 +22389,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22775,7 +23018,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23709,11 +23952,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -23786,7 +24029,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -25898,6 +26141,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26126,7 +26375,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26149,7 +26398,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28423,7 +28672,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28444,7 +28697,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28463,8 +28720,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28477,7 +28743,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28793,7 +29068,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28821,7 +29100,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29013,6 +29296,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29029,15 +29409,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29635,9 +30017,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30558,6 +30940,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33756,16 +34161,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33785,10 +34187,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33804,25 +34203,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33839,14 +34229,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -33854,35 +34241,389 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -33981,10 +34722,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34143,22 +34880,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34257,6 +35084,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37570,7 +38463,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42157,16 +43052,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42228,12 +43123,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42314,10 +43203,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45764,7 +46649,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45807,8 +46692,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -45820,6 +46706,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46674,12 +47573,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46808,15 +47707,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48075,14 +48965,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49127,7 +50009,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49310,7 +50192,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49417,7 +50299,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51463,7 +52345,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51487,19 +52369,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53197,7 +54098,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -53879,6 +54780,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57085,7 +57996,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57107,9 +58018,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58211,17 +59124,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58241,10 +59154,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58368,25 +59281,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60535,9 +61429,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60592,9 +61486,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60635,10 +61529,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60659,12 +61553,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60673,17 +61569,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60783,21 +61679,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -60821,12 +61711,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -60853,20 +61737,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -60878,19 +61752,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61580,10 +62441,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61699,6 +62562,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62216,7 +63091,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -67182,6 +68057,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68010,6 +68901,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/nb.po b/doc/translations/nb.po
index 15811a1ab0..2b78a146f1 100644
--- a/doc/translations/nb.po
+++ b/doc/translations/nb.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# slasken06 <ask.skivdal@gmail.com>, 2021.
@@ -60,6 +60,70 @@ msgstr ""
msgid "Method Descriptions"
msgstr ""
+#: doc/tools/make_rst.py
+msgid "Theme Property Descriptions"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Innebygde GDScript-funksjoner."
@@ -478,16 +542,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -537,8 +609,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -547,7 +622,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -555,7 +633,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1387,7 +1466,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2897,31 +2984,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6972,7 +7136,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11847,7 +12014,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11912,11 +12079,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11924,7 +12093,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11932,15 +12103,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11948,7 +12119,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12034,8 +12205,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12045,17 +12217,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12066,16 +12244,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12087,27 +12271,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12227,7 +12423,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12286,7 +12484,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12640,8 +12839,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12690,6 +12889,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13189,6 +13394,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13611,9 +13817,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13853,7 +14059,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14521,7 +14729,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16535,7 +16743,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17849,7 +18059,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -19359,6 +19569,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19376,11 +19593,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19460,8 +19679,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19904,10 +20134,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -19956,7 +20185,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20123,8 +20354,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20133,7 +20364,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21203,6 +21436,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21676,10 +21917,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22156,7 +22399,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22785,7 +23028,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23719,11 +23962,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -23796,7 +24039,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -25908,6 +26151,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26136,7 +26385,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26159,7 +26408,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28433,7 +28682,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28454,7 +28707,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28473,8 +28730,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28487,7 +28753,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28803,7 +29078,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28831,7 +29110,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29023,6 +29306,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29039,15 +29419,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29645,9 +30027,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30568,6 +30950,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33766,16 +34171,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33795,10 +34197,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33814,25 +34213,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33849,14 +34239,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -33864,35 +34251,389 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -33991,10 +34732,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34153,22 +34890,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34267,6 +35094,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37580,7 +38473,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42167,16 +43062,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42238,12 +43133,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42324,10 +43213,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45774,7 +46659,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45817,8 +46702,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -45830,6 +46716,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46684,12 +47583,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46818,15 +47717,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48085,14 +48975,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49137,7 +50019,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49320,7 +50202,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49427,7 +50309,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51473,7 +52355,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51497,19 +52379,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53207,7 +54108,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -53889,6 +54790,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57095,7 +58006,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57117,9 +58028,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58221,17 +59134,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58251,10 +59164,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58378,25 +59291,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60545,9 +61439,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60602,9 +61496,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60645,10 +61539,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60669,12 +61563,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60683,17 +61579,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60793,21 +61689,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -60831,12 +61721,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -60863,20 +61747,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -60888,19 +61762,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61590,10 +62451,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61709,6 +62572,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62226,7 +63101,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -67192,6 +68067,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68020,6 +68911,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/ne.po b/doc/translations/ne.po
new file mode 100644
index 0000000000..2c380d647b
--- /dev/null
+++ b/doc/translations/ne.po
@@ -0,0 +1,71069 @@
+# Nepali translation of the Godot Engine class reference.
+# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# This file is distributed under the same license as the Godot source code.
+#
+# Yuyutsu Poudel <yuyutsumadi@gmail.com>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: Godot Engine class reference\n"
+"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
+"PO-Revision-Date: 2021-12-30 03:38+0000\n"
+"Last-Translator: Yuyutsu Poudel <yuyutsumadi@gmail.com>\n"
+"Language-Team: Nepali <https://hosted.weblate.org/projects/godot-engine/"
+"godot-class-reference/ne/>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\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 4.10.1\n"
+
+#: doc/tools/make_rst.py
+msgid "Description"
+msgstr "विवरण"
+
+#: doc/tools/make_rst.py
+msgid "Tutorials"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Properties"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Methods"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Theme Properties"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Signals"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Enumerations"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Constants"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Property Descriptions"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Method Descriptions"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Theme Property Descriptions"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid "Built-in GDScript functions."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"List of core built-in GDScript functions. Math functions and other "
+"utilities. Everything else is provided by objects. (Keywords: builtin, built "
+"in, global functions.)"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns a color constructed from integer red, green, blue, and alpha "
+"channels. Each channel should have 8 bits of information ranging from 0 to "
+"255.\n"
+"[code]r8[/code] red channel\n"
+"[code]g8[/code] green channel\n"
+"[code]b8[/code] blue channel\n"
+"[code]a8[/code] alpha channel\n"
+"[codeblock]\n"
+"red = Color8(255, 0, 0)\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns a color according to the standardized [code]name[/code] with "
+"[code]alpha[/code] ranging from 0 to 1.\n"
+"[codeblock]\n"
+"red = ColorN(\"red\", 1)\n"
+"[/codeblock]\n"
+"Supported color names are the same as the constants defined in [Color]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the absolute value of parameter [code]s[/code] (i.e. positive "
+"value).\n"
+"[codeblock]\n"
+"a = abs(-1) # a is 1\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the arc cosine of [code]s[/code] in radians. Use to get the angle of "
+"cosine [code]s[/code]. [code]s[/code] must be between [code]-1.0[/code] and "
+"[code]1.0[/code] (inclusive), otherwise, [method acos] will return [constant "
+"NAN].\n"
+"[codeblock]\n"
+"# c is 0.523599 or 30 degrees if converted with rad2deg(s)\n"
+"c = acos(0.866025)\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the arc sine of [code]s[/code] in radians. Use to get the angle of "
+"sine [code]s[/code]. [code]s[/code] must be between [code]-1.0[/code] and "
+"[code]1.0[/code] (inclusive), otherwise, [method asin] will return [constant "
+"NAN].\n"
+"[codeblock]\n"
+"# s is 0.523599 or 30 degrees if converted with rad2deg(s)\n"
+"s = asin(0.5)\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Asserts that the [code]condition[/code] is [code]true[/code]. If the "
+"[code]condition[/code] is [code]false[/code], an error is generated. When "
+"running from the editor, the running project will also be paused until you "
+"resume it. This can be used as a stronger form of [method push_error] for "
+"reporting errors to project developers or add-on users.\n"
+"[b]Note:[/b] For performance reasons, the code inside [method assert] is "
+"only executed in debug builds or when running the project from the editor. "
+"Don't include code that has side effects in an [method assert] call. "
+"Otherwise, the project will behave differently when exported in release "
+"mode.\n"
+"The optional [code]message[/code] argument, if given, is shown in addition "
+"to the generic \"Assertion failed\" message. You can use this to provide "
+"additional details about why the assertion failed.\n"
+"[codeblock]\n"
+"# Imagine we always want speed to be between 0 and 20.\n"
+"var speed = -10\n"
+"assert(speed < 20) # True, the program will continue\n"
+"assert(speed >= 0) # False, the program will stop\n"
+"assert(speed >= 0 and speed < 20) # You can also combine the two conditional "
+"statements in one check\n"
+"assert(speed < 20, \"speed = %f, but the speed limit is 20\" % speed) # Show "
+"a message with clarifying details\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the arc tangent of [code]s[/code] in radians. Use it to get the "
+"angle from an angle's tangent in trigonometry: [code]atan(tan(angle)) == "
+"angle[/code].\n"
+"The method cannot know in which quadrant the angle should fall. See [method "
+"atan2] if you have both [code]y[/code] and [code]x[/code].\n"
+"[codeblock]\n"
+"a = atan(0.5) # a is 0.463648\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the arc tangent of [code]y/x[/code] in radians. Use to get the angle "
+"of tangent [code]y/x[/code]. To compute the value, the method takes into "
+"account the sign of both arguments in order to determine the quadrant.\n"
+"Important note: The Y coordinate comes first, by convention.\n"
+"[codeblock]\n"
+"a = atan2(0, -1) # a is 3.141593\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Decodes a byte array back to a value. When [code]allow_objects[/code] is "
+"[code]true[/code] decoding objects is allowed.\n"
+"[b]WARNING:[/b] Deserialized object can contain code which gets executed. Do "
+"not use this option if the serialized object comes from untrusted sources to "
+"avoid potential security threats (remote code execution)."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Converts a 2D point expressed in the cartesian coordinate system (X and Y "
+"axis) to the polar coordinate system (a distance from the origin and an "
+"angle)."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Rounds [code]s[/code] upward (towards positive infinity), returning the "
+"smallest whole number that is not less than [code]s[/code].\n"
+"[codeblock]\n"
+"a = ceil(1.45) # a is 2.0\n"
+"a = ceil(1.001) # a is 2.0\n"
+"[/codeblock]\n"
+"See also [method floor], [method round], [method stepify], and [int]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns a character as a String of the given Unicode code point (which is "
+"compatible with ASCII code).\n"
+"[codeblock]\n"
+"a = char(65) # a is \"A\"\n"
+"a = char(65 + 32) # a is \"a\"\n"
+"a = char(8364) # a is \"€\"\n"
+"[/codeblock]\n"
+"This is the inverse of [method ord]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Clamps [code]value[/code] and returns a value not less than [code]min[/code] "
+"and not more than [code]max[/code].\n"
+"[codeblock]\n"
+"a = clamp(1000, 1, 20) # a is 20\n"
+"a = clamp(-10, 1, 20) # a is 1\n"
+"a = clamp(15, 1, 20) # a is 15\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Converts from a type to another in the best way possible. The [code]type[/"
+"code] parameter uses the [enum Variant.Type] values.\n"
+"[codeblock]\n"
+"a = Vector2(1, 0)\n"
+"# Prints 1\n"
+"print(a.length())\n"
+"a = convert(a, TYPE_STRING)\n"
+"# Prints 6 as \"(1, 0)\" is 6 characters\n"
+"print(a.length())\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the cosine of angle [code]s[/code] in radians.\n"
+"[codeblock]\n"
+"a = cos(TAU) # a is 1.0\n"
+"a = cos(PI) # a is -1.0\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the hyperbolic cosine of [code]s[/code] in radians.\n"
+"[codeblock]\n"
+"print(cosh(1)) # Prints 1.543081\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid "Converts from decibels to linear energy (audio)."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid "Deprecated alias for [method step_decimals]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"[b]Note:[/b] [code]dectime[/code] has been deprecated and will be removed in "
+"Godot 4.0, please use [method move_toward] instead.\n"
+"Returns the result of [code]value[/code] decreased by [code]step[/code] * "
+"[code]amount[/code].\n"
+"[codeblock]\n"
+"a = dectime(60, 10, 0.1)) # a is 59.0\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Compares two values by checking their actual contents, recursing into any "
+"`Array` or `Dictionary` up to its deepest level.\n"
+"This compares to [code]==[/code] in a number of ways:\n"
+"- For [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/"
+"code], [code]Object[/code] and [code]RID[/code] both [code]deep_equal[/code] "
+"and [code]==[/code] work the same.\n"
+"- For [code]Dictionary[/code], [code]==[/code] considers equality if, and "
+"only if, both variables point to the very same [code]Dictionary[/code], with "
+"no recursion or awareness of the contents at all.\n"
+"- For [code]Array[/code], [code]==[/code] considers equality if, and only "
+"if, each item in the first [code]Array[/code] is equal to its counterpart in "
+"the second [code]Array[/code], as told by [code]==[/code] itself. That "
+"implies that [code]==[/code] recurses into [code]Array[/code], but not into "
+"[code]Dictionary[/code].\n"
+"In short, whenever a [code]Dictionary[/code] is potentially involved, if you "
+"want a true content-aware comparison, you have to use [code]deep_equal[/"
+"code]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Converts an angle expressed in degrees to radians.\n"
+"[codeblock]\n"
+"r = deg2rad(180) # r is 3.141593\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Converts a dictionary (previously created with [method inst2dict]) back to "
+"an instance. Useful for deserializing."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns an \"eased\" value of [code]x[/code] based on an easing function "
+"defined with [code]curve[/code]. This easing function is based on an "
+"exponent. The [code]curve[/code] can be any floating-point number, with "
+"specific values leading to the following behaviors:\n"
+"[codeblock]\n"
+"- Lower than -1.0 (exclusive): Ease in-out\n"
+"- 1.0: Linear\n"
+"- Between -1.0 and 0.0 (exclusive): Ease out-in\n"
+"- 0.0: Constant\n"
+"- Between 0.0 to 1.0 (exclusive): Ease out\n"
+"- 1.0: Linear\n"
+"- Greater than 1.0 (exclusive): Ease in\n"
+"[/codeblock]\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/3.4/img/"
+"ease_cheatsheet.png]ease() curve values cheatsheet[/url]\n"
+"See also [method smoothstep]. If you need to perform more advanced "
+"transitions, use [Tween] or [AnimationPlayer]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"The natural exponential function. It raises the mathematical constant [b]e[/"
+"b] to the power of [code]s[/code] and returns it.\n"
+"[b]e[/b] has an approximate value of 2.71828, and can be obtained with "
+"[code]exp(1)[/code].\n"
+"For exponents to other bases use the method [method pow].\n"
+"[codeblock]\n"
+"a = exp(2) # Approximately 7.39\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Rounds [code]s[/code] downward (towards negative infinity), returning the "
+"largest whole number that is not more than [code]s[/code].\n"
+"[codeblock]\n"
+"a = floor(2.45) # a is 2.0\n"
+"a = floor(2.99) # a is 2.0\n"
+"a = floor(-2.99) # a is -3.0\n"
+"[/codeblock]\n"
+"See also [method ceil], [method round], [method stepify], and [int].\n"
+"[b]Note:[/b] This method returns a float. If you need an integer and "
+"[code]s[/code] is a non-negative number, you can use [code]int(s)[/code] "
+"directly."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the floating-point remainder of [code]a/b[/code], keeping the sign "
+"of [code]a[/code].\n"
+"[codeblock]\n"
+"r = fmod(7, 5.5) # r is 1.5\n"
+"[/codeblock]\n"
+"For the integer remainder operation, use the % operator."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the floating-point modulus of [code]a/b[/code] that wraps equally in "
+"positive and negative.\n"
+"[codeblock]\n"
+"for i in 7:\n"
+" var x = 0.5 * i - 1.5\n"
+" print(\"%4.1f %4.1f %4.1f\" % [x, fmod(x, 1.5), fposmod(x, 1.5)])\n"
+"[/codeblock]\n"
+"Produces:\n"
+"[codeblock]\n"
+"-1.5 -0.0 0.0\n"
+"-1.0 -1.0 0.5\n"
+"-0.5 -0.5 1.0\n"
+" 0.0 0.0 0.0\n"
+" 0.5 0.5 0.5\n"
+" 1.0 1.0 1.0\n"
+" 1.5 0.0 0.0\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns a reference to the specified function [code]funcname[/code] in the "
+"[code]instance[/code] node. As functions aren't first-class objects in "
+"GDscript, use [code]funcref[/code] to store a [FuncRef] in a variable and "
+"call it later.\n"
+"[codeblock]\n"
+"func foo():\n"
+" return(\"bar\")\n"
+"\n"
+"a = funcref(self, \"foo\")\n"
+"print(a.call_func()) # Prints bar\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns an array of dictionaries representing the current call stack.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" foo()\n"
+"\n"
+"func foo():\n"
+" bar()\n"
+"\n"
+"func bar():\n"
+" print(get_stack())\n"
+"[/codeblock]\n"
+"would print\n"
+"[codeblock]\n"
+"[{function:bar, line:12, source:res://script.gd}, {function:foo, line:9, "
+"source:res://script.gd}, {function:_ready, line:6, source:res://script.gd}]\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the integer hash of the variable passed.\n"
+"[codeblock]\n"
+"print(hash(\"a\")) # Prints 177670\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the passed instance converted to a dictionary (useful for "
+"serializing).\n"
+"[codeblock]\n"
+"var foo = \"bar\"\n"
+"func _ready():\n"
+" var d = inst2dict(self)\n"
+" print(d.keys())\n"
+" print(d.values())\n"
+"[/codeblock]\n"
+"Prints out:\n"
+"[codeblock]\n"
+"[@subpath, @path, foo]\n"
+"[, res://test.gd, bar]\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the Object that corresponds to [code]instance_id[/code]. All Objects "
+"have a unique instance ID.\n"
+"[codeblock]\n"
+"var foo = \"bar\"\n"
+"func _ready():\n"
+" var id = get_instance_id()\n"
+" var inst = instance_from_id(id)\n"
+" print(inst.foo) # Prints bar\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
+"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
+"var middle = lerp(20, 30, 0.75)\n"
+"# `middle` is now 27.5.\n"
+"# Now, we pretend to have forgotten the original ratio and want to get it "
+"back.\n"
+"var ratio = inverse_lerp(20, 30, 27.5)\n"
+"# `ratio` is now 0.75.\n"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns [code]true[/code] if [code]a[/code] and [code]b[/code] are "
+"approximately equal to each other.\n"
+"Here, approximately equal means that [code]a[/code] and [code]b[/code] are "
+"within a small internal epsilon of each other, which scales with the "
+"magnitude of the numbers.\n"
+"Infinity values of the same sign are considered equal."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns whether [code]s[/code] is an infinity value (either positive "
+"infinity or negative infinity)."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns whether [code]instance[/code] is a valid object (e.g. has not been "
+"deleted from memory)."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns whether [code]s[/code] is a NaN (\"Not a Number\" or invalid) value."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns [code]true[/code] if [code]s[/code] is zero or almost zero.\n"
+"This method is faster than using [method is_equal_approx] with one value as "
+"zero."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns length of Variant [code]var[/code]. Length is the character count of "
+"String, element count of Array, size of Dictionary, etc.\n"
+"[b]Note:[/b] Generates a fatal error if Variant can not provide a length.\n"
+"[codeblock]\n"
+"a = [1, 2, 3, 4]\n"
+"len(a) # Returns 4\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
+"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
+"[float], the return value is a [float].\n"
+"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
+"return value will be of the same type ([code]lerp[/code] then calls the "
+"vector type's [code]linear_interpolate[/code] method).\n"
+"[codeblock]\n"
+"lerp(0, 4, 0.75) # Returns 3.0\n"
+"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Linearly interpolates between two angles (in radians) by a normalized "
+"value.\n"
+"Similar to [method lerp], but interpolates correctly when the angles wrap "
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
+"[codeblock]\n"
+"extends Sprite\n"
+"var elapsed = 0.0\n"
+"func _process(delta):\n"
+" var min_angle = deg2rad(0.0)\n"
+" var max_angle = deg2rad(90.0)\n"
+" rotation = lerp_angle(min_angle, max_angle, elapsed)\n"
+" elapsed += delta\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Converts from linear energy to decibels (audio). This can be used to "
+"implement volume sliders that behave as expected (since volume isn't "
+"linear). Example:\n"
+"[codeblock]\n"
+"# \"Slider\" refers to a node that inherits Range such as HSlider or "
+"VSlider.\n"
+"# Its range must be configured to go from 0 to 1.\n"
+"# Change the bus name if you'd like to change the volume of a specific bus "
+"only.\n"
+"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), "
+"linear2db($Slider.value))\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Loads a resource from the filesystem located at [code]path[/code]. The "
+"resource is loaded on the method call (unless it's referenced already "
+"elsewhere, e.g. in another script or in the scene), which might cause slight "
+"delay, especially when loading scenes. To avoid unnecessary delays when "
+"loading something multiple times, either store the resource in a variable or "
+"use [method preload].\n"
+"[b]Note:[/b] Resource paths can be obtained by right-clicking on a resource "
+"in the FileSystem dock and choosing \"Copy Path\" or by dragging the file "
+"from the FileSystem dock into the script.\n"
+"[codeblock]\n"
+"# Load a scene called main located in the root of the project directory and "
+"cache it in a variable.\n"
+"var main = load(\"res://main.tscn\") # main will contain a PackedScene "
+"resource.\n"
+"[/codeblock]\n"
+"[b]Important:[/b] The path must be absolute, a local path will just return "
+"[code]null[/code].\n"
+"This method is a simplified version of [method ResourceLoader.load], which "
+"can be used for more advanced scenarios."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Natural logarithm. The amount of time needed to reach a certain level of "
+"continuous growth.\n"
+"[b]Note:[/b] This is not the same as the \"log\" function on most "
+"calculators, which uses a base 10 logarithm.\n"
+"[codeblock]\n"
+"log(10) # Returns 2.302585\n"
+"[/codeblock]\n"
+"[b]Note:[/b] The logarithm of [code]0[/code] returns [code]-inf[/code], "
+"while negative values return [code]-nan[/code]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the maximum of two values.\n"
+"[codeblock]\n"
+"max(1, 2) # Returns 2\n"
+"max(-3.99, -4) # Returns -3.99\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the minimum of two values.\n"
+"[codeblock]\n"
+"min(1, 2) # Returns 1\n"
+"min(-3.99, -4) # Returns -4\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Moves [code]from[/code] toward [code]to[/code] by the [code]delta[/code] "
+"value.\n"
+"Use a negative [code]delta[/code] value to move away.\n"
+"[codeblock]\n"
+"move_toward(5, 10, 4) # Returns 9\n"
+"move_toward(10, 5, 4) # Returns 6\n"
+"move_toward(10, 5, -1.5) # Returns 11.5\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the nearest equal or larger power of 2 for integer [code]value[/"
+"code].\n"
+"In other words, returns the smallest value [code]a[/code] where [code]a = "
+"pow(2, n)[/code] such that [code]value <= a[/code] for some non-negative "
+"integer [code]n[/code].\n"
+"[codeblock]\n"
+"nearest_po2(3) # Returns 4\n"
+"nearest_po2(4) # Returns 4\n"
+"nearest_po2(5) # Returns 8\n"
+"\n"
+"nearest_po2(0) # Returns 0 (this may not be what you expect)\n"
+"nearest_po2(-1) # Returns 0 (this may not be what you expect)\n"
+"[/codeblock]\n"
+"[b]WARNING:[/b] Due to the way it is implemented, this function returns "
+"[code]0[/code] rather than [code]1[/code] for non-positive values of "
+"[code]value[/code] (in reality, 1 is the smallest integer power of 2)."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns an integer representing the Unicode code point of the given Unicode "
+"character [code]char[/code].\n"
+"[codeblock]\n"
+"a = ord(\"A\") # a is 65\n"
+"a = ord(\"a\") # a is 97\n"
+"a = ord(\"€\") # a is 8364\n"
+"[/codeblock]\n"
+"This is the inverse of [method char]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Parse JSON text to a Variant. (Use [method typeof] to check if the Variant's "
+"type is what you expect.)\n"
+"[b]Note:[/b] The JSON specification does not define integer or float types, "
+"but only a [i]number[/i] type. Therefore, parsing a JSON text will convert "
+"all numerical values to [float] types.\n"
+"[b]Note:[/b] JSON objects do not preserve key order like Godot dictionaries, "
+"thus, you should not rely on keys being in a certain order if a dictionary "
+"is constructed from JSON. In contrast, JSON arrays retain the order of their "
+"elements:\n"
+"[codeblock]\n"
+"var p = JSON.parse('[\"hello\", \"world\", \"!\"]')\n"
+"if typeof(p.result) == TYPE_ARRAY:\n"
+" print(p.result[0]) # Prints \"hello\"\n"
+"else:\n"
+" push_error(\"Unexpected results.\")\n"
+"[/codeblock]\n"
+"See also [JSON] for an alternative way to parse JSON text."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Converts a 2D point expressed in the polar coordinate system (a distance "
+"from the origin [code]r[/code] and an angle [code]th[/code]) to the "
+"cartesian coordinate system (X and Y axis)."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the integer modulus of [code]a/b[/code] that wraps equally in "
+"positive and negative.\n"
+"[codeblock]\n"
+"for i in range(-3, 4):\n"
+" print(\"%2d %2d %2d\" % [i, i % 3, posmod(i, 3)])\n"
+"[/codeblock]\n"
+"Produces:\n"
+"[codeblock]\n"
+"-3 0 0\n"
+"-2 -2 1\n"
+"-1 -1 2\n"
+" 0 0 0\n"
+" 1 1 1\n"
+" 2 2 2\n"
+" 3 0 0\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the result of [code]base[/code] raised to the power of [code]exp[/"
+"code].\n"
+"[codeblock]\n"
+"pow(2, 5) # Returns 32.0\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns a [Resource] from the filesystem located at [code]path[/code]. The "
+"resource is loaded during script parsing, i.e. is loaded with the script and "
+"[method preload] effectively acts as a reference to that resource. Note that "
+"the method requires a constant path. If you want to load a resource from a "
+"dynamic/variable path, use [method load].\n"
+"[b]Note:[/b] Resource paths can be obtained by right clicking on a resource "
+"in the Assets Panel and choosing \"Copy Path\" or by dragging the file from "
+"the FileSystem dock into the script.\n"
+"[codeblock]\n"
+"# Instance a scene.\n"
+"var diamond = preload(\"res://diamond.tscn\").instance()\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Converts one or more arguments of any type to string in the best way "
+"possible and prints them to the console.\n"
+"[codeblock]\n"
+"a = [1, 2, 3]\n"
+"print(\"a\", \"=\", a) # Prints a=[1, 2, 3]\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Consider using [method push_error] and [method push_warning] to "
+"print error and warning messages instead of [method print]. This "
+"distinguishes them from print messages used for debugging purposes, while "
+"also displaying a stack trace when an error or warning is printed."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid "Like [method print], but prints only when used in debug mode."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Prints a stack track at code location, only works when running with debugger "
+"turned on.\n"
+"Output in the console would look something like this:\n"
+"[codeblock]\n"
+"Frame 0 - res://test.gd:16 in function '_process'\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Prints one or more arguments to strings in the best way possible to standard "
+"error line.\n"
+"[codeblock]\n"
+"printerr(\"prints to stderr\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Prints one or more arguments to strings in the best way possible to console. "
+"No newline is added at the end.\n"
+"[codeblock]\n"
+"printraw(\"A\")\n"
+"printraw(\"B\")\n"
+"# Prints AB\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Due to limitations with Godot's built-in console, this only "
+"prints to the terminal. If you need to print in the editor, use another "
+"method, such as [method print]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Prints one or more arguments to the console with a space between each "
+"argument.\n"
+"[codeblock]\n"
+"prints(\"A\", \"B\", \"C\") # Prints A B C\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Prints one or more arguments to the console with a tab between each "
+"argument.\n"
+"[codeblock]\n"
+"printt(\"A\", \"B\", \"C\") # Prints A B C\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Pushes an error message to Godot's built-in debugger and to the OS "
+"terminal.\n"
+"[codeblock]\n"
+"push_error(\"test error\") # Prints \"test error\" to debugger and terminal "
+"as error call\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Errors printed this way will not pause project execution. To "
+"print an error message and pause project execution in debug builds, use "
+"[code]assert(false, \"test error\")[/code] instead."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Pushes a warning message to Godot's built-in debugger and to the OS "
+"terminal.\n"
+"[codeblock]\n"
+"push_warning(\"test warning\") # Prints \"test warning\" to debugger and "
+"terminal as warning call\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Converts an angle expressed in radians to degrees.\n"
+"[codeblock]\n"
+"rad2deg(0.523599) # Returns 30.0\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Random range, any floating point value between [code]from[/code] and "
+"[code]to[/code].\n"
+"[codeblock]\n"
+"prints(rand_range(0, 1), rand_range(0, 1)) # Prints e.g. 0.135591 0.405263\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Random from seed: pass a [code]seed[/code], and an array with both number "
+"and new seed is returned. \"Seed\" here refers to the internal state of the "
+"pseudo random number generator. The internal state of the current "
+"implementation is 64 bits."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns a random floating point value on the interval [code][0, 1][/code].\n"
+"[codeblock]\n"
+"randf() # Returns e.g. 0.375671\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns a random unsigned 32-bit integer. Use remainder to obtain a random "
+"value in the interval [code][0, N - 1][/code] (where N is smaller than "
+"2^32).\n"
+"[codeblock]\n"
+"randi() # Returns random integer between 0 and 2^32 - 1\n"
+"randi() % 20 # Returns random integer between 0 and 19\n"
+"randi() % 100 # Returns random integer between 0 and 99\n"
+"randi() % 100 + 1 # Returns random integer between 1 and 100\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Randomizes the seed (or the internal state) of the random number generator. "
+"Current implementation reseeds using a number based on time.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" randomize()\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns an array with the given range. Range can be 1 argument [code]N[/"
+"code] (0 to [code]N[/code] - 1), two arguments ([code]initial[/code], "
+"[code]final - 1[/code]) or three arguments ([code]initial[/code], "
+"[code]final - 1[/code], [code]increment[/code]). Returns an empty array if "
+"the range isn't valid (e.g. [code]range(2, 5, -1)[/code] or [code]range(5, "
+"5, 1)[/code]).\n"
+"Returns an array with the given range. [code]range()[/code] can have 1 "
+"argument N ([code]0[/code] to [code]N - 1[/code]), two arguments "
+"([code]initial[/code], [code]final - 1[/code]) or three arguments "
+"([code]initial[/code], [code]final - 1[/code], [code]increment[/code]). "
+"[code]increment[/code] can be negative. If [code]increment[/code] is "
+"negative, [code]final - 1[/code] will become [code]final + 1[/code]. Also, "
+"the initial value must be greater than the final value for the loop to run.\n"
+"[codeblock]\n"
+"print(range(4))\n"
+"print(range(2, 5))\n"
+"print(range(0, 6, 2))\n"
+"[/codeblock]\n"
+"Output:\n"
+"[codeblock]\n"
+"[0, 1, 2, 3]\n"
+"[2, 3, 4]\n"
+"[0, 2, 4]\n"
+"[/codeblock]\n"
+"To iterate over an [Array] backwards, use:\n"
+"[codeblock]\n"
+"var array = [3, 6, 9]\n"
+"var i := array.size() - 1\n"
+"while i >= 0:\n"
+" print(array[i])\n"
+" i -= 1\n"
+"[/codeblock]\n"
+"Output:\n"
+"[codeblock]\n"
+"9\n"
+"6\n"
+"3\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Maps a [code]value[/code] from range [code][istart, istop][/code] to [code]"
+"[ostart, ostop][/code].\n"
+"[codeblock]\n"
+"range_lerp(75, 0, 100, -1, 1) # Returns 0.5\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Rounds [code]s[/code] to the nearest whole number, with halfway cases "
+"rounded away from zero.\n"
+"[codeblock]\n"
+"a = round(2.49) # a is 2.0\n"
+"a = round(2.5) # a is 3.0\n"
+"a = round(2.51) # a is 3.0\n"
+"[/codeblock]\n"
+"See also [method floor], [method ceil], [method stepify], and [int]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Sets seed for the random number generator.\n"
+"[codeblock]\n"
+"my_seed = \"Godot Rocks\"\n"
+"seed(my_seed.hash())\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the sign of [code]s[/code]: -1 or 1. Returns 0 if [code]s[/code] is "
+"0.\n"
+"[codeblock]\n"
+"sign(-6) # Returns -1\n"
+"sign(0) # Returns 0\n"
+"sign(6) # Returns 1\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the sine of angle [code]s[/code] in radians.\n"
+"[codeblock]\n"
+"sin(0.523599) # Returns 0.5\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the hyperbolic sine of [code]s[/code].\n"
+"[codeblock]\n"
+"a = log(2.0) # Returns 0.693147\n"
+"sinh(a) # Returns 0.75\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the result of smoothly interpolating the value of [code]s[/code] "
+"between [code]0[/code] and [code]1[/code], based on the where [code]s[/code] "
+"lies with respect to the edges [code]from[/code] and [code]to[/code].\n"
+"The return value is [code]0[/code] if [code]s <= from[/code], and [code]1[/"
+"code] if [code]s >= to[/code]. If [code]s[/code] lies between [code]from[/"
+"code] and [code]to[/code], the returned value follows an S-shaped curve that "
+"maps [code]s[/code] between [code]0[/code] and [code]1[/code].\n"
+"This S-shaped curve is the cubic Hermite interpolator, given by [code]f(y) = "
+"3*y^2 - 2*y^3[/code] where [code]y = (x-from) / (to-from)[/code].\n"
+"[codeblock]\n"
+"smoothstep(0, 2, -5.0) # Returns 0.0\n"
+"smoothstep(0, 2, 0.5) # Returns 0.15625\n"
+"smoothstep(0, 2, 1.0) # Returns 0.5\n"
+"smoothstep(0, 2, 2.0) # Returns 1.0\n"
+"[/codeblock]\n"
+"Compared to [method ease] with a curve value of [code]-1.6521[/code], "
+"[method smoothstep] returns the smoothest possible curve with no sudden "
+"changes in the derivative. If you need to perform more advanced transitions, "
+"use [Tween] or [AnimationPlayer].\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/3.4/img/"
+"smoothstep_ease_comparison.png]Comparison between smoothstep() and ease(x, "
+"-1.6521) return values[/url]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the square root of [code]s[/code], where [code]s[/code] is a non-"
+"negative number.\n"
+"[codeblock]\n"
+"sqrt(9) # Returns 3\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Negative values of [code]s[/code] return NaN. If you need "
+"negative inputs, use [code]System.Numerics.Complex[/code] in C#."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the position of the first non-zero digit, after the decimal point. "
+"Note that the maximum return value is 10, which is a design decision in the "
+"implementation.\n"
+"[codeblock]\n"
+"n = step_decimals(5) # n is 0\n"
+"n = step_decimals(1.0005) # n is 4\n"
+"n = step_decimals(0.000000005) # n is 9\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Snaps float value [code]s[/code] to a given [code]step[/code]. This can also "
+"be used to round a floating point number to an arbitrary number of "
+"decimals.\n"
+"[codeblock]\n"
+"stepify(100, 32) # Returns 96.0\n"
+"stepify(3.14159, 0.01) # Returns 3.14\n"
+"[/codeblock]\n"
+"See also [method ceil], [method floor], [method round], and [int]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Converts one or more arguments of any type to string in the best way "
+"possible.\n"
+"[codeblock]\n"
+"var a = [10, 20, 30]\n"
+"var b = str(a);\n"
+"len(a) # Returns 3\n"
+"len(b) # Returns 12\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Converts a formatted string that was returned by [method var2str] to the "
+"original value.\n"
+"[codeblock]\n"
+"a = '{ \"a\": 1, \"b\": 2 }'\n"
+"b = str2var(a)\n"
+"print(b[\"a\"]) # Prints 1\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the tangent of angle [code]s[/code] in radians.\n"
+"[codeblock]\n"
+"tan(deg2rad(45)) # Returns 1\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the hyperbolic tangent of [code]s[/code].\n"
+"[codeblock]\n"
+"a = log(2.0) # a is 0.693147\n"
+"b = tanh(a) # b is 0.6\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Converts a [Variant] [code]var[/code] to JSON text and return the result. "
+"Useful for serializing data to store or send over the network.\n"
+"[codeblock]\n"
+"# Both numbers below are integers.\n"
+"a = { \"a\": 1, \"b\": 2 }\n"
+"b = to_json(a)\n"
+"print(b) # {\"a\":1, \"b\":2}\n"
+"# Both numbers above are floats, even if they display without any decimal "
+"places.\n"
+"[/codeblock]\n"
+"[b]Note:[/b] The JSON specification does not define integer or float types, "
+"but only a [i]number[/i] type. Therefore, converting a [Variant] to JSON "
+"text will convert all numerical values to [float] types.\n"
+"See also [JSON] for an alternative way to convert a [Variant] to JSON text."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns whether the given class exists in [ClassDB].\n"
+"[codeblock]\n"
+"type_exists(\"Sprite\") # Returns true\n"
+"type_exists(\"Variant\") # Returns false\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns the internal type of the given Variant object, using the [enum "
+"Variant.Type] values.\n"
+"[codeblock]\n"
+"p = parse_json('[\"a\", \"b\", \"c\"]')\n"
+"if typeof(p) == TYPE_ARRAY:\n"
+" print(p[0]) # Prints a\n"
+"else:\n"
+" print(\"unexpected results\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Checks that [code]json[/code] is valid JSON data. Returns an empty string if "
+"valid, or an error message otherwise.\n"
+"[codeblock]\n"
+"j = to_json([1, 2, 3])\n"
+"v = validate_json(j)\n"
+"if not v:\n"
+" print(\"Valid JSON.\")\n"
+"else:\n"
+" push_error(\"Invalid JSON: \" + v)\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Encodes a variable value to a byte array. When [code]full_objects[/code] is "
+"[code]true[/code] encoding objects is allowed (and can potentially include "
+"code)."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Converts a Variant [code]var[/code] to a formatted string that can later be "
+"parsed using [method str2var].\n"
+"[codeblock]\n"
+"a = { \"a\": 1, \"b\": 2 }\n"
+"print(var2str(a))\n"
+"[/codeblock]\n"
+"prints\n"
+"[codeblock]\n"
+"{\n"
+"\"a\": 1,\n"
+"\"b\": 2\n"
+"}\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Returns a weak reference to an object.\n"
+"A weak reference to an object is not enough to keep the object alive: when "
+"the only remaining references to a referent are weak references, garbage "
+"collection is free to destroy the referent and reuse its memory for "
+"something else. However, until the object is actually destroyed the weak "
+"reference may return the object even if there are no strong references to it."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Wraps float [code]value[/code] between [code]min[/code] and [code]max[/"
+"code].\n"
+"Usable for creating loop-alike behavior or infinite surfaces.\n"
+"[codeblock]\n"
+"# Infinite loop between 5.0 and 9.9\n"
+"value = wrapf(value + 0.1, 5.0, 10.0)\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# Infinite rotation (in radians)\n"
+"angle = wrapf(angle + 0.1, 0.0, TAU)\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# Infinite rotation (in radians)\n"
+"angle = wrapf(angle + 0.1, -PI, PI)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] If [code]min[/code] is [code]0[/code], this is equivalent to "
+"[method fposmod], so prefer using that instead.\n"
+"[code]wrapf[/code] is more flexible than using the [method fposmod] approach "
+"by giving the user control over the minimum value."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Wraps integer [code]value[/code] between [code]min[/code] and [code]max[/"
+"code].\n"
+"Usable for creating loop-alike behavior or infinite surfaces.\n"
+"[codeblock]\n"
+"# Infinite loop between 5 and 9\n"
+"frame = wrapi(frame + 1, 5, 10)\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# result is -2\n"
+"var result = wrapi(-6, -5, -1)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] If [code]min[/code] is [code]0[/code], this is equivalent to "
+"[method posmod], so prefer using that instead.\n"
+"[code]wrapi[/code] is more flexible than using the [method posmod] approach "
+"by giving the user control over the minimum value."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Stops the function execution and returns the current suspended state to the "
+"calling function.\n"
+"From the caller, call [method GDScriptFunctionState.resume] on the state to "
+"resume execution. This invalidates the state. Within the resumed function, "
+"[code]yield()[/code] returns whatever was passed to the [code]resume()[/"
+"code] function call.\n"
+"If passed an object and a signal, the execution is resumed when the object "
+"emits the given signal. In this case, [code]yield()[/code] returns the "
+"argument passed to [code]emit_signal()[/code] if the signal takes only one "
+"argument, or an array containing all the arguments passed to "
+"[code]emit_signal()[/code] if the signal takes multiple arguments.\n"
+"You can also use [code]yield[/code] to wait for a function to finish:\n"
+"[codeblock]\n"
+"func _ready():\n"
+" yield(countdown(), \"completed\") # waiting for the countdown() function "
+"to complete\n"
+" print('Ready')\n"
+"\n"
+"func countdown():\n"
+" yield(get_tree(), \"idle_frame\") # returns a GDScriptFunctionState "
+"object to _ready()\n"
+" print(3)\n"
+" yield(get_tree().create_timer(1.0), \"timeout\")\n"
+" print(2)\n"
+" yield(get_tree().create_timer(1.0), \"timeout\")\n"
+" print(1)\n"
+" yield(get_tree().create_timer(1.0), \"timeout\")\n"
+"\n"
+"# prints:\n"
+"# 3\n"
+"# 2\n"
+"# 1\n"
+"# Ready\n"
+"[/codeblock]\n"
+"When yielding on a function, the [code]completed[/code] signal will be "
+"emitted automatically when the function returns. It can, therefore, be used "
+"as the [code]signal[/code] parameter of the [code]yield[/code] method to "
+"resume.\n"
+"In order to yield on a function, the resulting function should also return a "
+"[code]GDScriptFunctionState[/code]. Notice [code]yield(get_tree(), "
+"\"idle_frame\")[/code] from the above example."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Constant that represents how many times the diameter of a circle fits around "
+"its perimeter. This is equivalent to [code]TAU / 2[/code]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"The circle constant, the circumference of the unit circle in radians. This "
+"is equivalent to [code]PI * 2[/code], or 360 degrees in rotations."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"Positive floating-point infinity. This is the result of floating-point "
+"division when the divisor is [code]0.0[/code]. For negative infinity, use "
+"[code]-INF[/code]. Dividing by [code]-0.0[/code] will result in negative "
+"infinity if the numerator is positive, so dividing by [code]0.0[/code] is "
+"not the same as dividing by [code]-0.0[/code] (despite [code]0.0 == -0.0[/"
+"code] returning [code]true[/code]).\n"
+"[b]Note:[/b] Numeric infinity is only a concept with floating-point numbers, "
+"and has no equivalent for integers. Dividing an integer number by [code]0[/"
+"code] will not result in [constant INF] and will result in a run-time error "
+"instead."
+msgstr ""
+
+#: modules/gdscript/doc_classes/@GDScript.xml
+msgid ""
+"\"Not a Number\", an invalid floating-point value. [constant NAN] has "
+"special properties, including that it is not equal to itself ([code]NAN == "
+"NAN[/code] returns [code]false[/code]). It is output by some invalid "
+"operations, such as dividing floating-point [code]0.0[/code] by [code]0.0[/"
+"code].\n"
+"[b]Note:[/b] \"Not a Number\" is only a concept with floating-point numbers, "
+"and has no equivalent for integers. Dividing an integer [code]0[/code] by "
+"[code]0[/code] will not result in [constant NAN] and will result in a run-"
+"time error instead."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Global scope constants and variables."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Global scope constants and variables. This is all that resides in the "
+"globals, constants regarding error codes, scancodes, property hints, etc.\n"
+"Singletons are also documented here, since they can be accessed from "
+"anywhere."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [ARVRServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [AudioServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [CameraServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [ClassDB] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [Engine] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [Geometry] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [IP] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [Input] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [InputMap] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [JSON] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"The [JavaClassWrapper] singleton.\n"
+"[b]Note:[/b] Only implemented on Android."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"The [JavaScript] singleton.\n"
+"[b]Note:[/b] Only implemented on HTML5."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [Marshalls] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [OS] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [Performance] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [Physics2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [PhysicsServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [ProjectSettings] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [ResourceLoader] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [ResourceSaver] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [Time] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [TranslationServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [VisualScriptEditor] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [VisualServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Left margin, usually used for [Control] or [StyleBox]-derived classes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Top margin, usually used for [Control] or [StyleBox]-derived classes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Right margin, usually used for [Control] or [StyleBox]-derived classes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Bottom margin, usually used for [Control] or [StyleBox]-derived classes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Top-left corner."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Top-right corner."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Bottom-right corner."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Bottom-left corner."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"General vertical alignment, usually used for [Separator], [ScrollBar], "
+"[Slider], etc."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"General horizontal alignment, usually used for [Separator], [ScrollBar], "
+"[Slider], etc."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Horizontal left alignment, usually for text-derived classes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Horizontal center alignment, usually for text-derived classes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Horizontal right alignment, usually for text-derived classes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Vertical top alignment, usually for text-derived classes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Vertical center alignment, usually for text-derived classes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Vertical bottom alignment, usually for text-derived classes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Scancodes with this bit applied are non-printable."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Escape key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Tab key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Shift+Tab key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Backspace key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Return key (on the main keyboard)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Enter key on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Insert key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Delete key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Pause key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Print Screen key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "System Request key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Clear key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Home key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "End key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Left arrow key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Up arrow key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Right arrow key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Down arrow key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Page Up key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Page Down key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Shift key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Control key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Meta key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Alt key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Caps Lock key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Num Lock key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Scroll Lock key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F1 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F2 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F3 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F4 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F5 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F6 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F7 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F8 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F9 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F10 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F11 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F12 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F13 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F14 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F15 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F16 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Multiply (*) key on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Divide (/) key on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Subtract (-) key on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Period (.) key on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Add (+) key on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 0 on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 1 on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 2 on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 3 on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 4 on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 5 on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 6 on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 7 on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 8 on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 9 on the numeric keypad."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Left Super key (Windows key)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Right Super key (Windows key)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Context menu key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Left Hyper key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Right Hyper key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Help key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Left Direction key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Right Direction key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Media back key. Not to be confused with the Back button on an Android device."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Media forward key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Media stop key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Media refresh key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Volume down key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Mute volume key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Volume up key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Bass Boost key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Bass up key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Bass down key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Treble up key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Treble down key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Media play key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Previous song key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Next song key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Media record key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Home page key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Favorites key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Search key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Standby key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Open URL / Launch Browser key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Mail key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Media key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut 0 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut 1 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut 2 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut 3 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut 4 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut 5 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut 6 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut 7 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut 8 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut 9 key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut A key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut B key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut C key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut D key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut E key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Launch Shortcut F key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Unknown key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Space key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "! key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "\" key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "# key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "$ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "% key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "& key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "' key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "( key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ") key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "* key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "+ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ", key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "- key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ". key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "/ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 0."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 1."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 2."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 3."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 4."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 5."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 6."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 7."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 8."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Number 9."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ": key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "; key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "< key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "= key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "> key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "? key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "@ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "A key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "B key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "C key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "D key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "E key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "F key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "G key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "H key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "I key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "J key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "K key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "L key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "M key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "N key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "O key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "P key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Q key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "R key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "S key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "T key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "U key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "V key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "W key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "X key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Y key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Z key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "[ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "\\ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "] key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "^ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "_ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "` key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "{ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "| key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "} key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "~ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Non-breakable space key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¡ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¢ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "£ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¤ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Â¥ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¦ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "§ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¨ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "© key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "ª key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "« key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¬ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Soft hyphen key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "® key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¯ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "° key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "± key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "² key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "³ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "´ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "µ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¶ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "· key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¸ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¹ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "º key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "» key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¼ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "½ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¾ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "¿ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "À key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ã key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Â key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ã key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ä key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ã… key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Æ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ç key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "È key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "É key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ê key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ë key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ì key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ã key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "ÃŽ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ã key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ã key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ñ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ã’ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ó key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ô key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Õ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ö key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "× key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ø key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ù key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ú key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Û key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ü key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ã key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Þ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "ß key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "÷ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "ÿ key."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Key Code mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Modifier key mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Shift key mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Alt key mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Meta key mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Ctrl key mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Command key mask. On macOS, this is equivalent to [constant KEY_MASK_META]. "
+"On other platforms, this is equivalent to [constant KEY_MASK_CTRL]. This "
+"mask should be preferred to [constant KEY_MASK_META] or [constant "
+"KEY_MASK_CTRL] for system shortcuts as it handles all platforms correctly."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Keypad key mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Group Switch key mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Left mouse button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Right mouse button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Middle mouse button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Extra mouse button 1 (only present on some mice)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Extra mouse button 2 (only present on some mice)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Mouse wheel up."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Mouse wheel down."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Mouse wheel left button (only present on some mice)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Mouse wheel right button (only present on some mice)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Left mouse button mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Right mouse button mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Middle mouse button mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Extra mouse button 1 mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Extra mouse button 2 mask."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Invalid button or axis."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 0."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 1."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 2."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 3."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 4."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 5."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 6."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 7."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 8."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 9."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 10."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 11."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 12."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 13."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 14."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 15."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 16."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 17."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 18."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 19."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 20."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 21."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button 22."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Represents the maximum number of joystick buttons supported."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "DualShock circle button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "DualShock X button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "DualShock square button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "DualShock triangle button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Xbox controller B button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Xbox controller A button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Xbox controller X button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Xbox controller Y button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Nintendo controller A button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Nintendo controller B button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Nintendo controller X button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Nintendo controller Y button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Grip (side) buttons on a VR controller."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Push down on the touchpad or main joystick on a VR controller."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Trigger on a VR controller."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"A button on the right Oculus Touch controller, X button on the left "
+"controller (also when used in OpenVR)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"B button on the right Oculus Touch controller, Y button on the left "
+"controller (also when used in OpenVR)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Menu button on either Oculus Touch controller."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Menu button in OpenVR (Except when Oculus Touch controllers are used)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button Select."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad button Start."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad DPad up."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad DPad down."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad DPad left."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad DPad right."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad SDL guide button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad SDL miscellaneous button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad SDL paddle 1 button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad SDL paddle 2 button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad SDL paddle 3 button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad SDL paddle 4 button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad SDL touchpad button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad left Shoulder button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad left trigger."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad left stick click."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad right Shoulder button."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad right trigger."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad right stick click."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad left stick horizontal axis."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad left stick vertical axis."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad right stick horizontal axis."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad right stick vertical axis."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Generic gamepad axis 4."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Generic gamepad axis 5."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad left trigger analog axis."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad right trigger analog axis."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Generic gamepad axis 8."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Generic gamepad axis 9."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Represents the maximum number of joystick axes supported."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad left analog trigger."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Gamepad right analog trigger."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "VR Controller analog trigger."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "VR Controller analog grip (side buttons)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"OpenVR touchpad X axis (Joystick axis on Oculus Touch and Windows MR "
+"controllers)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"OpenVR touchpad Y axis (Joystick axis on Oculus Touch and Windows MR "
+"controllers)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Methods that return [enum Error] return [constant OK] when no error "
+"occurred. Note that many functions don't return an error code but will print "
+"error messages to standard output.\n"
+"Since [constant OK] has value 0, and all other failure codes are positive "
+"integers, it can also be used in boolean checks, e.g.:\n"
+"[codeblock]\n"
+"var err = method_that_returns_error()\n"
+"if err != OK:\n"
+" print(\"Failure!\")\n"
+"# Or, equivalent:\n"
+"if err:\n"
+" print(\"Still failing!\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Generic error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Unavailable error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Unconfigured error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Unauthorized error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Parameter range error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Out of memory (OOM) error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: Not found error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: Bad drive error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: Bad path error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: No permission error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: Already in use error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: Can't open error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: Can't write error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: Can't read error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: Unrecognized error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: Corrupt error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: Missing dependencies error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "File: End of file (EOF) error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Can't open error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Can't create error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Query failed error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Already in use error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Locked error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Timeout error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Can't connect error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Can't resolve error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Connection error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Can't acquire resource error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Can't fork process error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Invalid data error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Invalid parameter error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Already exists error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Does not exist error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Database: Read error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Database: Write error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Compilation failed error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Method not found error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Linking failed error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Script failed error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Cycling link (import cycle) error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Invalid declaration error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Duplicate symbol error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Parse error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Busy error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Skip error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Help error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Bug error."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Printer on fire error. (This is an easter egg, no engine methods return this "
+"error code.)"
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "No hint for the edited property."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that an integer or float property should be within a range specified "
+"via the hint string [code]\"min,max\"[/code] or [code]\"min,max,step\"[/"
+"code]. The hint string can optionally include [code]\"or_greater\"[/code] "
+"and/or [code]\"or_lesser\"[/code] to allow manual input going respectively "
+"above the max or below the min values. Example: [code]\"-360,360,1,"
+"or_greater,or_lesser\"[/code]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that a float property should be within an exponential range specified "
+"via the hint string [code]\"min,max\"[/code] or [code]\"min,max,step\"[/"
+"code]. The hint string can optionally include [code]\"or_greater\"[/code] "
+"and/or [code]\"or_lesser\"[/code] to allow manual input going respectively "
+"above the max or below the min values. Example: [code]\"0.01,100,0.01,"
+"or_greater\"[/code]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that an integer, float or string property is an enumerated value to "
+"pick in a list specified via a hint string such as [code]\"Hello,Something,"
+"Else\"[/code]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that a float property should be edited via an exponential easing "
+"function. The hint string can include [code]\"attenuation\"[/code] to flip "
+"the curve horizontally and/or [code]\"inout\"[/code] to also include in/out "
+"easing."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Deprecated hint, unused."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that an integer property is a bitmask with named bit flags. For "
+"example, to allow toggling bits 0, 1, 2 and 4, the hint could be something "
+"like [code]\"Bit0,Bit1,Bit2,,Bit4\"[/code]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that an integer property is a bitmask using the optionally named 2D "
+"render layers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that an integer property is a bitmask using the optionally named 2D "
+"physics layers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that an integer property is a bitmask using the optionally named 3D "
+"render layers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that an integer property is a bitmask using the optionally named 3D "
+"physics layers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that a string property is a path to a file. Editing it will show a "
+"file dialog for picking the path. The hint string can be a set of filters "
+"with wildcards like [code]\"*.png,*.jpg\"[/code]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that a string property is a path to a directory. Editing it will show "
+"a file dialog for picking the path."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that a string property is an absolute path to a file outside the "
+"project folder. Editing it will show a file dialog for picking the path. The "
+"hint string can be a set of filters with wildcards like [code]\"*.png,*.jpg"
+"\"[/code]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that a string property is an absolute path to a directory outside the "
+"project folder. Editing it will show a file dialog for picking the path."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that a property is an instance of a [Resource]-derived type, "
+"optionally specified via the hint string (e.g. [code]\"Texture\"[/code]). "
+"Editing it will show a popup menu of valid resource types to instantiate."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that a string property is text with line breaks. Editing it will show "
+"a text input field where line breaks can be typed."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that a string property should have a placeholder text visible on its "
+"input field, whenever the property is empty. The hint string is the "
+"placeholder text to use."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hints that a color property should be edited without changing its alpha "
+"component, i.e. only R, G and B channels are edited."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Hints that an image is compressed using lossy compression."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Hints that an image is compressed using lossless compression."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The property is serialized and saved in the scene file (default)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The property is shown in the editor inspector (default)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Deprecated usage flag, unused."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The property can be checked in the editor inspector."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The property is checked in the editor inspector."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The property is a translatable string."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Used to group properties together in the editor."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Used to categorize properties together in the editor."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The property does not save its state in [PackedScene]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Editing the property prompts the user for restarting the editor."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"The property is a script variable which should be serialized and saved in "
+"the scene file."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Default usage (storage, editor and network)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Default usage for translatable strings (storage, editor, network and "
+"internationalized)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"Default usage but without showing the property in the editor (storage, "
+"network)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Flag for a normal method."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Flag for an editor method."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Deprecated method flag, unused."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Flag for a constant method."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Flag for a virtual method."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Default method flags."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is [code]null[/code]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [bool]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [int]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [float] (real)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [String]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Vector2]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Rect2]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Vector3]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Transform2D]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Plane]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Quat]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [AABB]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Basis]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Transform]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Color]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [NodePath]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [RID]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Object]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Dictionary]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [Array]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [PoolByteArray]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [PoolIntArray]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [PoolRealArray]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [PoolStringArray]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Variable is of type [PoolColorArray]."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Represents the size of the [enum Variant.Type] enum."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Equality operator ([code]==[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Inequality operator ([code]!=[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Less than operator ([code]<[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Less than or equal operator ([code]<=[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Greater than operator ([code]>[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Greater than or equal operator ([code]>=[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Addition operator ([code]+[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Subtraction operator ([code]-[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Multiplication operator ([code]*[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Division operator ([code]/[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Unary negation operator ([code]-[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Unary plus operator ([code]+[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Remainder/modulo operator ([code]%[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "String concatenation operator ([code]+[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Left shift operator ([code]<<[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Right shift operator ([code]>>[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Bitwise AND operator ([code]&[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Bitwise OR operator ([code]|[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Bitwise XOR operator ([code]^[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Bitwise NOT operator ([code]~[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Logical AND operator ([code]and[/code] or [code]&&[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Logical OR operator ([code]or[/code] or [code]||[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Logical XOR operator (not implemented in GDScript)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Logical NOT operator ([code]not[/code] or [code]![/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Logical IN operator ([code]in[/code])."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "Represents the size of the [enum Variant.Operator] enum."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Axis-Aligned Bounding Box."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"[AABB] consists of a position, a size, and several utility functions. It is "
+"typically used for fast overlap tests.\n"
+"It uses floating-point coordinates. The 2D counterpart to [AABB] is "
+"[Rect2].\n"
+"Negative values for [member size] are not supported and will not work for "
+"most methods. Use [method abs] to get an AABB with a positive size.\n"
+"[b]Note:[/b] Unlike [Rect2], [AABB] does not have a variant that uses "
+"integer coordinates."
+msgstr ""
+
+#: doc/classes/AABB.xml doc/classes/Basis.xml doc/classes/Plane.xml
+#: doc/classes/Rect2.xml doc/classes/Transform.xml doc/classes/Transform2D.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "$DOCS_URL/tutorials/math/index.html"
+msgstr ""
+
+#: doc/classes/AABB.xml doc/classes/Rect2.xml doc/classes/Vector2.xml
+#: doc/classes/Vector3.xml
+msgid "$DOCS_URL/tutorials/math/vector_math.html"
+msgstr ""
+
+#: doc/classes/AABB.xml doc/classes/Rect2.xml doc/classes/Vector2.xml
+#: doc/classes/Vector3.xml
+msgid "$DOCS_URL/tutorials/math/vectors_advanced.html"
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Constructs an [AABB] from a position and size."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns an AABB with equivalent position and size, modified so that the most-"
+"negative corner is the origin and the size is positive."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns [code]true[/code] if this [AABB] completely encloses another one."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns a copy of this [AABB] expanded to include a given point.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"# position (-3, 2, 0), size (1, 1, 1)\n"
+"var box = AABB(Vector3(-3, 2, 0), Vector3(1, 1, 1))\n"
+"# position (-3, -1, 0), size (3, 4, 2), so we fit both the original AABB and "
+"Vector3(0, -1, 2)\n"
+"var box2 = box.expand(Vector3(0, -1, 2))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Returns the volume of the [AABB]."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns the center of the [AABB], which is equal to [member position] + "
+"([member size] / 2)."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Gets the position of the 8 endpoints of the [AABB] in space."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Returns the normalized longest axis of the [AABB]."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns the index of the longest axis of the [AABB] (according to "
+"[Vector3]'s [code]AXIS_*[/code] constants)."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Returns the scalar length of the longest axis of the [AABB]."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Returns the normalized shortest axis of the [AABB]."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns the index of the shortest axis of the [AABB] (according to "
+"[Vector3]::AXIS* enum)."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Returns the scalar length of the shortest axis of the [AABB]."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns the support point in a given direction. This is useful for collision "
+"detection algorithms."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns a copy of the [AABB] grown a given amount of units towards all the "
+"sides."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Returns [code]true[/code] if the [AABB] is flat or empty."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Returns [code]true[/code] if the [AABB] is empty."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Returns [code]true[/code] if the [AABB] contains a point."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns the intersection between two [AABB]. An empty AABB (size 0,0,0) is "
+"returned on failure."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Returns [code]true[/code] if the [AABB] overlaps with another."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid "Returns [code]true[/code] if the [AABB] is on both sides of a plane."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns [code]true[/code] if the [AABB] intersects the line segment between "
+"[code]from[/code] and [code]to[/code]."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns [code]true[/code] if this [AABB] and [code]aabb[/code] are "
+"approximately equal, by calling [method @GDScript.is_equal_approx] on each "
+"component."
+msgstr ""
+
+#: doc/classes/AABB.xml
+msgid ""
+"Returns a larger [AABB] that contains both this [AABB] and [code]with[/code]."
+msgstr ""
+
+#: doc/classes/AABB.xml doc/classes/Rect2.xml
+msgid ""
+"Ending corner. This is calculated as [code]position + size[/code]. Setting "
+"this value will change the size."
+msgstr ""
+
+#: doc/classes/AABB.xml doc/classes/Rect2.xml
+msgid "Beginning corner. Typically has values lower than [member end]."
+msgstr ""
+
+#: doc/classes/AABB.xml doc/classes/Rect2.xml
+msgid ""
+"Size from [member position] to [member end]. Typically, all components are "
+"positive.\n"
+"If the size is negative, you can use [method abs] to fix it."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid "Base dialog for user notification."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid ""
+"This dialog is useful for small notifications to the user about an event. It "
+"can only be accepted or closed, with the same result."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid ""
+"Adds a button with label [code]text[/code] and a custom [code]action[/code] "
+"to the dialog and returns the created button. [code]action[/code] will be "
+"passed to the [signal custom_action] signal when pressed.\n"
+"If [code]true[/code], [code]right[/code] will place the button to the right "
+"of any sibling buttons.\n"
+"You can use [method remove_button] method to remove a button created with "
+"this method from the dialog."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid ""
+"Adds a button with label [code]name[/code] and a cancel action to the dialog "
+"and returns the created button.\n"
+"You can use [method remove_button] method to remove a button created with "
+"this method from the dialog."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid ""
+"Returns the label used for built-in text.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid ""
+"Returns the OK [Button] instance.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid ""
+"Registers a [LineEdit] in the dialog. When the enter key is pressed, the "
+"dialog will be accepted."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid ""
+"Removes the [code]button[/code] from the dialog. Does NOT free the "
+"[code]button[/code]. The [code]button[/code] must be a [Button] added with "
+"[method add_button] or [method add_cancel] method. After removal, pressing "
+"the [code]button[/code] will no longer emit this dialog's [signal "
+"custom_action] signal or cancel this dialog."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid "Sets autowrapping for the text in the dialog."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid ""
+"If [code]true[/code], the dialog is hidden when the OK button is pressed. "
+"You can set it to [code]false[/code] if you want to do e.g. input validation "
+"when receiving the [signal confirmed] signal, and handle hiding the dialog "
+"in your own logic.\n"
+"[b]Note:[/b] Some nodes derived from this class can have a different default "
+"value, and potentially their own built-in logic overriding this setting. For "
+"example [FileDialog] defaults to [code]false[/code], and has its own input "
+"validation code that is called when you press OK, which eventually hides the "
+"dialog if the input is valid. As such, this property can't be used in "
+"[FileDialog] to disable hiding the dialog when pressing OK."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid "The text displayed by the dialog."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid "Emitted when the dialog is accepted, i.e. the OK button is pressed."
+msgstr ""
+
+#: doc/classes/AcceptDialog.xml
+msgid "Emitted when a custom button is pressed. See [method add_button]."
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid "Interface to low level AES encryption features."
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid ""
+"This class provides access to AES encryption/decryption of raw data. Both "
+"AES-ECB and AES-CBC mode are supported.\n"
+"[codeblock]\n"
+"extends Node\n"
+"\n"
+"var aes = AESContext.new()\n"
+"\n"
+"func _ready():\n"
+" var key = \"My secret key!!!\" # Key must be either 16 or 32 bytes.\n"
+" var data = \"My secret text!!\" # Data size must be multiple of 16 "
+"bytes, apply padding if needed.\n"
+" # Encrypt ECB\n"
+" aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8())\n"
+" var encrypted = aes.update(data.to_utf8())\n"
+" aes.finish()\n"
+" # Decrypt ECB\n"
+" aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8())\n"
+" var decrypted = aes.update(encrypted)\n"
+" aes.finish()\n"
+" # Check ECB\n"
+" assert(decrypted == data.to_utf8())\n"
+"\n"
+" var iv = \"My secret iv!!!!\" # IV must be of exactly 16 bytes.\n"
+" # Encrypt CBC\n"
+" aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8(), iv.to_utf8())\n"
+" encrypted = aes.update(data.to_utf8())\n"
+" aes.finish()\n"
+" # Decrypt CBC\n"
+" aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8(), iv.to_utf8())\n"
+" decrypted = aes.update(encrypted)\n"
+" aes.finish()\n"
+" # Check CBC\n"
+" assert(decrypted == data.to_utf8())\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid "Close this AES context so it can be started again. See [method start]."
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid ""
+"Get the current IV state for this context (IV gets updated when calling "
+"[method update]). You normally don't need this function.\n"
+"[b]Note:[/b] This function only makes sense when the context is started with "
+"[constant MODE_CBC_ENCRYPT] or [constant MODE_CBC_DECRYPT]."
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid ""
+"Start the AES context in the given [code]mode[/code]. A [code]key[/code] of "
+"either 16 or 32 bytes must always be provided, while an [code]iv[/code] "
+"(initialization vector) of exactly 16 bytes, is only needed when [code]mode[/"
+"code] is either [constant MODE_CBC_ENCRYPT] or [constant MODE_CBC_DECRYPT]."
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid ""
+"Run the desired operation for this AES context. Will return a "
+"[PoolByteArray] containing the result of encrypting (or decrypting) the "
+"given [code]src[/code]. See [method start] for mode of operation.\n"
+"[b]Note:[/b] The size of [code]src[/code] must be a multiple of 16. Apply "
+"some padding if needed."
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid "AES electronic codebook encryption mode."
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid "AES electronic codebook decryption mode."
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid "AES cipher blocker chaining encryption mode."
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid "AES cipher blocker chaining decryption mode."
+msgstr ""
+
+#: doc/classes/AESContext.xml
+msgid "Maximum value for the mode enum."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml
+msgid "Sprite node that can use multiple textures for animation."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml
+msgid ""
+"Animations are created using a [SpriteFrames] resource, which can be "
+"configured in the editor via the SpriteFrames panel.\n"
+"[b]Note:[/b] You can associate a set of normal maps by creating additional "
+"[SpriteFrames] resources with a [code]_normal[/code] suffix. For example, "
+"having 2 [SpriteFrames] resources [code]run[/code] and [code]run_normal[/"
+"code] will make it so the [code]run[/code] animation uses the normal map."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
+#: doc/classes/AnimationPlayer.xml
+msgid "$DOCS_URL/tutorials/2d/2d_sprite_animation.html"
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/Area2D.xml
+#: doc/classes/AudioStreamPlayer.xml doc/classes/Button.xml
+#: doc/classes/CanvasLayer.xml doc/classes/CollisionShape2D.xml
+#: doc/classes/ColorRect.xml doc/classes/Input.xml doc/classes/InputEvent.xml
+#: doc/classes/InputEventAction.xml doc/classes/Label.xml
+#: doc/classes/Particles2D.xml doc/classes/Timer.xml
+#: doc/classes/VisibilityNotifier2D.xml
+msgid "https://godotengine.org/asset-library/asset/515"
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml
+msgid ""
+"Plays the animation named [code]anim[/code]. If no [code]anim[/code] is "
+"provided, the current animation is played. If [code]backwards[/code] is "
+"[code]true[/code], the animation will be played in reverse."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
+msgid "Stops the current animation (does not reset the frame counter)."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
+msgid ""
+"The current animation from the [code]frames[/code] resource. If this value "
+"changes, the [code]frame[/code] counter is reset."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/SpriteBase3D.xml
+msgid "If [code]true[/code], texture will be centered."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/Sprite.xml
+#: doc/classes/SpriteBase3D.xml doc/classes/TextureButton.xml
+#: doc/classes/TextureRect.xml
+msgid "If [code]true[/code], texture is flipped horizontally."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/Sprite.xml
+#: doc/classes/SpriteBase3D.xml doc/classes/TextureButton.xml
+#: doc/classes/TextureRect.xml
+msgid "If [code]true[/code], texture is flipped vertically."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
+msgid "The displayed animation frame's index."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
+msgid "The [SpriteFrames] resource containing the animation(s)."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/Sprite.xml
+#: doc/classes/SpriteBase3D.xml
+msgid "The texture's drawing offset."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
+msgid "If [code]true[/code], the [member animation] is currently playing."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml
+msgid "The animation speed is multiplied by this value."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
+msgid ""
+"Emitted when the animation is finished (when it plays the last frame). If "
+"the animation is looping, this signal is emitted every time the last frame "
+"is drawn."
+msgstr ""
+
+#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
+msgid "Emitted when [member frame] changed."
+msgstr ""
+
+#: doc/classes/AnimatedSprite3D.xml
+msgid ""
+"2D sprite node in 3D world, that can use multiple 2D textures for animation."
+msgstr ""
+
+#: doc/classes/AnimatedSprite3D.xml
+msgid ""
+"Animations are created using a [SpriteFrames] resource, which can be "
+"configured in the editor via the SpriteFrames panel."
+msgstr ""
+
+#: doc/classes/AnimatedSprite3D.xml
+msgid "Returns [code]true[/code] if an animation is currently being played."
+msgstr ""
+
+#: doc/classes/AnimatedSprite3D.xml
+msgid ""
+"Plays the animation named [code]anim[/code]. If no [code]anim[/code] is "
+"provided, the current animation is played."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid "Proxy texture for simple frame-based animations."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid ""
+"[AnimatedTexture] is a resource format for frame-based animations, where "
+"multiple textures can be chained automatically with a predefined delay for "
+"each frame. Unlike [AnimationPlayer] or [AnimatedSprite], it isn't a [Node], "
+"but has the advantage of being usable anywhere a [Texture] resource can be "
+"used, e.g. in a [TileSet].\n"
+"The playback of the animation is controlled by the [member fps] property as "
+"well as each frame's optional delay (see [method set_frame_delay]). The "
+"animation loops, i.e. it will restart at frame 0 automatically after playing "
+"the last frame.\n"
+"[AnimatedTexture] currently requires all frame textures to have the same "
+"size, otherwise the bigger ones will be cropped to match the smallest one.\n"
+"[b]Note:[/b] AnimatedTexture doesn't support using [AtlasTexture]s. Each "
+"frame needs to be a separate [Texture]."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid "Returns the given frame's delay value."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid "Returns the given frame's [Texture]."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid ""
+"Sets an additional delay (in seconds) between this frame and the next one, "
+"that will be added to the time interval defined by [member fps]. By default, "
+"frames have no delay defined. If a delay value is defined, the final time "
+"interval between this frame and the next will be [code]1.0 / fps + delay[/"
+"code].\n"
+"For example, for an animation with 3 frames, 2 FPS and a frame delay on the "
+"second frame of 1.2, the resulting playback will be:\n"
+"[codeblock]\n"
+"Frame 0: 0.5 s (1 / fps)\n"
+"Frame 1: 1.7 s (1 / fps + 1.2)\n"
+"Frame 2: 0.5 s (1 / fps)\n"
+"Total duration: 2.7 s\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid ""
+"Assigns a [Texture] to the given frame. Frame IDs start at 0, so the first "
+"frame has ID 0, and the last frame of the animation has ID [member frames] - "
+"1.\n"
+"You can define any number of textures up to [constant MAX_FRAMES], but keep "
+"in mind that only frames from 0 to [member frames] - 1 will be part of the "
+"animation."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid "Sets the currently visible frame of the texture."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid ""
+"Animation speed in frames per second. This value defines the default time "
+"interval between two frames of the animation, and thus the overall duration "
+"of the animation loop based on the [member frames] property. A value of 0 "
+"means no predefined number of frames per second, the animation will play "
+"according to each frame's frame delay (see [method set_frame_delay]).\n"
+"For example, an animation with 8 frames, no frame delay and a [code]fps[/"
+"code] value of 2 will run for 4 seconds, with each frame lasting 0.5 seconds."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid ""
+"Number of frames to use in the animation. While you can create the frames "
+"independently with [method set_frame_texture], you need to set this value "
+"for the animation to take new frames into account. The maximum number of "
+"frames is [constant MAX_FRAMES]."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid ""
+"If [code]true[/code], the animation will only play once and will not loop "
+"back to the first frame after reaching the end. Note that reaching the end "
+"will not set [member pause] to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid ""
+"If [code]true[/code], the animation will pause where it currently is (i.e. "
+"at [member current_frame]). The animation will continue from where it was "
+"paused when changing this property to [code]false[/code]."
+msgstr ""
+
+#: doc/classes/AnimatedTexture.xml
+msgid ""
+"The maximum number of frames supported by [AnimatedTexture]. If you need "
+"more frames in your animation, use [AnimationPlayer] or [AnimatedSprite]."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Contains data used to animate everything in the engine."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"An Animation resource contains data used to animate everything in the "
+"engine. Animations are divided into tracks, and each track must be linked to "
+"a node. The state of that node can be changed through time, by adding timed "
+"keys (events) to the track.\n"
+"[codeblock]\n"
+"# This creates an animation that makes the node \"Enemy\" move to the right "
+"by\n"
+"# 100 pixels in 0.5 seconds.\n"
+"var animation = Animation.new()\n"
+"var track_index = animation.add_track(Animation.TYPE_VALUE)\n"
+"animation.track_set_path(track_index, \"Enemy:position:x\")\n"
+"animation.track_insert_key(track_index, 0.0, 0)\n"
+"animation.track_insert_key(track_index, 0.5, 100)\n"
+"[/codeblock]\n"
+"Animations are just data containers, and must be added to nodes such as an "
+"[AnimationPlayer] or [AnimationTreePlayer] to be played back. Animation "
+"tracks have different types, each with its own set of dedicated methods. "
+"Check [enum TrackType] to see available types."
+msgstr ""
+
+#: doc/classes/Animation.xml doc/classes/AnimationPlayer.xml
+msgid "$DOCS_URL/tutorials/animation/index.html"
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Adds a track to the Animation."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the animation name at the key identified by [code]key_idx[/code]. "
+"The [code]track_idx[/code] must be the index of an Animation Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Inserts a key with value [code]animation[/code] at the given [code]time[/"
+"code] (in seconds). The [code]track_idx[/code] must be the index of an "
+"Animation Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Sets the key identified by [code]key_idx[/code] to value [code]animation[/"
+"code]. The [code]track_idx[/code] must be the index of an Animation Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the end offset of the key identified by [code]key_idx[/code]. The "
+"[code]track_idx[/code] must be the index of an Audio Track.\n"
+"End offset is the number of seconds cut off at the ending of the audio "
+"stream."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the start offset of the key identified by [code]key_idx[/code]. The "
+"[code]track_idx[/code] must be the index of an Audio Track.\n"
+"Start offset is the number of seconds cut off at the beginning of the audio "
+"stream."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the audio stream of the key identified by [code]key_idx[/code]. The "
+"[code]track_idx[/code] must be the index of an Audio Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Inserts an Audio Track key at the given [code]time[/code] in seconds. The "
+"[code]track_idx[/code] must be the index of an Audio Track.\n"
+"[code]stream[/code] is the [AudioStream] resource to play. "
+"[code]start_offset[/code] is the number of seconds cut off at the beginning "
+"of the audio stream, while [code]end_offset[/code] is at the ending."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Sets the end offset of the key identified by [code]key_idx[/code] to value "
+"[code]offset[/code]. The [code]track_idx[/code] must be the index of an "
+"Audio Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Sets the start offset of the key identified by [code]key_idx[/code] to value "
+"[code]offset[/code]. The [code]track_idx[/code] must be the index of an "
+"Audio Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Sets the stream of the key identified by [code]key_idx[/code] to value "
+"[code]stream[/code]. The [code]track_idx[/code] must be the index of an "
+"Audio Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the in handle of the key identified by [code]key_idx[/code]. The "
+"[code]track_idx[/code] must be the index of a Bezier Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the out handle of the key identified by [code]key_idx[/code]. The "
+"[code]track_idx[/code] must be the index of a Bezier Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the value of the key identified by [code]key_idx[/code]. The "
+"[code]track_idx[/code] must be the index of a Bezier Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Inserts a Bezier Track key at the given [code]time[/code] in seconds. The "
+"[code]track_idx[/code] must be the index of a Bezier Track.\n"
+"[code]in_handle[/code] is the left-side weight of the added Bezier curve "
+"point, [code]out_handle[/code] is the right-side one, while [code]value[/"
+"code] is the actual value at this point."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the interpolated value at the given [code]time[/code] (in seconds). "
+"The [code]track_idx[/code] must be the index of a Bezier Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Sets the in handle of the key identified by [code]key_idx[/code] to value "
+"[code]in_handle[/code]. The [code]track_idx[/code] must be the index of a "
+"Bezier Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Sets the out handle of the key identified by [code]key_idx[/code] to value "
+"[code]out_handle[/code]. The [code]track_idx[/code] must be the index of a "
+"Bezier Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Sets the value of the key identified by [code]key_idx[/code] to the given "
+"value. The [code]track_idx[/code] must be the index of a Bezier Track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Clear the animation (clear all tracks and reset all)."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Adds a new track that is a copy of the given track from [code]to_animation[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the index of the specified track. If the track is not found, return "
+"-1."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Returns the amount of tracks in the animation."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns all the key indices of a method track, given a position and delta "
+"time."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Returns the method name of a method track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the arguments values to be called on a method track for a given key "
+"in a given track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Removes a track by specifying the track index."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Finds the key index by time in a given track. Optionally, only find it if "
+"the exact time is given."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns [code]true[/code] if the track at [code]idx[/code] wraps the "
+"interpolation loop. New tracks wrap the interpolation loop by default."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Returns the interpolation type of a given track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Returns the amount of keys in a given track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Returns the time at which the key is located."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the transition curve (easing) for a specific key (see the built-in "
+"math function [method @GDScript.ease])."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Returns the value of a given key in a given track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Gets the path of a track. For more information on the path format, see "
+"[method track_set_path]."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Gets the type of a track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Insert a generic key in a given track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns [code]true[/code] if the track at index [code]idx[/code] is enabled."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns [code]true[/code] if the given track is imported. Else, return "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Moves a track down."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Changes the index position of track [code]idx[/code] to the one defined in "
+"[code]to_idx[/code]."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Moves a track up."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Removes a key by index in a given track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Removes a key by position (seconds) in a given track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Enables/disables the given track. Tracks are enabled by default."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Sets the given track as imported or not."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"If [code]true[/code], the track at [code]idx[/code] wraps the interpolation "
+"loop."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Sets the interpolation type of a given track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Sets the time of an existing key."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Sets the transition curve (easing) for a specific key (see the built-in math "
+"function [method @GDScript.ease])."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Sets the value of an existing key."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Sets the path of a track. Paths must be valid scene-tree paths to a node and "
+"must be specified starting from the parent node of the node that will "
+"reproduce the animation. Tracks that control properties or bones must append "
+"their name after the path, separated by [code]\":\"[/code].\n"
+"For example, [code]\"character/skeleton:ankle\"[/code] or [code]\"character/"
+"mesh:transform/local\"[/code]."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Swaps the track [code]idx[/code]'s index position with the track "
+"[code]with_idx[/code]."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Insert a transform key for a transform track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the interpolated value of a transform track at a given time (in "
+"seconds). An array consisting of 3 elements: position ([Vector3]), rotation "
+"([Quat]) and scale ([Vector3])."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns all the key indices of a value track, given a position and delta "
+"time."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Returns the update mode of a value track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Returns the interpolated value at the given time (in seconds). The "
+"[code]track_idx[/code] must be the index of a value track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Sets the update mode (see [enum UpdateMode]) of a value track."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"The total length of the animation (in seconds).\n"
+"[b]Note:[/b] Length is not delimited by the last key, as this one may be "
+"before or after the end to ensure correct interpolation and looping."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"A flag indicating that the animation must loop. This is used for correct "
+"interpolation of animation cycles, and for hinting the player that it must "
+"restart the animation."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "The animation step value."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Emitted when there's a change in the list of tracks, e.g. tracks are added, "
+"moved or have changed paths."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Value tracks set values in node properties, but only those which can be "
+"Interpolated."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Transform tracks are used to change node local transforms or skeleton pose "
+"bones. Transitions are interpolated."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Method tracks call functions with given arguments per key."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Bezier tracks are used to interpolate a value using custom curves. They can "
+"also be used to animate sub-properties of vectors and colors (e.g. alpha "
+"value of a [Color])."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Audio tracks are used to play an audio stream with either type of "
+"[AudioStreamPlayer]. The stream can be trimmed and previewed in the "
+"animation."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Animation tracks play animations in other [AnimationPlayer] nodes."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "No interpolation (nearest value)."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Linear interpolation."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Cubic interpolation."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Update between keyframes."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Update at the keyframes and hold the value."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid "Update at the keyframes."
+msgstr ""
+
+#: doc/classes/Animation.xml
+msgid ""
+"Same as linear interpolation, but also interpolates from the current value "
+"(i.e. dynamically at runtime) if the first key isn't at 0 seconds."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Base resource for [AnimationTree] nodes."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Base resource for [AnimationTree] nodes. In general, it's not used directly, "
+"but you can create custom ones with custom blending formulas.\n"
+"Inherit this when creating nodes mainly for use in [AnimationNodeBlendTree], "
+"otherwise [AnimationRootNode] should be used instead."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml doc/classes/AnimationNodeAdd2.xml
+#: doc/classes/AnimationNodeAdd3.xml doc/classes/AnimationNodeAnimation.xml
+#: doc/classes/AnimationNodeBlend2.xml doc/classes/AnimationNodeBlend3.xml
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+#: doc/classes/AnimationNodeBlendTree.xml doc/classes/AnimationNodeOneShot.xml
+#: doc/classes/AnimationNodeOutput.xml
+#: doc/classes/AnimationNodeStateMachine.xml
+#: doc/classes/AnimationNodeStateMachinePlayback.xml
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+#: doc/classes/AnimationNodeTimeScale.xml doc/classes/AnimationNodeTimeSeek.xml
+#: doc/classes/AnimationNodeTransition.xml doc/classes/AnimationTree.xml
+#: doc/classes/AnimationTreePlayer.xml
+msgid "$DOCS_URL/tutorials/animation/animation_tree.html"
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Adds an input to the node. This is only useful for nodes created for use in "
+"an [AnimationNodeBlendTree]."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Blend an animation by [code]blend[/code] amount (name must be valid in the "
+"linked [AnimationPlayer]). A [code]time[/code] and [code]delta[/code] may be "
+"passed, as well as whether [code]seek[/code] happened."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Blend an input. This is only useful for nodes created for an "
+"[AnimationNodeBlendTree]. The [code]time[/code] parameter is a relative "
+"delta, unless [code]seek[/code] is [code]true[/code], in which case it is "
+"absolute. A filter mode may be optionally passed (see [enum FilterAction] "
+"for options)."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Blend another animation node (in case this node contains children animation "
+"nodes). This function is only useful if you inherit from [AnimationRootNode] "
+"instead, else editors will not display your node for addition."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Gets the text caption for this node (used by some editors)."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Gets a child node by index (used by editors inheriting from "
+"[AnimationRootNode])."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Gets all children nodes in order as a [code]name: node[/code] dictionary. "
+"Only useful when inheriting [AnimationRootNode]."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Amount of inputs in this node, only useful for nodes that go into "
+"[AnimationNodeBlendTree]."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Gets the name of an input by index."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Gets the value of a parameter. Parameters are custom local memory used for "
+"your nodes, given a resource can be reused in multiple trees."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Gets the default value of a parameter. Parameters are custom local memory "
+"used for your nodes, given a resource can be reused in multiple trees."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Gets the property information for parameter. Parameters are custom local "
+"memory used for your nodes, given a resource can be reused in multiple "
+"trees. Format is similar to [method Object.get_property_list]."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Returns [code]true[/code] whether you want the blend tree editor to display "
+"filter editing on this node."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Returns [code]true[/code] whether a given path is filtered."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"User-defined callback called when a custom node is processed. The "
+"[code]time[/code] parameter is a relative delta, unless [code]seek[/code] is "
+"[code]true[/code], in which case it is absolute.\n"
+"Here, call the [method blend_input], [method blend_node] or [method "
+"blend_animation] functions. You can also use [method get_parameter] and "
+"[method set_parameter] to modify local memory.\n"
+"This function should return the time left for the current animation to "
+"finish (if unsure, pass the value from the main blend being called)."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Removes an input, call this only when inactive."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Adds or removes a path for the filter."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Sets a custom parameter. These are used as local storage, because resources "
+"can be reused across the tree or scenes."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "If [code]true[/code], filtering is enabled."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Called when the node was removed from the graph."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid ""
+"Emitted by nodes that inherit from this class and that have an internal tree "
+"when one of their nodes changes. The nodes that emit this signal are "
+"[AnimationNodeBlendSpace1D], [AnimationNodeBlendSpace2D], "
+"[AnimationNodeStateMachine], and [AnimationNodeBlendTree]."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Do not use filtering."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Paths matching the filter will be allowed to pass."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Paths matching the filter will be discarded."
+msgstr ""
+
+#: doc/classes/AnimationNode.xml
+msgid "Paths matching the filter will be blended (by the blend value)."
+msgstr ""
+
+#: doc/classes/AnimationNodeAdd2.xml
+msgid "Blends two animations additively inside of an [AnimationNodeBlendTree]."
+msgstr ""
+
+#: doc/classes/AnimationNodeAdd2.xml
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
+"additively based on an amount value in the [code][0.0, 1.0][/code] range."
+msgstr ""
+
+#: doc/classes/AnimationNodeAdd2.xml doc/classes/AnimationNodeAdd3.xml
+#: doc/classes/AnimationNodeBlend2.xml doc/classes/AnimationNodeBlend3.xml
+msgid ""
+"If [code]true[/code], sets the [code]optimization[/code] to [code]false[/"
+"code] when calling [method AnimationNode.blend_input], forcing the blended "
+"animations to update every frame."
+msgstr ""
+
+#: doc/classes/AnimationNodeAdd3.xml
+msgid ""
+"Blends two of three animations additively inside of an "
+"[AnimationNodeBlendTree]."
+msgstr ""
+
+#: doc/classes/AnimationNodeAdd3.xml
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
+"together additively out of three based on a value in the [code][-1.0, 1.0][/"
+"code] range.\n"
+"This node has three inputs:\n"
+"- The base animation to add to\n"
+"- A -add animation to blend with when the blend amount is in the [code]"
+"[-1.0, 0.0][/code] range.\n"
+"- A +add animation to blend with when the blend amount is in the [code][0.0, "
+"1.0][/code] range"
+msgstr ""
+
+#: doc/classes/AnimationNodeAdd3.xml doc/classes/AnimationNodeAnimation.xml
+#: doc/classes/AnimationNodeBlend2.xml
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+#: doc/classes/AnimationNodeOneShot.xml doc/classes/AnimationNodeOutput.xml
+#: doc/classes/AnimationNodeTransition.xml doc/classes/AnimationPlayer.xml
+#: doc/classes/AnimationTree.xml doc/classes/AudioEffectReverb.xml
+#: doc/classes/Camera.xml doc/classes/CollisionShape.xml
+#: doc/classes/CylinderShape.xml doc/classes/Environment.xml
+#: doc/classes/GIProbe.xml doc/classes/GIProbeData.xml
+#: doc/classes/KinematicBody.xml doc/classes/Light.xml doc/classes/Material.xml
+#: doc/classes/Mesh.xml doc/classes/MeshInstance.xml doc/classes/Particles.xml
+#: doc/classes/Quat.xml doc/classes/Skeleton.xml doc/classes/SpotLight.xml
+#: doc/classes/StaticBody.xml doc/classes/WorldEnvironment.xml
+msgid "https://godotengine.org/asset-library/asset/678"
+msgstr ""
+
+#: doc/classes/AnimationNodeAnimation.xml
+msgid "Input animation to use in an [AnimationNodeBlendTree]."
+msgstr ""
+
+#: doc/classes/AnimationNodeAnimation.xml
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Only features one output "
+"set using the [member animation] property. Use it as an input for "
+"[AnimationNode] that blend animations together."
+msgstr ""
+
+#: doc/classes/AnimationNodeAnimation.xml doc/classes/AnimationNodeBlend2.xml
+#: doc/classes/AnimationNodeOutput.xml doc/classes/AnimationNodeTimeScale.xml
+#: doc/classes/AnimationNodeTransition.xml doc/classes/Area.xml
+#: doc/classes/Basis.xml doc/classes/BoxShape.xml
+#: doc/classes/CollisionShape.xml modules/gridmap/doc_classes/GridMap.xml
+#: doc/classes/KinematicBody.xml doc/classes/Mesh.xml
+#: doc/classes/MeshInstance.xml doc/classes/MeshLibrary.xml
+#: doc/classes/ProjectSettings.xml doc/classes/Transform.xml
+msgid "https://godotengine.org/asset-library/asset/125"
+msgstr ""
+
+#: doc/classes/AnimationNodeAnimation.xml
+msgid ""
+"Animation to use as an output. It is one of the animations provided by "
+"[member AnimationTree.anim_player]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlend2.xml
+msgid "Blends two animations linearly inside of an [AnimationNodeBlendTree]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlend2.xml
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
+"linearly based on an amount value in the [code][0.0, 1.0][/code] range."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlend3.xml
+msgid ""
+"Blends two of three animations linearly inside of an "
+"[AnimationNodeBlendTree]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlend3.xml
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
+"together linearly out of three based on a value in the [code][-1.0, 1.0][/"
+"code] range.\n"
+"This node has three inputs:\n"
+"- The base animation\n"
+"- A -blend animation to blend with when the blend amount is in the [code]"
+"[-1.0, 0.0][/code] range.\n"
+"- A +blend animation to blend with when the blend amount is in the [code]"
+"[0.0, 1.0][/code] range"
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+msgid ""
+"Blends linearly between two of any number of [AnimationNode] of any type "
+"placed on a virtual axis."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree].\n"
+"This is a virtual axis on which you can add any type of [AnimationNode] "
+"using [method add_blend_point].\n"
+"Outputs the linear blend of the two [AnimationNode]s closest to the node's "
+"current value.\n"
+"You can set the extents of the axis using the [member min_space] and [member "
+"max_space]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+msgid ""
+"Adds a new point that represents a [code]node[/code] on the virtual axis at "
+"a given position set by [code]pos[/code]. You can insert it at a specific "
+"index using the [code]at_index[/code] argument. If you use the default value "
+"for [code]at_index[/code], the point is inserted at the end of the blend "
+"points array."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+msgid "Returns the number of points on the blend axis."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+msgid ""
+"Returns the [AnimationNode] referenced by the point at index [code]point[/"
+"code]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid "Returns the position of the point at index [code]point[/code]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+msgid "Removes the point at index [code]point[/code] from the blend axis."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Changes the [AnimationNode] referenced by the point at index [code]point[/"
+"code]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Updates the position of the point at index [code]point[/code] on the blend "
+"axis."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+msgid ""
+"The blend space's axis's upper limit for the points' position. See [method "
+"add_blend_point]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+msgid ""
+"The blend space's axis's lower limit for the points' position. See [method "
+"add_blend_point]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+msgid "Position increment to snap to when moving a point on the axis."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace1D.xml
+msgid "Label of the virtual axis of the blend space."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Blends linearly between three [AnimationNode] of any type placed in a 2D "
+"space."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree].\n"
+"This node allows you to blend linearly between three animations using a "
+"[Vector2] weight.\n"
+"You can add vertices to the blend space with [method add_blend_point] and "
+"automatically triangulate it by setting [member auto_triangles] to "
+"[code]true[/code]. Otherwise, use [method add_triangle] and [method "
+"remove_triangle] to create up the blend space by hand."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Adds a new point that represents a [code]node[/code] at the position set by "
+"[code]pos[/code]. You can insert it at a specific index using the "
+"[code]at_index[/code] argument. If you use the default value for "
+"[code]at_index[/code], the point is inserted at the end of the blend points "
+"array."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Creates a new triangle using three points [code]x[/code], [code]y[/code], "
+"and [code]z[/code]. Triangles can overlap. You can insert the triangle at a "
+"specific index using the [code]at_index[/code] argument. If you use the "
+"default value for [code]at_index[/code], the point is inserted at the end of "
+"the blend points array."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid "Returns the number of points in the blend space."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Returns the [AnimationRootNode] referenced by the point at index "
+"[code]point[/code]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid "Returns the number of triangles in the blend space."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Returns the position of the point at index [code]point[/code] in the "
+"triangle of index [code]triangle[/code]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid "Removes the point at index [code]point[/code] from the blend space."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Removes the triangle at index [code]triangle[/code] from the blend space."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"If [code]true[/code], the blend space is triangulated automatically. The "
+"mesh updates every time you add or remove points with [method "
+"add_blend_point] and [method remove_blend_point]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Controls the interpolation between animations. See [enum BlendMode] "
+"constants."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"The blend space's X and Y axes' upper limit for the points' position. See "
+"[method add_blend_point]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"The blend space's X and Y axes' lower limit for the points' position. See "
+"[method add_blend_point]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid "Position increment to snap to when moving a point."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid "Name of the blend space's X axis."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid "Name of the blend space's Y axis."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Emitted every time the blend space's triangles are created, removed, or when "
+"one of their vertices changes position."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid "The interpolation between animations is linear."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"The blend space plays the animation of the node the blending position is "
+"closest to. Useful for frame-by-frame 2D animations."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendSpace2D.xml
+msgid ""
+"Similar to [constant BLEND_MODE_DISCRETE], but starts the new animation at "
+"the last animation's playback position."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "[AnimationTree] node resource that contains many blend type nodes."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid ""
+"This node may contain a sub-tree of any other blend type nodes, such as mix, "
+"blend2, blend3, one shot, etc. This is one of the most commonly used roots."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid ""
+"Adds an [AnimationNode] at the given [code]position[/code]. The [code]name[/"
+"code] is used to identify the created sub-node later."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid ""
+"Connects the output of an [AnimationNode] as input for another "
+"[AnimationNode], at the input port specified by [code]input_index[/code]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "Disconnects the node connected to the specified input."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "Returns the sub-node with the specified [code]name[/code]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid ""
+"Returns the position of the sub-node with the specified [code]name[/code]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid ""
+"Returns [code]true[/code] if a sub-node with specified [code]name[/code] "
+"exists."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "Removes a sub-node."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "Changes the name of a sub-node."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "Modifies the position of a sub-node."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "The global offset of all sub-nodes."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "The connection was successful."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "The input node is [code]null[/code]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "The specified input port is out of range."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "The output node is [code]null[/code]."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "Input and output nodes are the same."
+msgstr ""
+
+#: doc/classes/AnimationNodeBlendTree.xml
+msgid "The specified connection already exists."
+msgstr ""
+
+#: doc/classes/AnimationNodeOneShot.xml
+msgid "Plays an animation once in [AnimationNodeBlendTree]."
+msgstr ""
+
+#: doc/classes/AnimationNodeOneShot.xml
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. This node will execute a "
+"sub-animation and return once it finishes. Blend times for fading in and out "
+"can be customized, as well as filters."
+msgstr ""
+
+#: doc/classes/AnimationNodeOneShot.xml
+msgid ""
+"If [code]true[/code], the sub-animation will restart automatically after "
+"finishing."
+msgstr ""
+
+#: doc/classes/AnimationNodeOneShot.xml
+msgid "The delay after which the automatic restart is triggered, in seconds."
+msgstr ""
+
+#: doc/classes/AnimationNodeOneShot.xml
+msgid ""
+"If [member autorestart] is [code]true[/code], a random additional delay (in "
+"seconds) between 0 and this value will be added to [member "
+"autorestart_delay]."
+msgstr ""
+
+#: doc/classes/AnimationNodeOutput.xml
+msgid "Generic output node to be added to [AnimationNodeBlendTree]."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "State machine for control of animations."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid ""
+"Contains multiple nodes representing animation states, connected in a graph. "
+"Node transitions can be configured to happen automatically or via code, "
+"using a shortest-path algorithm. Retrieve the "
+"[AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to "
+"control it programmatically.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
+"state_machine.travel(\"some_state\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid ""
+"Adds a new node to the graph. The [code]position[/code] is used for display "
+"in the editor."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Adds a transition between the given nodes."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Returns the graph's end node."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Returns the draw offset of the graph. Used for display in the editor."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Returns the animation node with the given name."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Returns the given animation node's name."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Returns the given node's coordinates. Used for display in the editor."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Returns the given transition."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Returns the number of connections in the graph."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Returns the given transition's start node."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Returns the given transition's end node."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Returns [code]true[/code] if the graph contains the given node."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid ""
+"Returns [code]true[/code] if there is a transition between the given nodes."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Deletes the given node from the graph."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Deletes the transition between the two specified nodes."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Deletes the given transition by index."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Renames the given node."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Replaces the node and keeps its transitions unchanged."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Sets the given node as the graph end point."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Sets the draw offset of the graph. Used for display in the editor."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Sets the node's coordinates. Used for display in the editor."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachine.xml
+msgid "Sets the given node as the graph start point."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachinePlayback.xml
+msgid "Playback control for [AnimationNodeStateMachine]."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachinePlayback.xml
+msgid ""
+"Allows control of [AnimationTree] state machines created with "
+"[AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree."
+"get(\"parameters/playback\")[/code].\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
+"state_machine.travel(\"some_state\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachinePlayback.xml
+msgid "Returns the currently playing animation state."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachinePlayback.xml
+msgid "Returns the playback position within the current animation state."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachinePlayback.xml
+msgid ""
+"Returns the current travel path as computed internally by the A* algorithm."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachinePlayback.xml
+msgid "Returns [code]true[/code] if an animation is playing."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachinePlayback.xml
+msgid "Starts playing the given animation."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachinePlayback.xml
+msgid "Stops the currently playing animation."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachinePlayback.xml
+msgid ""
+"Transitions from the current state to another one, following the shortest "
+"path."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+msgid ""
+"Turn on auto advance when this condition is set. The provided name will "
+"become a boolean parameter on the [AnimationTree] that can be controlled "
+"from code (see [url=$DOCS_URL/tutorials/animation/animation_tree."
+"html#controlling-from-code][/url]). For example, if [member AnimationTree."
+"tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] "
+"is set to [code]\"idle\"[/code]:\n"
+"[codeblock]\n"
+"$animation_tree[\"parameters/conditions/idle\"] = is_on_floor and "
+"(linear_velocity.x == 0)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+msgid ""
+"Turn on the transition automatically when this state is reached. This works "
+"best with [constant SWITCH_MODE_AT_END]."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+msgid ""
+"Don't use this transition during [method AnimationNodeStateMachinePlayback."
+"travel] or [member auto_advance]."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+msgid ""
+"Lower priority transitions are preferred when travelling through the tree "
+"via [method AnimationNodeStateMachinePlayback.travel] or [member "
+"auto_advance]."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+msgid "The transition type."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+msgid "The time to cross-fade between this state and the next."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+msgid "Emitted when [member advance_condition] is changed."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+msgid ""
+"Switch to the next state immediately. The current state will end and blend "
+"into the beginning of the new one."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+msgid ""
+"Switch to the next state immediately, but will seek the new state to the "
+"playback position of the old state."
+msgstr ""
+
+#: doc/classes/AnimationNodeStateMachineTransition.xml
+msgid ""
+"Wait for the current state playback to end, then switch to the beginning of "
+"the next state animation."
+msgstr ""
+
+#: doc/classes/AnimationNodeTimeScale.xml
+msgid "A time-scaling animation node to be used with [AnimationTree]."
+msgstr ""
+
+#: doc/classes/AnimationNodeTimeScale.xml
+msgid ""
+"Allows scaling the speed of the animation (or reversing it) in any children "
+"nodes. Setting it to 0 will pause the animation."
+msgstr ""
+
+#: doc/classes/AnimationNodeTimeSeek.xml
+msgid "A time-seeking animation node to be used with [AnimationTree]."
+msgstr ""
+
+#: doc/classes/AnimationNodeTimeSeek.xml
+msgid ""
+"This node can be used to cause a seek command to happen to any sub-children "
+"of the animation graph. Use this node type to play an [Animation] from the "
+"start or a certain playback position inside the [AnimationNodeBlendTree]. "
+"After setting the time and changing the animation playback, the seek node "
+"automatically goes into sleep mode on the next process frame by setting its "
+"[code]seek_position[/code] value to [code]-1.0[/code].\n"
+"[codeblock]\n"
+"# Play child animation from the start.\n"
+"animation_tree.set(\"parameters/Seek/seek_position\", 0.0)\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/Seek/seek_position\"] = 0.0\n"
+"\n"
+"# Play child animation from 12 second timestamp.\n"
+"animation_tree.set(\"parameters/Seek/seek_position\", 12.0)\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/Seek/seek_position\"] = 12.0\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AnimationNodeTransition.xml
+msgid "A generic animation transition node for [AnimationTree]."
+msgstr ""
+
+#: doc/classes/AnimationNodeTransition.xml
+msgid ""
+"Simple state machine for cases which don't require a more advanced "
+"[AnimationNodeStateMachine]. Animations can be connected to the inputs and "
+"transition times can be specified."
+msgstr ""
+
+#: doc/classes/AnimationNodeTransition.xml
+msgid "The number of available input ports for this node."
+msgstr ""
+
+#: doc/classes/AnimationNodeTransition.xml
+msgid ""
+"Cross-fading time (in seconds) between each animation connected to the "
+"inputs."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "Container and player of [Animation] resources."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"An animation player is used for general-purpose playback of [Animation] "
+"resources. It contains a dictionary of animations (referenced by name) and "
+"custom blend times between their transitions. Additionally, animations can "
+"be played and blended in different channels.\n"
+"[AnimationPlayer] is more suited than [Tween] for animations where you know "
+"the final values in advance. For example, fading a screen in and out is more "
+"easily done with an [AnimationPlayer] node thanks to the animation tools "
+"provided by the editor. That particular example can also be implemented with "
+"a [Tween] node, but it requires doing everything by code.\n"
+"Updating the target properties of animations occurs at process time."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Adds [code]animation[/code] to the player accessible with the key "
+"[code]name[/code]."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Shifts position in the animation timeline and immediately updates the "
+"animation. [code]delta[/code] is the time in seconds to shift. Events "
+"between the current frame and [code]delta[/code] are handled."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "Returns the name of the next animation in the queue."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Triggers the [code]anim_to[/code] animation when the [code]anim_from[/code] "
+"animation completes."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"[AnimationPlayer] caches animated nodes. It may not notice if a node "
+"disappears; [method clear_caches] forces it to update the cache again."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "Clears all queued, unplayed animations."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Returns the name of [code]animation[/code] or an empty string if not found."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Returns the [Animation] with key [code]name[/code] or [code]null[/code] if "
+"not found."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "Returns the list of stored animation names."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Gets the blend time (in seconds) between two animations, referenced by their "
+"names."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Gets the actual playing speed of current animation or 0 if not playing. This "
+"speed is the [member playback_speed] property multiplied by "
+"[code]custom_speed[/code] argument specified when calling the [method play] "
+"method."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Returns a list of the animation names that are currently queued to play."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Returns [code]true[/code] if the [AnimationPlayer] stores an [Animation] "
+"with key [code]name[/code]."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "Returns [code]true[/code] if playing an animation."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Plays the animation with key [code]name[/code]. Custom blend times and speed "
+"can be set. If [code]custom_speed[/code] is negative and [code]from_end[/"
+"code] is [code]true[/code], the animation will play backwards (which is "
+"equivalent to calling [method play_backwards]).\n"
+"The [AnimationPlayer] keeps track of its current or last played animation "
+"with [member assigned_animation]. If this method is called with that same "
+"animation [code]name[/code], or with no [code]name[/code] parameter, the "
+"assigned animation will resume playing if it was paused, or restart if it "
+"was stopped (see [method stop] for both pause and stop). If the animation "
+"was already playing, it will keep playing.\n"
+"[b]Note:[/b] The animation will be updated the next time the "
+"[AnimationPlayer] is processed. If other variables are updated at the same "
+"time this is called, they may be updated too early. To perform the update "
+"immediately, call [code]advance(0)[/code]."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Plays the animation with key [code]name[/code] in reverse.\n"
+"This method is a shorthand for [method play] with [code]custom_speed = -1.0[/"
+"code] and [code]from_end = true[/code], so see its description for more "
+"information."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Queues an animation for playback once the current one is done.\n"
+"[b]Note:[/b] If a looped animation is currently playing, the queued "
+"animation will never play unless the looped animation is stopped somehow."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "Removes the animation with key [code]name[/code]."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Renames an existing animation with key [code]name[/code] to [code]newname[/"
+"code]."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Seeks the animation to the [code]seconds[/code] point in time (in seconds). "
+"If [code]update[/code] is [code]true[/code], the animation updates too, "
+"otherwise it updates at process time. Events between the current frame and "
+"[code]seconds[/code] are skipped."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Specifies a blend time (in seconds) between two animations, referenced by "
+"their names."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Stops or pauses the currently playing animation. If [code]reset[/code] is "
+"[code]true[/code], the animation position is reset to [code]0[/code] and the "
+"playback speed is reset to [code]1.0[/code].\n"
+"If [code]reset[/code] is [code]false[/code], the [member "
+"current_animation_position] will be kept and calling [method play] or "
+"[method play_backwards] without arguments or with the same animation name as "
+"[member assigned_animation] will resume the animation."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"If playing, the current animation; otherwise, the animation last played. "
+"When set, would change the animation, but would not play it unless currently "
+"playing. See also [member current_animation]."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "The name of the animation to play when the scene loads."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"The name of the currently playing animation. If no animation is playing, the "
+"property's value is an empty string. Changing this value does not restart "
+"the animation. See [method play] for more information on playing "
+"animations.\n"
+"[b]Note:[/b] While this property appears in the inspector, it's not meant to "
+"be edited, and it's not saved in the scene. This property is mainly used to "
+"get the currently playing animation, and internally for animation playback "
+"tracks. For more information, see [Animation]."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "The length (in seconds) of the currently being played animation."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "The position (in seconds) of the currently playing animation."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "The call mode to use for Call Method tracks."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"If [code]true[/code], updates animations in response to process-related "
+"notifications."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"The default time in which to blend animations. Ranges from 0 to 4096 with "
+"0.01 precision."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "The process notification in which to update animations."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"The speed scaling ratio. For instance, if this value is 1, then the "
+"animation plays at normal speed. If it's 0.5, then it plays at half speed. "
+"If it's 2, then it plays at double speed."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"This is used by the editor. If set to [code]true[/code], the scene will be "
+"saved with the effects of the reset animation applied (as if it had been "
+"seeked to time 0), then reverted after saving.\n"
+"In other words, the saved scene file will contain the \"default pose\", as "
+"defined by the reset animation, if any, with the editor keeping the values "
+"that the nodes had before saving."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "The node from which node path references will travel."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Emitted when a queued animation plays after the previous animation was "
+"finished. See [method queue].\n"
+"[b]Note:[/b] The signal is not emitted when the animation is changed via "
+"[method play] or from [AnimationTree]."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "Notifies when an animation finished playing."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "Notifies when an animation starts playing."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Notifies when the caches have been cleared, either automatically, or "
+"manually via [method clear_caches]."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Process animation during the physics process. This is especially useful when "
+"animating physics bodies."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml doc/classes/AnimationTreePlayer.xml
+msgid "Process animation during the idle process."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Do not process animation. Use [method advance] to process the animation "
+"manually."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid ""
+"Batch method calls during the animation process, then do the calls after "
+"events are processed. This avoids bugs involving deleting nodes or modifying "
+"the AnimationPlayer while playing."
+msgstr ""
+
+#: doc/classes/AnimationPlayer.xml
+msgid "Make method calls immediately when reached in the animation."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid ""
+"A node to be used for advanced animation transitions in an [AnimationPlayer]."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid ""
+"A node to be used for advanced animation transitions in an "
+"[AnimationPlayer].\n"
+"[b]Note:[/b] When linked with an [AnimationPlayer], several properties and "
+"methods of the corresponding [AnimationPlayer] will not function as "
+"expected. Playback and transitions should be handled using only the "
+"[AnimationTree] and its constituent [AnimationNode](s). The "
+"[AnimationPlayer] node should be used solely for adding, deleting, and "
+"editing animations."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid "Manually advance the animations by the specified time (in seconds)."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid ""
+"Retrieve the motion of the [member root_motion_track] as a [Transform] that "
+"can be used elsewhere. If [member root_motion_track] is not a path to a "
+"track of type [constant Animation.TYPE_TRANSFORM], returns an identity "
+"transformation. See also [member root_motion_track] and [RootMotionView]."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid "If [code]true[/code], the [AnimationTree] will be processing."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid "The path to the [AnimationPlayer] used for animating."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid ""
+"The process mode of this [AnimationTree]. See [enum AnimationProcessMode] "
+"for available modes."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid ""
+"The path to the Animation track used for root motion. Paths must be valid "
+"scene-tree paths to a node, and must be specified starting from the parent "
+"node of the node that will reproduce the animation. To specify a track that "
+"controls properties or bones, append its name after the path, separated by "
+"[code]\":\"[/code]. For example, [code]\"character/skeleton:ankle\"[/code] "
+"or [code]\"character/mesh:transform/local\"[/code].\n"
+"If the track has type [constant Animation.TYPE_TRANSFORM], the "
+"transformation will be cancelled visually, and the animation will appear to "
+"stay in place. See also [method get_root_motion_transform] and "
+"[RootMotionView]."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid "The root animation node of this [AnimationTree]. See [AnimationNode]."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid ""
+"The animations will progress during the physics frame (i.e. [method Node."
+"_physics_process])."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid ""
+"The animations will progress during the idle frame (i.e. [method Node."
+"_process])."
+msgstr ""
+
+#: doc/classes/AnimationTree.xml
+msgid "The animations will only progress manually (see [method advance])."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"[i]Deprecated.[/i] Animation player that uses a node graph for blending "
+"animations. Superseded by [AnimationTree]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"[i]Deprecated.[/i] A node graph tool for blending multiple animations bound "
+"to an [AnimationPlayer]. Especially useful for animating characters or other "
+"skeleton-based rigs. It can combine several animations to form a desired "
+"pose.\n"
+"It takes [Animation]s from an [AnimationPlayer] node and mixes them "
+"depending on the graph.\n"
+"See [AnimationTree] for a more full-featured replacement of this node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Adds a [code]type[/code] node to the graph with name [code]id[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Shifts position in the animation timeline. [code]delta[/code] is the time in "
+"seconds to shift. Events between the current frame and [code]delta[/code] "
+"are handled."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Returns the [AnimationPlayer]'s [Animation] bound to the "
+"[AnimationTreePlayer]'s animation node with name [code]id[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Returns the name of the [member master_player]'s [Animation] bound to this "
+"animation node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Returns the absolute playback timestamp of the animation node with name "
+"[code]id[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Binds a new [Animation] from the [member master_player] to the "
+"[AnimationTreePlayer]'s animation node with name [code]id[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"If [code]enable[/code] is [code]true[/code], the animation node with ID "
+"[code]id[/code] turns off the track modifying the property at [code]path[/"
+"code]. The modified node's children continue to animate."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Binds the [Animation] named [code]source[/code] from [member master_player] "
+"to the animation node [code]id[/code]. Recalculates caches."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Returns whether node [code]id[/code] and [code]dst_id[/code] are connected "
+"at the specified slot."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns the blend amount of a Blend2 node given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the blend amount of a Blend2 node given its name and value.\n"
+"A Blend2 node blends two animations (A and B) with the amount between 0 and "
+"1.\n"
+"At 0, output is input A. Towards 1, the influence of A gets lessened, the "
+"influence of B gets raised. At 1, output is input B."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"If [code]enable[/code] is [code]true[/code], the Blend2 node with name "
+"[code]id[/code] turns off the track modifying the property at [code]path[/"
+"code]. The modified node's children continue to animate."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns the blend amount of a Blend3 node given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the blend amount of a Blend3 node given its name and value.\n"
+"A Blend3 Node blends three animations (A, B-, B+) with the amount between -1 "
+"and 1.\n"
+"At -1, output is input B-. From -1 to 0, the influence of B- gets lessened, "
+"the influence of A gets raised and the influence of B+ is 0. At 0, output is "
+"input A. From 0 to 1, the influence of A gets lessened, the influence of B+ "
+"gets raised and the influence of B+ is 0. At 1, output is input B+."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns the blend amount of a Blend4 node given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the blend amount of a Blend4 node given its name and value.\n"
+"A Blend4 Node blends two pairs of animations.\n"
+"The two pairs are blended like Blend2 and then added together."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Connects node [code]id[/code] to [code]dst_id[/code] at the specified input "
+"slot."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Disconnects nodes connected to [code]id[/code] at the specified input slot."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns a [PoolStringArray] containing the name of all nodes."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns the mix amount of a Mix node given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the mix amount of a Mix node given its name and value.\n"
+"A Mix node adds input b to input a by the amount given by ratio."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Check if a node exists (by name)."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Returns the input count for a given node. Different types of nodes have "
+"different amount of inputs."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns the input source for a given node input."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns position of a node in the graph given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Gets the node type, will return from [enum NodeType] enum."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Renames a node in the graph."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Sets the position of a node in the graph given its name and position."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns the autostart delay of a OneShot node given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns the autostart random delay of a OneShot node given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns the fade in time of a OneShot node given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns the fade out time of a OneShot node given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns whether a OneShot node will auto restart given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Returns whether a OneShot node is active given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the autorestart property of a OneShot node given its name and value."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the autorestart delay of a OneShot node given its name and value in "
+"seconds."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the autorestart random delay of a OneShot node given its name and value "
+"in seconds."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the fade in time of a OneShot node given its name and value in seconds."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the fade out time of a OneShot node given its name and value in seconds."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"If [code]enable[/code] is [code]true[/code], the OneShot node with ID "
+"[code]id[/code] turns off the track modifying the property at [code]path[/"
+"code]. The modified node's children continue to animate."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Starts a OneShot node given its name."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Stops the OneShot node with name [code]id[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Manually recalculates the cache of track information generated from "
+"animation nodes. Needed when external sources modify the animation nodes' "
+"state."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Removes the animation node with name [code]id[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Resets this [AnimationTreePlayer]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Returns the time scale value of the TimeScale node with name [code]id[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the time scale of the TimeScale node with name [code]id[/code] to "
+"[code]scale[/code].\n"
+"The TimeScale node is used to speed [Animation]s up if the scale is above 1 "
+"or slow them down if it is below 1.\n"
+"If applied after a blend or mix, affects all input animations to that blend "
+"or mix."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Sets the time seek value of the TimeSeek node with name [code]id[/code] to "
+"[code]seconds[/code].\n"
+"This functions as a seek in the [Animation] or the blend or mix of "
+"[Animation]s input in it."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Deletes the input at [code]input_idx[/code] for the transition node with "
+"name [code]id[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Returns the index of the currently evaluated input for the transition node "
+"with name [code]id[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Returns the number of inputs for the transition node with name [code]id[/"
+"code]. You can add inputs by right-clicking on the transition node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Returns the cross fade time for the transition node with name [code]id[/"
+"code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Returns [code]true[/code] if the input at [code]input_idx[/code] on the "
+"transition node with name [code]id[/code] is set to automatically advance to "
+"the next input upon completion."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"The transition node with name [code]id[/code] sets its current input at "
+"[code]input_idx[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"The transition node with name [code]id[/code] advances to its next input "
+"automatically when the input at [code]input_idx[/code] completes."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"Resizes the number of inputs available for the transition node with name "
+"[code]id[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"The transition node with name [code]id[/code] sets its cross fade time to "
+"[code]time_sec[/code]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"If [code]true[/code], the [AnimationTreePlayer] is able to play animations."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"The node from which to relatively access other nodes.\n"
+"It accesses the bones, so it should point to the same node the "
+"[AnimationPlayer] would point its Root Node at."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid ""
+"The path to the [AnimationPlayer] from which this [AnimationTreePlayer] "
+"binds animations to animation nodes.\n"
+"Once set, [Animation] nodes can be added to the [AnimationTreePlayer]."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "The thread in which to update animations."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Output node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Animation node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "OneShot node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Mix node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Blend2 node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Blend3 node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Blend4 node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "TimeScale node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "TimeSeek node."
+msgstr ""
+
+#: doc/classes/AnimationTreePlayer.xml
+msgid "Transition node."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid "3D area for detection and physics and audio influence."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"3D area that detects [CollisionObject] nodes overlapping, entering, or "
+"exiting. Can also alter or override local physics parameters (gravity, "
+"damping) and route audio to custom audio buses."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/QuadMesh.xml doc/classes/Viewport.xml
+#: doc/classes/ViewportTexture.xml
+msgid "https://godotengine.org/asset-library/asset/127"
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"Returns a list of intersecting [Area]s. The overlapping area's [member "
+"CollisionObject.collision_layer] must be part of this area's [member "
+"CollisionObject.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) this "
+"list is modified once during the physics step, not immediately after objects "
+"are moved. Consider using signals instead."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"Returns a list of intersecting [PhysicsBody]s. The overlapping body's "
+"[member CollisionObject.collision_layer] must be part of this area's [member "
+"CollisionObject.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) this "
+"list is modified once during the physics step, not immediately after objects "
+"are moved. Consider using signals instead."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"If [code]true[/code], the given area overlaps the Area.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, list of overlaps is updated once per frame and before the "
+"physics step. Consider using signals instead."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"If [code]true[/code], the given physics body overlaps the Area.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, list of overlaps is updated once per frame and before the "
+"physics step. Consider using signals instead.\n"
+"The [code]body[/code] argument can either be a [PhysicsBody] or a [GridMap] "
+"instance (while GridMaps are not physics body themselves, they register "
+"their tiles with collision shapes as a virtual physics body)."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"The rate at which objects stop spinning in this area. Represents the angular "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/3d/default_angular_damp] for more "
+"details about damping."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid "The name of the area's audio bus."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid ""
+"If [code]true[/code], the area's audio bus overrides the default audio bus."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"The area's gravity intensity (in meters per second squared). This value "
+"multiplies the gravity vector. This is useful to alter the force of gravity "
+"without altering its direction."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid ""
+"The falloff factor for point gravity. The greater the value, the faster "
+"gravity decreases with distance."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid ""
+"If [code]true[/code], gravity is calculated from a point (set via [member "
+"gravity_vec]). See also [member space_override]."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid ""
+"The area's gravity vector (not normalized). If gravity is a point (see "
+"[member gravity_point]), this will be the point of attraction."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"The rate at which objects stop moving in this area. Represents the linear "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/3d/default_linear_damp] for more details "
+"about damping."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid "If [code]true[/code], other monitoring areas can detect this area."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid ""
+"If [code]true[/code], the area detects bodies or areas entering and exiting "
+"it."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid "The area's priority. Higher priority areas are processed first."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"The degree to which this area applies reverb to its associated audio. Ranges "
+"from [code]0[/code] to [code]1[/code] with [code]0.1[/code] precision."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid "If [code]true[/code], the area applies reverb to its associated audio."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid "The reverb bus name to use for this area's associated audio."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"The degree to which this area's reverb is a uniform effect. Ranges from "
+"[code]0[/code] to [code]1[/code] with [code]0.1[/code] precision."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid ""
+"Override mode for gravity and damping calculations within this area. See "
+"[enum SpaceOverride] for possible values."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"Emitted when another Area enters this Area. Requires [member monitoring] to "
+"be set to [code]true[/code].\n"
+"[code]area[/code] the other Area."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"Emitted when another Area exits this Area. Requires [member monitoring] to "
+"be set to [code]true[/code].\n"
+"[code]area[/code] the other Area."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"Emitted when one of another Area's [Shape]s enters one of this Area's "
+"[Shape]s. Requires [member monitoring] to be set to [code]true[/code].\n"
+"[code]area_rid[/code] the [RID] of the other Area's [CollisionObject] used "
+"by the [PhysicsServer].\n"
+"[code]area[/code] the other Area.\n"
+"[code]area_shape_index[/code] the index of the [Shape] of the other Area "
+"used by the [PhysicsServer]. Get the [CollisionShape] node with [code]area."
+"shape_owner_get_owner(area_shape_index)[/code].\n"
+"[code]local_shape_index[/code] the index of the [Shape] of this Area used by "
+"the [PhysicsServer]. Get the [CollisionShape] node with [code]self."
+"shape_owner_get_owner(local_shape_index)[/code]."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"Emitted when a [PhysicsBody] or [GridMap] enters this Area. Requires [member "
+"monitoring] to be set to [code]true[/code]. [GridMap]s are detected if the "
+"[MeshLibrary] has Collision [Shape]s.\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody] or [GridMap]."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"Emitted when a [PhysicsBody] or [GridMap] exits this Area. Requires [member "
+"monitoring] to be set to [code]true[/code]. [GridMap]s are detected if the "
+"[MeshLibrary] has Collision [Shape]s.\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody] or [GridMap]."
+msgstr ""
+
+#: doc/classes/Area.xml
+msgid ""
+"Emitted when one of a [PhysicsBody] or [GridMap]'s [Shape]s enters one of "
+"this Area's [Shape]s. Requires [member monitoring] to be set to [code]true[/"
+"code]. [GridMap]s are detected if the [MeshLibrary] has Collision [Shape]s.\n"
+"[code]body_rid[/code] the [RID] of the [PhysicsBody] or [MeshLibrary]'s "
+"[CollisionObject] used by the [PhysicsServer].\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the [PhysicsBody] "
+"or [GridMap].\n"
+"[code]body_shape_index[/code] the index of the [Shape] of the [PhysicsBody] "
+"or [GridMap] used by the [PhysicsServer]. Get the [CollisionShape] node with "
+"[code]body.shape_owner_get_owner(body_shape_index)[/code].\n"
+"[code]local_shape_index[/code] the index of the [Shape] of this Area used by "
+"the [PhysicsServer]. Get the [CollisionShape] node with [code]self."
+"shape_owner_get_owner(local_shape_index)[/code]."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid "This area does not affect gravity/damping."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid ""
+"This area adds its gravity/damping values to whatever has been calculated so "
+"far (in [member priority] order)."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid ""
+"This area adds its gravity/damping values to whatever has been calculated so "
+"far (in [member priority] order), ignoring any lower priority areas."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid ""
+"This area replaces any gravity/damping, even the defaults, ignoring any "
+"lower priority areas."
+msgstr ""
+
+#: doc/classes/Area.xml doc/classes/Area2D.xml
+msgid ""
+"This area replaces any gravity/damping calculated so far (in [member "
+"priority] order), but keeps calculating the rest of the areas."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid "2D area for detection and physics and audio influence."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"2D area that detects [CollisionObject2D] nodes overlapping, entering, or "
+"exiting. Can also alter or override local physics parameters (gravity, "
+"damping) and route audio to a custom audio bus."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid "$DOCS_URL/tutorials/physics/using_area_2d.html"
+msgstr ""
+
+#: doc/classes/Area2D.xml doc/classes/CollisionShape2D.xml
+#: doc/classes/RectangleShape2D.xml
+msgid "https://godotengine.org/asset-library/asset/121"
+msgstr ""
+
+#: doc/classes/Area2D.xml doc/classes/Camera2D.xml
+#: doc/classes/KinematicBody2D.xml doc/classes/TileMap.xml
+#: doc/classes/TileSet.xml
+msgid "https://godotengine.org/asset-library/asset/120"
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"Returns a list of intersecting [Area2D]s. The overlapping area's [member "
+"CollisionObject2D.collision_layer] must be part of this area's [member "
+"CollisionObject2D.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) this "
+"list is modified once during the physics step, not immediately after objects "
+"are moved. Consider using signals instead."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"Returns a list of intersecting [PhysicsBody2D]s. The overlapping body's "
+"[member CollisionObject2D.collision_layer] must be part of this area's "
+"[member CollisionObject2D.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) this "
+"list is modified once during the physics step, not immediately after objects "
+"are moved. Consider using signals instead."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"If [code]true[/code], the given area overlaps the Area2D.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, the list of overlaps is updated once per frame and before "
+"the physics step. Consider using signals instead."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"If [code]true[/code], the given physics body overlaps the Area2D.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, list of overlaps is updated once per frame and before the "
+"physics step. Consider using signals instead.\n"
+"The [code]body[/code] argument can either be a [PhysicsBody2D] or a "
+"[TileMap] instance (while TileMaps are not physics bodies themselves, they "
+"register their tiles with collision shapes as a virtual physics body)."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"The rate at which objects stop spinning in this area. Represents the angular "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/2d/default_angular_damp] for more "
+"details about damping."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"The area's gravity intensity (in pixels per second squared). This value "
+"multiplies the gravity vector. This is useful to alter the force of gravity "
+"without altering its direction."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"The rate at which objects stop moving in this area. Represents the linear "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/2d/default_linear_damp] for more details "
+"about damping."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"Emitted when another Area2D enters this Area2D. Requires [member monitoring] "
+"to be set to [code]true[/code].\n"
+"[code]area[/code] the other Area2D."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"Emitted when another Area2D exits this Area2D. Requires [member monitoring] "
+"to be set to [code]true[/code].\n"
+"[code]area[/code] the other Area2D."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"Emitted when one of another Area2D's [Shape2D]s enters one of this Area2D's "
+"[Shape2D]s. Requires [member monitoring] to be set to [code]true[/code].\n"
+"[code]area_rid[/code] the [RID] of the other Area2D's [CollisionObject2D] "
+"used by the [Physics2DServer].\n"
+"[code]area[/code] the other Area2D.\n"
+"[code]area_shape_index[/code] the index of the [Shape2D] of the other Area2D "
+"used by the [Physics2DServer]. Get the [CollisionShape2D] node with "
+"[code]area.shape_owner_get_owner(area_shape_index)[/code].\n"
+"[code]local_shape_index[/code] the index of the [Shape2D] of this Area2D "
+"used by the [Physics2DServer]. Get the [CollisionShape2D] node with "
+"[code]self.shape_owner_get_owner(local_shape_index)[/code]."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"Emitted when one of another Area2D's [Shape2D]s exits one of this Area2D's "
+"[Shape2D]s. Requires [member monitoring] to be set to [code]true[/code].\n"
+"[code]area_rid[/code] the [RID] of the other Area2D's [CollisionObject2D] "
+"used by the [Physics2DServer].\n"
+"[code]area[/code] the other Area2D.\n"
+"[code]area_shape_index[/code] the index of the [Shape2D] of the other Area2D "
+"used by the [Physics2DServer]. Get the [CollisionShape2D] node with "
+"[code]area.shape_owner_get_owner(area_shape_index)[/code].\n"
+"[code]local_shape_index[/code] the index of the [Shape2D] of this Area2D "
+"used by the [Physics2DServer]. Get the [CollisionShape2D] node with "
+"[code]self.shape_owner_get_owner(local_shape_index)[/code]."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"Emitted when a [PhysicsBody2D] or [TileMap] enters this Area2D. Requires "
+"[member monitoring] to be set to [code]true[/code]. [TileMap]s are detected "
+"if the [TileSet] has Collision [Shape2D]s.\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody2D] or [TileMap]."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"Emitted when a [PhysicsBody2D] or [TileMap] exits this Area2D. Requires "
+"[member monitoring] to be set to [code]true[/code]. [TileMap]s are detected "
+"if the [TileSet] has Collision [Shape2D]s.\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody2D] or [TileMap]."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"Emitted when one of a [PhysicsBody2D] or [TileMap]'s [Shape2D]s enters one "
+"of this Area2D's [Shape2D]s. Requires [member monitoring] to be set to "
+"[code]true[/code]. [TileMap]s are detected if the [TileSet] has Collision "
+"[Shape2D]s.\n"
+"[code]body_rid[/code] the [RID] of the [PhysicsBody2D] or [TileSet]'s "
+"[CollisionObject2D] used by the [Physics2DServer].\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the "
+"[PhysicsBody2D] or [TileMap].\n"
+"[code]body_shape_index[/code] the index of the [Shape2D] of the "
+"[PhysicsBody2D] or [TileMap] used by the [Physics2DServer]. Get the "
+"[CollisionShape2D] node with [code]body."
+"shape_owner_get_owner(body_shape_index)[/code].\n"
+"[code]local_shape_index[/code] the index of the [Shape2D] of this Area2D "
+"used by the [Physics2DServer]. Get the [CollisionShape2D] node with "
+"[code]self.shape_owner_get_owner(local_shape_index)[/code]."
+msgstr ""
+
+#: doc/classes/Area2D.xml
+msgid ""
+"Emitted when one of a [PhysicsBody2D] or [TileMap]'s [Shape2D]s exits one of "
+"this Area2D's [Shape2D]s. Requires [member monitoring] to be set to "
+"[code]true[/code]. [TileMap]s are detected if the [TileSet] has Collision "
+"[Shape2D]s.\n"
+"[code]body_rid[/code] the [RID] of the [PhysicsBody2D] or [TileSet]'s "
+"[CollisionObject2D] used by the [Physics2DServer].\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the "
+"[PhysicsBody2D] or [TileMap].\n"
+"[code]body_shape_index[/code] the index of the [Shape2D] of the "
+"[PhysicsBody2D] or [TileMap] used by the [Physics2DServer]. Get the "
+"[CollisionShape2D] node with [code]body."
+"shape_owner_get_owner(body_shape_index)[/code].\n"
+"[code]local_shape_index[/code] the index of the [Shape2D] of this Area2D "
+"used by the [Physics2DServer]. Get the [CollisionShape2D] node with "
+"[code]self.shape_owner_get_owner(local_shape_index)[/code]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid "A generic array datatype."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"A generic array that can contain several elements of any type, accessible by "
+"a numerical index starting at 0. Negative indices can be used to count from "
+"the back, like in Python (-1 is the last element, -2 is the second to last, "
+"etc.).\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"var array = [\"One\", 2, 3, \"Four\"]\n"
+"print(array[0]) # One.\n"
+"print(array[2]) # 3.\n"
+"print(array[-1]) # Four.\n"
+"array[2] = \"Three\"\n"
+"print(array[-2]) # Three.\n"
+"[/codeblock]\n"
+"Arrays can be concatenated using the [code]+[/code] operator:\n"
+"[codeblock]\n"
+"var array1 = [\"One\", 2]\n"
+"var array2 = [3, \"Four\"]\n"
+"print(array1 + array2) # [\"One\", 2, 3, \"Four\"]\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Concatenating with the [code]+=[/code] operator will create a "
+"new array, which has a cost. If you want to append another array to an "
+"existing array, [method append_array] is more efficient.\n"
+"[b]Note:[/b] Arrays are always passed by reference. To get a copy of an "
+"array that can be modified independently of the original array, use [method "
+"duplicate].\n"
+"[b]Note:[/b] When declaring an array with [code]const[/code], the array "
+"itself can still be mutated by defining the values at individual indices or "
+"pushing/removing elements. Using [code]const[/code] will only prevent "
+"assigning the constant with another value after it was initialized."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid "Constructs an array from a [PoolColorArray]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid "Constructs an array from a [PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid "Constructs an array from a [PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid "Constructs an array from a [PoolStringArray]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid "Constructs an array from a [PoolRealArray]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid "Constructs an array from a [PoolIntArray]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid "Constructs an array from a [PoolByteArray]."
+msgstr ""
+
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
+msgid ""
+"Appends an element at the end of the array (alias of [method push_back])."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Appends another array at the end of this array.\n"
+"[codeblock]\n"
+"var array1 = [1, 2, 3]\n"
+"var array2 = [4, 5, 6]\n"
+"array1.append_array(array2)\n"
+"print(array1) # Prints [1, 2, 3, 4, 5, 6].\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Returns the last element of the array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[b]Note:[/b] Calling this function is not the same as writing [code]array[-1]"
+"[/code]. If the array is empty, accessing by index will pause project "
+"execution when running from the editor."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Finds the index of an existing value (or the insertion index that maintains "
+"sorting order, if the value is not yet present in the array) using binary "
+"search. Optionally, a [code]before[/code] specifier can be passed. If "
+"[code]false[/code], the returned index comes after all existing entries of "
+"the value in the array.\n"
+"[b]Note:[/b] Calling [method bsearch] on an unsorted array results in "
+"unexpected behavior."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Finds the index of an existing value (or the insertion index that maintains "
+"sorting order, if the value is not yet present in the array) using binary "
+"search and a custom comparison method declared in the [code]obj[/code]. "
+"Optionally, a [code]before[/code] specifier can be passed. If [code]false[/"
+"code], the returned index comes after all existing entries of the value in "
+"the array. The custom method receives two arguments (an element from the "
+"array and the value searched for) and must return [code]true[/code] if the "
+"first argument is less than the second, and return [code]false[/code] "
+"otherwise.\n"
+"[codeblock]\n"
+"func cardinal_to_algebraic(a):\n"
+" match a:\n"
+" \"one\":\n"
+" return 1\n"
+" \"two\":\n"
+" return 2\n"
+" \"three\":\n"
+" return 3\n"
+" \"four\":\n"
+" return 4\n"
+" _:\n"
+" return 0\n"
+"\n"
+"func compare(a, b):\n"
+" return cardinal_to_algebraic(a) < cardinal_to_algebraic(b)\n"
+"\n"
+"func _ready():\n"
+" var a = [\"one\", \"two\", \"three\", \"four\"]\n"
+" # `compare` is defined in this object, so we use `self` as the `obj` "
+"parameter.\n"
+" print(a.bsearch_custom(\"three\", self, \"compare\", true)) # Expected "
+"value is 2.\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Calling [method bsearch_custom] on an unsorted array results in "
+"unexpected behavior."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Clears the array. This is equivalent to using [method resize] with a size of "
+"[code]0[/code]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid "Returns the number of times an element is in the array."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Returns a copy of the array.\n"
+"If [code]deep[/code] is [code]true[/code], a deep copy is performed: all "
+"nested arrays and dictionaries are duplicated and will not be shared with "
+"the original array. If [code]false[/code], a shallow copy is made and "
+"references to the original nested arrays and dictionaries are kept, so that "
+"modifying a sub-array or dictionary in the copy will also impact those "
+"referenced in the source array."
+msgstr ""
+
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
+msgid "Returns [code]true[/code] if the array is empty."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Removes the first occurrence of a value from the array. To remove an element "
+"by index, use [method remove] instead.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a value.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the removed "
+"element is close to the beginning of the array (index 0). This is because "
+"all elements placed after the removed element have to be reindexed."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Searches the array for a value and returns its index or [code]-1[/code] if "
+"not found. Optionally, the initial search index can be passed."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Searches the array in reverse order for a value and returns its index or "
+"[code]-1[/code] if not found."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Returns the first element of the array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[b]Note:[/b] Calling this function is not the same as writing [code]array[0]"
+"[/code]. If the array is empty, accessing by index will pause project "
+"execution when running from the editor."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Returns [code]true[/code] if the array contains the given value.\n"
+"[codeblock]\n"
+"[\"inside\", 7].has(\"inside\") # True\n"
+"[\"inside\", 7].has(\"outside\") # False\n"
+"[\"inside\", 7].has(7) # True\n"
+"[\"inside\", 7].has(\"7\") # False\n"
+"[/codeblock]\n"
+"[b]Note:[/b] This is equivalent to using the [code]in[/code] operator as "
+"follows:\n"
+"[codeblock]\n"
+"# Will evaluate to `true`.\n"
+"if 2 in [2, 4, 6, 8]:\n"
+" pass\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Returns a hashed integer value representing the array and its contents.\n"
+"[b]Note:[/b] Arrays with equal contents can still produce different hashes. "
+"Only the exact same arrays will produce the same hashed integer value."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Inserts a new element at a given position in the array. The position must be "
+"valid, or at the end of the array ([code]pos == size()[/code]).\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a value.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the inserted "
+"element is close to the beginning of the array (index 0). This is because "
+"all elements placed after the newly inserted element have to be reindexed."
+msgstr ""
+
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
+msgid "Reverses the order of the elements in the array."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Returns the maximum value contained in the array if all elements are of "
+"comparable types. If the elements can't be compared, [code]null[/code] is "
+"returned."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Returns the minimum value contained in the array if all elements are of "
+"comparable types. If the elements can't be compared, [code]null[/code] is "
+"returned."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Removes and returns the element of the array at index [code]position[/code]. "
+"If negative, [code]position[/code] is considered relative to the end of the "
+"array. Leaves the array untouched and returns [code]null[/code] if the array "
+"is empty or if it's accessed out of bounds. An error message is printed when "
+"the array is accessed out of bounds, but not when the array is empty.\n"
+"[b]Note:[/b] On large arrays, this method can be slower than [method "
+"pop_back] as it will reindex the array's elements that are located after the "
+"removed element. The larger the array and the lower the index of the removed "
+"element, the slower [method pop_at] will be."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Removes and returns the last element of the array. Returns [code]null[/code] "
+"if the array is empty, without printing an error message. See also [method "
+"pop_front]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Removes and returns the first element of the array. Returns [code]null[/"
+"code] if the array is empty, without printing an error message. See also "
+"[method pop_back].\n"
+"[b]Note:[/b] On large arrays, this method is much slower than [method "
+"pop_back] as it will reindex all the array's elements every time it's "
+"called. The larger the array, the slower [method pop_front] will be."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Appends an element at the end of the array. See also [method push_front]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Adds an element at the beginning of the array. See also [method push_back].\n"
+"[b]Note:[/b] On large arrays, this method is much slower than [method "
+"push_back] as it will reindex all the array's elements every time it's "
+"called. The larger the array, the slower [method push_front] will be."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Removes an element from the array by index. If the index does not exist in "
+"the array, nothing happens. To remove an element by searching for its value, "
+"use [method erase] instead.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a value.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the removed "
+"element is close to the beginning of the array (index 0). This is because "
+"all elements placed after the removed element have to be reindexed."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Resizes the array to contain a different number of elements. If the array "
+"size is smaller, elements are cleared, if bigger, new elements are "
+"[code]null[/code]."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Searches the array in reverse order. Optionally, a start search index can be "
+"passed. If negative, the start index is considered relative to the end of "
+"the array."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Shuffles the array such that the items will have a random order. This method "
+"uses the global random number generator common to methods such as [method "
+"@GDScript.randi]. Call [method @GDScript.randomize] to ensure that a new "
+"seed will be used each time if you want non-reproducible shuffling."
+msgstr ""
+
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
+msgid "Returns the number of elements in the array."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Duplicates the subset described in the function and returns it in an array, "
+"deeply copying the array if [code]deep[/code] is [code]true[/code]. Lower "
+"and upper index are inclusive, with the [code]step[/code] describing the "
+"change between indices while slicing."
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Sorts the array.\n"
+"[b]Note:[/b] Strings are sorted in alphabetical order (as opposed to natural "
+"order). This may lead to unexpected behavior when sorting an array of "
+"strings ending with a sequence of numbers. Consider the following example:\n"
+"[codeblock]\n"
+"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
+"strings.sort()\n"
+"print(strings) # Prints [string1, string10, string11, string2]\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Array.xml
+msgid ""
+"Sorts the array using a custom method. The arguments are an object that "
+"holds the method and the name of such method. The custom method receives two "
+"arguments (a pair of elements from the array) and must return either "
+"[code]true[/code] or [code]false[/code].\n"
+"For two elements [code]a[/code] and [code]b[/code], if the given method "
+"returns [code]true[/code], element [code]b[/code] will be after element "
+"[code]a[/code] in the array.\n"
+"[b]Note:[/b] You cannot randomize the return value as the heapsort algorithm "
+"expects a deterministic result. Doing so will result in unexpected "
+"behavior.\n"
+"[codeblock]\n"
+"class MyCustomSorter:\n"
+" static func sort_ascending(a, b):\n"
+" if a[0] < b[0]:\n"
+" return true\n"
+" return false\n"
+"\n"
+"var my_items = [[5, \"Potato\"], [9, \"Rice\"], [4, \"Tomato\"]]\n"
+"my_items.sort_custom(MyCustomSorter, \"sort_ascending\")\n"
+"print(my_items) # Prints [[4, Tomato], [5, Potato], [9, Rice]].\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"[Mesh] type that provides utility for constructing a surface from arrays."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"The [ArrayMesh] is used to construct a [Mesh] by specifying the attributes "
+"as arrays.\n"
+"The most basic example is the creation of a single triangle:\n"
+"[codeblock]\n"
+"var vertices = PoolVector3Array()\n"
+"vertices.push_back(Vector3(0, 1, 0))\n"
+"vertices.push_back(Vector3(1, 0, 0))\n"
+"vertices.push_back(Vector3(0, 0, 1))\n"
+"# Initialize the ArrayMesh.\n"
+"var arr_mesh = ArrayMesh.new()\n"
+"var arrays = []\n"
+"arrays.resize(ArrayMesh.ARRAY_MAX)\n"
+"arrays[ArrayMesh.ARRAY_VERTEX] = vertices\n"
+"# Create the Mesh.\n"
+"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n"
+"var m = MeshInstance.new()\n"
+"m.mesh = arr_mesh\n"
+"[/codeblock]\n"
+"The [MeshInstance] is ready to be added to the [SceneTree] to be shown.\n"
+"See also [ImmediateGeometry], [MeshDataTool] and [SurfaceTool] for "
+"procedural geometry generation.\n"
+"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-"
+"OpenGL/Face-culling]winding order[/url] for front faces of triangle "
+"primitive modes."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "$DOCS_URL/tutorials/3d/procedural_geometry/arraymesh.html"
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"Adds name for a blend shape that will be added with [method "
+"add_surface_from_arrays]. Must be called before surface is added."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"Creates a new surface.\n"
+"Surfaces are created to be rendered using a [code]primitive[/code], which "
+"may be any of the types defined in [enum Mesh.PrimitiveType]. (As a note, "
+"when using indices, it is recommended to only use points, lines, or "
+"triangles.) [method Mesh.get_surface_count] will become the [code]surf_idx[/"
+"code] for this new surface.\n"
+"The [code]arrays[/code] argument is an array of arrays. See [enum ArrayType] "
+"for the values used in this array. For example, [code]arrays[0][/code] is "
+"the array of vertices. That first vertex sub-array is always required; the "
+"others are optional. Adding an index array puts this function into \"index "
+"mode\" where the vertex and other arrays become the sources of data and the "
+"index array defines the vertex order. All sub-arrays must have the same "
+"length as the vertex array or be empty, except for [constant ARRAY_INDEX] if "
+"it is used."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Removes all blend shapes from this [ArrayMesh]."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Removes all surfaces from this [ArrayMesh]."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Returns the number of blend shapes that the [ArrayMesh] holds."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Returns the name of the blend shape at this index."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"Will perform a UV unwrap on the [ArrayMesh] to prepare the mesh for "
+"lightmapping."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Will regenerate normal maps for the [ArrayMesh]."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"Returns the index of the first surface with this name held within this "
+"[ArrayMesh]. If none are found, -1 is returned."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"Returns the length in indices of the index array in the requested surface "
+"(see [method add_surface_from_arrays])."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"Returns the length in vertices of the vertex array in the requested surface "
+"(see [method add_surface_from_arrays])."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"Returns the format mask of the requested surface (see [method "
+"add_surface_from_arrays])."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Gets the name assigned to this surface."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"Returns the primitive type of the requested surface (see [method "
+"add_surface_from_arrays])."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"Removes a surface at position [code]surf_idx[/code], shifting greater "
+"surfaces one [code]surf_idx[/code] slot down."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Sets a name for a given surface."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"Updates a specified region of mesh arrays on the GPU.\n"
+"[b]Warning:[/b] Only use if you know what you are doing. You can easily "
+"cause crashes by calling this function with improper arguments."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Sets the blend shape mode to one of [enum Mesh.BlendShapeMode]."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml doc/classes/PrimitiveMesh.xml
+msgid ""
+"Overrides the [AABB] with one defined by user for use with frustum culling. "
+"Especially useful to avoid unexpected culling when using a shader to offset "
+"vertices."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Default value used for index_array_len when no indices are present."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Amount of weights/bone indices per vertex (always 4)."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "[PoolVector3Array], [PoolVector2Array], or [Array] of vertex positions."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "[PoolVector3Array] of vertex normals."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"[PoolRealArray] of vertex tangents. Each element in groups of 4 floats, "
+"first 3 floats determine the tangent, and the last the binormal direction as "
+"-1 or 1."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "[PoolColorArray] of vertex colors."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "[PoolVector2Array] for UV coordinates."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "[PoolVector2Array] for second UV coordinates."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"[PoolRealArray] or [PoolIntArray] of bone indices. Each element in groups of "
+"4 floats."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "[PoolRealArray] of bone weights. Each element in groups of 4 floats."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid ""
+"[PoolIntArray] of integers used as indices referencing vertices, colors, "
+"normals, tangents, and textures. All of those arrays must have the same "
+"number of elements as the vertex array. No index can be beyond the vertex "
+"array size. When this index array is present, it puts the function into "
+"\"index mode,\" where the index selects the *i*'th vertex, normal, tangent, "
+"color, UV, etc. This means if you want to have different normals or colors "
+"along an edge, you have to duplicate the vertices.\n"
+"For triangles, the index array is interpreted as triples, referring to the "
+"vertices of each triangle. For lines, the index array is in pairs indicating "
+"the start and end of each line."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Represents the size of the [enum ArrayType] enum."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Array format will include vertices (mandatory)."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Array format will include normals."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Array format will include tangents."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Array format will include a color array."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Array format will include UVs."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Array format will include another set of UVs."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Array format will include bone indices."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Array format will include bone weights."
+msgstr ""
+
+#: doc/classes/ArrayMesh.xml
+msgid "Index array will be used."
+msgstr ""
+
+#: doc/classes/ARVRAnchor.xml
+msgid "An anchor point in AR space."
+msgstr ""
+
+#: doc/classes/ARVRAnchor.xml
+msgid ""
+"The [ARVRAnchor] point is a spatial node that maps a real world location "
+"identified by the AR platform to a position within the game world. For "
+"example, as long as plane detection in ARKit is on, ARKit will identify and "
+"update the position of planes (tables, floors, etc) and create anchors for "
+"them.\n"
+"This node is mapped to one of the anchors through its unique ID. When you "
+"receive a signal that a new anchor is available, you should add this node to "
+"your scene for that anchor. You can predefine nodes and set the ID; the "
+"nodes will simply remain on 0,0,0 until a plane is recognized.\n"
+"Keep in mind that, as long as plane detection is enabled, the size, placing "
+"and orientation of an anchor will be updated as the detection logic learns "
+"more about the real world out there especially if only part of the surface "
+"is in view."
+msgstr ""
+
+#: doc/classes/ARVRAnchor.xml
+msgid "Returns the name given to this anchor."
+msgstr ""
+
+#: doc/classes/ARVRAnchor.xml
+msgid ""
+"Returns [code]true[/code] if the anchor is being tracked and [code]false[/"
+"code] if no anchor with this ID is currently known."
+msgstr ""
+
+#: doc/classes/ARVRAnchor.xml
+msgid ""
+"If provided by the [ARVRInterface], this returns a mesh object for the "
+"anchor. For an anchor, this can be a shape related to the object being "
+"tracked or it can be a mesh that provides topology related to the anchor and "
+"can be used to create shadows/reflections on surfaces or for generating "
+"collision shapes."
+msgstr ""
+
+#: doc/classes/ARVRAnchor.xml
+msgid ""
+"Returns a plane aligned with our anchor; handy for intersection testing."
+msgstr ""
+
+#: doc/classes/ARVRAnchor.xml
+msgid ""
+"Returns the estimated size of the plane that was detected. Say when the "
+"anchor relates to a table in the real world, this is the estimated size of "
+"the surface of that table."
+msgstr ""
+
+#: doc/classes/ARVRAnchor.xml
+msgid ""
+"The anchor's ID. You can set this before the anchor itself exists. The first "
+"anchor gets an ID of [code]1[/code], the second an ID of [code]2[/code], "
+"etc. When anchors get removed, the engine can then assign the corresponding "
+"ID to new anchors. The most common situation where anchors \"disappear\" is "
+"when the AR server identifies that two anchors represent different parts of "
+"the same plane and merges them."
+msgstr ""
+
+#: doc/classes/ARVRAnchor.xml
+msgid ""
+"Emitted when the mesh associated with the anchor changes or when one becomes "
+"available. This is especially important for topology that is constantly "
+"being [code]mesh_updated[/code]."
+msgstr ""
+
+#: doc/classes/ARVRCamera.xml
+msgid ""
+"A camera node with a few overrules for AR/VR applied, such as location "
+"tracking."
+msgstr ""
+
+#: doc/classes/ARVRCamera.xml
+msgid ""
+"This is a helper spatial node for our camera; note that, if stereoscopic "
+"rendering is applicable (VR-HMD), most of the camera properties are ignored, "
+"as the HMD information overrides them. The only properties that can be "
+"trusted are the near and far planes.\n"
+"The position and orientation of this node is automatically updated by the "
+"ARVR Server to represent the location of the HMD if such tracking is "
+"available and can thus be used by game logic. Note that, in contrast to the "
+"ARVR Controller, the render thread has access to the most up-to-date "
+"tracking data of the HMD and the location of the ARVRCamera can lag a few "
+"milliseconds behind what is used for rendering as a result."
+msgstr ""
+
+#: doc/classes/ARVRCamera.xml doc/classes/ARVRController.xml
+#: doc/classes/ARVRInterface.xml doc/classes/ARVROrigin.xml
+#: doc/classes/ARVRPositionalTracker.xml doc/classes/ARVRServer.xml
+msgid "$DOCS_URL/tutorials/vr/index.html"
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid "A spatial node representing a spatially-tracked controller."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"This is a helper spatial node that is linked to the tracking of controllers. "
+"It also offers several handy passthroughs to the state of buttons and such "
+"on the controllers.\n"
+"Controllers are linked by their ID. You can create controller nodes before "
+"the controllers are available. If your game always uses two controllers (one "
+"for each hand), you can predefine the controllers with ID 1 and 2; they will "
+"become active as soon as the controllers are identified. If you expect "
+"additional controllers to be used, you should react to the signals and add "
+"ARVRController nodes to your scene.\n"
+"The position of the controller node is automatically updated by the "
+"[ARVRServer]. This makes this node ideal to add child nodes to visualize the "
+"controller."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"If active, returns the name of the associated controller if provided by the "
+"AR/VR SDK used."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"Returns the hand holding this controller, if known. See [enum "
+"ARVRPositionalTracker.TrackerHand]."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"Returns [code]true[/code] if the bound controller is active. ARVR systems "
+"attempt to track active controllers."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"Returns the value of the given axis for things like triggers, touchpads, "
+"etc. that are embedded into the controller."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"Returns the ID of the joystick object bound to this. Every controller "
+"tracked by the [ARVRServer] that has buttons and axis will also be "
+"registered as a joystick within Godot. This means that all the normal "
+"joystick tracking and input mapping will work for buttons and axis found on "
+"the AR/VR controllers. This ID is purely offered as information so you can "
+"link up the controller with its joystick entry."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"If provided by the [ARVRInterface], this returns a mesh associated with the "
+"controller. This can be used to visualize the controller."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"Returns [code]true[/code] if the button at index [code]button[/code] is "
+"pressed. See [enum JoystickList], in particular the [code]JOY_VR_*[/code] "
+"constants."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"The controller's ID.\n"
+"A controller ID of 0 is unbound and will always result in an inactive node. "
+"Controller ID 1 is reserved for the first controller that identifies itself "
+"as the left-hand controller and ID 2 is reserved for the first controller "
+"that identifies itself as the right-hand controller.\n"
+"For any other controller that the [ARVRServer] detects, we continue with "
+"controller ID 3.\n"
+"When a controller is turned off, its slot is freed. This ensures controllers "
+"will keep the same ID even when controllers with lower IDs are turned off."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"The degree to which the controller vibrates. Ranges from [code]0.0[/code] to "
+"[code]1.0[/code] with precision [code].01[/code]. If changed, updates "
+"[member ARVRPositionalTracker.rumble] accordingly.\n"
+"This is a useful property to animate if you want the controller to vibrate "
+"for a limited duration."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid "Emitted when a button on this controller is pressed."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid "Emitted when a button on this controller is released."
+msgstr ""
+
+#: doc/classes/ARVRController.xml
+msgid ""
+"Emitted when the mesh associated with the controller changes or when one "
+"becomes available. Generally speaking this will be a static mesh after "
+"becoming available."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid "Base class for an AR/VR interface implementation."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"This class needs to be implemented to make an AR or VR platform available to "
+"Godot and these should be implemented as C++ modules or GDNative modules "
+"(note that for GDNative the subclass ARVRScriptInterface should be used). "
+"Part of the interface is exposed to GDScript so you can detect, enable and "
+"configure an AR or VR platform.\n"
+"Interfaces should be written in such a way that simply enabling them will "
+"give us a working setup. You can query the available interfaces through "
+"[ARVRServer]."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"If this is an AR interface that requires displaying a camera feed as the "
+"background, this method returns the feed ID in the [CameraServer] for this "
+"interface."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"Returns a combination of [enum Capabilities] flags providing information "
+"about the capabilities of this interface."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid "Returns the name of this interface (OpenVR, OpenHMD, ARKit, etc)."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"Returns the resolution at which we should render our intermediate results "
+"before things like lens distortion are applied by the VR platform."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"If supported, returns the status of our tracking. This will allow you to "
+"provide feedback to the user whether there are issues with positional "
+"tracking."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"Call this to initialize this interface. The first interface that is "
+"initialized is identified as the primary interface and it will be used for "
+"rendering output.\n"
+"After initializing the interface you want to use you then need to enable the "
+"AR/VR mode of a viewport and rendering should commence.\n"
+"[b]Note:[/b] You must enable the AR/VR mode on the main viewport for any "
+"device that uses the main output of Godot, such as for mobile VR.\n"
+"If you do this for a platform that handles its own output (such as OpenVR) "
+"Godot will show just one eye without distortion on screen. Alternatively, "
+"you can add a separate viewport node to your scene and enable AR/VR on that "
+"viewport. It will be used to output to the HMD, leaving you free to do "
+"anything you like in the main window, such as using a separate camera as a "
+"spectator camera or rendering something completely different.\n"
+"While currently not used, you can activate additional interfaces. You may "
+"wish to do this if you want to track controllers from other platforms. "
+"However, at this point in time only one interface can render to an HMD."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"Returns [code]true[/code] if the current output of this interface is in "
+"stereo."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid "Turns the interface off."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid "On an AR interface, [code]true[/code] if anchor detection is enabled."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid "[code]true[/code] if this interface been initialized."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid "[code]true[/code] if this is the primary interface."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid "No ARVR capabilities."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"This interface can work with normal rendering output (non-HMD based AR)."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid "This interface supports stereoscopic rendering."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid "This interface supports AR (video background and real world tracking)."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"This interface outputs to an external device. If the main viewport is used, "
+"the on screen output is an unmodified buffer of either the left or right eye "
+"(stretched if the viewport size is not changed to the same aspect ratio of "
+"[method get_render_targetsize]). Using a separate viewport node frees up the "
+"main viewport for other purposes."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"Mono output, this is mostly used internally when retrieving positioning "
+"information for our camera node or when stereo scopic rendering is not "
+"supported."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"Left eye output, this is mostly used internally when rendering the image for "
+"the left eye and obtaining positioning and projection information."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"Right eye output, this is mostly used internally when rendering the image "
+"for the right eye and obtaining positioning and projection information."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid "Tracking is behaving as expected."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"Tracking is hindered by excessive motion (the player is moving faster than "
+"tracking can keep up)."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"Tracking is hindered by insufficient features, it's too dark (for camera-"
+"based tracking), player is blocked, etc."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"We don't know the status of the tracking or this interface does not provide "
+"feedback."
+msgstr ""
+
+#: doc/classes/ARVRInterface.xml
+msgid ""
+"Tracking is not functional (camera not plugged in or obscured, lighthouses "
+"turned off, etc.)."
+msgstr ""
+
+#: modules/gdnative/doc_classes/ARVRInterfaceGDNative.xml
+msgid "GDNative wrapper for an ARVR interface."
+msgstr ""
+
+#: modules/gdnative/doc_classes/ARVRInterfaceGDNative.xml
+msgid ""
+"This is a wrapper class for GDNative implementations of the ARVR interface. "
+"To use a GDNative ARVR interface, simply instantiate this object and set "
+"your GDNative library containing the ARVR interface implementation."
+msgstr ""
+
+#: doc/classes/ARVROrigin.xml
+msgid "The origin point in AR/VR."
+msgstr ""
+
+#: doc/classes/ARVROrigin.xml
+msgid ""
+"This is a special node within the AR/VR system that maps the physical "
+"location of the center of our tracking space to the virtual location within "
+"our game world.\n"
+"There should be only one of these nodes in your scene and you must have one. "
+"All the ARVRCamera, ARVRController and ARVRAnchor nodes should be direct "
+"children of this node for spatial tracking to work correctly.\n"
+"It is the position of this node that you update when your character needs to "
+"move through your game world while we're not moving in the real world. "
+"Movement in the real world is always in relation to this origin point.\n"
+"For example, if your character is driving a car, the ARVROrigin node should "
+"be a child node of this car. Or, if you're implementing a teleport system to "
+"move your character, you should change the position of this node."
+msgstr ""
+
+#: doc/classes/ARVROrigin.xml
+msgid ""
+"Allows you to adjust the scale to your game's units. Most AR/VR platforms "
+"assume a scale of 1 game world unit = 1 real world meter.\n"
+"[b]Note:[/b] This method is a passthrough to the [ARVRServer] itself."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "A tracked object."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid ""
+"An instance of this object represents a device that is tracked, such as a "
+"controller or anchor point. HMDs aren't represented here as they are handled "
+"internally.\n"
+"As controllers are turned on and the AR/VR interface detects them, instances "
+"of this object are automatically added to this list of active tracking "
+"objects accessible through the [ARVRServer].\n"
+"The [ARVRController] and [ARVRAnchor] both consume objects of this type and "
+"should be used in your project. The positional trackers are just under-the-"
+"hood objects that make this all work. These are mostly exposed so that "
+"GDNative-based interfaces can interact with them."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid ""
+"Returns the hand holding this tracker, if known. See [enum TrackerHand] "
+"constants."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid ""
+"If this is a controller that is being tracked, the controller will also be "
+"represented by a joystick entry with this ID."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid ""
+"Returns the mesh related to a controller or anchor point if one is available."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "Returns the controller or anchor point's name if available."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "Returns the controller's orientation matrix."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "Returns the world-space controller position."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid ""
+"Returns the internal tracker ID. This uniquely identifies the tracker per "
+"tracker type and matches the ID you need to specify for nodes such as the "
+"[ARVRController] and [ARVRAnchor] nodes."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "Returns [code]true[/code] if this device tracks orientation."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "Returns [code]true[/code] if this device tracks position."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "Returns the transform combining this device's orientation and position."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "Returns the tracker's type."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid ""
+"The degree to which the tracker rumbles. Ranges from [code]0.0[/code] to "
+"[code]1.0[/code] with precision [code].01[/code]."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "The hand this tracker is held in is unknown or not applicable."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "This tracker is the left hand controller."
+msgstr ""
+
+#: doc/classes/ARVRPositionalTracker.xml
+msgid "This tracker is the right hand controller."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Server for AR and VR features."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"The AR/VR server is the heart of our Advanced and Virtual Reality solution "
+"and handles all the processing."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Registers an [ARVRInterface] object."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Registers a new [ARVRPositionalTracker] that tracks a spatial location in "
+"real space."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"This is an important function to understand correctly. AR and VR platforms "
+"all handle positioning slightly differently.\n"
+"For platforms that do not offer spatial tracking, our origin point (0,0,0) "
+"is the location of our HMD, but you have little control over the direction "
+"the player is facing in the real world.\n"
+"For platforms that do offer spatial tracking, our origin point depends very "
+"much on the system. For OpenVR, our origin point is usually the center of "
+"the tracking space, on the ground. For other platforms, it's often the "
+"location of the tracking camera.\n"
+"This method allows you to center your tracker on the location of the HMD. It "
+"will take the current location of the HMD and use that to adjust all your "
+"tracking data; in essence, realigning the real world to your player's "
+"current position in the game world.\n"
+"For this method to produce usable results, tracking information must be "
+"available. This often takes a few frames after starting your game.\n"
+"You should call this method after a few seconds have passed. For instance, "
+"when the user requests a realignment of the display holding a designated "
+"button on a controller for a short period of time, or when implementing a "
+"teleport mechanism."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Clears our current primary interface if it is set to the provided interface."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Finds an interface by its name. For instance, if your project uses "
+"capabilities of an AR/VR platform, you can find the interface for that "
+"platform by name and initialize it."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Returns the primary interface's transformation."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Returns the interface registered at a given index in our list of interfaces."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Returns the number of interfaces currently registered with the AR/VR server. "
+"If your project supports multiple AR/VR platforms, you can look through the "
+"available interface, and either present the user with a selection or simply "
+"try to initialize each interface and use the first one that returns "
+"[code]true[/code]."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Returns a list of available interfaces the ID and name of each interface."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Returns the absolute timestamp (in μs) of the last [ARVRServer] commit of "
+"the AR/VR eyes to [VisualServer]. The value comes from an internal call to "
+"[method OS.get_ticks_usec]."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Returns the duration (in μs) of the last frame. This is computed as the "
+"difference between [method get_last_commit_usec] and [method "
+"get_last_process_usec] when committing."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Returns the absolute timestamp (in μs) of the last [ARVRServer] process "
+"callback. The value comes from an internal call to [method OS."
+"get_ticks_usec]."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Returns the reference frame transform. Mostly used internally and exposed "
+"for GDNative build interfaces."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Returns the positional tracker at the given ID."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Returns the number of trackers currently registered."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Removes this interface."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Removes this positional tracker."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "The primary [ARVRInterface] currently bound to the [ARVRServer]."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Allows you to adjust the scale to your game's units. Most AR/VR platforms "
+"assume a scale of 1 game world unit = 1 real world meter."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Emitted when a new interface has been added."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Emitted when an interface is removed."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Emitted when a new tracker has been added. If you don't use a fixed number "
+"of controllers or if you're using [ARVRAnchor]s for an AR solution, it is "
+"important to react to this signal to add the appropriate [ARVRController] or "
+"[ARVRAnchor] nodes related to this new tracker."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Emitted when a tracker is removed. You should remove any [ARVRController] or "
+"[ARVRAnchor] points if applicable. This is not mandatory, the nodes simply "
+"become inactive and will be made active again when a new tracker becomes "
+"available (i.e. a new controller is switched on that takes the place of the "
+"previous one)."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "The tracker tracks the location of a controller."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "The tracker tracks the location of a base station."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "The tracker tracks the location and size of an AR anchor."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Used internally to filter trackers of any known type."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Used internally if we haven't set the tracker type yet."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid "Used internally to select all trackers."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Fully reset the orientation of the HMD. Regardless of what direction the "
+"user is looking to in the real world. The user will look dead ahead in the "
+"virtual world."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Resets the orientation but keeps the tilt of the device. So if we're looking "
+"down, we keep looking down but heading will be reset."
+msgstr ""
+
+#: doc/classes/ARVRServer.xml
+msgid ""
+"Does not reset the orientation of the HMD, only the position of the player "
+"gets centered."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid "Container that preserves its child controls' aspect ratio."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid ""
+"Arranges child controls in a way to preserve their aspect ratio "
+"automatically whenever the container is resized. Solves the problem where "
+"the container size is dynamic and the contents' size needs to adjust "
+"accordingly without losing proportions."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid "Specifies the horizontal relative position of child controls."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid "Specifies the vertical relative position of child controls."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid ""
+"The aspect ratio to enforce on child controls. This is the width divided by "
+"the height. The ratio depends on the [member stretch_mode]."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid "The stretch mode used to align child controls."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid ""
+"The height of child controls is automatically adjusted based on the width of "
+"the container."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid ""
+"The width of child controls is automatically adjusted based on the height of "
+"the container."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid ""
+"The bounding rectangle of child controls is automatically adjusted to fit "
+"inside the container while keeping the aspect ratio."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid ""
+"The width and height of child controls is automatically adjusted to make "
+"their bounding rectangle cover the entire area of the container while "
+"keeping the aspect ratio.\n"
+"When the bounding rectangle of child controls exceed the container's size "
+"and [member Control.rect_clip_content] is enabled, this allows to show only "
+"the container's area restricted by its own bounding rectangle."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid ""
+"Aligns child controls with the beginning (left or top) of the container."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid "Aligns child controls with the center of the container."
+msgstr ""
+
+#: doc/classes/AspectRatioContainer.xml
+msgid "Aligns child controls with the end (right or bottom) of the container."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"An implementation of A* to find the shortest paths among connected points in "
+"space."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"A* (A star) is a computer algorithm that is widely used in pathfinding and "
+"graph traversal, the process of plotting short paths among vertices "
+"(points), passing through a given set of edges (segments). It enjoys "
+"widespread use due to its performance and accuracy. Godot's A* "
+"implementation uses points in three-dimensional space and Euclidean "
+"distances by default.\n"
+"You must add points manually with [method add_point] and create segments "
+"manually with [method connect_points]. Then you can test if there is a path "
+"between two points with the [method are_points_connected] function, get a "
+"path containing indices by [method get_id_path], or one containing actual "
+"coordinates with [method get_point_path].\n"
+"It is also possible to use non-Euclidean distances. To do so, create a class "
+"that extends [code]AStar[/code] and override methods [method _compute_cost] "
+"and [method _estimate_cost]. Both take two indices and return a length, as "
+"is shown in the following example.\n"
+"[codeblock]\n"
+"class MyAStar:\n"
+" extends AStar\n"
+"\n"
+" func _compute_cost(u, v):\n"
+" return abs(u - v)\n"
+"\n"
+" func _estimate_cost(u, v):\n"
+" return min(0, abs(u - v) - 1)\n"
+"[/codeblock]\n"
+"[method _estimate_cost] should return a lower bound of the distance, i.e. "
+"[code]_estimate_cost(u, v) <= _compute_cost(u, v)[/code]. This serves as a "
+"hint to the algorithm because the custom [code]_compute_cost[/code] might be "
+"computation-heavy. If this is not the case, make [method _estimate_cost] "
+"return the same value as [method _compute_cost] to provide the algorithm "
+"with the most accurate information.\n"
+"If the default [method _estimate_cost] and [method _compute_cost] methods "
+"are used, or if the supplied [method _estimate_cost] method returns a lower "
+"bound of the cost, then the paths returned by A* will be the lowest-cost "
+"paths. Here, the cost of a path equals the sum of the [method _compute_cost] "
+"results of all segments in the path multiplied by the [code]weight_scale[/"
+"code]s of the endpoints of the respective segments. If the default methods "
+"are used and the [code]weight_scale[/code]s of all points are set to "
+"[code]1.0[/code], then this equals the sum of Euclidean distances of all "
+"segments in the path."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"Called when computing the cost between two connected points.\n"
+"Note that this function is hidden in the default [code]AStar[/code] class."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"Called when estimating the cost between a point and the path's ending "
+"point.\n"
+"Note that this function is hidden in the default [code]AStar[/code] class."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"Adds a new point at the given position with the given identifier. The "
+"[code]id[/code] must be 0 or larger, and the [code]weight_scale[/code] must "
+"be 1 or larger.\n"
+"The [code]weight_scale[/code] is multiplied by the result of [method "
+"_compute_cost] when determining the overall cost of traveling across a "
+"segment from a neighboring point to this point. Thus, all else being equal, "
+"the algorithm prefers points with lower [code]weight_scale[/code]s to form a "
+"path.\n"
+"[codeblock]\n"
+"var astar = AStar.new()\n"
+"astar.add_point(1, Vector3(1, 0, 0), 4) # Adds the point (1, 0, 0) with "
+"weight_scale 4 and id 1\n"
+"[/codeblock]\n"
+"If there already exists a point for the given [code]id[/code], its position "
+"and weight scale are updated to the given values."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"Returns whether the two given points are directly connected by a segment. If "
+"[code]bidirectional[/code] is [code]false[/code], returns whether movement "
+"from [code]id[/code] to [code]to_id[/code] is possible through this segment."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid "Clears all the points and segments."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"Creates a segment between the given points. If [code]bidirectional[/code] is "
+"[code]false[/code], only movement from [code]id[/code] to [code]to_id[/code] "
+"is allowed, not the reverse direction.\n"
+"[codeblock]\n"
+"var astar = AStar.new()\n"
+"astar.add_point(1, Vector3(1, 1, 0))\n"
+"astar.add_point(2, Vector3(0, 5, 0))\n"
+"astar.connect_points(1, 2, false)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"Deletes the segment between the given points. If [code]bidirectional[/code] "
+"is [code]false[/code], only movement from [code]id[/code] to [code]to_id[/"
+"code] is prevented, and a unidirectional segment possibly remains."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid "Returns the next available point ID with no point associated to it."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Returns the ID of the closest point to [code]to_position[/code], optionally "
+"taking disabled points into account. Returns [code]-1[/code] if there are no "
+"points in the points pool.\n"
+"[b]Note:[/b] If several points are the closest to [code]to_position[/code], "
+"the one with the smallest ID will be returned, ensuring a deterministic "
+"result."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"Returns the closest position to [code]to_position[/code] that resides inside "
+"a segment between two connected points.\n"
+"[codeblock]\n"
+"var astar = AStar.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 5, 0))\n"
+"astar.connect_points(1, 2)\n"
+"var res = astar.get_closest_position_in_segment(Vector3(3, 3, 0)) # Returns "
+"(0, 3, 0)\n"
+"[/codeblock]\n"
+"The result is in the segment that goes from [code]y = 0[/code] to [code]y = "
+"5[/code]. It's the closest position in the segment to the given point."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"Returns an array with the IDs of the points that form the path found by "
+"AStar between the given points. The array is ordered from the starting point "
+"to the ending point of the path.\n"
+"[codeblock]\n"
+"var astar = AStar.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1\n"
+"astar.add_point(3, Vector3(1, 1, 0))\n"
+"astar.add_point(4, Vector3(2, 0, 0))\n"
+"\n"
+"astar.connect_points(1, 2, false)\n"
+"astar.connect_points(2, 3, false)\n"
+"astar.connect_points(4, 3, false)\n"
+"astar.connect_points(1, 4, false)\n"
+"\n"
+"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n"
+"[/codeblock]\n"
+"If you change the 2nd point's weight to 3, then the result will be [code][1, "
+"4, 3][/code] instead, because now even though the distance is longer, it's "
+"\"easier\" to get through point 4 than through point 2."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Returns the capacity of the structure backing the points, useful in "
+"conjunction with [code]reserve_space[/code]."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"Returns an array with the IDs of the points that form the connection with "
+"the given point.\n"
+"[codeblock]\n"
+"var astar = AStar.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 1, 0))\n"
+"astar.add_point(3, Vector3(1, 1, 0))\n"
+"astar.add_point(4, Vector3(2, 0, 0))\n"
+"\n"
+"astar.connect_points(1, 2, true)\n"
+"astar.connect_points(1, 3, true)\n"
+"\n"
+"var neighbors = astar.get_point_connections(1) # Returns [2, 3]\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid "Returns the number of points currently in the points pool."
+msgstr ""
+
+#: doc/classes/AStar.xml
+msgid ""
+"Returns an array with the points that are in the path found by AStar between "
+"the given points. The array is ordered from the starting point to the ending "
+"point of the path.\n"
+"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it "
+"will return an empty [PoolVector3Array] and will print an error message."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Returns the position of the point associated with the given [code]id[/code]."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Returns the weight scale of the point associated with the given [code]id[/"
+"code]."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid "Returns an array of all points."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Returns whether a point associated with the given [code]id[/code] exists."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Returns whether a point is disabled or not for pathfinding. By default, all "
+"points are enabled."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Removes the point associated with the given [code]id[/code] from the points "
+"pool."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Reserves space internally for [code]num_nodes[/code] points, useful if "
+"you're adding a known large number of points at once, for a grid for "
+"instance. New capacity must be greater or equals to old capacity."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Disables or enables the specified point for pathfinding. Useful for making a "
+"temporary obstacle."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Sets the [code]position[/code] for the point with the given [code]id[/code]."
+msgstr ""
+
+#: doc/classes/AStar.xml doc/classes/AStar2D.xml
+msgid ""
+"Sets the [code]weight_scale[/code] for the point with the given [code]id[/"
+"code]. The [code]weight_scale[/code] is multiplied by the result of [method "
+"_compute_cost] when determining the overall cost of traveling across a "
+"segment from a neighboring point to this point."
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid "AStar class representation that uses 2D vectors as edges."
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid ""
+"This is a wrapper for the [AStar] class which uses 2D vectors instead of 3D "
+"vectors."
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid ""
+"Called when computing the cost between two connected points.\n"
+"Note that this function is hidden in the default [code]AStar2D[/code] class."
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid ""
+"Called when estimating the cost between a point and the path's ending "
+"point.\n"
+"Note that this function is hidden in the default [code]AStar2D[/code] class."
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid ""
+"Adds a new point at the given position with the given identifier. The "
+"[code]id[/code] must be 0 or larger, and the [code]weight_scale[/code] must "
+"be 1 or larger.\n"
+"The [code]weight_scale[/code] is multiplied by the result of [method "
+"_compute_cost] when determining the overall cost of traveling across a "
+"segment from a neighboring point to this point. Thus, all else being equal, "
+"the algorithm prefers points with lower [code]weight_scale[/code]s to form a "
+"path.\n"
+"[codeblock]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 0), 4) # Adds the point (1, 0) with "
+"weight_scale 4 and id 1\n"
+"[/codeblock]\n"
+"If there already exists a point for the given [code]id[/code], its position "
+"and weight scale are updated to the given values."
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid "Returns whether there is a connection/segment between the given points."
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid ""
+"Creates a segment between the given points. If [code]bidirectional[/code] is "
+"[code]false[/code], only movement from [code]id[/code] to [code]to_id[/code] "
+"is allowed, not the reverse direction.\n"
+"[codeblock]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 1))\n"
+"astar.add_point(2, Vector2(0, 5))\n"
+"astar.connect_points(1, 2, false)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid "Deletes the segment between the given points."
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid ""
+"Returns the closest position to [code]to_position[/code] that resides inside "
+"a segment between two connected points.\n"
+"[codeblock]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 5))\n"
+"astar.connect_points(1, 2)\n"
+"var res = astar.get_closest_position_in_segment(Vector2(3, 3)) # Returns (0, "
+"3)\n"
+"[/codeblock]\n"
+"The result is in the segment that goes from [code]y = 0[/code] to [code]y = "
+"5[/code]. It's the closest position in the segment to the given point."
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid ""
+"Returns an array with the IDs of the points that form the path found by "
+"AStar2D between the given points. The array is ordered from the starting "
+"point to the ending point of the path.\n"
+"[codeblock]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 1), 1) # Default weight is 1\n"
+"astar.add_point(3, Vector2(1, 1))\n"
+"astar.add_point(4, Vector2(2, 0))\n"
+"\n"
+"astar.connect_points(1, 2, false)\n"
+"astar.connect_points(2, 3, false)\n"
+"astar.connect_points(4, 3, false)\n"
+"astar.connect_points(1, 4, false)\n"
+"\n"
+"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n"
+"[/codeblock]\n"
+"If you change the 2nd point's weight to 3, then the result will be [code][1, "
+"4, 3][/code] instead, because now even though the distance is longer, it's "
+"\"easier\" to get through point 4 than through point 2."
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid ""
+"Returns an array with the IDs of the points that form the connection with "
+"the given point.\n"
+"[codeblock]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 1))\n"
+"astar.add_point(3, Vector2(1, 1))\n"
+"astar.add_point(4, Vector2(2, 0))\n"
+"\n"
+"astar.connect_points(1, 2, true)\n"
+"astar.connect_points(1, 3, true)\n"
+"\n"
+"var neighbors = astar.get_point_connections(1) # Returns [2, 3]\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/AStar2D.xml
+msgid ""
+"Returns an array with the points that are in the path found by AStar2D "
+"between the given points. The array is ordered from the starting point to "
+"the ending point of the path.\n"
+"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it "
+"will return an empty [PoolVector2Array] and will print an error message."
+msgstr ""
+
+#: doc/classes/AtlasTexture.xml
+msgid ""
+"Crops out one part of a texture, such as a texture from a texture atlas."
+msgstr ""
+
+#: doc/classes/AtlasTexture.xml
+msgid ""
+"[Texture] resource that crops out one part of the [member atlas] texture, "
+"defined by [member region]. The main use case is cropping out textures from "
+"a texture atlas, which is a big texture file that packs multiple smaller "
+"textures. Consists of a [Texture] for the [member atlas], a [member region] "
+"that defines the area of [member atlas] to use, and a [member margin] that "
+"defines the border width.\n"
+"[AtlasTexture] cannot be used in an [AnimatedTexture], cannot be tiled in "
+"nodes such as [TextureRect], and does not work properly if used inside of "
+"other [AtlasTexture] resources. Multiple [AtlasTexture] resources can be "
+"used to crop multiple textures from the atlas. Using a texture atlas helps "
+"to optimize video memory costs and render calls compared to using multiple "
+"small files.\n"
+"[b]Note:[/b] AtlasTextures don't support repetition. The [constant Texture."
+"FLAG_REPEAT] and [constant Texture.FLAG_MIRRORED_REPEAT] flags are ignored "
+"when using an AtlasTexture."
+msgstr ""
+
+#: doc/classes/AtlasTexture.xml
+msgid "The texture that contains the atlas. Can be any [Texture] subtype."
+msgstr ""
+
+#: doc/classes/AtlasTexture.xml
+msgid ""
+"If [code]true[/code], clips the area outside of the region to avoid bleeding "
+"of the surrounding texture pixels."
+msgstr ""
+
+#: doc/classes/AtlasTexture.xml
+msgid ""
+"The margin around the region. The [Rect2]'s [member Rect2.size] parameter "
+"(\"w\" and \"h\" in the editor) resizes the texture so it fits within the "
+"margin."
+msgstr ""
+
+#: doc/classes/AtlasTexture.xml
+msgid "The AtlasTexture's used region."
+msgstr ""
+
+#: doc/classes/AudioBusLayout.xml
+msgid "Stores information about the audio buses."
+msgstr ""
+
+#: doc/classes/AudioBusLayout.xml
+msgid ""
+"Stores position, muting, solo, bypass, effects, effect position, volume, and "
+"the connections between buses. See [AudioServer] for usage."
+msgstr ""
+
+#: doc/classes/AudioEffect.xml
+msgid "Audio effect for audio."
+msgstr ""
+
+#: doc/classes/AudioEffect.xml
+msgid ""
+"Base resource for audio bus. Applies an audio effect on the bus that the "
+"resource is applied on."
+msgstr ""
+
+#: doc/classes/AudioEffect.xml doc/classes/AudioEffectRecord.xml
+#: doc/classes/AudioServer.xml doc/classes/AudioStream.xml
+#: doc/classes/AudioStreamPlayer.xml
+msgid "https://godotengine.org/asset-library/asset/527"
+msgstr ""
+
+#: doc/classes/AudioEffectAmplify.xml
+msgid ""
+"Adds an amplifying audio effect to an audio bus.\n"
+"Increases or decreases the volume of the selected audio bus."
+msgstr ""
+
+#: doc/classes/AudioEffectAmplify.xml
+msgid "Increases or decreases the volume being routed through the audio bus."
+msgstr ""
+
+#: doc/classes/AudioEffectAmplify.xml
+msgid ""
+"Amount of amplification in decibels. Positive values make the sound louder, "
+"negative values make it quieter. Value can range from -80 to 24."
+msgstr ""
+
+#: doc/classes/AudioEffectBandLimitFilter.xml
+msgid "Adds a band limit filter to the audio bus."
+msgstr ""
+
+#: doc/classes/AudioEffectBandLimitFilter.xml
+msgid ""
+"Limits the frequencies in a range around the [member AudioEffectFilter."
+"cutoff_hz] and allows frequencies outside of this range to pass."
+msgstr ""
+
+#: doc/classes/AudioEffectBandPassFilter.xml
+msgid "Adds a band pass filter to the audio bus."
+msgstr ""
+
+#: doc/classes/AudioEffectBandPassFilter.xml
+msgid ""
+"Attenuates the frequencies inside of a range around the [member "
+"AudioEffectFilter.cutoff_hz] and cuts frequencies outside of this band."
+msgstr ""
+
+#: doc/classes/AudioEffectCapture.xml
+msgid "Captures audio from an audio bus in real-time."
+msgstr ""
+
+#: doc/classes/AudioEffectCapture.xml
+msgid ""
+"AudioEffectCapture is an AudioEffect which copies all audio frames from the "
+"attached audio effect bus into its internal ring buffer.\n"
+"Application code should consume these audio frames from this ring buffer "
+"using [method get_buffer] and process it as needed, for example to capture "
+"data from a microphone, implement application defined effects, or to "
+"transmit audio over the network."
+msgstr ""
+
+#: doc/classes/AudioEffectCapture.xml
+msgid ""
+"Returns [code]true[/code] if at least [code]frames[/code] audio frames are "
+"available to read in the internal ring buffer."
+msgstr ""
+
+#: doc/classes/AudioEffectCapture.xml
+msgid "Clears the internal ring buffer."
+msgstr ""
+
+#: doc/classes/AudioEffectCapture.xml
+msgid ""
+"Gets the next [code]frames[/code] audio samples from the internal ring "
+"buffer.\n"
+"Returns a [PoolVector2Array] containing exactly [code]frames[/code] audio "
+"samples if available, or an empty [PoolVector2Array] if insufficient data "
+"was available."
+msgstr ""
+
+#: doc/classes/AudioEffectCapture.xml
+msgid "Returns the total size of the internal ring buffer in frames."
+msgstr ""
+
+#: doc/classes/AudioEffectCapture.xml
+msgid ""
+"Returns the number of audio frames discarded from the audio bus due to full "
+"buffer."
+msgstr ""
+
+#: doc/classes/AudioEffectCapture.xml
+msgid ""
+"Returns the number of frames available to read using [method get_buffer]."
+msgstr ""
+
+#: doc/classes/AudioEffectCapture.xml
+msgid "Returns the number of audio frames inserted from the audio bus."
+msgstr ""
+
+#: doc/classes/AudioEffectCapture.xml
+msgid ""
+"Length of the internal ring buffer, in seconds. Setting the buffer length "
+"will have no effect if already initialized."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid "Adds a chorus audio effect."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid ""
+"Adds a chorus audio effect. The effect applies a filter with voices to "
+"duplicate the audio source and manipulate it through the filter."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid "The effect's raw signal."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid "The voice's cutoff frequency."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid "The voice's signal delay."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid "The voice filter's depth."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid "The voice's volume."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid "The voice's pan level."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid "The voice's filter rate."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid "The amount of voices in the effect."
+msgstr ""
+
+#: doc/classes/AudioEffectChorus.xml
+msgid "The effect's processed signal."
+msgstr ""
+
+#: doc/classes/AudioEffectCompressor.xml
+msgid ""
+"Adds a compressor audio effect to an audio bus.\n"
+"Reduces sounds that exceed a certain threshold level, smooths out the "
+"dynamics and increases the overall volume."
+msgstr ""
+
+#: doc/classes/AudioEffectCompressor.xml
+msgid ""
+"Dynamic range compressor reduces the level of the sound when the amplitude "
+"goes over a certain threshold in Decibels. One of the main uses of a "
+"compressor is to increase the dynamic range by clipping as little as "
+"possible (when sound goes over 0dB).\n"
+"Compressor has many uses in the mix:\n"
+"- In the Master bus to compress the whole output (although an "
+"[AudioEffectLimiter] is probably better).\n"
+"- In voice channels to ensure they sound as balanced as possible.\n"
+"- Sidechained. This can reduce the sound level sidechained with another "
+"audio bus for threshold detection. This technique is common in video game "
+"mixing to the level of music and SFX while voices are being heard.\n"
+"- Accentuates transients by using a wider attack, making effects sound more "
+"punchy."
+msgstr ""
+
+#: doc/classes/AudioEffectCompressor.xml
+msgid ""
+"Compressor's reaction time when the signal exceeds the threshold, in "
+"microseconds. Value can range from 20 to 2000."
+msgstr ""
+
+#: doc/classes/AudioEffectCompressor.xml
+msgid "Gain applied to the output signal."
+msgstr ""
+
+#: doc/classes/AudioEffectCompressor.xml
+msgid ""
+"Balance between original signal and effect signal. Value can range from 0 "
+"(totally dry) to 1 (totally wet)."
+msgstr ""
+
+#: doc/classes/AudioEffectCompressor.xml
+msgid ""
+"Amount of compression applied to the audio once it passes the threshold "
+"level. The higher the ratio, the more the loud parts of the audio will be "
+"compressed. Value can range from 1 to 48."
+msgstr ""
+
+#: doc/classes/AudioEffectCompressor.xml
+msgid ""
+"Compressor's delay time to stop reducing the signal after the signal level "
+"falls below the threshold, in milliseconds. Value can range from 20 to 2000."
+msgstr ""
+
+#: doc/classes/AudioEffectCompressor.xml
+msgid "Reduce the sound level using another audio bus for threshold detection."
+msgstr ""
+
+#: doc/classes/AudioEffectCompressor.xml
+msgid ""
+"The level above which compression is applied to the audio. Value can range "
+"from -60 to 0."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid ""
+"Adds a delay audio effect to an audio bus. Plays input signal back after a "
+"period of time.\n"
+"Two tap delay and feedback options."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid ""
+"Plays input signal back after a period of time. The delayed signal may be "
+"played back multiple times to create the sound of a repeating, decaying "
+"echo. Delay effects range from a subtle echo effect to a pronounced blending "
+"of previous sounds with new sounds."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid ""
+"Output percent of original sound. At 0, only delayed sounds are output. "
+"Value can range from 0 to 1."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid "If [code]true[/code], feedback is enabled."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid "Feedback delay time in milliseconds."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid "Sound level for [code]tap1[/code]."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid ""
+"Low-pass filter for feedback, in Hz. Frequencies below this value are "
+"filtered out of the source signal."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid "If [code]true[/code], [code]tap1[/code] will be enabled."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid "[code]tap1[/code] delay time in milliseconds."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid ""
+"Pan position for [code]tap1[/code]. Value can range from -1 (fully left) to "
+"1 (fully right)."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid "If [code]true[/code], [code]tap2[/code] will be enabled."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid "[b]Tap2[/b] delay time in milliseconds."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid "Sound level for [code]tap2[/code]."
+msgstr ""
+
+#: doc/classes/AudioEffectDelay.xml
+msgid ""
+"Pan position for [code]tap2[/code]. Value can range from -1 (fully left) to "
+"1 (fully right)."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid ""
+"Adds a distortion audio effect to an Audio bus.\n"
+"Modify the sound to make it distorted."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid ""
+"Different types are available: clip, tan, lo-fi (bit crushing), overdrive, "
+"or waveshape.\n"
+"By distorting the waveform the frequency content change, which will often "
+"make the sound \"crunchy\" or \"abrasive\". For games, it can simulate sound "
+"coming from some saturated device or speaker very efficiently."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml doc/classes/AudioEffectFilter.xml
+#: doc/classes/AudioEffectHighShelfFilter.xml
+#: doc/classes/AudioEffectLowShelfFilter.xml doc/classes/AudioServer.xml
+msgid "$DOCS_URL/tutorials/audio/audio_buses.html"
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid "Distortion power. Value can range from 0 to 1."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid ""
+"High-pass filter, in Hz. Frequencies higher than this value will not be "
+"affected by the distortion. Value can range from 1 to 20000."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid "Distortion type."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid ""
+"Increases or decreases the volume after the effect. Value can range from -80 "
+"to 24."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid ""
+"Increases or decreases the volume before the effect. Value can range from "
+"-60 to 60."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid ""
+"Digital distortion effect which cuts off peaks at the top and bottom of the "
+"waveform."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid ""
+"Low-resolution digital distortion effect. You can use it to emulate the "
+"sound of early digital audio devices."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid ""
+"Emulates the warm distortion produced by a field effect transistor, which is "
+"commonly used in solid-state musical instrument amplifiers."
+msgstr ""
+
+#: doc/classes/AudioEffectDistortion.xml
+msgid ""
+"Waveshaper distortions are used mainly by electronic musicians to achieve an "
+"extra-abrasive sound."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ.xml
+msgid ""
+"Base class for audio equalizers. Gives you control over frequencies.\n"
+"Use it to create a custom equalizer if [AudioEffectEQ6], [AudioEffectEQ10] "
+"or [AudioEffectEQ21] don't fit your needs."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ.xml
+msgid ""
+"AudioEffectEQ gives you control over frequencies. Use it to compensate for "
+"existing deficiencies in audio. AudioEffectEQs are useful on the Master bus "
+"to completely master a mix and give it more character. They are also useful "
+"when a game is run on a mobile device, to adjust the mix to that kind of "
+"speakers (it can be added but disabled when headphones are plugged)."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ.xml
+msgid "Returns the number of bands of the equalizer."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ.xml
+msgid "Returns the band's gain at the specified index, in dB."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ.xml
+msgid "Sets band's gain at the specified index, in dB."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ10.xml
+msgid ""
+"Adds a 10-band equalizer audio effect to an Audio bus. Gives you control "
+"over frequencies from 31 Hz to 16000 Hz.\n"
+"Each frequency can be modulated between -60/+24 dB."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ10.xml
+msgid ""
+"Frequency bands:\n"
+"Band 1: 31 Hz\n"
+"Band 2: 62 Hz\n"
+"Band 3: 125 Hz\n"
+"Band 4: 250 Hz\n"
+"Band 5: 500 Hz\n"
+"Band 6: 1000 Hz\n"
+"Band 7: 2000 Hz\n"
+"Band 8: 4000 Hz\n"
+"Band 9: 8000 Hz\n"
+"Band 10: 16000 Hz\n"
+"See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ21]."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ21.xml
+msgid ""
+"Adds a 21-band equalizer audio effect to an Audio bus. Gives you control "
+"over frequencies from 22 Hz to 22000 Hz.\n"
+"Each frequency can be modulated between -60/+24 dB."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ21.xml
+msgid ""
+"Frequency bands:\n"
+"Band 1: 22 Hz\n"
+"Band 2: 32 Hz\n"
+"Band 3: 44 Hz\n"
+"Band 4: 63 Hz\n"
+"Band 5: 90 Hz\n"
+"Band 6: 125 Hz\n"
+"Band 7: 175 Hz\n"
+"Band 8: 250 Hz\n"
+"Band 9: 350 Hz\n"
+"Band 10: 500 Hz\n"
+"Band 11: 700 Hz\n"
+"Band 12: 1000 Hz\n"
+"Band 13: 1400 Hz\n"
+"Band 14: 2000 Hz\n"
+"Band 15: 2800 Hz\n"
+"Band 16: 4000 Hz\n"
+"Band 17: 5600 Hz\n"
+"Band 18: 8000 Hz\n"
+"Band 19: 11000 Hz\n"
+"Band 20: 16000 Hz\n"
+"Band 21: 22000 Hz\n"
+"See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ10]."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ6.xml
+msgid ""
+"Adds a 6-band equalizer audio effect to an Audio bus. Gives you control over "
+"frequencies from 32 Hz to 10000 Hz.\n"
+"Each frequency can be modulated between -60/+24 dB."
+msgstr ""
+
+#: doc/classes/AudioEffectEQ6.xml
+msgid ""
+"Frequency bands:\n"
+"Band 1: 32 Hz\n"
+"Band 2: 100 Hz\n"
+"Band 3: 320 Hz\n"
+"Band 4: 1000 Hz\n"
+"Band 5: 3200 Hz\n"
+"Band 6: 10000 Hz\n"
+"See also [AudioEffectEQ], [AudioEffectEQ10], [AudioEffectEQ21]."
+msgstr ""
+
+#: doc/classes/AudioEffectFilter.xml
+msgid "Adds a filter to the audio bus."
+msgstr ""
+
+#: doc/classes/AudioEffectFilter.xml
+msgid "Allows frequencies other than the [member cutoff_hz] to pass."
+msgstr ""
+
+#: doc/classes/AudioEffectFilter.xml
+msgid "Threshold frequency for the filter, in Hz."
+msgstr ""
+
+#: doc/classes/AudioEffectFilter.xml
+msgid "Gain amount of the frequencies after the filter."
+msgstr ""
+
+#: doc/classes/AudioEffectFilter.xml
+msgid "Amount of boost in the frequency range near the cutoff frequency."
+msgstr ""
+
+#: doc/classes/AudioEffectHighPassFilter.xml
+msgid "Adds a high-pass filter to the Audio Bus."
+msgstr ""
+
+#: doc/classes/AudioEffectHighPassFilter.xml
+msgid ""
+"Cuts frequencies lower than the [member AudioEffectFilter.cutoff_hz] and "
+"allows higher frequencies to pass."
+msgstr ""
+
+#: doc/classes/AudioEffectHighShelfFilter.xml
+msgid "Reduces all frequencies above the [member AudioEffectFilter.cutoff_hz]."
+msgstr ""
+
+#: doc/classes/AudioEffectLimiter.xml
+msgid "Adds a soft-clip limiter audio effect to an Audio bus."
+msgstr ""
+
+#: doc/classes/AudioEffectLimiter.xml
+msgid ""
+"A limiter is similar to a compressor, but it's less flexible and designed to "
+"disallow sound going over a given dB threshold. Adding one in the Master bus "
+"is always recommended to reduce the effects of clipping.\n"
+"Soft clipping starts to reduce the peaks a little below the threshold level "
+"and progressively increases its effect as the input level increases such "
+"that the threshold is never exceeded."
+msgstr ""
+
+#: doc/classes/AudioEffectLimiter.xml
+msgid ""
+"The waveform's maximum allowed value, in decibels. Value can range from -20 "
+"to -0.1."
+msgstr ""
+
+#: doc/classes/AudioEffectLimiter.xml
+msgid ""
+"Applies a gain to the limited waves, in decibels. Value can range from 0 to "
+"6."
+msgstr ""
+
+#: doc/classes/AudioEffectLimiter.xml
+msgid ""
+"Threshold from which the limiter begins to be active, in decibels. Value can "
+"range from -30 to 0."
+msgstr ""
+
+#: doc/classes/AudioEffectLowPassFilter.xml
+msgid "Adds a low-pass filter to the Audio bus."
+msgstr ""
+
+#: doc/classes/AudioEffectLowPassFilter.xml
+msgid ""
+"Cuts frequencies higher than the [member AudioEffectFilter.cutoff_hz] and "
+"allows lower frequencies to pass."
+msgstr ""
+
+#: doc/classes/AudioEffectLowShelfFilter.xml
+msgid "Reduces all frequencies below the [member AudioEffectFilter.cutoff_hz]."
+msgstr ""
+
+#: doc/classes/AudioEffectNotchFilter.xml
+msgid "Adds a notch filter to the Audio bus."
+msgstr ""
+
+#: doc/classes/AudioEffectNotchFilter.xml
+msgid ""
+"Attenuates frequencies in a narrow band around the [member AudioEffectFilter."
+"cutoff_hz] and cuts frequencies outside of this range."
+msgstr ""
+
+#: doc/classes/AudioEffectPanner.xml
+msgid "Adds a panner audio effect to an Audio bus. Pans sound left or right."
+msgstr ""
+
+#: doc/classes/AudioEffectPanner.xml
+msgid ""
+"Determines how much of an audio signal is sent to the left and right buses."
+msgstr ""
+
+#: doc/classes/AudioEffectPanner.xml
+msgid "Pan position. Value can range from -1 (fully left) to 1 (fully right)."
+msgstr ""
+
+#: doc/classes/AudioEffectPhaser.xml
+msgid ""
+"Adds a phaser audio effect to an Audio bus.\n"
+"Combines the original signal with a copy that is slightly out of phase with "
+"the original."
+msgstr ""
+
+#: doc/classes/AudioEffectPhaser.xml
+msgid ""
+"Combines phase-shifted signals with the original signal. The movement of the "
+"phase-shifted signals is controlled using a low-frequency oscillator."
+msgstr ""
+
+#: doc/classes/AudioEffectPhaser.xml
+msgid ""
+"Governs how high the filter frequencies sweep. Low value will primarily "
+"affect bass frequencies. High value can sweep high into the treble. Value "
+"can range from 0.1 to 4."
+msgstr ""
+
+#: doc/classes/AudioEffectPhaser.xml
+msgid "Output percent of modified sound. Value can range from 0.1 to 0.9."
+msgstr ""
+
+#: doc/classes/AudioEffectPhaser.xml
+msgid ""
+"Determines the maximum frequency affected by the LFO modulations, in Hz. "
+"Value can range from 10 to 10000."
+msgstr ""
+
+#: doc/classes/AudioEffectPhaser.xml
+msgid ""
+"Determines the minimum frequency affected by the LFO modulations, in Hz. "
+"Value can range from 10 to 10000."
+msgstr ""
+
+#: doc/classes/AudioEffectPhaser.xml
+msgid ""
+"Adjusts the rate in Hz at which the effect sweeps up and down across the "
+"frequency range."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+msgid ""
+"Adds a pitch-shifting audio effect to an Audio bus.\n"
+"Raises or lowers the pitch of original sound."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+msgid ""
+"Allows modulation of pitch independently of tempo. All frequencies can be "
+"increased/decreased with minimal effect on transients."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+msgid ""
+"The size of the [url=https://en.wikipedia.org/wiki/"
+"Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values "
+"smooth out the effect over time, but have greater latency. The effects of "
+"this higher latency are especially noticeable on sounds that have sudden "
+"amplitude changes."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+msgid ""
+"The oversampling factor to use. Higher values result in better quality, but "
+"are more demanding on the CPU and may cause audio cracking if the CPU can't "
+"keep up."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+msgid ""
+"The pitch scale to use. [code]1.0[/code] is the default pitch and plays "
+"sounds unaltered. [member pitch_scale] can range from [code]0.0[/code] "
+"(infinitely low pitch, inaudible) to [code]16[/code] (16 times higher than "
+"the initial pitch)."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid ""
+"Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, "
+"but least stable over time."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid ""
+"Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but "
+"less stable over time."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid ""
+"Use a buffer of 1024 samples for the Fast Fourier transform. This is a "
+"compromise between latency and stability over time."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid ""
+"Use a buffer of 2048 samples for the Fast Fourier transform. High latency, "
+"but stable over time."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid ""
+"Use a buffer of 4096 samples for the Fast Fourier transform. Highest "
+"latency, but most stable over time."
+msgstr ""
+
+#: doc/classes/AudioEffectPitchShift.xml
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid "Represents the size of the [enum FFT_Size] enum."
+msgstr ""
+
+#: doc/classes/AudioEffectRecord.xml
+msgid "Audio effect used for recording sound from a microphone."
+msgstr ""
+
+#: doc/classes/AudioEffectRecord.xml
+msgid ""
+"Allows the user to record sound from a microphone. It sets and gets the "
+"format in which the audio file will be recorded (8-bit, 16-bit, or "
+"compressed). It checks whether or not the recording is active, and if it is, "
+"records the sound. It then returns the recorded sample."
+msgstr ""
+
+#: doc/classes/AudioEffectRecord.xml
+msgid "$DOCS_URL/tutorials/audio/recording_with_microphone.html"
+msgstr ""
+
+#: doc/classes/AudioEffectRecord.xml
+msgid "Returns the recorded sample."
+msgstr ""
+
+#: doc/classes/AudioEffectRecord.xml
+msgid "Returns whether the recording is active or not."
+msgstr ""
+
+#: doc/classes/AudioEffectRecord.xml
+msgid ""
+"If [code]true[/code], the sound will be recorded. Note that restarting the "
+"recording will remove the previously recorded sample."
+msgstr ""
+
+#: doc/classes/AudioEffectRecord.xml
+msgid ""
+"Specifies the format in which the sample will be recorded. See [enum "
+"AudioStreamSample.Format] for available formats."
+msgstr ""
+
+#: doc/classes/AudioEffectReverb.xml
+msgid ""
+"Adds a reverberation audio effect to an Audio bus.\n"
+"Simulates the sound of acoustic environments such as rooms, concert halls, "
+"caverns, or an open spaces."
+msgstr ""
+
+#: doc/classes/AudioEffectReverb.xml
+msgid ""
+"Simulates rooms of different sizes. Its parameters can be adjusted to "
+"simulate the sound of a specific room."
+msgstr ""
+
+#: doc/classes/AudioEffectReverb.xml
+msgid ""
+"Defines how reflective the imaginary room's walls are. Value can range from "
+"0 to 1."
+msgstr ""
+
+#: doc/classes/AudioEffectReverb.xml
+msgid ""
+"Output percent of original sound. At 0, only modified sound is outputted. "
+"Value can range from 0 to 1."
+msgstr ""
+
+#: doc/classes/AudioEffectReverb.xml
+msgid ""
+"High-pass filter passes signals with a frequency higher than a certain "
+"cutoff frequency and attenuates signals with frequencies lower than the "
+"cutoff frequency. Value can range from 0 to 1."
+msgstr ""
+
+#: doc/classes/AudioEffectReverb.xml
+msgid "Output percent of predelay. Value can range from 0 to 1."
+msgstr ""
+
+#: doc/classes/AudioEffectReverb.xml
+msgid ""
+"Time between the original signal and the early reflections of the reverb "
+"signal, in milliseconds."
+msgstr ""
+
+#: doc/classes/AudioEffectReverb.xml
+msgid ""
+"Dimensions of simulated room. Bigger means more echoes. Value can range from "
+"0 to 1."
+msgstr ""
+
+#: doc/classes/AudioEffectReverb.xml
+msgid ""
+"Widens or narrows the stereo image of the reverb tail. 1 means fully widens. "
+"Value can range from 0 to 1."
+msgstr ""
+
+#: doc/classes/AudioEffectReverb.xml
+msgid ""
+"Output percent of modified sound. At 0, only original sound is outputted. "
+"Value can range from 0 to 1."
+msgstr ""
+
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid "Audio effect that can be used for real-time audio visualizations."
+msgstr ""
+
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid ""
+"This audio effect does not affect sound output, but can be used for real-"
+"time audio visualizations.\n"
+"See also [AudioStreamGenerator] for procedurally generating sounds."
+msgstr ""
+
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid "Audio Spectrum Demo"
+msgstr ""
+
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+#: doc/classes/AudioStreamGenerator.xml
+#: doc/classes/AudioStreamGeneratorPlayback.xml
+msgid "Godot 3.2 will get new audio features"
+msgstr ""
+
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid ""
+"The length of the buffer to keep (in seconds). Higher values keep data "
+"around for longer, but require more memory."
+msgstr ""
+
+#: doc/classes/AudioEffectSpectrumAnalyzer.xml
+msgid ""
+"The size of the [url=https://en.wikipedia.org/wiki/"
+"Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values "
+"smooth out the spectrum analysis over time, but have greater latency. The "
+"effects of this higher latency are especially noticeable with sudden "
+"amplitude changes."
+msgstr ""
+
+#: doc/classes/AudioEffectSpectrumAnalyzerInstance.xml
+msgid "Use the average value as magnitude."
+msgstr ""
+
+#: doc/classes/AudioEffectSpectrumAnalyzerInstance.xml
+msgid "Use the maximum value as magnitude."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Server interface for low-level audio access."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"[AudioServer] is a low-level server interface for audio access. It is in "
+"charge of creating sample data (playable audio) as well as its playback via "
+"a voice interface."
+msgstr ""
+
+#: doc/classes/AudioServer.xml doc/classes/AudioStreamPlayer.xml
+msgid "https://godotengine.org/asset-library/asset/525"
+msgstr ""
+
+#: doc/classes/AudioServer.xml doc/classes/AudioStream.xml
+#: doc/classes/AudioStreamPlayer.xml doc/classes/CanvasItem.xml
+msgid "https://godotengine.org/asset-library/asset/528"
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Adds a bus at [code]at_position[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Adds an [AudioEffect] effect to the bus [code]bus_idx[/code] at "
+"[code]at_position[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Name of the current device for audio input (see [method "
+"capture_get_device_list])."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the names of all audio input devices detected on the system."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Sets which audio input device is used for audio capture."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Generates an [AudioBusLayout] using the available buses and effects."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Returns the amount of channels of the bus at index [code]bus_idx[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Returns the [AudioEffect] at position [code]effect_idx[/code] in bus "
+"[code]bus_idx[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the number of effects on the bus at [code]bus_idx[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Returns the [AudioEffectInstance] assigned to the given bus and effect "
+"indices (and optionally channel)."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the index of the bus with the name [code]bus_name[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the name of the bus with the index [code]bus_idx[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Returns the peak volume of the left speaker at bus index [code]bus_idx[/"
+"code] and channel index [code]channel[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Returns the peak volume of the right speaker at bus index [code]bus_idx[/"
+"code] and channel index [code]channel[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Returns the name of the bus that the bus at index [code]bus_idx[/code] sends "
+"to."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the volume of the bus at index [code]bus_idx[/code] in dB."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the names of all audio devices detected on the system."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the sample rate at the output of the [AudioServer]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the audio driver's output latency."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the speaker configuration."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the relative time since the last mix occurred."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Returns the relative time until the next mix occurs."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"If [code]true[/code], the bus at index [code]bus_idx[/code] is bypassing "
+"effects."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"If [code]true[/code], the effect at index [code]effect_idx[/code] on the bus "
+"at index [code]bus_idx[/code] is enabled."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "If [code]true[/code], the bus at index [code]bus_idx[/code] is muted."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"If [code]true[/code], the bus at index [code]bus_idx[/code] is in solo mode."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Locks the audio driver's main loop.\n"
+"[b]Note:[/b] Remember to unlock it afterwards."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Moves the bus from index [code]index[/code] to index [code]to_index[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Removes the bus at index [code]index[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Removes the effect at index [code]effect_idx[/code] from the bus at index "
+"[code]bus_idx[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Overwrites the currently used [AudioBusLayout]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Sets the name of the bus at index [code]bus_idx[/code] to [code]name[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Connects the output of the bus at [code]bus_idx[/code] to the bus named "
+"[code]send[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Sets the volume of the bus at index [code]bus_idx[/code] to [code]volume_db[/"
+"code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Swaps the position of two effects in bus [code]bus_idx[/code]."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Unlocks the audio driver's main loop. (After locking it, you should always "
+"unlock it.)"
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Number of available audio buses."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Name of the current device for audio output (see [method get_device_list])."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid ""
+"Scales the rate at which audio is played (i.e. setting it to [code]0.5[/"
+"code] will make the audio be played twice as fast)."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Emitted when the [AudioBusLayout] changes."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "Two or fewer speakers were detected."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "A 3.1 channel surround setup was detected."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "A 5.1 channel surround setup was detected."
+msgstr ""
+
+#: doc/classes/AudioServer.xml
+msgid "A 7.1 channel surround setup was detected."
+msgstr ""
+
+#: doc/classes/AudioStream.xml
+msgid "Base class for audio streams."
+msgstr ""
+
+#: doc/classes/AudioStream.xml
+msgid ""
+"Base class for audio streams. Audio streams are used for sound effects and "
+"music playback, and support WAV (via [AudioStreamSample]) and OGG (via "
+"[AudioStreamOGGVorbis]) file formats."
+msgstr ""
+
+#: doc/classes/AudioStream.xml doc/classes/AudioStreamPlayer.xml
+#: doc/classes/AudioStreamPlayer2D.xml doc/classes/AudioStreamPlayer3D.xml
+msgid "$DOCS_URL/tutorials/audio/audio_streams.html"
+msgstr ""
+
+#: doc/classes/AudioStream.xml doc/classes/AudioStreamGenerator.xml
+#: doc/classes/AudioStreamGeneratorPlayback.xml
+#: doc/classes/AudioStreamPlayback.xml doc/classes/AudioStreamPlayer.xml
+msgid "https://godotengine.org/asset-library/asset/526"
+msgstr ""
+
+#: doc/classes/AudioStream.xml
+msgid "Returns the length of the audio stream in seconds."
+msgstr ""
+
+#: doc/classes/AudioStreamGenerator.xml
+msgid "Audio stream that generates sounds procedurally."
+msgstr ""
+
+#: doc/classes/AudioStreamGenerator.xml
+msgid ""
+"This audio stream does not play back sounds, but expects a script to "
+"generate audio data for it instead. See also "
+"[AudioStreamGeneratorPlayback].\n"
+"See also [AudioEffectSpectrumAnalyzer] for performing real-time audio "
+"spectrum analysis.\n"
+"[b]Note:[/b] Due to performance constraints, this class is best used from C# "
+"or from a compiled language via GDNative. If you still want to use this "
+"class from GDScript, consider using a lower [member mix_rate] such as 11,025 "
+"Hz or 22,050 Hz."
+msgstr ""
+
+#: doc/classes/AudioStreamGenerator.xml
+msgid ""
+"The length of the buffer to generate (in seconds). Lower values result in "
+"less latency, but require the script to generate audio data faster, "
+"resulting in increased CPU usage and more risk for audio cracking if the CPU "
+"can't keep up."
+msgstr ""
+
+#: doc/classes/AudioStreamGenerator.xml
+msgid ""
+"The sample rate to use (in Hz). Higher values are more demanding for the CPU "
+"to generate, but result in better quality.\n"
+"In games, common sample rates in use are [code]11025[/code], [code]16000[/"
+"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and "
+"[code]48000[/code].\n"
+"According to the [url=https://en.wikipedia.org/wiki/Nyquist"
+"%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/url], "
+"there is no quality difference to human hearing when going past 40,000 Hz "
+"(since most humans can only hear up to ~20,000 Hz, often less). If you are "
+"generating lower-pitched sounds such as voices, lower sample rates such as "
+"[code]32000[/code] or [code]22050[/code] may be usable with no loss in "
+"quality."
+msgstr ""
+
+#: doc/classes/AudioStreamGeneratorPlayback.xml
+msgid "Plays back audio generated using [AudioStreamGenerator]."
+msgstr ""
+
+#: doc/classes/AudioStreamGeneratorPlayback.xml
+msgid ""
+"This class is meant to be used with [AudioStreamGenerator] to play back the "
+"generated audio in real-time."
+msgstr ""
+
+#: doc/classes/AudioStreamGeneratorPlayback.xml
+msgid ""
+"Returns [code]true[/code] if a buffer of the size [code]amount[/code] can be "
+"pushed to the audio sample data buffer without overflowing it, [code]false[/"
+"code] otherwise."
+msgstr ""
+
+#: doc/classes/AudioStreamGeneratorPlayback.xml
+msgid "Clears the audio sample data buffer."
+msgstr ""
+
+#: doc/classes/AudioStreamGeneratorPlayback.xml
+msgid ""
+"Returns the number of audio data frames left to play. If this returned "
+"number reaches [code]0[/code], the audio will stop playing until frames are "
+"added again. Therefore, make sure your script can always generate and push "
+"new audio frames fast enough to avoid audio cracking."
+msgstr ""
+
+#: doc/classes/AudioStreamGeneratorPlayback.xml
+msgid ""
+"Pushes several audio data frames to the buffer. This is usually more "
+"efficient than [method push_frame] in C# and compiled languages via "
+"GDNative, but [method push_buffer] may be [i]less[/i] efficient in GDScript."
+msgstr ""
+
+#: doc/classes/AudioStreamGeneratorPlayback.xml
+msgid ""
+"Pushes a single audio data frame to the buffer. This is usually less "
+"efficient than [method push_buffer] in C# and compiled languages via "
+"GDNative, but [method push_frame] may be [i]more[/i] efficient in GDScript."
+msgstr ""
+
+#: modules/minimp3/doc_classes/AudioStreamMP3.xml
+msgid "MP3 audio stream driver."
+msgstr ""
+
+#: modules/minimp3/doc_classes/AudioStreamMP3.xml
+#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml
+msgid "Contains the audio data in bytes."
+msgstr ""
+
+#: modules/minimp3/doc_classes/AudioStreamMP3.xml
+#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml
+msgid ""
+"If [code]true[/code], the stream will automatically loop when it reaches the "
+"end."
+msgstr ""
+
+#: modules/minimp3/doc_classes/AudioStreamMP3.xml
+#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml
+msgid "Time in seconds at which the stream starts after being looped."
+msgstr ""
+
+#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml
+msgid "OGG Vorbis audio stream driver."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayback.xml
+msgid "Meta class for playing back audio."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayback.xml
+msgid ""
+"Can play, loop, pause a scroll through audio. See [AudioStream] and "
+"[AudioStreamOGGVorbis] for usage."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml
+msgid "Plays back audio non-positionally."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml
+msgid ""
+"Plays an audio stream non-positionally.\n"
+"To play audio positionally, use [AudioStreamPlayer2D] or "
+"[AudioStreamPlayer3D] instead of [AudioStreamPlayer]."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml
+msgid "Returns the position in the [AudioStream] in seconds."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml
+msgid ""
+"Returns the [AudioStreamPlayback] object associated with this "
+"[AudioStreamPlayer]."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml
+msgid "Plays the audio from the given [code]from_position[/code], in seconds."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Sets the position from which audio will be played, in seconds."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Stops the audio."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
+msgid "If [code]true[/code], audio plays when added to scene tree."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
+msgid "Bus on which this audio is playing."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml
+msgid ""
+"If the audio configuration has more than two speakers, this sets the target "
+"channels. See [enum MixTarget] constants."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"The pitch and the tempo of the audio, as a multiplier of the audio sample's "
+"sample rate."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "If [code]true[/code], audio is playing."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
+msgid "The [AudioStream] object to be played."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
+msgid ""
+"If [code]true[/code], the playback is paused. You can resume it by setting "
+"[code]stream_paused[/code] to [code]false[/code]."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml
+msgid "Volume of sound, in dB."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Emitted when the audio stops playing."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml
+msgid "The audio will be played only on the first channel."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml
+msgid "The audio will be played on all surround channels."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer.xml
+msgid ""
+"The audio will be played on the second channel, which is usually the center."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer2D.xml
+msgid "Plays positional sound in 2D space."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer2D.xml
+msgid ""
+"Plays audio that dampens with distance from screen center.\n"
+"See also [AudioStreamPlayer] to play a sound non-positionally.\n"
+"[b]Note:[/b] Hiding an [AudioStreamPlayer2D] node does not disable its audio "
+"output. To temporarily disable an [AudioStreamPlayer2D]'s audio output, set "
+"[member volume_db] to a very low value like [code]-100[/code] (which isn't "
+"audible to human hearing)."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer2D.xml doc/classes/AudioStreamPlayer3D.xml
+msgid "Returns the position in the [AudioStream]."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer2D.xml
+msgid ""
+"Returns the [AudioStreamPlayback] object associated with this "
+"[AudioStreamPlayer2D]."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer2D.xml doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Plays the audio from the given position [code]from_position[/code], in "
+"seconds."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer2D.xml doc/classes/AudioStreamPlayer3D.xml
+msgid "Areas in which this sound plays."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer2D.xml
+msgid "Dampens audio over distance with this as an exponent."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer2D.xml
+msgid "Maximum distance from which audio is still hearable."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer2D.xml
+msgid "Base volume without dampening."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Plays positional sound in 3D space."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Plays a sound effect with directed sound effects, dampens with distance if "
+"needed, generates effect of hearable position in space. For greater realism, "
+"a low-pass filter is automatically applied to distant sounds. This can be "
+"disabled by setting [member attenuation_filter_cutoff_hz] to [code]20500[/"
+"code].\n"
+"By default, audio is heard from the camera position. This can be changed by "
+"adding a [Listener] node to the scene and enabling it by calling [method "
+"Listener.make_current] on it.\n"
+"See also [AudioStreamPlayer] to play a sound non-positionally.\n"
+"[b]Note:[/b] Hiding an [AudioStreamPlayer3D] node does not disable its audio "
+"output. To temporarily disable an [AudioStreamPlayer3D]'s audio output, set "
+"[member unit_db] to a very low value like [code]-100[/code] (which isn't "
+"audible to human hearing)."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Returns the [AudioStreamPlayback] object associated with this "
+"[AudioStreamPlayer3D]."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Dampens audio using a low-pass filter above this frequency, in Hz. To "
+"disable the dampening effect entirely, set this to [code]20500[/code] as "
+"this frequency is above the human hearing limit."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Amount how much the filter affects the loudness, in decibels."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Decides if audio should get quieter with distance linearly, quadratically, "
+"logarithmically, or not be affected by distance, effectively disabling "
+"attenuation."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"If [code]true[/code], audio plays when the AudioStreamPlayer3D node is added "
+"to scene tree."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "The bus on which this audio is playing."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Decides in which step the [url=https://en.wikipedia.org/wiki/"
+"Doppler_effect]Doppler effect[/url] should be calculated.\n"
+"[b]Note:[/b] Only effective if the current [Camera]'s [member Camera."
+"doppler_tracking] property is set to a value other than [constant Camera."
+"DOPPLER_TRACKING_DISABLED]."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "The angle in which the audio reaches cameras undampened."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"If [code]true[/code], the audio should be dampened according to the "
+"direction of the sound."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Dampens audio if camera is outside of [member emission_angle_degrees] and "
+"[member emission_angle_enabled] is set by this factor, in decibels."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Sets the absolute maximum of the soundlevel, in decibels."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Sets the distance from which the [member out_of_range_mode] takes effect. "
+"Has no effect if set to 0."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Decides if audio should pause when source is outside of [member "
+"max_distance] range."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "The [AudioStream] resource to be played."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"If [code]true[/code], the playback is paused. You can resume it by setting "
+"[member stream_paused] to [code]false[/code]."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "The base sound level unaffected by dampening, in decibels."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"The factor for the attenuation effect. Higher values make the sound audible "
+"over a larger distance."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Linear dampening of loudness according to distance."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Squared dampening of loudness according to distance."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Logarithmic dampening of loudness according to distance."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"No dampening of loudness according to distance. The sound will still be "
+"heard positionally, unlike an [AudioStreamPlayer]. [constant "
+"ATTENUATION_DISABLED] can be combined with a [member max_distance] value "
+"greater than [code]0.0[/code] to achieve linear attenuation clamped to a "
+"sphere of a defined size."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Mix this audio in, even when it's out of range. This increases CPU usage, "
+"but keeps the sound playing at the correct position if the camera leaves and "
+"enters the [AudioStreamPlayer3D]'s [member max_distance] radius."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Pause this audio when it gets out of range. This decreases CPU usage, but "
+"will cause the sound to restart if the camera leaves and enters the "
+"[AudioStreamPlayer3D]'s [member max_distance] radius."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Disables doppler tracking."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid "Executes doppler tracking in idle step (every rendered frame)."
+msgstr ""
+
+#: doc/classes/AudioStreamPlayer3D.xml
+msgid ""
+"Executes doppler tracking in physics step (every simulated physics frame)."
+msgstr ""
+
+#: doc/classes/AudioStreamRandomPitch.xml
+msgid "Plays audio with random pitch shifting."
+msgstr ""
+
+#: doc/classes/AudioStreamRandomPitch.xml
+msgid "Randomly varies pitch on each start."
+msgstr ""
+
+#: doc/classes/AudioStreamRandomPitch.xml
+msgid "The current [AudioStream]."
+msgstr ""
+
+#: doc/classes/AudioStreamRandomPitch.xml
+msgid "The intensity of random pitch variation."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid "Stores audio data loaded from WAV files."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid ""
+"AudioStreamSample stores sound samples loaded from WAV files. To play the "
+"stored sound, use an [AudioStreamPlayer] (for non-positional audio) or "
+"[AudioStreamPlayer2D]/[AudioStreamPlayer3D] (for positional audio). The "
+"sound can be looped.\n"
+"This class can also be used to store dynamically-generated PCM audio data. "
+"See also [AudioStreamGenerator] for procedural audio generation."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid ""
+"Saves the AudioStreamSample as a WAV file to [code]path[/code]. Samples with "
+"IMA ADPCM format can't be saved.\n"
+"[b]Note:[/b] A [code].wav[/code] extension is automatically appended to "
+"[code]path[/code] if it is missing."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid ""
+"Contains the audio data in bytes.\n"
+"[b]Note:[/b] This property expects signed PCM8 data. To convert unsigned "
+"PCM8 to signed PCM8, subtract 128 from each byte."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid "Audio format. See [enum Format] constants for values."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid ""
+"The loop start point (in number of samples, relative to the beginning of the "
+"sample). This information will be imported automatically from the WAV file "
+"if present."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid ""
+"The loop end point (in number of samples, relative to the beginning of the "
+"sample). This information will be imported automatically from the WAV file "
+"if present."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid ""
+"The loop mode. This information will be imported automatically from the WAV "
+"file if present. See [enum LoopMode] constants for values."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid ""
+"The sample rate for mixing this audio. Higher values require more storage "
+"space, but result in better quality.\n"
+"In games, common sample rates in use are [code]11025[/code], [code]16000[/"
+"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and "
+"[code]48000[/code].\n"
+"According to the [url=https://en.wikipedia.org/wiki/Nyquist"
+"%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/url], "
+"there is no quality difference to human hearing when going past 40,000 Hz "
+"(since most humans can only hear up to ~20,000 Hz, often less). If you are "
+"using lower-pitched sounds such as voices, lower sample rates such as "
+"[code]32000[/code] or [code]22050[/code] may be usable with no loss in "
+"quality."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid "If [code]true[/code], audio is stereo."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid "8-bit audio codec."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid "16-bit audio codec."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid "Audio is compressed using IMA ADPCM."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid "Audio does not loop."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid ""
+"Audio loops the data between [member loop_begin] and [member loop_end], "
+"playing forward only."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid ""
+"Audio loops the data between [member loop_begin] and [member loop_end], "
+"playing back and forth."
+msgstr ""
+
+#: doc/classes/AudioStreamSample.xml
+msgid ""
+"Audio loops the data between [member loop_begin] and [member loop_end], "
+"playing backward only."
+msgstr ""
+
+#: doc/classes/BackBufferCopy.xml
+msgid ""
+"Copies a region of the screen (or the whole screen) to a buffer so it can be "
+"accessed in your shader scripts through the "
+"[code]texture(SCREEN_TEXTURE, ...)[/code] function."
+msgstr ""
+
+#: doc/classes/BackBufferCopy.xml
+msgid ""
+"Node for back-buffering the currently-displayed screen. The region defined "
+"in the BackBufferCopy node is buffered with the content of the screen it "
+"covers, or the entire screen according to the copy mode set. Use the "
+"[code]texture(SCREEN_TEXTURE, ...)[/code] function in your shader scripts to "
+"access the buffer.\n"
+"[b]Note:[/b] Since this node inherits from [Node2D] (and not [Control]), "
+"anchors and margins won't apply to child [Control]-derived nodes. This can "
+"be problematic when resizing the window. To avoid this, add [Control]-"
+"derived nodes as [i]siblings[/i] to the BackBufferCopy node instead of "
+"adding them as children."
+msgstr ""
+
+#: doc/classes/BackBufferCopy.xml
+msgid "Buffer mode. See [enum CopyMode] constants."
+msgstr ""
+
+#: doc/classes/BackBufferCopy.xml
+msgid ""
+"The area covered by the BackBufferCopy. Only used if [member copy_mode] is "
+"[constant COPY_MODE_RECT]."
+msgstr ""
+
+#: doc/classes/BackBufferCopy.xml
+msgid ""
+"Disables the buffering mode. This means the BackBufferCopy node will "
+"directly use the portion of screen it covers."
+msgstr ""
+
+#: doc/classes/BackBufferCopy.xml
+msgid "BackBufferCopy buffers a rectangular region."
+msgstr ""
+
+#: doc/classes/BackBufferCopy.xml
+msgid "BackBufferCopy buffers the entire screen."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "Prerendered indirect light map for a scene."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Baked lightmaps are an alternative workflow for adding indirect (or baked) "
+"lighting to a scene. Unlike the [GIProbe] approach, baked lightmaps work "
+"fine on low-end PCs and mobile devices as they consume almost no resources "
+"in run-time.\n"
+"[b]Procedural generation:[/b] Lightmap baking functionality is only "
+"available in the editor. This means [BakedLightmap] is not suited to "
+"procedurally generated or user-built levels. For procedurally generated or "
+"user-built levels, use [GIProbe] instead.\n"
+"[b]Note:[/b] Due to how lightmaps work, most properties only have a visible "
+"effect once lightmaps are baked again."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "$DOCS_URL/tutorials/3d/baked_lightmaps.html"
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Bakes the lightmap, scanning from the given [code]from_node[/code] root and "
+"saves the resulting [BakedLightmapData] in [code]data_save_path[/code]. If "
+"no root node is provided, parent of this node will be used as root instead. "
+"If no save path is provided it will try to match the path from the current "
+"[member light_data]."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"When enabled, the lightmapper will merge the textures for all meshes into a "
+"single large layered texture. Not supported in GLES2."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Maximum size of each lightmap layer, only used when [member atlas_generate] "
+"is enabled."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Raycasting bias used during baking to avoid floating point precision issues."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"The energy multiplier for each bounce. Higher values will make indirect "
+"lighting brighter. A value of [code]1.0[/code] represents physically "
+"accurate behavior, but higher values can be used to make indirect lighting "
+"propagate more visibly when using a low number of bounces. This can be used "
+"to speed up bake times by lowering the number of [member bounces] then "
+"increasing [member bounce_indirect_energy]. Unlike [member BakedLightmapData."
+"energy], this property does not affect direct lighting emitted by light "
+"nodes, emissive materials and the environment.\n"
+"[b]Note:[/b] [member bounce_indirect_energy] only has an effect if [member "
+"bounces] is set to a value greater than or equal to [code]1[/code]."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Number of light bounces that are taken into account during baking. See also "
+"[member bounce_indirect_energy]."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "Grid size used for real-time capture information on dynamic objects."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"When enabled, an octree containing the scene's lighting information will be "
+"computed. This octree will then be used to light dynamic objects in the "
+"scene."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Bias value to reduce the amount of light proagation in the captured octree."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "Bake quality of the capture data."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"If a baked mesh doesn't have a UV2 size hint, this value will be used to "
+"roughly compute a suitable lightmap size."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"The environment color when [member environment_mode] is set to [constant "
+"ENVIRONMENT_MODE_CUSTOM_COLOR]."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"The energy scaling factor when when [member environment_mode] is set to "
+"[constant ENVIRONMENT_MODE_CUSTOM_COLOR] or [constant "
+"ENVIRONMENT_MODE_CUSTOM_SKY]."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"The [Sky] resource to use when [member environment_mode] is set o [constant "
+"ENVIRONMENT_MODE_CUSTOM_SKY]."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "The rotation of the baked custom sky."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Minimum ambient light for all the lightmap texels. This doesn't take into "
+"account any occlusion from the scene's geometry, it simply ensures a minimum "
+"amount of light on all the lightmap texels. Can be used for artistic control "
+"on shadow color."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "Decides which environment to use during baking."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Size of the baked lightmap. Only meshes inside this region will be included "
+"in the baked lightmap, also used as the bounds of the captured region for "
+"dynamic lighting."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Deprecated, in previous versions it determined the location where lightmaps "
+"were be saved."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "The calculated light data."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Determines the amount of samples per texel used in indrect light baking. The "
+"amount of samples for each quality level can be configured in the project "
+"settings."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Store full color values in the lightmap textures. When disabled, lightmap "
+"textures will store a single brightness channel. Can be disabled to reduce "
+"disk usage if the scene contains only white lights or you don't mind losing "
+"color information in indirect lighting."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"When enabled, a lightmap denoiser will be used to reduce the noise inherent "
+"to Monte Carlo based global illumination."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"If [code]true[/code], stores the lightmap textures in a high dynamic range "
+"format (EXR). If [code]false[/code], stores the lightmap texture in a low "
+"dynamic range PNG image. This can be set to [code]false[/code] to reduce "
+"disk usage, but light values over 1.0 will be clamped and you may see "
+"banding caused by the reduced precision.\n"
+"[b]Note:[/b] Setting [member use_hdr] to [code]true[/code] will decrease "
+"lightmap banding even when using the GLES2 backend or if [member "
+"ProjectSettings.rendering/quality/depth/hdr] is [code]false[/code]."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "The lowest bake quality mode. Fastest to calculate."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "The default bake quality mode."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "A higher bake quality mode. Takes longer to calculate."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "The highest bake quality mode. Takes the longest to calculate."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "Baking was successful."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Returns if no viable save path is found. This can happen where an [member "
+"image_path] is not specified or when the save location is invalid."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml doc/classes/SpatialMaterial.xml
+msgid "Currently unused."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "Returns when the baker cannot save per-mesh textures to file."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "The size of the generated lightmaps is too large."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "Some mesh contains UV2 values outside the [code][0,1][/code] range."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "Returns if user cancels baking."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"Returns if lightmapper can't be created. Unless you are using a custom "
+"lightmapper, please report this as bug."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid ""
+"There is no root node to start baking from. Either provide [code]from_node[/"
+"code] argument or attach this node to a parent that should be used as root."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "No environment is used during baking."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "The baked environment is automatically picked from the current scene."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "A custom sky is used as environment during baking."
+msgstr ""
+
+#: doc/classes/BakedLightmap.xml
+msgid "A custom solid color is used as environment during baking."
+msgstr ""
+
+#: doc/classes/BakedLightmapData.xml
+msgid ""
+"Global energy multiplier for baked and dynamic capture objects. This can be "
+"changed at run-time without having to bake lightmaps again.\n"
+"To adjust only the energy of indirect lighting (without affecting direct "
+"lighting or emissive materials), adjust [member BakedLightmap."
+"bounce_indirect_energy] and bake lightmaps again."
+msgstr ""
+
+#: doc/classes/BakedLightmapData.xml
+msgid ""
+"Controls whether dynamic capture objects receive environment lighting or not."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid "Base class for different kinds of buttons."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"BaseButton is the abstract base class for buttons, so it shouldn't be used "
+"directly (it doesn't display anything). Other types of buttons inherit from "
+"it."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"Called when the button is pressed. If you need to know the button's pressed "
+"state (and [member toggle_mode] is active), use [method _toggled] instead."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"Called when the button is toggled (only if [member toggle_mode] is active)."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"Returns the visual state used to draw the button. This is useful mainly when "
+"implementing your own draw code by either overriding _draw() or connecting "
+"to \"draw\" signal. The visual state of the button is defined by the [enum "
+"DrawMode] enum."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"Returns [code]true[/code] if the mouse has entered the button and has not "
+"left it yet."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"Changes the [member pressed] state of the button, without emitting [signal "
+"toggled]. Use when you just want to change the state of the button without "
+"sending the pressed event (e.g. when initializing scene). Only works if "
+"[member toggle_mode] is [code]true[/code].\n"
+"[b]Note:[/b] This method doesn't unpress other buttons in its button [member "
+"group]."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"Determines when the button is considered clicked, one of the [enum "
+"ActionMode] constants."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"Binary mask to choose which mouse buttons this button will respond to.\n"
+"To allow both left-click and right-click, use [code]BUTTON_MASK_LEFT | "
+"BUTTON_MASK_RIGHT[/code]."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"If [code]true[/code], the button is in disabled state and can't be clicked "
+"or toggled."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"[i]Deprecated.[/i] This property has been deprecated due to redundancy and "
+"will be removed in Godot 4.0. This property no longer has any effect when "
+"set. Please use [member Control.focus_mode] instead."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid "[ButtonGroup] associated to the button."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"If [code]true[/code], the button stays pressed when moving the cursor "
+"outside the button while pressing it.\n"
+"[b]Note:[/b] This property only affects the button's visual appearance. "
+"Signals will be emitted at the same moment regardless of this property's "
+"value."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"If [code]true[/code], the button's state is pressed. Means the button is "
+"pressed down or toggled (if [member toggle_mode] is active). Only works if "
+"[member toggle_mode] is [code]true[/code].\n"
+"[b]Note:[/b] Setting [member pressed] will result in [signal toggled] to be "
+"emitted. If you want to change the pressed state without emitting that "
+"signal, use [method set_pressed_no_signal]."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid "[ShortCut] associated to the button."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"If [code]true[/code], the button will add information about its shortcut in "
+"the tooltip."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"If [code]true[/code], the button is in toggle mode. Makes the button flip "
+"state between pressed and unpressed each time its area is clicked."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid "Emitted when the button starts being held down."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid "Emitted when the button stops being held down."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"Emitted when the button is toggled or pressed. This is on [signal "
+"button_down] if [member action_mode] is [constant ACTION_MODE_BUTTON_PRESS] "
+"and on [signal button_up] otherwise.\n"
+"If you need to know the button's pressed state (and [member toggle_mode] is "
+"active), use [signal toggled] instead."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"Emitted when the button was just toggled between pressed and normal states "
+"(only if [member toggle_mode] is active). The new state is contained in the "
+"[code]button_pressed[/code] argument."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"The normal state (i.e. not pressed, not hovered, not toggled and enabled) of "
+"buttons."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid "The state of buttons are pressed."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid "The state of buttons are hovered."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid "The state of buttons are disabled."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid "The state of buttons are both hovered and pressed."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid "Require just a press to consider the button clicked."
+msgstr ""
+
+#: doc/classes/BaseButton.xml
+msgid ""
+"Require a press and a subsequent release before considering the button "
+"clicked."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid "3×3 matrix datatype."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"3×3 matrix used for 3D rotation and scale. Almost always used as an "
+"orthogonal basis for a Transform.\n"
+"Contains 3 vector fields X, Y and Z as its columns, which are typically "
+"interpreted as the local basis vectors of a transformation. For such use, it "
+"is composed of a scaling and a rotation matrix, in that order (M = R.S).\n"
+"Can also be accessed as array of 3D vectors. These vectors are normally "
+"orthogonal to each other, but are not necessarily normalized (due to "
+"scaling).\n"
+"For more information, read the \"Matrices and transforms\" documentation "
+"article."
+msgstr ""
+
+#: doc/classes/Basis.xml doc/classes/Transform.xml doc/classes/Transform2D.xml
+msgid "$DOCS_URL/tutorials/math/matrices_and_transforms.html"
+msgstr ""
+
+#: doc/classes/Basis.xml doc/classes/Transform.xml
+msgid "$DOCS_URL/tutorials/3d/using_transforms.html"
+msgstr ""
+
+#: doc/classes/Basis.xml doc/classes/Line2D.xml doc/classes/Transform.xml
+#: doc/classes/Transform2D.xml doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "https://godotengine.org/asset-library/asset/584"
+msgstr ""
+
+#: doc/classes/Basis.xml doc/classes/CylinderShape.xml
+#: doc/classes/Dictionary.xml doc/classes/DynamicFont.xml
+#: doc/classes/DynamicFontData.xml doc/classes/File.xml doc/classes/Input.xml
+#: doc/classes/InputEvent.xml doc/classes/InputEventAction.xml
+#: doc/classes/InputEventMouseMotion.xml doc/classes/KinematicBody.xml
+#: doc/classes/RayCast.xml doc/classes/StaticBody.xml
+#: doc/classes/SurfaceTool.xml doc/classes/TextureButton.xml
+#: doc/classes/TextureRect.xml doc/classes/Thread.xml
+#: doc/classes/VBoxContainer.xml
+msgid "https://godotengine.org/asset-library/asset/676"
+msgstr ""
+
+#: doc/classes/Basis.xml doc/classes/Line2D.xml doc/classes/Transform.xml
+#: doc/classes/Transform2D.xml
+msgid "https://godotengine.org/asset-library/asset/583"
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid "Constructs a pure rotation basis matrix from the given quaternion."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Constructs a pure rotation basis matrix from the given Euler angles (in the "
+"YXZ convention: when *composing*, first Y, then X, and Z last), given in the "
+"vector format as (X angle, Y angle, Z angle).\n"
+"Consider using the [Quat] constructor instead, which uses a quaternion "
+"instead of Euler angles."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Constructs a pure rotation basis matrix, rotated around the given "
+"[code]axis[/code] by [code]phi[/code], in radians. The axis must be a "
+"normalized vector."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid "Constructs a basis matrix from 3 axis vectors (matrix columns)."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Returns the determinant of the basis matrix. If the basis is uniformly "
+"scaled, its determinant is the square of the scale.\n"
+"A negative determinant means the basis has a negative scale. A zero "
+"determinant means the basis isn't invertible, and is usually considered "
+"invalid."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Returns the basis's rotation in the form of Euler angles (in the YXZ "
+"convention: when decomposing, first Z, then X, and Y last). The returned "
+"vector contains the rotation angles in the format (X angle, Y angle, Z "
+"angle).\n"
+"Consider using the [method get_rotation_quat] method instead, which returns "
+"a [Quat] quaternion instead of Euler angles."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"This function considers a discretization of rotations into 24 points on unit "
+"sphere, lying along the vectors (x,y,z) with each component being either -1, "
+"0, or 1, and returns the index of the point best representing the "
+"orientation of the object. It is mainly used by the [GridMap] editor. For "
+"further details, refer to the Godot source code."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Returns the basis's rotation in the form of a quaternion. See [method "
+"get_euler] if you need Euler angles, but keep in mind quaternions should "
+"generally be preferred to Euler angles."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Assuming that the matrix is the combination of a rotation and scaling, "
+"return the absolute value of scaling factors along each axis."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid "Returns the inverse of the matrix."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Returns [code]true[/code] if this basis and [code]b[/code] are approximately "
+"equal, by calling [code]is_equal_approx[/code] on each component.\n"
+"[b]Note:[/b] For complicated reasons, the epsilon argument is always "
+"discarded. Don't use the epsilon argument, it does nothing."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Returns the orthonormalized version of the matrix (useful to call from time "
+"to time to avoid rounding error for orthogonal matrices). This performs a "
+"Gram-Schmidt orthonormalization on the basis of the matrix."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Introduce an additional rotation around the given axis by phi (radians). The "
+"axis must be a normalized vector."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Introduce an additional scaling specified by the given 3D scaling factor."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Assuming that the matrix is a proper rotation matrix, slerp performs a "
+"spherical-linear interpolation with another rotation matrix."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid "Transposed dot product with the X axis of the matrix."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid "Transposed dot product with the Y axis of the matrix."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid "Transposed dot product with the Z axis of the matrix."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid "Returns the transposed version of the matrix."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid "Returns a vector transformed (multiplied) by the matrix."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"Returns a vector transformed (multiplied) by the transposed basis matrix.\n"
+"[b]Note:[/b] This results in a multiplication by the inverse of the matrix "
+"only if it represents a rotation-reflection."
+msgstr ""
+
+#: doc/classes/Basis.xml doc/classes/Transform2D.xml
+msgid ""
+"The basis matrix's X vector (column 0). Equivalent to array index [code]0[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Basis.xml doc/classes/Transform2D.xml
+msgid ""
+"The basis matrix's Y vector (column 1). Equivalent to array index [code]1[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"The basis matrix's Z vector (column 2). Equivalent to array index [code]2[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"The identity basis, with no rotation or scaling applied.\n"
+"This is identical to calling [code]Basis()[/code] without any parameters. "
+"This constant can be used to make your code clearer, and for consistency "
+"with C#."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"The basis that will flip something along the X axis when used in a "
+"transformation."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"The basis that will flip something along the Y axis when used in a "
+"transformation."
+msgstr ""
+
+#: doc/classes/Basis.xml
+msgid ""
+"The basis that will flip something along the Z axis when used in a "
+"transformation."
+msgstr ""
+
+#: doc/classes/BitMap.xml
+msgid "Boolean matrix."
+msgstr ""
+
+#: doc/classes/BitMap.xml
+msgid ""
+"A two-dimensional array of boolean values, can be used to efficiently store "
+"a binary matrix (every matrix element takes only one bit) and query the "
+"values using natural cartesian coordinates."
+msgstr ""
+
+#: doc/classes/BitMap.xml
+msgid ""
+"Creates a bitmap with the specified size, filled with [code]false[/code]."
+msgstr ""
+
+#: doc/classes/BitMap.xml
+msgid ""
+"Creates a bitmap that matches the given image dimensions, every element of "
+"the bitmap is set to [code]false[/code] if the alpha value of the image at "
+"that position is equal to [code]threshold[/code] or less, and [code]true[/"
+"code] in other case."
+msgstr ""
+
+#: doc/classes/BitMap.xml
+msgid "Returns bitmap's value at the specified position."
+msgstr ""
+
+#: doc/classes/BitMap.xml
+msgid "Returns bitmap's dimensions."
+msgstr ""
+
+#: doc/classes/BitMap.xml
+msgid ""
+"Returns the amount of bitmap elements that are set to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/BitMap.xml
+msgid ""
+"Applies morphological dilation or erosion to the bitmap. If [code]pixels[/"
+"code] is positive, dilation is applied to the bitmap. If [code]pixels[/code] "
+"is negative, erosion is applied to the bitmap. [code]rect[/code] defines the "
+"area where the morphological operation is applied. Pixels located outside "
+"the [code]rect[/code] are unaffected by [method grow_mask]."
+msgstr ""
+
+#: doc/classes/BitMap.xml
+msgid ""
+"Sets the bitmap's element at the specified position, to the specified value."
+msgstr ""
+
+#: doc/classes/BitMap.xml
+msgid "Sets a rectangular portion of the bitmap to the specified value."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid ""
+"Renders text using fonts under the [url=https://www.angelcode.com/products/"
+"bmfont/]BMFont[/url] format.\n"
+"Handles files with the [code].fnt[/code] extension."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid ""
+"Renders text using [code]*.fnt[/code] fonts containing texture atlases. "
+"Supports distance fields. For using vector font files like TTF directly, see "
+"[DynamicFont]."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid ""
+"Adds a character to the font, where [code]character[/code] is the Unicode "
+"value, [code]texture[/code] is the texture index, [code]rect[/code] is the "
+"region in the texture (in pixels!), [code]align[/code] is the (optional) "
+"alignment for the character and [code]advance[/code] is the (optional) "
+"advance."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid ""
+"Adds a kerning pair to the [BitmapFont] as a difference. Kerning pairs are "
+"special cases where a typeface advance is determined by the next character."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid "Adds a texture to the [BitmapFont]."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid "Clears all the font data and settings."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid ""
+"Creates a BitmapFont from the [code]*.fnt[/code] file at [code]path[/code]."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid "Returns a kerning pair as a difference."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid "Returns the font atlas texture at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid "Returns the number of textures in the BitmapFont atlas."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid "Ascent (number of pixels above the baseline)."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid "If [code]true[/code], distance field hint is enabled."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid "The fallback font."
+msgstr ""
+
+#: doc/classes/BitmapFont.xml
+msgid "Total font height (ascent plus descent) in pixels."
+msgstr ""
+
+#: doc/classes/Bone2D.xml
+msgid "Joint used with [Skeleton2D] to control and animate other nodes."
+msgstr ""
+
+#: doc/classes/Bone2D.xml
+msgid ""
+"Use a hierarchy of [code]Bone2D[/code] bound to a [Skeleton2D] to control, "
+"and animate other [Node2D] nodes.\n"
+"You can use [code]Bone2D[/code] and [code]Skeleton2D[/code] nodes to animate "
+"2D meshes created with the Polygon 2D UV editor.\n"
+"Each bone has a [member rest] transform that you can reset to with [method "
+"apply_rest]. These rest poses are relative to the bone's parent.\n"
+"If in the editor, you can set the rest pose of an entire skeleton using a "
+"menu option, from the code, you need to iterate over the bones to set their "
+"individual rest poses."
+msgstr ""
+
+#: doc/classes/Bone2D.xml
+msgid "Stores the node's current transforms in [member rest]."
+msgstr ""
+
+#: doc/classes/Bone2D.xml
+msgid ""
+"Returns the node's index as part of the entire skeleton. See [Skeleton2D]."
+msgstr ""
+
+#: doc/classes/Bone2D.xml
+msgid ""
+"Returns the node's [member rest] [code]Transform2D[/code] if it doesn't have "
+"a parent, or its rest pose relative to its parent."
+msgstr ""
+
+#: doc/classes/Bone2D.xml
+msgid ""
+"Length of the bone's representation drawn in the editor's viewport in pixels."
+msgstr ""
+
+#: doc/classes/Bone2D.xml
+msgid ""
+"Rest transform of the bone. You can reset the node's transforms to this "
+"value using [method apply_rest]."
+msgstr ""
+
+#: doc/classes/BoneAttachment.xml
+msgid "A node that will attach to a bone."
+msgstr ""
+
+#: doc/classes/BoneAttachment.xml
+msgid ""
+"This node must be the child of a [Skeleton] node. You can then select a bone "
+"for this node to attach to. The BoneAttachment node will copy the transform "
+"of the selected bone."
+msgstr ""
+
+#: doc/classes/BoneAttachment.xml
+msgid "The name of the attached bone."
+msgstr ""
+
+#: doc/classes/bool.xml
+msgid "Boolean built-in type."
+msgstr ""
+
+#: doc/classes/bool.xml
+msgid ""
+"Boolean is a built-in type. There are two boolean values: [code]true[/code] "
+"and [code]false[/code]. You can think of it as a switch with on or off (1 or "
+"0) setting. Booleans are used in programming for logic in condition "
+"statements, like [code]if[/code] statements.\n"
+"Booleans can be directly used in [code]if[/code] statements. The code below "
+"demonstrates this on the [code]if can_shoot:[/code] line. You don't need to "
+"use [code]== true[/code], you only need [code]if can_shoot:[/code]. "
+"Similarly, use [code]if not can_shoot:[/code] rather than [code]== false[/"
+"code].\n"
+"[codeblock]\n"
+"var can_shoot = true\n"
+"\n"
+"func shoot():\n"
+" if can_shoot:\n"
+" pass # Perform shooting actions here.\n"
+"[/codeblock]\n"
+"The following code will only create a bullet if both conditions are met: "
+"action \"shoot\" is pressed and if [code]can_shoot[/code] is [code]true[/"
+"code].\n"
+"[b]Note:[/b] [code]Input.is_action_pressed(\"shoot\")[/code] is also a "
+"boolean that is [code]true[/code] when \"shoot\" is pressed and [code]false[/"
+"code] when \"shoot\" isn't pressed.\n"
+"[codeblock]\n"
+"var can_shoot = true\n"
+"\n"
+"func shoot():\n"
+" if can_shoot and Input.is_action_pressed(\"shoot\"):\n"
+" create_bullet()\n"
+"[/codeblock]\n"
+"The following code will set [code]can_shoot[/code] to [code]false[/code] and "
+"start a timer. This will prevent player from shooting until the timer runs "
+"out. Next [code]can_shoot[/code] will be set to [code]true[/code] again "
+"allowing player to shoot once again.\n"
+"[codeblock]\n"
+"var can_shoot = true\n"
+"onready var cool_down = $CoolDownTimer\n"
+"\n"
+"func shoot():\n"
+" if can_shoot and Input.is_action_pressed(\"shoot\"):\n"
+" create_bullet()\n"
+" can_shoot = false\n"
+" cool_down.start()\n"
+"\n"
+"func _on_CoolDownTimer_timeout():\n"
+" can_shoot = true\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/bool.xml
+msgid ""
+"Cast an [int] value to a boolean value, this method will return [code]false[/"
+"code] if [code]0[/code] is passed in, and [code]true[/code] for all other "
+"ints."
+msgstr ""
+
+#: doc/classes/bool.xml
+msgid ""
+"Cast a [float] value to a boolean value, this method will return "
+"[code]false[/code] if [code]0.0[/code] is passed in, and [code]true[/code] "
+"for all other floats."
+msgstr ""
+
+#: doc/classes/bool.xml
+msgid ""
+"Cast a [String] value to a boolean value, this method will return "
+"[code]false[/code] if [code]\"\"[/code] is passed in, and [code]true[/code] "
+"for all non-empty strings.\n"
+"Examples: [code]bool(\"False\")[/code] returns [code]true[/code], "
+"[code]bool(\"\")[/code] returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/BoxContainer.xml
+msgid "Base class for box containers."
+msgstr ""
+
+#: doc/classes/BoxContainer.xml
+msgid ""
+"Arranges child controls vertically or horizontally, and rearranges the "
+"controls automatically when their minimum size changes."
+msgstr ""
+
+#: doc/classes/BoxContainer.xml
+msgid ""
+"Adds a control to the box as a spacer. If [code]true[/code], [code]begin[/"
+"code] will insert the spacer control in front of other children."
+msgstr ""
+
+#: doc/classes/BoxContainer.xml
+msgid ""
+"The alignment of the container's children (must be one of [constant "
+"ALIGN_BEGIN], [constant ALIGN_CENTER] or [constant ALIGN_END])."
+msgstr ""
+
+#: doc/classes/BoxContainer.xml
+msgid "Aligns children with the beginning of the container."
+msgstr ""
+
+#: doc/classes/BoxContainer.xml
+msgid "Aligns children with the center of the container."
+msgstr ""
+
+#: doc/classes/BoxContainer.xml
+msgid "Aligns children with the end of the container."
+msgstr ""
+
+#: doc/classes/BoxShape.xml
+msgid "Box shape resource."
+msgstr ""
+
+#: doc/classes/BoxShape.xml
+msgid "3D box shape that can be a child of a [PhysicsBody] or [Area]."
+msgstr ""
+
+#: doc/classes/BoxShape.xml doc/classes/CapsuleShape.xml
+#: doc/classes/ConcavePolygonShape.xml doc/classes/ConvexPolygonShape.xml
+#: doc/classes/CylinderShape.xml doc/classes/ProjectSettings.xml
+#: doc/classes/RigidBody.xml doc/classes/SphereShape.xml
+#: doc/classes/StaticBody.xml
+msgid "https://godotengine.org/asset-library/asset/675"
+msgstr ""
+
+#: doc/classes/BoxShape.xml doc/classes/CollisionShape.xml
+#: modules/gridmap/doc_classes/GridMap.xml doc/classes/KinematicBody.xml
+#: doc/classes/Mesh.xml doc/classes/MeshInstance.xml
+#: doc/classes/MeshLibrary.xml
+msgid "https://godotengine.org/asset-library/asset/126"
+msgstr ""
+
+#: doc/classes/BoxShape.xml
+msgid ""
+"The box's half extents. The width, height and depth of this shape is twice "
+"the half extents."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "Standard themed Button."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid ""
+"Button is the standard themed button. It can contain text and an icon, and "
+"will display them according to the current [Theme].\n"
+"[b]Example of creating a button and assigning an action when pressed by code:"
+"[/b]\n"
+"[codeblock]\n"
+"func _ready():\n"
+" var button = Button.new()\n"
+" button.text = \"Click me\"\n"
+" button.connect(\"pressed\", self, \"_button_pressed\")\n"
+" add_child(button)\n"
+"\n"
+"func _button_pressed():\n"
+" print(\"Hello world!\")\n"
+"[/codeblock]\n"
+"Buttons (like all Control nodes) can also be created in the editor, but some "
+"situations may require creating them from code.\n"
+"See also [BaseButton] which contains common properties and methods "
+"associated with this node.\n"
+"[b]Note:[/b] Buttons do not interpret touch input and therefore don't "
+"support multitouch, since mouse emulation can only press one button at a "
+"given time. Use [TouchScreenButton] for buttons that trigger gameplay "
+"movement or actions, as [TouchScreenButton] supports multitouch."
+msgstr ""
+
+#: doc/classes/Button.xml doc/classes/Dictionary.xml
+#: doc/classes/GridContainer.xml doc/classes/OS.xml
+#: doc/classes/PoolStringArray.xml doc/classes/ProjectSettings.xml
+#: doc/classes/ResourceLoader.xml doc/classes/RichTextLabel.xml
+msgid "https://godotengine.org/asset-library/asset/677"
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid ""
+"Text alignment policy for the button's text, use one of the [enum TextAlign] "
+"constants."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid ""
+"When this property is enabled, text that is too large to fit the button is "
+"clipped, when disabled the Button will always be wide enough to hold the "
+"text."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid ""
+"When enabled, the button's icon will expand/shrink to fit the button's size "
+"while keeping its aspect."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "Flat buttons don't display decoration."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid ""
+"Button's icon, if text is present the icon will be placed before the text.\n"
+"To edit margin and spacing of the icon, use [code]hseparation[/code] theme "
+"property of [Button] and [code]content_margin_*[/code] properties of the "
+"used [StyleBox]es."
+msgstr ""
+
+#: doc/classes/Button.xml doc/classes/LinkButton.xml
+msgid "The button's text that will be displayed inside the button's area."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "Align the text to the left."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "Align the text to the center."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "Align the text to the right."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "Default text [Color] of the [Button]."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "Text [Color] used when the [Button] is disabled."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid ""
+"Text [Color] used when the [Button] is focused. Only replaces the normal "
+"text color of the button. Disabled, hovered, and pressed states take "
+"precedence over this color."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "Text [Color] used when the [Button] is being hovered."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "Text [Color] used when the [Button] is being pressed."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "The horizontal space between [Button]'s icon and text."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "[Font] of the [Button]'s text."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "[StyleBox] used when the [Button] is disabled."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid ""
+"[StyleBox] used when the [Button] is focused. It is displayed over the "
+"current [StyleBox], so using [StyleBoxEmpty] will just disable the focus "
+"visual effect."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "[StyleBox] used when the [Button] is being hovered."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "Default [StyleBox] for the [Button]."
+msgstr ""
+
+#: doc/classes/Button.xml
+msgid "[StyleBox] used when the [Button] is being pressed."
+msgstr ""
+
+#: doc/classes/ButtonGroup.xml
+msgid "Group of Buttons."
+msgstr ""
+
+#: doc/classes/ButtonGroup.xml
+msgid ""
+"Group of [Button]. All direct and indirect children buttons become radios. "
+"Only one allows being pressed.\n"
+"[member BaseButton.toggle_mode] should be [code]true[/code]."
+msgstr ""
+
+#: doc/classes/ButtonGroup.xml
+msgid ""
+"Returns an [Array] of [Button]s who have this as their [ButtonGroup] (see "
+"[member BaseButton.group])."
+msgstr ""
+
+#: doc/classes/ButtonGroup.xml
+msgid "Returns the current pressed button."
+msgstr ""
+
+#: doc/classes/ButtonGroup.xml
+msgid "Emitted when one of the buttons of the group is pressed."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid "Camera node, displays from a point of view."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Camera is a special node that displays what is visible from its current "
+"location. Cameras register themselves in the nearest [Viewport] node (when "
+"ascending the tree). Only one camera can be active per viewport. If no "
+"viewport is available ascending the tree, the camera will register in the "
+"global viewport. In other words, a camera just provides 3D display "
+"capabilities to a [Viewport], and, without one, a scene registered in that "
+"[Viewport] (or higher viewports) can't be displayed."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"If this is the current camera, remove it from being current. If "
+"[code]enable_next[/code] is [code]true[/code], request to make the next "
+"camera current, if any."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid "Returns the camera's RID from the [VisualServer]."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Returns the transform of the camera plus the vertical ([member v_offset]) "
+"and horizontal ([member h_offset]) offsets; and any other adjustments made "
+"to the position and orientation of the camera by subclassed cameras such as "
+"[ClippedCamera], [InterpolatedCamera] and [ARVRCamera]."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Returns [code]true[/code] if the given [code]layer[/code] in the [member "
+"cull_mask] is enabled, [code]false[/code] otherwise."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Returns the camera's frustum planes in world space units as an array of "
+"[Plane]s in the following order: near, far, left, top, right, bottom. Not to "
+"be confused with [member frustum_offset]."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Returns [code]true[/code] if the given position is behind the camera.\n"
+"[b]Note:[/b] A position which returns [code]false[/code] may still be "
+"outside the camera's field of view."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Makes this camera the current camera for the [Viewport] (see class "
+"description). If the camera node is outside the scene tree, it will attempt "
+"to become current once it's added."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Returns a normal vector from the screen point location directed along the "
+"camera. Orthogonal cameras are normalized. Perspective cameras account for "
+"perspective, screen width/height, etc."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Returns the 3D point in world space that maps to the given 2D coordinate in "
+"the [Viewport] rectangle on a plane that is the given [code]z_depth[/code] "
+"distance into the scene away from the camera."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Returns a normal vector in world space, that is the result of projecting a "
+"point on the [Viewport] rectangle by the camera projection. This is useful "
+"for casting rays in the form of (origin, normal) for object intersection or "
+"picking."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Returns a 3D position in world space, that is the result of projecting a "
+"point on the [Viewport] rectangle by the camera projection. This is useful "
+"for casting rays in the form of (origin, normal) for object intersection or "
+"picking."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Enables or disables the given [code]layer[/code] in the [member cull_mask]."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Sets the camera projection to frustum mode (see [constant "
+"PROJECTION_FRUSTUM]), by specifying a [code]size[/code], an [code]offset[/"
+"code], and the [code]z_near[/code] and [code]z_far[/code] clip planes in "
+"world space units."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Sets the camera projection to orthogonal mode (see [constant "
+"PROJECTION_ORTHOGONAL]), by specifying a [code]size[/code], and the "
+"[code]z_near[/code] and [code]z_far[/code] clip planes in world space units. "
+"(As a hint, 2D games often use this projection, with values specified in "
+"pixels.)"
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Sets the camera projection to perspective mode (see [constant "
+"PROJECTION_PERSPECTIVE]), by specifying a [code]fov[/code] (field of view) "
+"angle in degrees, and the [code]z_near[/code] and [code]z_far[/code] clip "
+"planes in world space units."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Returns the 2D coordinate in the [Viewport] rectangle that maps to the given "
+"3D point in world space.\n"
+"[b]Note:[/b] When using this to position GUI elements over a 3D viewport, "
+"use [method is_position_behind] to prevent them from appearing if the 3D "
+"point is behind the camera:\n"
+"[codeblock]\n"
+"# This code block is part of a script that inherits from Spatial.\n"
+"# `control` is a reference to a node inheriting from Control.\n"
+"control.visible = not get_viewport().get_camera()."
+"is_position_behind(global_transform.origin)\n"
+"control.rect_position = get_viewport().get_camera()."
+"unproject_position(global_transform.origin)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"The culling mask that describes which 3D render layers are rendered by this "
+"camera."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"If [code]true[/code], the ancestor [Viewport] is currently using this camera."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"If not [constant DOPPLER_TRACKING_DISABLED], this camera will simulate the "
+"[url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] for "
+"objects changed in particular [code]_process[/code] methods. The Doppler "
+"effect is only simulated for [AudioStreamPlayer3D] nodes that have [member "
+"AudioStreamPlayer3D.doppler_tracking] set to a value other than [constant "
+"AudioStreamPlayer3D.DOPPLER_TRACKING_DISABLED].\n"
+"[b]Note:[/b] To toggle the Doppler effect preview in the editor, use the "
+"Perspective menu in the top-left corner of the 3D viewport and toggle "
+"[b]Enable Doppler[/b]."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid "The [Environment] to use for this camera."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"The distance to the far culling boundary for this camera relative to its "
+"local Z axis."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"The camera's field of view angle (in degrees). Only applicable in "
+"perspective mode. Since [member keep_aspect] locks one axis, [code]fov[/"
+"code] sets the other axis' field of view angle.\n"
+"For reference, the default vertical field of view value ([code]70.0[/code]) "
+"is equivalent to a horizontal FOV of:\n"
+"- ~86.07 degrees in a 4:3 viewport\n"
+"- ~96.50 degrees in a 16:10 viewport\n"
+"- ~102.45 degrees in a 16:9 viewport\n"
+"- ~117.06 degrees in a 21:9 viewport"
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"The camera's frustum offset. This can be changed from the default to create "
+"\"tilted frustum\" effects such as [url=https://zdoom.org/wiki/Y-shearing]Y-"
+"shearing[/url]."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid "The horizontal (X) offset of the camera viewport."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"The axis to lock during [member fov]/[member size] adjustments. Can be "
+"either [constant KEEP_WIDTH] or [constant KEEP_HEIGHT]."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"The distance to the near culling boundary for this camera relative to its "
+"local Z axis."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"The camera's projection mode. In [constant PROJECTION_PERSPECTIVE] mode, "
+"objects' Z distance from the camera's local space scales their perceived "
+"size."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"The camera's size measured as 1/2 the width or height. Only applicable in "
+"orthogonal mode. Since [member keep_aspect] locks on axis, [code]size[/code] "
+"sets the other axis' size length."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid "The vertical (Y) offset of the camera viewport."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Perspective projection. Objects on the screen becomes smaller when they are "
+"far away."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Orthogonal projection, also known as orthographic projection. Objects remain "
+"the same size on the screen no matter how far away they are."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Frustum projection. This mode allows adjusting [member frustum_offset] to "
+"create \"tilted frustum\" effects."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Preserves the horizontal aspect ratio; also known as Vert- scaling. This is "
+"usually the best option for projects running in portrait mode, as taller "
+"aspect ratios will benefit from a wider vertical FOV."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Preserves the vertical aspect ratio; also known as Hor+ scaling. This is "
+"usually the best option for projects running in landscape mode, as wider "
+"aspect ratios will automatically benefit from a wider horizontal FOV."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Disables [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
+"url] simulation (default)."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
+"url] by tracking positions of objects that are changed in [code]_process[/"
+"code]. Changes in the relative velocity of this camera compared to those "
+"objects affect how audio is perceived (changing the audio's [member "
+"AudioStreamPlayer3D.pitch_scale])."
+msgstr ""
+
+#: doc/classes/Camera.xml
+msgid ""
+"Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
+"url] by tracking positions of objects that are changed in "
+"[code]_physics_process[/code]. Changes in the relative velocity of this "
+"camera compared to those objects affect how audio is perceived (changing the "
+"audio's [member AudioStreamPlayer3D.pitch_scale])."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid "Camera node for 2D scenes."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Camera node for 2D scenes. It forces the screen (current layer) to scroll "
+"following this node. This makes it easier (and faster) to program scrollable "
+"scenes than manually changing the position of [CanvasItem]-based nodes.\n"
+"This node is intended to be a simple helper to get things going quickly, but "
+"more functionality may be desired to change how the camera works. To make "
+"your own custom camera node, inherit it from [Node2D] and change the "
+"transform of the canvas by setting [member Viewport.canvas_transform] in "
+"[Viewport] (you can obtain the current [Viewport] by using [method Node."
+"get_viewport]).\n"
+"Note that the [Camera2D] node's [code]position[/code] doesn't represent the "
+"actual position of the screen, which may differ due to applied smoothing or "
+"limits. You can use [method get_camera_screen_center] to get the real "
+"position."
+msgstr ""
+
+#: doc/classes/Camera2D.xml doc/classes/TileMap.xml doc/classes/TileSet.xml
+msgid "https://godotengine.org/asset-library/asset/112"
+msgstr ""
+
+#: doc/classes/Camera2D.xml doc/classes/Environment.xml
+#: doc/classes/WorldEnvironment.xml
+msgid "https://godotengine.org/asset-library/asset/110"
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid "Aligns the camera to the tracked node."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Removes any [Camera2D] from the ancestor [Viewport]'s internal currently-"
+"assigned camera."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid "Forces the camera to update scroll immediately."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Returns the camera's [code]position[/code] (the tracked point the camera "
+"attempts to follow), relative to the origin.\n"
+"[b]Note:[/b] The returned value is not the same as [member Node2D.position] "
+"or [member Node2D.global_position], as it is affected by the [code]drag[/"
+"code] properties."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Returns the location of the [Camera2D]'s screen-center, relative to the "
+"origin.\n"
+"[b]Note:[/b] The real [code]position[/code] of the camera may be different, "
+"see [method get_camera_position]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Returns the specified margin. See also [member drag_margin_bottom], [member "
+"drag_margin_top], [member drag_margin_left], and [member drag_margin_right]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Returns the specified camera limit. See also [member limit_bottom], [member "
+"limit_top], [member limit_left], and [member limit_right]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Make this the current 2D camera for the scene (viewport and layer), in case "
+"there are many cameras in the scene."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Sets the camera's position immediately to its current smoothing "
+"destination.\n"
+"This method has no effect if [member smoothing_enabled] is [code]false[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Sets the specified margin. See also [member drag_margin_bottom], [member "
+"drag_margin_top], [member drag_margin_left], and [member drag_margin_right]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Sets the specified camera limit. See also [member limit_bottom], [member "
+"limit_top], [member limit_left], and [member limit_right]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid "The Camera2D's anchor point. See [enum AnchorMode] constants."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"If [code]true[/code], the camera is the active camera for the current scene. "
+"Only one camera can be current, so setting a different camera [code]current[/"
+"code] will disable this one."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"The custom [Viewport] node attached to the [Camera2D]. If [code]null[/code] "
+"or not a [Viewport], uses the default viewport instead."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Bottom margin needed to drag the camera. A value of [code]1[/code] makes the "
+"camera move only when reaching the edge of the screen."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"If [code]true[/code], the camera only moves when reaching the horizontal "
+"drag margins. If [code]false[/code], the camera moves horizontally "
+"regardless of margins."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Left margin needed to drag the camera. A value of [code]1[/code] makes the "
+"camera move only when reaching the edge of the screen."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Right margin needed to drag the camera. A value of [code]1[/code] makes the "
+"camera move only when reaching the edge of the screen."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Top margin needed to drag the camera. A value of [code]1[/code] makes the "
+"camera move only when reaching the edge of the screen."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"If [code]true[/code], the camera only moves when reaching the vertical drag "
+"margins. If [code]false[/code], the camera moves vertically regardless of "
+"margins."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"If [code]true[/code], draws the camera's drag margin rectangle in the editor."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"If [code]true[/code], draws the camera's limits rectangle in the editor."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"If [code]true[/code], draws the camera's screen rectangle in the editor."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Bottom scroll limit in pixels. The camera stops moving when reaching this "
+"value."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Left scroll limit in pixels. The camera stops moving when reaching this "
+"value."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Right scroll limit in pixels. The camera stops moving when reaching this "
+"value."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"If [code]true[/code], the camera smoothly stops when reaches its limits.\n"
+"This property has no effect if [member smoothing_enabled] is [code]false[/"
+"code].\n"
+"[b]Note:[/b] To immediately update the camera's position to be within limits "
+"without smoothing, even with this setting enabled, invoke [method "
+"reset_smoothing]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Top scroll limit in pixels. The camera stops moving when reaching this value."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"The camera's offset, useful for looking around or camera shake animations."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"The horizontal offset of the camera, relative to the drag margins.\n"
+"[b]Note:[/b] Offset H is used only to force offset relative to margins. It's "
+"not updated in any way if drag margins are enabled and can be used to set "
+"initial offset."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"The vertical offset of the camera, relative to the drag margins.\n"
+"[b]Note:[/b] Used the same as [member offset_h]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid "The camera's process callback. See [enum Camera2DProcessMode]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid "If [code]true[/code], the camera view rotates with the target."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"If [code]true[/code], the camera smoothly moves towards the target at "
+"[member smoothing_speed]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"Speed in pixels per second of the camera's smoothing effect when [member "
+"smoothing_enabled] is [code]true[/code]."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"The camera's zoom relative to the viewport. Values larger than "
+"[code]Vector2(1, 1)[/code] zoom out and smaller values zoom in. For an "
+"example, use [code]Vector2(0.5, 0.5)[/code] for a 2× zoom-in, and "
+"[code]Vector2(4, 4)[/code] for a 4× zoom-out."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"The camera's position is fixed so that the top-left corner is always at the "
+"origin."
+msgstr ""
+
+#: doc/classes/Camera2D.xml
+msgid ""
+"The camera's position takes into account vertical/horizontal offsets and the "
+"screen size."
+msgstr ""
+
+#: doc/classes/Camera2D.xml doc/classes/ClippedCamera.xml
+msgid "The camera updates with the [code]_physics_process[/code] callback."
+msgstr ""
+
+#: doc/classes/Camera2D.xml doc/classes/ClippedCamera.xml
+msgid "The camera updates with the [code]_process[/code] callback."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid ""
+"A camera feed gives you access to a single physical camera attached to your "
+"device."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid ""
+"A camera feed gives you access to a single physical camera attached to your "
+"device. When enabled, Godot will start capturing frames from the camera "
+"which can then be used. See also [CameraServer].\n"
+"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
+"textures and need to be combined in a shader. Godot does this automatically "
+"for you if you set the environment to show the camera image in the "
+"background."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "Returns the unique ID for this feed."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "Returns the camera's name."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "Returns the position of camera on the device."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "If [code]true[/code], the feed is active."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "The transform applied to the camera's image."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "No image set for the feed."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "Feed supplies RGB images."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "Feed supplies YCbCr images that need to be converted to RGB."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid ""
+"Feed supplies separate Y and CbCr images that need to be combined and "
+"converted to RGB."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "Unspecified position."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "Camera is mounted at the front of the device."
+msgstr ""
+
+#: doc/classes/CameraFeed.xml
+msgid "Camera is mounted at the back of the device."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "Server keeping track of different cameras accessible in Godot."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid ""
+"The [CameraServer] keeps track of different cameras accessible in Godot. "
+"These are external cameras such as webcams or the cameras on your phone.\n"
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "Adds the camera [code]feed[/code] to the camera server."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "Returns an array of [CameraFeed]s."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "Returns the number of [CameraFeed]s registered."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "The RGBA camera image."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "The Y component camera image."
+msgstr ""
+
+#: doc/classes/CameraServer.xml
+msgid "The CbCr component camera image."
+msgstr ""
+
+#: doc/classes/CameraTexture.xml
+msgid "Texture provided by a [CameraFeed]."
+msgstr ""
+
+#: doc/classes/CameraTexture.xml
+msgid ""
+"This texture gives access to the camera texture provided by a [CameraFeed].\n"
+"[b]Note:[/b] Many cameras supply YCbCr images which need to be converted in "
+"a shader."
+msgstr ""
+
+#: doc/classes/CameraTexture.xml
+msgid "The ID of the [CameraFeed] for which we want to display the image."
+msgstr ""
+
+#: doc/classes/CameraTexture.xml
+msgid ""
+"Convenience property that gives access to the active property of the "
+"[CameraFeed]."
+msgstr ""
+
+#: doc/classes/CameraTexture.xml
+msgid ""
+"Which image within the [CameraFeed] we want access to, important if the "
+"camera image is split in a Y and CbCr component."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Base class of anything 2D."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Base class of anything 2D. Canvas items are laid out in a tree; children "
+"inherit and extend their parent's transform. [CanvasItem] is extended by "
+"[Control] for anything GUI-related, and by [Node2D] for anything related to "
+"the 2D engine.\n"
+"Any [CanvasItem] can draw. For this, [method update] must be called, then "
+"[constant NOTIFICATION_DRAW] will be received on idle time to request "
+"redraw. Because of this, canvas items don't need to be redrawn on every "
+"frame, improving the performance significantly. Several functions for "
+"drawing on the [CanvasItem] are provided (see [code]draw_*[/code] "
+"functions). However, they can only be used inside the [method Object."
+"_notification], signal or [method _draw] virtual functions.\n"
+"Canvas items are drawn in tree order. By default, children are on top of "
+"their parents so a root [CanvasItem] will be drawn behind everything. This "
+"behavior can be changed on a per-item basis.\n"
+"A [CanvasItem] can also be hidden, which will also hide its children. It "
+"provides many ways to change parameters such as modulation (for itself and "
+"its children) and self modulation (only for itself), as well as its blend "
+"mode.\n"
+"Ultimately, a transform notification can be requested, which will notify the "
+"node that its global position changed in case the parent tree changed.\n"
+"[b]Note:[/b] Unless otherwise specified, all methods that have angle "
+"parameters must have angles specified as [i]radians[/i]. To convert degrees "
+"to radians, use [method @GDScript.deg2rad]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml doc/classes/CanvasLayer.xml
+#: doc/classes/InputEvent.xml doc/classes/Viewport.xml
+msgid "$DOCS_URL/tutorials/2d/2d_transforms.html"
+msgstr ""
+
+#: doc/classes/CanvasItem.xml doc/classes/Control.xml doc/classes/Node2D.xml
+msgid "$DOCS_URL/tutorials/2d/custom_drawing_in_2d.html"
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Overridable function called by the engine (if defined) to draw the canvas "
+"item."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a string character using a custom font. Returns the advance, depending "
+"on the character width and kerning with an optional next character."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a line from a 2D point to another, with a given color and width. It "
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a [Mesh] in 2D, using the provided texture. See [MeshInstance2D] for "
+"related documentation."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
+"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
+"not implemented and have no effect."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
+"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
+"not implemented and have no effect."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a [MultiMesh] in 2D with the provided texture. See "
+"[MultiMeshInstance2D] for related documentation."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws interconnected line segments with a uniform [code]color[/code] and "
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws interconnected line segments with a uniform [code]width[/code] and "
+"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
+"line segments match by index between [code]points[/code] and [code]colors[/"
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a rectangle. If [code]filled[/code] is [code]true[/code], the "
+"rectangle will be filled with the [code]color[/code] specified. If "
+"[code]filled[/code] is [code]false[/code], the rectangle will be drawn as a "
+"stroke with the [code]color[/code] and [code]width[/code] specified. If "
+"[code]antialiased[/code] is [code]true[/code], the lines will be "
+"antialiased.\n"
+"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are only "
+"effective if [code]filled[/code] is [code]false[/code]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Sets a custom transform for drawing via components. Anything drawn "
+"afterwards will be transformed by this."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Sets a custom transform for drawing via matrix. Anything drawn afterwards "
+"will be transformed by this."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws [code]text[/code] using the specified [code]font[/code] at the "
+"[code]position[/code] (bottom-left corner using the baseline of the font). "
+"The text will have its color multiplied by [code]modulate[/code]. If "
+"[code]clip_w[/code] is greater than or equal to 0, the text will be clipped "
+"if it exceeds the specified width.\n"
+"[b]Example using the default project font:[/b]\n"
+"[codeblock]\n"
+"# If using this method in a script that redraws constantly, move the\n"
+"# `default_font` declaration to a member variable assigned in `_ready()`\n"
+"# so the Control is only created once.\n"
+"var default_font = Control.new().get_font(\"font\")\n"
+"draw_string(default_font, Vector2(64, 64), \"Hello world\")\n"
+"[/codeblock]\n"
+"See also [method Font.draw]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Draws a styled rectangle."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Draws a texture at a given position."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a textured rectangle at a given position, optionally modulated by a "
+"color. If [code]transpose[/code] is [code]true[/code], the texture will have "
+"its X and Y coordinates swapped."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Draws a textured rectangle region at a given position, optionally modulated "
+"by a color. If [code]transpose[/code] is [code]true[/code], the texture will "
+"have its X and Y coordinates swapped."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml doc/classes/Spatial.xml
+msgid ""
+"Forces the transform to update. Transform changes in physics are not instant "
+"for performance reasons. Transforms are accumulated and then set. Use this "
+"if you need an up-to-date transform when doing physics operations."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Returns the [RID] of the [World2D] canvas where this item is in."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Returns the canvas item RID used by [VisualServer] for this item."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Returns the transform matrix of this item's canvas."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Returns the global position of the mouse."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Returns the global transform matrix of this item."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Returns the global transform matrix of this item in relation to the canvas."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Returns the mouse position relative to this item's position."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Returns the transform matrix of this item."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Returns the viewport's boundaries as a [Rect2]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Returns this item's transform in relation to the viewport."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Returns the [World2D] where this item is in."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Returns [code]true[/code] if local transform notifications are communicated "
+"to children."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Returns [code]true[/code] if the node is set as top-level. See [method "
+"set_as_toplevel]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Returns [code]true[/code] if global transform notifications are communicated "
+"to children."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml doc/classes/Spatial.xml
+msgid ""
+"Returns [code]true[/code] if the node is present in the [SceneTree], its "
+"[member visible] property is [code]true[/code] and all its antecedents are "
+"also visible. If any antecedent is hidden, this node will not be visible in "
+"the scene tree."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Assigns [code]screen_point[/code] as this node's new local transform."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Transformations issued by [code]event[/code]'s inputs are applied in local "
+"space instead of global space."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"If [code]enable[/code] is [code]true[/code], the node won't inherit its "
+"transform from parent canvas items."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"If [code]enable[/code] is [code]true[/code], children will be updated with "
+"local transform data."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"If [code]enable[/code] is [code]true[/code], children will be updated with "
+"global transform data."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
+"[Popup], the correct way to make them visible is to call one of the multiple "
+"[code]popup*()[/code] functions instead."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Queue the [CanvasItem] for update. [constant NOTIFICATION_DRAW] will be "
+"called on idle time to request redraw."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"The rendering layers in which this [CanvasItem] responds to [Light2D] nodes."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "The material applied to textures on this [CanvasItem]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "The color applied to textures on this [CanvasItem]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"The color applied to textures on this [CanvasItem]. This is not inherited by "
+"children [CanvasItem]s."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "If [code]true[/code], the object draws behind its parent."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "If [code]true[/code], the object draws on top of its parent."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"If [code]true[/code], the parent [CanvasItem]'s [member material] property "
+"is used as this one's material."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"If [code]true[/code], this [CanvasItem] is drawn. The node is only visible "
+"if all of its antecedents are visible as well (in other words, [method "
+"is_visible_in_tree] must return [code]true[/code]).\n"
+"[b]Note:[/b] For controls that inherit [Popup], the correct way to make them "
+"visible is to call one of the multiple [code]popup*()[/code] functions "
+"instead."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Emitted when the [CanvasItem] must redraw. This can only be connected "
+"realtime, as deferred will not allow drawing."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Emitted when becoming hidden."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Emitted when the item's [Rect2] boundaries (position or size) have changed, "
+"or when an action is taking place that may have impacted these boundaries (e."
+"g. changing [member Sprite.texture])."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "Emitted when the visibility (hidden/visible) changes."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
+msgid ""
+"Mix blending mode. Colors are assumed to be independent of the alpha "
+"(opacity) value."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
+msgid "Additive blending mode."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
+msgid "Subtractive blending mode."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
+msgid "Multiplicative blending mode."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
+msgid ""
+"Mix blending mode. Colors are assumed to be premultiplied by the alpha "
+"(opacity) value."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"Disables blending mode. Colors including alpha are written as-is. Only "
+"applicable for render targets with a transparent background. No lighting "
+"will be applied."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid ""
+"The [CanvasItem]'s transform has changed. This notification is only received "
+"if enabled by [method set_notify_transform] or [method "
+"set_notify_local_transform]."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "The [CanvasItem] is requested to draw."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "The [CanvasItem]'s visibility has changed."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "The [CanvasItem] has entered the canvas."
+msgstr ""
+
+#: doc/classes/CanvasItem.xml
+msgid "The [CanvasItem] has exited the canvas."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid "A material for [CanvasItem]s."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid ""
+"[CanvasItemMaterial]s provide a means of modifying the textures associated "
+"with a CanvasItem. They specialize in describing blend and lighting "
+"behaviors for textures. Use a [ShaderMaterial] to more fully customize a "
+"material's interactions with a [CanvasItem]."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid ""
+"The manner in which a material's rendering is applied to underlying textures."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid "The manner in which material reacts to lighting."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid ""
+"The number of columns in the spritesheet assigned as [Texture] for a "
+"[Particles2D] or [CPUParticles2D].\n"
+"[b]Note:[/b] This property is only used and visible in the editor if [member "
+"particles_animation] is [code]true[/code]."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid ""
+"If [code]true[/code], the particles animation will loop.\n"
+"[b]Note:[/b] This property is only used and visible in the editor if [member "
+"particles_animation] is [code]true[/code]."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid ""
+"The number of rows in the spritesheet assigned as [Texture] for a "
+"[Particles2D] or [CPUParticles2D].\n"
+"[b]Note:[/b] This property is only used and visible in the editor if [member "
+"particles_animation] is [code]true[/code]."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid ""
+"If [code]true[/code], enable spritesheet-based animation features when "
+"assigned to [Particles2D] and [CPUParticles2D] nodes. The [member "
+"ParticlesMaterial.anim_speed] or [member CPUParticles2D.anim_speed] should "
+"also be set to a positive value for the animation to play.\n"
+"This property (and other [code]particles_anim_*[/code] properties that "
+"depend on it) has no effect on other types of nodes."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid ""
+"Render the material using both light and non-light sensitive material "
+"properties."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid "Render the material as if there were no light."
+msgstr ""
+
+#: doc/classes/CanvasItemMaterial.xml
+msgid "Render the material as if there were only light."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid "Canvas drawing layer."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid ""
+"Canvas drawing layer. [CanvasItem] nodes that are direct or indirect "
+"children of a [CanvasLayer] will be drawn in that layer. The layer is a "
+"numeric index that defines the draw order. The default 2D scene renders with "
+"index 0, so a [CanvasLayer] with index -1 will be drawn below, and one with "
+"index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or "
+"above), or backgrounds (in layer -1 or below)."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid "$DOCS_URL/tutorials/2d/canvas_layers.html"
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid "Returns the RID of the canvas used by this layer."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid ""
+"The custom [Viewport] node assigned to the [CanvasLayer]. If [code]null[/"
+"code], uses the default viewport instead."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid ""
+"Sets the layer to follow the viewport in order to simulate a pseudo 3D "
+"effect."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid ""
+"Scales the layer when using [member follow_viewport_enable]. Layers moving "
+"into the foreground should have increasing scales, while layers moving into "
+"the background should have decreasing scales."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid "Layer index for draw order. Lower values are drawn first."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid "The layer's base offset."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid "The layer's rotation in radians."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid "The layer's rotation in degrees."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid "The layer's scale."
+msgstr ""
+
+#: doc/classes/CanvasLayer.xml
+msgid "The layer's transform."
+msgstr ""
+
+#: doc/classes/CanvasModulate.xml
+msgid "Tint the entire canvas."
+msgstr ""
+
+#: doc/classes/CanvasModulate.xml
+msgid ""
+"[CanvasModulate] tints the canvas elements using its assigned [member color]."
+msgstr ""
+
+#: doc/classes/CanvasModulate.xml
+msgid "The tint color to apply."
+msgstr ""
+
+#: doc/classes/CapsuleMesh.xml
+msgid "Class representing a capsule-shaped [PrimitiveMesh]."
+msgstr ""
+
+#: doc/classes/CapsuleMesh.xml
+msgid ""
+"Height of the middle cylindrical part of the capsule (without the "
+"hemispherical ends).\n"
+"[b]Note:[/b] The capsule's total height is equal to [member mid_height] + 2 "
+"* [member radius]."
+msgstr ""
+
+#: doc/classes/CapsuleMesh.xml
+msgid "Number of radial segments on the capsule mesh."
+msgstr ""
+
+#: doc/classes/CapsuleMesh.xml
+msgid "Radius of the capsule mesh."
+msgstr ""
+
+#: doc/classes/CapsuleMesh.xml
+msgid "Number of rings along the height of the capsule."
+msgstr ""
+
+#: doc/classes/CapsuleShape.xml
+msgid "Capsule shape for collisions."
+msgstr ""
+
+#: doc/classes/CapsuleShape.xml doc/classes/CapsuleShape2D.xml
+msgid "The capsule's height."
+msgstr ""
+
+#: doc/classes/CapsuleShape.xml doc/classes/CapsuleShape2D.xml
+msgid "The capsule's radius."
+msgstr ""
+
+#: doc/classes/CapsuleShape2D.xml
+msgid "Capsule shape for 2D collisions."
+msgstr ""
+
+#: doc/classes/CenterContainer.xml
+msgid "Keeps children controls centered."
+msgstr ""
+
+#: doc/classes/CenterContainer.xml
+msgid ""
+"CenterContainer keeps children controls centered. This container keeps all "
+"children to their minimum size, in the center."
+msgstr ""
+
+#: doc/classes/CenterContainer.xml
+msgid ""
+"If [code]true[/code], centers children relative to the [CenterContainer]'s "
+"top left corner."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
+"Controls how an individual character will be displayed in a [RichTextEffect]."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
+"By setting various properties on this object, you can control how individual "
+"characters will be displayed in a [RichTextEffect]."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml doc/classes/RichTextEffect.xml
+#: doc/classes/RichTextLabel.xml
+msgid "$DOCS_URL/tutorials/ui/bbcode_in_richtextlabel.html"
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml doc/classes/RichTextEffect.xml
+msgid ""
+"https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project"
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
+"The Unicode codepoint the character will use. This only affects non-"
+"whitespace characters. [method @GDScript.ord] can be useful here. For "
+"example, the following will replace all characters with asterisks:\n"
+"[codeblock]\n"
+"# `char_fx` is the CharFXTransform parameter from `_process_custom_fx()`.\n"
+"# See the RichTextEffect documentation for details.\n"
+"char_fx.character = ord(\"*\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid "The color the character will be drawn with."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
+"The time elapsed since the [RichTextLabel] was added to the scene tree (in "
+"seconds). Time stops when the [RichTextLabel] is paused (see [member Node."
+"pause_mode]). Resets when the text in the [RichTextLabel] is changed.\n"
+"[b]Note:[/b] Time still passes while the [RichTextLabel] is hidden."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
+"Contains the arguments passed in the opening BBCode tag. By default, "
+"arguments are strings; if their contents match a type such as [bool], [int] "
+"or [float], they will be converted automatically. Color codes in the form "
+"[code]#rrggbb[/code] or [code]#rgb[/code] will be converted to an opaque "
+"[Color]. String arguments may not contain spaces, even if they're quoted. If "
+"present, quotes will also be present in the final string.\n"
+"For example, the opening BBCode tag [code][example foo=hello bar=true baz=42 "
+"color=#ffffff][/code] will map to the following [Dictionary]:\n"
+"[codeblock]\n"
+"{\"foo\": \"hello\", \"bar\": true, \"baz\": 42, \"color\": Color(1, 1, 1, "
+"1)}\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid "The position offset the character will be drawn with (in pixels)."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
+"If [code]true[/code], the character will be drawn. If [code]false[/code], "
+"the character will be hidden. Characters around hidden characters will "
+"reflow to take the space of hidden characters. If this is not desired, set "
+"their [member color] to [code]Color(1, 1, 1, 0)[/code] instead."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "Binary choice user interface widget. See also [CheckButton]."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid ""
+"A checkbox allows the user to make a binary choice (choosing only one of two "
+"possible options). It's similar to [CheckButton] in functionality, but it "
+"has a different appearance. To follow established UX patterns, it's "
+"recommended to use CheckBox when toggling it has [b]no[/b] immediate effect "
+"on something. For instance, it should be used when toggling it will only do "
+"something once a confirmation button is pressed.\n"
+"See also [BaseButton] which contains common properties and methods "
+"associated with this node."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The [CheckBox] text's font color."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The [CheckBox] text's font color when it's disabled."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid ""
+"The [CheckBox] text's font color when it's focused. Only replaces the normal "
+"text color of the checkbox. Disabled, hovered, and pressed states take "
+"precedence over this color."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The [CheckBox] text's font color when it's hovered."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The [CheckBox] text's font color when it's hovered and pressed."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The [CheckBox] text's font color when it's pressed."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The vertical offset used when rendering the check icons (in pixels)."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The separation between the check icon and the text (in pixels)."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The [Font] to use for the [CheckBox] text."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The check icon to display when the [CheckBox] is checked."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The check icon to display when the [CheckBox] is checked and disabled."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid ""
+"If the [CheckBox] is configured as a radio button, the icon to display when "
+"the [CheckBox] is checked."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid ""
+"If the [CheckBox] is configured as a radio button, the icon to display when "
+"the [CheckBox] is unchecked."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid "The check icon to display when the [CheckBox] is unchecked."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid ""
+"The check icon to display when the [CheckBox] is unchecked and disabled."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid ""
+"The [StyleBox] to display as a background when the [CheckBox] is disabled."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid ""
+"The [StyleBox] to display as a background when the [CheckBox] is focused."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid ""
+"The [StyleBox] to display as a background when the [CheckBox] is hovered."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid ""
+"The [StyleBox] to display as a background when the [CheckBox] is hovered and "
+"pressed."
+msgstr ""
+
+#: doc/classes/CheckBox.xml doc/classes/CheckButton.xml
+msgid "The [StyleBox] to display as a background."
+msgstr ""
+
+#: doc/classes/CheckBox.xml
+msgid ""
+"The [StyleBox] to display as a background when the [CheckBox] is pressed."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "Checkable button. See also [CheckBox]."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid ""
+"CheckButton is a toggle button displayed as a check field. It's similar to "
+"[CheckBox] in functionality, but it has a different appearance. To follow "
+"established UX patterns, it's recommended to use CheckButton when toggling "
+"it has an [b]immediate[/b] effect on something. For instance, it should be "
+"used if toggling it enables/disables a setting without requiring the user to "
+"press a confirmation button.\n"
+"See also [BaseButton] which contains common properties and methods "
+"associated with this node."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The [CheckButton] text's font color."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The [CheckButton] text's font color when it's disabled."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid ""
+"The [CheckButton] text's font color when it's focused. Only replaces the "
+"normal text color of the button. Disabled, hovered, and pressed states take "
+"precedence over this color."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The [CheckButton] text's font color when it's hovered."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The [CheckButton] text's font color when it's hovered and pressed."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The [CheckButton] text's font color when it's pressed."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The vertical offset used when rendering the toggle icons (in pixels)."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The separation between the toggle icon and the text (in pixels)."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The [Font] to use for the [CheckButton] text."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The icon to display when the [CheckButton] is unchecked."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The icon to display when the [CheckButton] is unchecked and disabled."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The icon to display when the [CheckButton] is checked."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid "The icon to display when the [CheckButton] is checked and disabled."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid ""
+"The [StyleBox] to display as a background when the [CheckButton] is disabled."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid ""
+"The [StyleBox] to display as a background when the [CheckButton] is focused."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid ""
+"The [StyleBox] to display as a background when the [CheckButton] is hovered."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid ""
+"The [StyleBox] to display as a background when the [CheckButton] is hovered "
+"and pressed."
+msgstr ""
+
+#: doc/classes/CheckButton.xml
+msgid ""
+"The [StyleBox] to display as a background when the [CheckButton] is pressed."
+msgstr ""
+
+#: doc/classes/CircleShape2D.xml
+msgid "Circular shape for 2D collisions."
+msgstr ""
+
+#: doc/classes/CircleShape2D.xml
+msgid ""
+"Circular shape for 2D collisions. This shape is useful for modeling balls or "
+"small characters and its collision detection with everything else is very "
+"fast."
+msgstr ""
+
+#: doc/classes/CircleShape2D.xml
+msgid "The circle's radius."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid "Class information repository."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid "Provides access to metadata stored for every available class."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns [code]true[/code] if you can instance objects from the specified "
+"[code]class[/code], [code]false[/code] in other case."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid "Returns whether the specified [code]class[/code] is available or not."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns a category associated with the class for use in documentation and "
+"the Asset Library. Debug mode required."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns an array with all the keys in [code]enum[/code] of [code]class[/"
+"code] or its ancestry."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns an array with all the enums of [code]class[/code] or its ancestry."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns the value of the integer constant [code]name[/code] of [code]class[/"
+"code] or its ancestry. Always returns 0 when the constant could not be found."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns which enum the integer constant [code]name[/code] of [code]class[/"
+"code] or its ancestry belongs to."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns an array with the names all the integer constants of [code]class[/"
+"code] or its ancestry."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns an array with all the methods of [code]class[/code] or its ancestry "
+"if [code]no_inheritance[/code] is [code]false[/code]. Every element of the "
+"array is a [Dictionary] with the following keys: [code]args[/code], "
+"[code]default_args[/code], [code]flags[/code], [code]id[/code], [code]name[/"
+"code], [code]return: (class_name, hint, hint_string, name, type, usage)[/"
+"code].\n"
+"[b]Note:[/b] In exported release builds the debug info is not available, so "
+"the returned dictionaries will contain only method names."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns the value of [code]property[/code] of [code]class[/code] or its "
+"ancestry."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns an array with all the properties of [code]class[/code] or its "
+"ancestry if [code]no_inheritance[/code] is [code]false[/code]."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns the [code]signal[/code] data of [code]class[/code] or its ancestry. "
+"The returned value is a [Dictionary] with the following keys: [code]args[/"
+"code], [code]default_args[/code], [code]flags[/code], [code]id[/code], "
+"[code]name[/code], [code]return: (class_name, hint, hint_string, name, type, "
+"usage)[/code]."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns an array with all the signals of [code]class[/code] or its ancestry "
+"if [code]no_inheritance[/code] is [code]false[/code]. Every element of the "
+"array is a [Dictionary] as described in [method class_get_signal]."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns whether [code]class[/code] or its ancestry has an enum called "
+"[code]name[/code] or not."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns whether [code]class[/code] or its ancestry has an integer constant "
+"called [code]name[/code] or not."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns whether [code]class[/code] (or its ancestry if [code]no_inheritance[/"
+"code] is [code]false[/code]) has a method called [code]method[/code] or not."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns whether [code]class[/code] or its ancestry has a signal called "
+"[code]signal[/code] or not."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Sets [code]property[/code] value of [code]class[/code] to [code]value[/code]."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid "Returns the names of all the classes available."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns the names of all the classes that directly or indirectly inherit "
+"from [code]class[/code]."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid "Returns the parent class of [code]class[/code]."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid "Creates an instance of [code]class[/code]."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid "Returns whether this [code]class[/code] is enabled or not."
+msgstr ""
+
+#: doc/classes/ClassDB.xml
+msgid ""
+"Returns whether [code]inherits[/code] is an ancestor of [code]class[/code] "
+"or not."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid "A [Camera] that includes collision."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid ""
+"This node extends [Camera] to add collisions with [Area] and/or "
+"[PhysicsBody] nodes. The camera cannot move through colliding objects."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid ""
+"Adds a collision exception so the camera does not collide with the specified "
+"node."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid ""
+"Adds a collision exception so the camera does not collide with the specified "
+"[RID]."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid "Removes all collision exceptions."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid "Returns the distance the camera has been offset due to a collision."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid ""
+"Returns [code]true[/code] if the specified bit index is on.\n"
+"[b]Note:[/b] Bit indices range from 0-19."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid "Removes a collision exception with the specified node."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid "Removes a collision exception with the specified [RID]."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid ""
+"Sets the specified bit index to the [code]value[/code].\n"
+"[b]Note:[/b] Bit indices range from 0-19."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid "If [code]true[/code], the camera stops on contact with [Area]s."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid "If [code]true[/code], the camera stops on contact with [PhysicsBody]s."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid ""
+"The camera's collision mask. Only objects in at least one collision layer "
+"matching the mask will be detected. See [url=$DOCS_URL/tutorials/physics/"
+"physics_introduction.html#collision-layers-and-masks]Collision layers and "
+"masks[/url] in the documentation for more information."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid ""
+"The camera's collision margin. The camera can't get closer than this "
+"distance to a colliding object."
+msgstr ""
+
+#: doc/classes/ClippedCamera.xml
+msgid "The camera's process callback. See [enum ProcessMode]."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid "Base node for collision objects."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid ""
+"CollisionObject is the base class for physics objects. It can hold any "
+"number of collision [Shape]s. Each shape must be assigned to a [i]shape "
+"owner[/i]. The CollisionObject can have any number of shape owners. Shape "
+"owners are not nodes and do not appear in the editor, but are accessible "
+"through code using the [code]shape_owner_*[/code] methods."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid ""
+"Receives unhandled [InputEvent]s. [code]position[/code] is the location in "
+"world space of the mouse pointer on the surface of the shape with index "
+"[code]shape_idx[/code] and [code]normal[/code] is the normal vector of the "
+"surface at that point. Connect to the [signal input_event] signal to easily "
+"pick up these events."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid ""
+"Creates a new shape owner for the given object. Returns [code]owner_id[/"
+"code] of the new owner for future reference."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid ""
+"Returns whether or not the specified [code]bit[/code] of the [member "
+"collision_layer] is set."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid ""
+"Returns whether or not the specified [code]bit[/code] of the [member "
+"collision_mask] is set."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid "Returns the object's [RID]."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid ""
+"Returns an [Array] of [code]owner_id[/code] identifiers. You can use these "
+"ids in other methods that take [code]owner_id[/code] as an argument."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid "If [code]true[/code], the shape owner and its shapes are disabled."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid "Removes the given shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid ""
+"If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/"
+"code] in the the [member collision_layer].\n"
+"If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/"
+"code] in the the [member collision_layer]."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid ""
+"If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/"
+"code] in the the [member collision_mask].\n"
+"If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/"
+"code] in the the [member collision_mask]."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid "Returns the [code]owner_id[/code] of the given shape."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid "Adds a [Shape] to the shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid "Removes all shapes from the shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid "Returns the parent object of the given shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid "Returns the [Shape] with the given id from the given shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid "Returns the number of shapes the given shape owner contains."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid ""
+"Returns the child index of the [Shape] with the given id from the given "
+"shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid "Returns the shape owner's [Transform]."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid "Removes a shape from the given shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+msgid "If [code]true[/code], disables the given shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid "Sets the [Transform] of the given shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid ""
+"The physics layers this CollisionObject3D is in. Collision objects can exist "
+"in one or more of 32 different layers. See also [member collision_mask].\n"
+"[b]Note:[/b] A contact is detected if object A is in any of the layers that "
+"object B scans, or object B is in any layers that object A scans. See [url="
+"$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid ""
+"The physics layers this CollisionObject3D scans. Collision objects can scan "
+"one or more of 32 different layers. See also [member collision_layer].\n"
+"[b]Note:[/b] A contact is detected if object A is in any of the layers that "
+"object B scans, or object B is in any layers that object A scans. See [url="
+"$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid ""
+"If [code]true[/code], the [CollisionObject] will continue to receive input "
+"events as the mouse is dragged across its shapes."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid ""
+"If [code]true[/code], the [CollisionObject]'s shapes will respond to "
+"[RayCast]s."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid ""
+"Emitted when the object receives an unhandled [InputEvent]. [code]position[/"
+"code] is the location in world space of the mouse pointer on the surface of "
+"the shape with index [code]shape_idx[/code] and [code]normal[/code] is the "
+"normal vector of the surface at that point."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid "Emitted when the mouse pointer enters any of this object's shapes."
+msgstr ""
+
+#: doc/classes/CollisionObject.xml
+msgid "Emitted when the mouse pointer exits all this object's shapes."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid "Base node for 2D collision objects."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"CollisionObject2D is the base class for 2D physics objects. It can hold any "
+"number of 2D collision [Shape2D]s. Each shape must be assigned to a [i]shape "
+"owner[/i]. The CollisionObject2D can have any number of shape owners. Shape "
+"owners are not nodes and do not appear in the editor, but are accessible "
+"through code using the [code]shape_owner_*[/code] methods."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"Accepts unhandled [InputEvent]s. Requires [member input_pickable] to be "
+"[code]true[/code]. [code]shape_idx[/code] is the child index of the clicked "
+"[Shape2D]. Connect to the [code]input_event[/code] signal to easily pick up "
+"these events."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"Returns the [code]one_way_collision_margin[/code] of the shape owner "
+"identified by given [code]owner_id[/code]."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"Returns [code]true[/code] if collisions for the shape owner originating from "
+"this [CollisionObject2D] will not be reported to collided with "
+"[CollisionObject2D]s."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid "Adds a [Shape2D] to the shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid "Returns the [Shape2D] with the given id from the given shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"Returns the child index of the [Shape2D] with the given id from the given "
+"shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid "Returns the shape owner's [Transform2D]."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"If [code]enable[/code] is [code]true[/code], collisions for the shape owner "
+"originating from this [CollisionObject2D] will not be reported to collided "
+"with [CollisionObject2D]s."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"Sets the [code]one_way_collision_margin[/code] of the shape owner identified "
+"by given [code]owner_id[/code] to [code]margin[/code] pixels."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid "Sets the [Transform2D] of the given shape owner."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"The physics layers this CollisionObject2D is in. Collision objects can exist "
+"in one or more of 32 different layers. See also [member collision_mask].\n"
+"[b]Note:[/b] A contact is detected if object A is in any of the layers that "
+"object B scans, or object B is in any layers that object A scans. See [url="
+"$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"The physics layers this CollisionObject2D scans. Collision objects can scan "
+"one or more of 32 different layers. See also [member collision_layer].\n"
+"[b]Note:[/b] A contact is detected if object A is in any of the layers that "
+"object B scans, or object B is in any layers that object A scans. See [url="
+"$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"If [code]true[/code], this object is pickable. A pickable object can detect "
+"the mouse pointer entering/leaving, and if the mouse is inside it, report "
+"input events. Requires at least one [code]collision_layer[/code] bit to be "
+"set."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"Emitted when an input event occurs. Requires [member input_pickable] to be "
+"[code]true[/code] and at least one [code]collision_layer[/code] bit to be "
+"set. See [method _input_event] for details."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"Emitted when the mouse pointer enters any of this object's shapes. Requires "
+"[member input_pickable] to be [code]true[/code] and at least one "
+"[code]collision_layer[/code] bit to be set."
+msgstr ""
+
+#: doc/classes/CollisionObject2D.xml
+msgid ""
+"Emitted when the mouse pointer exits all this object's shapes. Requires "
+"[member input_pickable] to be [code]true[/code] and at least one "
+"[code]collision_layer[/code] bit to be set."
+msgstr ""
+
+#: doc/classes/CollisionPolygon.xml
+msgid "Editor-only class for defining a collision polygon in 3D space."
+msgstr ""
+
+#: doc/classes/CollisionPolygon.xml
+msgid ""
+"Allows editing a collision polygon's vertices on a selected plane. Can also "
+"set a depth perpendicular to that plane. This class is only available in the "
+"editor. It will not appear in the scene tree at run-time. Creates a [Shape] "
+"for gameplay. Properties modified during gameplay will have no effect."
+msgstr ""
+
+#: doc/classes/CollisionPolygon.xml
+msgid ""
+"Length that the resulting collision extends in either direction "
+"perpendicular to its polygon."
+msgstr ""
+
+#: doc/classes/CollisionPolygon.xml
+msgid "If [code]true[/code], no collision will be produced."
+msgstr ""
+
+#: doc/classes/CollisionPolygon.xml
+msgid ""
+"The collision margin for the generated [Shape]. See [member Shape.margin] "
+"for more details."
+msgstr ""
+
+#: doc/classes/CollisionPolygon.xml
+msgid ""
+"Array of vertices which define the polygon.\n"
+"[b]Note:[/b] The returned value is a copy of the original. Methods which "
+"mutate the size or properties of the return value will not impact the "
+"original polygon. To change properties of the polygon, assign it to a "
+"temporary variable and make changes before reassigning the [code]polygon[/"
+"code] member."
+msgstr ""
+
+#: doc/classes/CollisionPolygon2D.xml
+msgid "Defines a 2D collision polygon."
+msgstr ""
+
+#: doc/classes/CollisionPolygon2D.xml
+msgid ""
+"Provides a 2D collision polygon to a [CollisionObject2D] parent. Polygons "
+"can be drawn in the editor or specified by a list of vertices."
+msgstr ""
+
+#: doc/classes/CollisionPolygon2D.xml
+msgid "Collision build mode. Use one of the [enum BuildMode] constants."
+msgstr ""
+
+#: doc/classes/CollisionPolygon2D.xml
+msgid "If [code]true[/code], no collisions will be detected."
+msgstr ""
+
+#: doc/classes/CollisionPolygon2D.xml
+msgid ""
+"If [code]true[/code], only edges that face up, relative to "
+"[CollisionPolygon2D]'s rotation, will collide with other objects."
+msgstr ""
+
+#: doc/classes/CollisionPolygon2D.xml
+msgid ""
+"The margin used for one-way collision (in pixels). Higher values will make "
+"the shape thicker, and work better for colliders that enter the polygon at a "
+"high velocity."
+msgstr ""
+
+#: doc/classes/CollisionPolygon2D.xml
+msgid ""
+"The polygon's list of vertices. The final point will be connected to the "
+"first. The returned value is a clone of the [PoolVector2Array], not a "
+"reference."
+msgstr ""
+
+#: doc/classes/CollisionPolygon2D.xml
+msgid "Collisions will include the polygon and its contained area."
+msgstr ""
+
+#: doc/classes/CollisionPolygon2D.xml
+msgid "Collisions will only include the polygon edges."
+msgstr ""
+
+#: doc/classes/CollisionShape.xml
+msgid "Node that represents collision shape data in 3D space."
+msgstr ""
+
+#: doc/classes/CollisionShape.xml
+msgid ""
+"Editor facility for creating and editing collision shapes in 3D space. You "
+"can use this node to represent all sorts of collision shapes, for example, "
+"add this to an [Area] to give it a detection shape, or add it to a "
+"[PhysicsBody] to create a solid object. [b]IMPORTANT[/b]: this is an Editor-"
+"only helper to create shapes, use [method CollisionObject."
+"shape_owner_get_shape] to get the actual shape."
+msgstr ""
+
+#: doc/classes/CollisionShape.xml doc/classes/CollisionShape2D.xml
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/Physics2DDirectSpaceState.xml doc/classes/PhysicsBody.xml
+#: doc/classes/PhysicsBody2D.xml doc/classes/PhysicsDirectBodyState.xml
+#: doc/classes/PhysicsDirectSpaceState.xml doc/classes/RigidBody.xml
+#: doc/classes/Shape.xml doc/classes/Shape2D.xml
+msgid "$DOCS_URL/tutorials/physics/physics_introduction.html"
+msgstr ""
+
+#: doc/classes/CollisionShape.xml
+msgid ""
+"Sets the collision shape's shape to the addition of all its convexed "
+"[MeshInstance] siblings geometry."
+msgstr ""
+
+#: doc/classes/CollisionShape.xml
+msgid ""
+"If this method exists within a script it will be called whenever the shape "
+"resource has been modified."
+msgstr ""
+
+#: doc/classes/CollisionShape.xml
+msgid "A disabled collision shape has no effect in the world."
+msgstr ""
+
+#: doc/classes/CollisionShape.xml doc/classes/CollisionShape2D.xml
+msgid "The actual shape owned by this collision shape."
+msgstr ""
+
+#: doc/classes/CollisionShape2D.xml
+msgid "Node that represents collision shape data in 2D space."
+msgstr ""
+
+#: doc/classes/CollisionShape2D.xml
+msgid ""
+"Editor facility for creating and editing collision shapes in 2D space. You "
+"can use this node to represent all sorts of collision shapes, for example, "
+"add this to an [Area2D] to give it a detection shape, or add it to a "
+"[PhysicsBody2D] to create a solid object. [b]IMPORTANT[/b]: this is an "
+"Editor-only helper to create shapes, use [method CollisionObject2D."
+"shape_owner_get_shape] to get the actual shape."
+msgstr ""
+
+#: doc/classes/CollisionShape2D.xml doc/classes/KinematicBody2D.xml
+#: doc/classes/RectangleShape2D.xml doc/classes/TileMap.xml
+#: doc/classes/TileSet.xml
+msgid "https://godotengine.org/asset-library/asset/113"
+msgstr ""
+
+#: doc/classes/CollisionShape2D.xml
+msgid ""
+"A disabled collision shape has no effect in the world. This property should "
+"be changed with [method Object.set_deferred]."
+msgstr ""
+
+#: doc/classes/CollisionShape2D.xml
+msgid ""
+"Sets whether this collision shape should only detect collision on one side "
+"(top or bottom)."
+msgstr ""
+
+#: doc/classes/CollisionShape2D.xml
+msgid ""
+"The margin used for one-way collision (in pixels). Higher values will make "
+"the shape thicker, and work better for colliders that enter the shape at a "
+"high velocity."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Color in RGBA format using floats on the range of 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"A color represented by red, green, blue, and alpha (RGBA) components. The "
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
+"You can also create a color from standardized color names by using [method "
+"@GDScript.ColorN] or directly using the color constants defined here. The "
+"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
+"X11_color_names]X11 color names[/url].\n"
+"If you want to supply values in a range of 0 to 255, you should use [method "
+"@GDScript.Color8].\n"
+"[b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/"
+"code] if it's equal to [code]Color(0, 0, 0, 1)[/code] (opaque black). "
+"Otherwise, a Color will always evaluate to [code]true[/code].\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"color_constants.png]Color constants cheatsheet[/url]"
+msgstr ""
+
+#: doc/classes/Color.xml doc/classes/ColorPickerButton.xml
+msgid "https://godotengine.org/asset-library/asset/517"
+msgstr ""
+
+#: doc/classes/Color.xml doc/classes/ColorPicker.xml
+msgid "https://godotengine.org/asset-library/asset/146"
+msgstr ""
+
+#: doc/classes/Color.xml doc/classes/ColorPickerButton.xml
+msgid "https://godotengine.org/asset-library/asset/133"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Constructs a color from an HTML hexadecimal color string in ARGB or RGB "
+"format. See also [method @GDScript.ColorN].\n"
+"[codeblock]\n"
+"# Each of the following creates the same color RGBA(178, 217, 10, 255).\n"
+"var c1 = Color(\"#ffb2d90a\") # ARGB format with \"#\".\n"
+"var c2 = Color(\"ffb2d90a\") # ARGB format.\n"
+"var c3 = Color(\"#b2d90a\") # RGB format with \"#\".\n"
+"var c4 = Color(\"b2d90a\") # RGB format.\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Constructs a color from a 32-bit integer in RGBA format (each byte "
+"represents a color channel).\n"
+"[codeblock]\n"
+"var c = Color(274) # Similar to Color(0.0, 0.0, 0.004, 0.07)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Constructs a color from RGB values, typically between 0 and 1. Alpha will be "
+"1.\n"
+"[codeblock]\n"
+"var color = Color(0.2, 1.0, 0.7) # Similar to Color8(51, 255, 178, 255)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Constructs a color from RGBA values, typically between 0 and 1.\n"
+"[codeblock]\n"
+"var color = Color(0.2, 1.0, 0.7, 0.8) # Similar to Color8(51, 255, 178, "
+"204)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns a new color resulting from blending this color over another. If the "
+"color is opaque, the result is also opaque. The second color may have a "
+"range of alpha values.\n"
+"[codeblock]\n"
+"var bg = Color(0.0, 1.0, 0.0, 0.5) # Green with alpha of 50%\n"
+"var fg = Color(1.0, 0.0, 0.0, 0.5) # Red with alpha of 50%\n"
+"var blended_color = bg.blend(fg) # Brown with alpha of 75%\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the most contrasting color.\n"
+"[codeblock]\n"
+"var c = Color(0.3, 0.4, 0.9)\n"
+"var contrasted_color = c.contrasted() # Equivalent to RGBA(204, 229, 102, "
+"255)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns a new color resulting from making this color darker by the specified "
+"percentage (ratio from 0 to 1).\n"
+"[codeblock]\n"
+"var green = Color(0.0, 1.0, 0.0)\n"
+"var darkgreen = green.darkened(0.2) # 20% darker than regular green\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Constructs a color from an HSV profile. [code]h[/code], [code]s[/code], and "
+"[code]v[/code] are values between 0 and 1.\n"
+"[codeblock]\n"
+"var c = Color.from_hsv(0.58, 0.5, 0.79, 0.8) # Equivalent to HSV(210, 50, "
+"79, 0.8) or Color8(100, 151, 201, 0.8)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the luminance of the color in the [code][0.0, 1.0][/code] range.\n"
+"This is useful when determining light or dark color. Colors with a luminance "
+"smaller than 0.5 can be generally considered dark."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the color's grayscale representation.\n"
+"The gray value is calculated as [code](r + g + b) / 3[/code].\n"
+"[codeblock]\n"
+"var c = Color(0.2, 0.45, 0.82)\n"
+"var gray = c.gray() # A value of 0.466667\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the inverted color [code](1 - r, 1 - g, 1 - b, a)[/code].\n"
+"[codeblock]\n"
+"var color = Color(0.3, 0.4, 0.9)\n"
+"var inverted_color = color.inverted() # Equivalent to Color(0.7, 0.6, 0.1)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns [code]true[/code] if this color and [code]color[/code] are "
+"approximately equal, by running [method @GDScript.is_equal_approx] on each "
+"component."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns a new color resulting from making this color lighter by the "
+"specified percentage (ratio from 0 to 1).\n"
+"[codeblock]\n"
+"var green = Color(0.0, 1.0, 0.0)\n"
+"var lightgreen = green.lightened(0.2) # 20% lighter than regular green\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the linear interpolation with another color. The interpolation "
+"factor [code]weight[/code] is between 0 and 1.\n"
+"[codeblock]\n"
+"var c1 = Color(1.0, 0.0, 0.0)\n"
+"var c2 = Color(0.0, 1.0, 0.0)\n"
+"var li_c = c1.linear_interpolate(c2, 0.5) # Equivalent to Color(0.5, 0.5, "
+"0.0)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the color converted to a 32-bit integer in ABGR format (each byte "
+"represents a color channel). ABGR is the reversed version of the default "
+"format.\n"
+"[codeblock]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_abgr32()) # Prints 4281565439\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the color converted to a 64-bit integer in ABGR format (each word "
+"represents a color channel). ABGR is the reversed version of the default "
+"format.\n"
+"[codeblock]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_abgr64()) # Prints -225178692812801\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the color converted to a 32-bit integer in ARGB format (each byte "
+"represents a color channel). ARGB is more compatible with DirectX.\n"
+"[codeblock]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_argb32()) # Prints 4294934323\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the color converted to a 64-bit integer in ARGB format (each word "
+"represents a color channel). ARGB is more compatible with DirectX.\n"
+"[codeblock]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_argb64()) # Prints -2147470541\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the color's HTML hexadecimal color string in ARGB format (ex: "
+"[code]ff34f822[/code]).\n"
+"Setting [code]with_alpha[/code] to [code]false[/code] excludes alpha from "
+"the hexadecimal string.\n"
+"[codeblock]\n"
+"var c = Color(1, 1, 1, 0.5)\n"
+"var s1 = c.to_html() # Returns \"7fffffff\"\n"
+"var s2 = c.to_html(false) # Returns \"ffffff\"\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the color converted to a 32-bit integer in RGBA format (each byte "
+"represents a color channel). RGBA is Godot's default format.\n"
+"[codeblock]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_rgba32()) # Prints 4286526463\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"Returns the color converted to a 64-bit integer in RGBA format (each word "
+"represents a color channel). RGBA is Godot's default format.\n"
+"[codeblock]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_rgba64()) # Prints -140736629309441\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid ""
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Wrapper for [member a] that uses the range 0 to 255 instead of 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "The color's blue component, typically on the range of 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Wrapper for [member b] that uses the range 0 to 255 instead of 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "The color's green component, typically on the range of 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Wrapper for [member g] that uses the range 0 to 255 instead of 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "The HSV hue of this color, on the range 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "The color's red component, typically on the range of 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Wrapper for [member r] that uses the range 0 to 255 instead of 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "The HSV saturation of this color, on the range 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "The HSV value (brightness) of this color, on the range 0 to 1."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Alice blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Antique white color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Aqua color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Aquamarine color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Azure color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Beige color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Bisque color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Black color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Blanche almond color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Blue violet color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Brown color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Burly wood color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Cadet blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Chartreuse color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Chocolate color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Coral color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Cornflower color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Corn silk color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Crimson color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Cyan color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark cyan color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark goldenrod color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark gray color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark khaki color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark magenta color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark olive green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark orange color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark orchid color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark red color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark salmon color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark sea green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark slate blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark slate gray color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark turquoise color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dark violet color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Deep pink color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Deep sky blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dim gray color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Dodger blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Firebrick color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Floral white color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Forest green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Fuchsia color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Gainsboro color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Ghost white color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Gold color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Goldenrod color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Gray color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Green yellow color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Honeydew color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Hot pink color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Indian red color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Indigo color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Ivory color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Khaki color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Lavender color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Lavender blush color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Lawn green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Lemon chiffon color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light coral color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light cyan color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light goldenrod color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light gray color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light pink color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light salmon color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light sea green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light sky blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light slate gray color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light steel blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Light yellow color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Lime color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Lime green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Linen color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Magenta color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Maroon color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Medium aquamarine color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Medium blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Medium orchid color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Medium purple color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Medium sea green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Medium slate blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Medium spring green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Medium turquoise color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Medium violet red color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Midnight blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Mint cream color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Misty rose color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Moccasin color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Navajo white color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Navy blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Old lace color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Olive color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Olive drab color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Orange color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Orange red color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Orchid color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Pale goldenrod color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Pale green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Pale turquoise color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Pale violet red color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Papaya whip color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Peach puff color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Peru color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Pink color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Plum color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Powder blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Purple color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Rebecca purple color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Red color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Rosy brown color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Royal blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Saddle brown color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Salmon color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Sandy brown color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Sea green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Seashell color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Sienna color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Silver color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Sky blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Slate blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Slate gray color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Snow color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Spring green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Steel blue color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Tan color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Teal color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Thistle color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Tomato color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Transparent color (white with no alpha)."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Turquoise color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Violet color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Web gray color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Web green color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Web maroon color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Web purple color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Wheat color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "White color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "White smoke color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Yellow color."
+msgstr ""
+
+#: doc/classes/Color.xml
+msgid "Yellow green color."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "Color picker control."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid ""
+"Displays a color picker widget. Useful for selecting a color from an RGB/"
+"RGBA colorspace.\n"
+"[b]Note:[/b] This control is the color picker widget itself. You can use a "
+"[ColorPickerButton] instead if you need a button that brings up a "
+"[ColorPicker] in a pop-up."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid ""
+"Adds the given color to a list of color presets. The presets are displayed "
+"in the color picker and the user will be able to select them.\n"
+"[b]Note:[/b] The presets list is only for [i]this[/i] color picker."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid ""
+"Removes the given color from the list of color presets of this color picker."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "Returns the list of colors in the presets of the color picker."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml doc/classes/ColorPickerButton.xml
+msgid "The currently selected color."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid ""
+"If [code]true[/code], the color will apply only after the user releases the "
+"mouse button, otherwise it will apply immediately even in mouse motion event "
+"(which can cause performance issues)."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid ""
+"If [code]true[/code], allows editing the color with Hue/Saturation/Value "
+"sliders.\n"
+"[b]Note:[/b] Cannot be enabled if raw mode is on."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "If [code]true[/code], the \"add preset\" button is enabled."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "If [code]true[/code], saved color presets are visible."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid ""
+"If [code]true[/code], allows the color R, G, B component values to go beyond "
+"1.0, which can be used for certain special operations that require it (like "
+"tinting without darkening or rendering sprites in HDR).\n"
+"[b]Note:[/b] Cannot be enabled if HSV mode is on."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "Emitted when the color is changed."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "Emitted when a preset is added."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "Emitted when a preset is removed."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "The width of the hue selection slider."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "The margin around the [ColorPicker]."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "The height of the saturation-value selection box."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "The width of the saturation-value selection box."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "The icon for the \"Add Preset\" button."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "Custom texture for the hue selection slider on the right."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid ""
+"The indicator used to signalize that the color value is outside the 0-1 "
+"range."
+msgstr ""
+
+#: doc/classes/ColorPicker.xml
+msgid "The icon for the screen color picker button."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "Button that pops out a [ColorPicker]."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid ""
+"Encapsulates a [ColorPicker] making it accessible by pressing a button. "
+"Pressing the button will toggle the [ColorPicker] visibility.\n"
+"See also [BaseButton] which contains common properties and methods "
+"associated with this node.\n"
+"[b]Note:[/b] By default, the button may not be wide enough for the color "
+"preview swatch to be visible. Make sure to set [member Control."
+"rect_min_size] to a big enough value to give the button enough space."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid ""
+"Returns the [ColorPicker] that this node toggles.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid ""
+"Returns the control's [PopupPanel] which allows you to connect to popup "
+"signals. This allows you to handle events when the ColorPicker is shown or "
+"hidden.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid ""
+"If [code]true[/code], the alpha channel in the displayed [ColorPicker] will "
+"be visible."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "Emitted when the color changes."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid ""
+"Emitted when the [ColorPicker] is created (the button is pressed for the "
+"first time)."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "Emitted when the [ColorPicker] is closed."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "Default text [Color] of the [ColorPickerButton]."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "Text [Color] used when the [ColorPickerButton] is disabled."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid ""
+"Text [Color] used when the [ColorPickerButton] is focused. Only replaces the "
+"normal text color of the button. Disabled, hovered, and pressed states take "
+"precedence over this color."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "Text [Color] used when the [ColorPickerButton] is being hovered."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "Text [Color] used when the [ColorPickerButton] is being pressed."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "The horizontal space between [ColorPickerButton]'s icon and text."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "[Font] of the [ColorPickerButton]'s text."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "The background of the color preview rect on the button."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "[StyleBox] used when the [ColorPickerButton] is disabled."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid ""
+"[StyleBox] used when the [ColorPickerButton] is focused. It is displayed "
+"over the current [StyleBox], so using [StyleBoxEmpty] will just disable the "
+"focus visual effect."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "[StyleBox] used when the [ColorPickerButton] is being hovered."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "Default [StyleBox] for the [ColorPickerButton]."
+msgstr ""
+
+#: doc/classes/ColorPickerButton.xml
+msgid "[StyleBox] used when the [ColorPickerButton] is being pressed."
+msgstr ""
+
+#: doc/classes/ColorRect.xml
+msgid "Colored rectangle."
+msgstr ""
+
+#: doc/classes/ColorRect.xml
+msgid ""
+"Displays a rectangle filled with a solid [member color]. If you need to "
+"display the border alone, consider using [ReferenceRect] instead."
+msgstr ""
+
+#: doc/classes/ColorRect.xml
+msgid ""
+"The fill color.\n"
+"[codeblock]\n"
+"$ColorRect.color = Color(1, 0, 0, 1) # Set ColorRect's color to red.\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ConcavePolygonShape.xml
+msgid "Concave polygon shape."
+msgstr ""
+
+#: doc/classes/ConcavePolygonShape.xml
+msgid ""
+"Concave polygon shape resource, which can be set into a [PhysicsBody] or "
+"area. This shape is created by feeding a list of triangles.\n"
+"[b]Note:[/b] When used for collision, [ConcavePolygonShape] is intended to "
+"work with static [PhysicsBody] nodes like [StaticBody] and will not work "
+"with [KinematicBody] or [RigidBody] with a mode other than Static."
+msgstr ""
+
+#: doc/classes/ConcavePolygonShape.xml
+msgid "Returns the faces (an array of triangles)."
+msgstr ""
+
+#: doc/classes/ConcavePolygonShape.xml
+msgid "Sets the faces (an array of triangles)."
+msgstr ""
+
+#: doc/classes/ConcavePolygonShape2D.xml
+msgid "Concave polygon 2D shape resource for physics."
+msgstr ""
+
+#: doc/classes/ConcavePolygonShape2D.xml
+msgid ""
+"Concave polygon 2D shape resource for physics. It is made out of segments "
+"and is optimal for complex polygonal concave collisions. However, it is not "
+"advised to use for [RigidBody2D] nodes. A CollisionPolygon2D in convex "
+"decomposition mode (solids) or several convex objects are advised for that "
+"instead. Otherwise, a concave polygon 2D shape is better for static "
+"collisions.\n"
+"The main difference between a [ConvexPolygonShape2D] and a "
+"[ConcavePolygonShape2D] is that a concave polygon assumes it is concave and "
+"uses a more complex method of collision detection, and a convex one forces "
+"itself to be convex in order to speed up collision detection."
+msgstr ""
+
+#: doc/classes/ConcavePolygonShape2D.xml
+msgid ""
+"The array of points that make up the [ConcavePolygonShape2D]'s line segments."
+msgstr ""
+
+#: doc/classes/ConeTwistJoint.xml
+msgid "A twist joint between two 3D PhysicsBodies."
+msgstr ""
+
+#: doc/classes/ConeTwistJoint.xml
+msgid ""
+"The joint can rotate the bodies across an axis defined by the local x-axes "
+"of the [Joint].\n"
+"The twist axis is initiated as the X axis of the [Joint].\n"
+"Once the Bodies swing, the twist axis is calculated as the middle of the x-"
+"axes of the Joint in the local space of the two Bodies. See also "
+"[Generic6DOFJoint]."
+msgstr ""
+
+#: doc/classes/ConeTwistJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The speed with which the swing or twist will take place.\n"
+"The higher, the faster."
+msgstr ""
+
+#: doc/classes/ConeTwistJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Defines, how fast the swing- and twist-speed-difference on both sides gets "
+"synced."
+msgstr ""
+
+#: doc/classes/ConeTwistJoint.xml
+msgid ""
+"The ease with which the joint starts to twist. If it's too low, it takes "
+"more force to start twisting the joint."
+msgstr ""
+
+#: doc/classes/ConeTwistJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Swing is rotation from side to side, around the axis perpendicular to the "
+"twist axis.\n"
+"The swing span defines, how much rotation will not get corrected along the "
+"swing axis.\n"
+"Could be defined as looseness in the [ConeTwistJoint].\n"
+"If below 0.05, this behavior is locked."
+msgstr ""
+
+#: doc/classes/ConeTwistJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Twist is the rotation around the twist axis, this value defined how far the "
+"joint can twist.\n"
+"Twist is locked if below 0.05."
+msgstr ""
+
+#: doc/classes/ConeTwistJoint.xml doc/classes/Generic6DOFJoint.xml
+#: doc/classes/HingeJoint.xml doc/classes/Light.xml doc/classes/SliderJoint.xml
+msgid "Represents the size of the [enum Param] enum."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid "Helper class to handle INI-style files."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"This helper class can be used to store [Variant] values on the filesystem "
+"using INI-style formatting. The stored values are identified by a section "
+"and a key:\n"
+"[codeblock]\n"
+"[section]\n"
+"some_key=42\n"
+"string_example=\"Hello World!\"\n"
+"a_vector=Vector3( 1, 0, 2 )\n"
+"[/codeblock]\n"
+"The stored data can be saved to or parsed from a file, though ConfigFile "
+"objects can also be used directly without accessing the filesystem.\n"
+"The following example shows how to create a simple [ConfigFile] and save it "
+"on disk:\n"
+"[codeblock]\n"
+"# Create new ConfigFile object.\n"
+"var config = ConfigFile.new()\n"
+"\n"
+"# Store some values.\n"
+"config.set_value(\"Player1\", \"player_name\", \"Steve\")\n"
+"config.set_value(\"Player1\", \"best_score\", 10)\n"
+"config.set_value(\"Player2\", \"player_name\", \"V3geta\")\n"
+"config.set_value(\"Player2\", \"best_score\", 9001)\n"
+"\n"
+"# Save it to a file (overwrite if already exists).\n"
+"config.save(\"user://scores.cfg\")\n"
+"[/codeblock]\n"
+"This example shows how the above file could be loaded:\n"
+"[codeblock]\n"
+"var score_data = {}\n"
+"var config = ConfigFile.new()\n"
+"\n"
+"# Load data from a file.\n"
+"var err = config.load(\"user://scores.cfg\")\n"
+"\n"
+"# If the file didn't load, ignore it.\n"
+"if err != OK:\n"
+" return\n"
+"\n"
+"# Iterate over all sections.\n"
+"for player in config.get_sections():\n"
+" # Fetch the data for each section.\n"
+" var player_name = config.get_value(player, \"player_name\")\n"
+" var player_score = config.get_value(player, \"best_score\")\n"
+" score_data[player_name] = player_score\n"
+"[/codeblock]\n"
+"Any operation that mutates the ConfigFile such as [method set_value], "
+"[method clear], or [method erase_section], only changes what is loaded in "
+"memory. If you want to write the change to a file, you have to save the "
+"changes with [method save], [method save_encrypted], or [method "
+"save_encrypted_pass].\n"
+"Keep in mind that section and property names can't contain spaces. Anything "
+"after a space will be ignored on save and on load.\n"
+"ConfigFiles can also contain manually written comment lines starting with a "
+"semicolon ([code];[/code]). Those lines will be ignored when parsing the "
+"file. Note that comments will be lost when saving the ConfigFile. This can "
+"still be useful for dedicated server configuration files, which are "
+"typically never overwritten without explicit user action.\n"
+"[b]Note:[/b] The file extension given to a ConfigFile does not have any "
+"impact on its formatting or behavior. By convention, the [code].cfg[/code] "
+"extension is used here, but any other extension such as [code].ini[/code] is "
+"also valid. Since neither [code].cfg[/code] nor [code].ini[/code] are "
+"standardized, Godot's ConfigFile formatting may differ from files written by "
+"other programs."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid "Removes the entire contents of the config."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Deletes the specified section along with all the key-value pairs inside. "
+"Raises an error if the section does not exist."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Deletes the specified key in a section. Raises an error if either the "
+"section or the key do not exist."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Returns an array of all defined key identifiers in the specified section. "
+"Raises an error and returns an empty array if the section does not exist."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid "Returns an array of all defined section identifiers."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Returns the current value for the specified section and key. If either the "
+"section or the key do not exist, the method returns the fallback "
+"[code]default[/code] value. If [code]default[/code] is not specified or set "
+"to [code]null[/code], an error is also raised."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid "Returns [code]true[/code] if the specified section exists."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid "Returns [code]true[/code] if the specified section-key pair exists."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Loads the config file specified as a parameter. The file's contents are "
+"parsed and loaded in the [ConfigFile] object which the method was called "
+"on.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Loads the encrypted config file specified as a parameter, using the provided "
+"[code]key[/code] to decrypt it. The file's contents are parsed and loaded in "
+"the [ConfigFile] object which the method was called on.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Loads the encrypted config file specified as a parameter, using the provided "
+"[code]password[/code] to decrypt it. The file's contents are parsed and "
+"loaded in the [ConfigFile] object which the method was called on.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Parses the passed string as the contents of a config file. The string is "
+"parsed and loaded in the ConfigFile object which the method was called on.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Saves the contents of the [ConfigFile] object to the file specified as a "
+"parameter. The output file uses an INI-style structure.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Saves the contents of the [ConfigFile] object to the AES-256 encrypted file "
+"specified as a parameter, using the provided [code]key[/code] to encrypt it. "
+"The output file uses an INI-style structure.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Saves the contents of the [ConfigFile] object to the AES-256 encrypted file "
+"specified as a parameter, using the provided [code]password[/code] to "
+"encrypt it. The output file uses an INI-style structure.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/ConfigFile.xml
+msgid ""
+"Assigns a value to the specified key of the specified section. If either the "
+"section or the key do not exist, they are created. Passing a [code]null[/"
+"code] value deletes the specified key if it exists, and deletes the section "
+"if it ends up empty once the key has been removed."
+msgstr ""
+
+#: doc/classes/ConfirmationDialog.xml
+msgid "Dialog for confirmation of actions."
+msgstr ""
+
+#: doc/classes/ConfirmationDialog.xml
+msgid ""
+"Dialog for confirmation of actions. This dialog inherits from "
+"[AcceptDialog], but has by default an OK and Cancel button (in host OS "
+"order).\n"
+"To get cancel action, you can use:\n"
+"[codeblock]\n"
+"get_cancel().connect(\"pressed\", self, \"cancelled\")\n"
+"[/codeblock]."
+msgstr ""
+
+#: doc/classes/ConfirmationDialog.xml
+msgid ""
+"Returns the cancel button.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/Container.xml
+msgid "Base node for containers."
+msgstr ""
+
+#: doc/classes/Container.xml
+msgid ""
+"Base node for containers. A [Container] contains other controls and "
+"automatically arranges them in a certain way.\n"
+"A Control can inherit this to create custom container classes."
+msgstr ""
+
+#: doc/classes/Container.xml
+msgid ""
+"Fit a child control in a given rect. This is mainly a helper for creating "
+"custom container classes."
+msgstr ""
+
+#: doc/classes/Container.xml
+msgid ""
+"Queue resort of the contained children. This is called automatically anyway, "
+"but can be called upon request."
+msgstr ""
+
+#: doc/classes/Container.xml
+msgid "Emitted when sorting the children is needed."
+msgstr ""
+
+#: doc/classes/Container.xml
+msgid ""
+"Notification for when sorting the children, it must be obeyed immediately."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"All user interface nodes inherit from Control. A control's anchors and "
+"margins adapt its position and size relative to its parent."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Base class for all UI-related nodes. [Control] features a bounding rectangle "
+"that defines its extents, an anchor position relative to its parent control "
+"or the current viewport, and margins that represent an offset to the anchor. "
+"The margins update automatically when the node, any of its parents, or the "
+"screen size change.\n"
+"For more information on Godot's UI system, anchors, margins, and containers, "
+"see the related tutorials in the manual. To build flexible UIs, you'll need "
+"a mix of UI elements that inherit from [Control] and [Container] nodes.\n"
+"[b]User Interface nodes and input[/b]\n"
+"Godot sends input events to the scene's root node first, by calling [method "
+"Node._input]. [method Node._input] forwards the event down the node tree to "
+"the nodes under the mouse cursor, or on keyboard focus. To do so, it calls "
+"[method MainLoop._input_event]. Call [method accept_event] so no other node "
+"receives the event. Once you accept an input, it becomes handled so [method "
+"Node._unhandled_input] will not process it.\n"
+"Only one [Control] node can be in keyboard focus. Only the node in focus "
+"will receive keyboard events. To get the focus, call [method grab_focus]. "
+"[Control] nodes lose focus when another node grabs it, or if you hide the "
+"node in focus.\n"
+"Sets [member mouse_filter] to [constant MOUSE_FILTER_IGNORE] to tell a "
+"[Control] node to ignore mouse or touch events. You'll need it if you place "
+"an icon on top of a button.\n"
+"[Theme] resources change the Control's appearance. If you change the [Theme] "
+"on a [Control] node, it affects all of its children. To override some of the "
+"theme's parameters, call one of the [code]add_*_override[/code] methods, "
+"like [method add_font_override]. You can override the theme with the "
+"inspector.\n"
+"[b]Note:[/b] Theme items are [i]not[/i] [Object] properties. This means you "
+"can't access their values using [method Object.get] and [method Object.set]. "
+"Instead, use [method get_color], [method get_constant], [method get_font], "
+"[method get_icon], [method get_stylebox], and the [code]add_*_override[/"
+"code] methods provided by this class."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "$DOCS_URL/tutorials/ui/index.html"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "$DOCS_URL/tutorials/ui/control_node_gallery.html"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "https://github.com/godotengine/godot-demo-projects/tree/master/gui"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Virtual method to be implemented by the user. Returns whether [method "
+"_gui_input] should not be called for children controls outside this "
+"control's rectangle. Input will be clipped to the Rect of this [Control]. "
+"Similar to [member rect_clip_content], but doesn't affect visibility.\n"
+"If not overridden, defaults to [code]false[/code]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Virtual method to be implemented by the user. Returns the minimum size for "
+"this control. Alternative to [member rect_min_size] for controlling minimum "
+"size via code. The actual minimum size will be the max value of these two "
+"(in each axis separately).\n"
+"If not overridden, defaults to [constant Vector2.ZERO].\n"
+"[b]Note:[/b] This method will not be called when the script is attached to a "
+"[Control] node that already overrides its minimum size (e.g. [Label], "
+"[Button], [PanelContainer] etc.). It can only be used with most basic GUI "
+"nodes, like [Control], [Container], [Panel] etc."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Virtual method to be implemented by the user. Use this method to process and "
+"accept inputs on UI elements. See [method accept_event].\n"
+"Example: clicking a control.\n"
+"[codeblock]\n"
+"func _gui_input(event):\n"
+" if event is InputEventMouseButton:\n"
+" if event.button_index == BUTTON_LEFT and event.pressed:\n"
+" print(\"I've been clicked D:\")\n"
+"[/codeblock]\n"
+"The event won't trigger if:\n"
+"* clicking outside the control (see [method has_point]);\n"
+"* control has [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];\n"
+"* control is obstructed by another [Control] on top of it, which doesn't "
+"have [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];\n"
+"* control's parent has [member mouse_filter] set to [constant "
+"MOUSE_FILTER_STOP] or has accepted the event;\n"
+"* it happens outside the parent's rectangle and the parent has either "
+"[member rect_clip_content] or [method _clips_input] enabled.\n"
+"[b]Note:[/b] Event position is relative to the control origin."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Virtual method to be implemented by the user. Returns a [Control] node that "
+"should be used as a tooltip instead of the default one. The [code]for_text[/"
+"code] includes the contents of the [member hint_tooltip] property.\n"
+"The returned node must be of type [Control] or Control-derived. It can have "
+"child nodes of any type. It is freed when the tooltip disappears, so make "
+"sure you always provide a new instance (if you want to use a pre-existing "
+"node from your scene tree, you can duplicate it and pass the duplicated "
+"instance). When [code]null[/code] or a non-Control node is returned, the "
+"default tooltip will be used instead.\n"
+"The returned node will be added as child to a [PopupPanel], so you should "
+"only provide the contents of that panel. That [PopupPanel] can be themed "
+"using [method Theme.set_stylebox] for the type [code]\"TooltipPanel\"[/code] "
+"(see [member hint_tooltip] for an example).\n"
+"[b]Note:[/b] The tooltip is shrunk to minimal size. If you want to ensure "
+"it's fully visible, you might want to set its [member rect_min_size] to some "
+"non-zero value.\n"
+"Example of usage with a custom-constructed node:\n"
+"[codeblock]\n"
+"func _make_custom_tooltip(for_text):\n"
+" var label = Label.new()\n"
+" label.text = for_text\n"
+" return label\n"
+"[/codeblock]\n"
+"Example of usage with a custom scene instance:\n"
+"[codeblock]\n"
+"func _make_custom_tooltip(for_text):\n"
+" var tooltip = preload(\"res://SomeTooltipScene.tscn\").instance()\n"
+" tooltip.get_node(\"Label\").text = for_text\n"
+" return tooltip\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Marks an input event as handled. Once you accept an input event, it stops "
+"propagating, even to nodes listening to [method Node._unhandled_input] or "
+"[method Node._unhandled_key_input]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Creates a local override for a theme [Color] with the specified [code]name[/"
+"code]. Local overrides always take precedence when fetching theme items for "
+"the control. An override cannot be removed, but it can be overridden with "
+"the corresponding default value.\n"
+"See also [method get_color].\n"
+"[b]Example of overriding a label's color and resetting it later:[/b]\n"
+"[codeblock]\n"
+"# Given the child Label node \"MyLabel\", override its font color with a "
+"custom value.\n"
+"$MyLabel.add_color_override(\"font_color\", Color(1, 0.5, 0))\n"
+"# Reset the font color of the child label.\n"
+"$MyLabel.add_color_override(\"font_color\", get_color(\"font_color\", \"Label"
+"\"))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Creates a local override for a theme constant with the specified [code]name[/"
+"code]. Local overrides always take precedence when fetching theme items for "
+"the control. An override cannot be removed, but it can be overridden with "
+"the corresponding default value.\n"
+"See also [method get_constant]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Creates a local override for a theme [Font] with the specified [code]name[/"
+"code]. Local overrides always take precedence when fetching theme items for "
+"the control. An override can be removed by assigning it a [code]null[/code] "
+"value.\n"
+"See also [method get_font]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Creates a local override for a theme icon with the specified [code]name[/"
+"code]. Local overrides always take precedence when fetching theme items for "
+"the control. An override can be removed by assigning it a [code]null[/code] "
+"value.\n"
+"See also [method get_icon]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Creates a local override for a theme shader with the specified [code]name[/"
+"code]. Local overrides always take precedence when fetching theme items for "
+"the control. An override can be removed by assigning it a [code]null[/code] "
+"value."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Creates a local override for a theme [StyleBox] with the specified "
+"[code]name[/code]. Local overrides always take precedence when fetching "
+"theme items for the control. An override can be removed by assigning it a "
+"[code]null[/code] value.\n"
+"See also [method get_stylebox].\n"
+"[b]Example of modifying a property in a StyleBox by duplicating it:[/b]\n"
+"[codeblock]\n"
+"# The snippet below assumes the child node MyButton has a StyleBoxFlat "
+"assigned.\n"
+"# Resources are shared across instances, so we need to duplicate it\n"
+"# to avoid modifying the appearance of all other buttons.\n"
+"var new_stylebox_normal = $MyButton.get_stylebox(\"normal\").duplicate()\n"
+"new_stylebox_normal.border_width_top = 3\n"
+"new_stylebox_normal.border_color = Color(0, 1, 0.5)\n"
+"$MyButton.add_stylebox_override(\"normal\", new_stylebox_normal)\n"
+"# Remove the stylebox override.\n"
+"$MyButton.add_stylebox_override(\"normal\", null)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Godot calls this method to test if [code]data[/code] from a control's "
+"[method get_drag_data] can be dropped at [code]position[/code]. "
+"[code]position[/code] is local to this control.\n"
+"This method should only be used to test the data. Process the data in "
+"[method drop_data].\n"
+"[codeblock]\n"
+"func can_drop_data(position, data):\n"
+" # Check position if it is relevant to you\n"
+" # Otherwise, just check data\n"
+" return typeof(data) == TYPE_DICTIONARY and data.has(\"expected\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Godot calls this method to pass you the [code]data[/code] from a control's "
+"[method get_drag_data] result. Godot first calls [method can_drop_data] to "
+"test if [code]data[/code] is allowed to drop at [code]position[/code] where "
+"[code]position[/code] is local to this control.\n"
+"[codeblock]\n"
+"func can_drop_data(position, data):\n"
+" return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n"
+"\n"
+"func drop_data(position, data):\n"
+" color = data[\"color\"]\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Finds the next (below in the tree) [Control] that can receive the focus."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Finds the previous (above in the tree) [Control] that can receive the focus."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Forces drag and bypasses [method get_drag_data] and [method "
+"set_drag_preview] by passing [code]data[/code] and [code]preview[/code]. "
+"Drag will start even if the mouse is neither over nor pressed on this "
+"control.\n"
+"The methods [method can_drop_data] and [method drop_data] must be "
+"implemented on controls that want to receive drop data."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns the anchor identified by [code]margin[/code] constant from [enum "
+"Margin] enum. A getter method for [member anchor_bottom], [member "
+"anchor_left], [member anchor_right] and [member anchor_top]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [member margin_left] and [member margin_top]. See also [member "
+"rect_position]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns a [Color] from the first matching [Theme] in the tree if that "
+"[Theme] has a color item with the specified [code]name[/code] and "
+"[code]theme_type[/code]. If [code]theme_type[/code] is omitted the class "
+"name of the current control is used as the type. If the type is a class name "
+"its parent classes are also checked, in order of inheritance.\n"
+"For the current control its local overrides are considered first (see "
+"[method add_color_override]), then its assigned [member theme]. After the "
+"current control, each parent control and its assigned [member theme] are "
+"considered; controls without a [member theme] assigned are skipped. If no "
+"matching [Theme] is found in the tree, a custom project [Theme] (see [member "
+"ProjectSettings.gui/theme/custom]) and the default [Theme] are used.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" # Get the font color defined for the current Control's class, if it "
+"exists.\n"
+" modulate = get_color(\"font_color\")\n"
+" # Get the font color defined for the Button class.\n"
+" modulate = get_color(\"font_color\", \"Button\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns combined minimum size from [member rect_min_size] and [method "
+"get_minimum_size]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns a constant from the first matching [Theme] in the tree if that "
+"[Theme] has a constant item with the specified [code]name[/code] and "
+"[code]theme_type[/code].\n"
+"See [method get_color] for details."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns the mouse cursor shape the control displays on mouse hover. See "
+"[enum CursorShape]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Godot calls this method to get data that can be dragged and dropped onto "
+"controls that expect drop data. Returns [code]null[/code] if there is no "
+"data to drag. Controls that want to receive drop data should implement "
+"[method can_drop_data] and [method drop_data]. [code]position[/code] is "
+"local to this control. Drag may be forced with [method force_drag].\n"
+"A preview that will follow the mouse that should represent the data can be "
+"set with [method set_drag_preview]. A good time to set the preview is in "
+"this method.\n"
+"[codeblock]\n"
+"func get_drag_data(position):\n"
+" var mydata = make_data()\n"
+" set_drag_preview(make_preview(mydata))\n"
+" return mydata\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Returns [member margin_right] and [member margin_bottom]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns the focus neighbour identified by [code]margin[/code] constant from "
+"[enum Margin] enum. A getter method for [member focus_neighbour_bottom], "
+"[member focus_neighbour_left], [member focus_neighbour_right] and [member "
+"focus_neighbour_top]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns the control that has the keyboard focus or [code]null[/code] if none."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns a [Font] from the first matching [Theme] in the tree if that [Theme] "
+"has a font item with the specified [code]name[/code] and [code]theme_type[/"
+"code].\n"
+"See [method get_color] for details."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns the position and size of the control relative to the top-left corner "
+"of the screen. See [member rect_position] and [member rect_size]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns an icon from the first matching [Theme] in the tree if that [Theme] "
+"has an icon item with the specified [code]name[/code] and [code]theme_type[/"
+"code].\n"
+"See [method get_color] for details."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns the anchor identified by [code]margin[/code] constant from [enum "
+"Margin] enum. A getter method for [member margin_bottom], [member "
+"margin_left], [member margin_right] and [member margin_top]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Returns the minimum size for this control. See [member rect_min_size]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Returns the width/height occupied in the parent control."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Returns the parent control node."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns the position and size of the control relative to the top-left corner "
+"of the parent Control. See [member rect_position] and [member rect_size]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Returns the rotation (in radians)."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns a [StyleBox] from the first matching [Theme] in the tree if that "
+"[Theme] has a stylebox item with the specified [code]name[/code] and "
+"[code]theme_type[/code].\n"
+"See [method get_color] for details."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns the default font from the first matching [Theme] in the tree if that "
+"[Theme] has a valid [member Theme.default_font] value.\n"
+"See [method get_color] for details."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns the tooltip, which will appear when the cursor is resting over this "
+"control. See [member hint_tooltip]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Creates an [InputEventMouseButton] that attempts to click the control. If "
+"the event is received, the control acquires focus.\n"
+"[codeblock]\n"
+"func _process(delta):\n"
+" grab_click_focus() #when clicking another Control node, this node will "
+"be clicked instead\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Steal the focus from another control and become the focused control (see "
+"[member focus_mode])."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that "
+"has a color item with the specified [code]name[/code] and [code]theme_type[/"
+"code].\n"
+"See [method get_color] for details."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme [Color] "
+"with the specified [code]name[/code] in this [Control] node.\n"
+"See [method add_color_override]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that "
+"has a constant item with the specified [code]name[/code] and "
+"[code]theme_type[/code].\n"
+"See [method get_color] for details."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme constant "
+"with the specified [code]name[/code] in this [Control] node.\n"
+"See [method add_constant_override]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if this is the current focused control. See "
+"[member focus_mode]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that "
+"has a font item with the specified [code]name[/code] and [code]theme_type[/"
+"code].\n"
+"See [method get_color] for details."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme [Font] "
+"with the specified [code]name[/code] in this [Control] node.\n"
+"See [method add_font_override]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that "
+"has an icon item with the specified [code]name[/code] and [code]theme_type[/"
+"code].\n"
+"See [method get_color] for details."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme icon with "
+"the specified [code]name[/code] in this [Control] node.\n"
+"See [method add_icon_override]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Virtual method to be implemented by the user. Returns whether the given "
+"[code]point[/code] is inside this control.\n"
+"If not overridden, default behavior is checking if the point is within "
+"control's Rect.\n"
+"[b]Note:[/b] If you want to check if a point is inside the control, you can "
+"use [code]get_rect().has_point(point)[/code]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme shader "
+"with the specified [code]name[/code] in this [Control] node.\n"
+"See [method add_shader_override]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that "
+"has a stylebox item with the specified [code]name[/code] and "
+"[code]theme_type[/code].\n"
+"See [method get_color] for details."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme "
+"[StyleBox] with the specified [code]name[/code] in this [Control] node.\n"
+"See [method add_stylebox_override]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Invalidates the size cache in this node and in parent nodes up to toplevel. "
+"Intended to be used with [method get_minimum_size] when the return value is "
+"changed. Setting [member rect_min_size] directly calls this method "
+"automatically."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Give up the focus. No other control will be able to receive keyboard input."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets the anchor identified by [code]margin[/code] constant from [enum "
+"Margin] enum to value [code]anchor[/code]. A setter method for [member "
+"anchor_bottom], [member anchor_left], [member anchor_right] and [member "
+"anchor_top].\n"
+"If [code]keep_margin[/code] is [code]true[/code], margins aren't updated "
+"after this operation.\n"
+"If [code]push_opposite_anchor[/code] is [code]true[/code] and the opposite "
+"anchor overlaps this anchor, the opposite one will have its value "
+"overridden. For example, when setting left anchor to 1 and the right anchor "
+"has value of 0.5, the right anchor will also get value of 1. If "
+"[code]push_opposite_anchor[/code] was [code]false[/code], the left anchor "
+"would get value 0.5."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Works the same as [method set_anchor], but instead of [code]keep_margin[/"
+"code] argument and automatic update of margin, it allows to set the margin "
+"offset yourself (see [method set_margin])."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets both anchor preset and margin preset. See [method set_anchors_preset] "
+"and [method set_margins_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets the anchors to a [code]preset[/code] from [enum Control.LayoutPreset] "
+"enum. This is the code equivalent to using the Layout menu in the 2D "
+"editor.\n"
+"If [code]keep_margins[/code] is [code]true[/code], control's position will "
+"also be updated."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets [member margin_left] and [member margin_top] at the same time. "
+"Equivalent of changing [member rect_position]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Forwards the handling of this control's drag and drop to [code]target[/code] "
+"control.\n"
+"Forwarding can be implemented in the target control similar to the methods "
+"[method get_drag_data], [method can_drop_data], and [method drop_data] but "
+"with two differences:\n"
+"1. The function name must be suffixed with [b]_fw[/b]\n"
+"2. The function must take an extra argument that is the control doing the "
+"forwarding\n"
+"[codeblock]\n"
+"# ThisControl.gd\n"
+"extends Control\n"
+"func _ready():\n"
+" set_drag_forwarding(target_control)\n"
+"\n"
+"# TargetControl.gd\n"
+"extends Control\n"
+"func can_drop_data_fw(position, data, from_control):\n"
+" return true\n"
+"\n"
+"func drop_data_fw(position, data, from_control):\n"
+" my_handle_data(data)\n"
+"\n"
+"func get_drag_data_fw(position, from_control):\n"
+" set_drag_preview(my_preview)\n"
+" return my_data()\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Shows the given control at the mouse pointer. A good time to call this "
+"method is in [method get_drag_data]. The control must not be in the scene "
+"tree. You should not free the control, and you should not keep a reference "
+"to the control beyond the duration of the drag. It will be deleted "
+"automatically after the drag has ended.\n"
+"[codeblock]\n"
+"export (Color, RGBA) var color = Color(1, 0, 0, 1)\n"
+"\n"
+"func get_drag_data(position):\n"
+" # Use a control that is not in the tree\n"
+" var cpb = ColorPickerButton.new()\n"
+" cpb.color = color\n"
+" cpb.rect_size = Vector2(50, 50)\n"
+" set_drag_preview(cpb)\n"
+" return color\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Sets [member margin_right] and [member margin_bottom] at the same time."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets the anchor identified by [code]margin[/code] constant from [enum "
+"Margin] enum to [Control] at [code]neighbor[/code] node path. A setter "
+"method for [member focus_neighbour_bottom], [member focus_neighbour_left], "
+"[member focus_neighbour_right] and [member focus_neighbour_top]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets the [member rect_global_position] to given [code]position[/code].\n"
+"If [code]keep_margins[/code] is [code]true[/code], control's anchors will be "
+"updated instead of margins."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets the margin identified by [code]margin[/code] constant from [enum "
+"Margin] enum to given [code]offset[/code]. A setter method for [member "
+"margin_bottom], [member margin_left], [member margin_right] and [member "
+"margin_top]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets the margins to a [code]preset[/code] from [enum Control.LayoutPreset] "
+"enum. This is the code equivalent to using the Layout menu in the 2D "
+"editor.\n"
+"Use parameter [code]resize_mode[/code] with constants from [enum Control."
+"LayoutPresetMode] to better determine the resulting size of the [Control]. "
+"Constant size will be ignored if used with presets that change size, e.g. "
+"[code]PRESET_LEFT_WIDE[/code].\n"
+"Use parameter [code]margin[/code] to determine the gap between the [Control] "
+"and the edges."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets the [member rect_position] to given [code]position[/code].\n"
+"If [code]keep_margins[/code] is [code]true[/code], control's anchors will be "
+"updated instead of margins."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Sets the rotation (in radians)."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets the size (see [member rect_size]).\n"
+"If [code]keep_margins[/code] is [code]true[/code], control's anchors will be "
+"updated instead of margins."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Displays a control as modal. Control must be a subwindow. Modal controls "
+"capture the input signals until closed or the area outside them is accessed. "
+"When a modal control loses focus, or the ESC key is pressed, they "
+"automatically hide. Modal controls are used extensively for popup dialogs "
+"and menus.\n"
+"If [code]exclusive[/code] is [code]true[/code], other controls will not "
+"receive input and clicking outside this control will not close it."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Moves the mouse cursor to [code]to_position[/code], relative to [member "
+"rect_position] of this [Control]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Anchors the bottom edge of the node to the origin, the center, or the end of "
+"its parent control. It changes how the bottom margin updates when the node "
+"moves or changes size. You can use one of the [enum Anchor] constants for "
+"convenience."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Anchors the left edge of the node to the origin, the center or the end of "
+"its parent control. It changes how the left margin updates when the node "
+"moves or changes size. You can use one of the [enum Anchor] constants for "
+"convenience."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Anchors the right edge of the node to the origin, the center or the end of "
+"its parent control. It changes how the right margin updates when the node "
+"moves or changes size. You can use one of the [enum Anchor] constants for "
+"convenience."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Anchors the top edge of the node to the origin, the center or the end of its "
+"parent control. It changes how the top margin updates when the node moves or "
+"changes size. You can use one of the [enum Anchor] constants for convenience."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The focus access mode for the control (None, Click or All). Only one Control "
+"can be focused at the same time, and it will receive keyboard signals."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells Godot which node it should give keyboard focus to if the user presses "
+"the down arrow on the keyboard or down on a gamepad by default. You can "
+"change the key by editing the [code]ui_down[/code] input action. The node "
+"must be a [Control]. If this property is not set, Godot will give focus to "
+"the closest [Control] to the bottom of this one."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells Godot which node it should give keyboard focus to if the user presses "
+"the left arrow on the keyboard or left on a gamepad by default. You can "
+"change the key by editing the [code]ui_left[/code] input action. The node "
+"must be a [Control]. If this property is not set, Godot will give focus to "
+"the closest [Control] to the left of this one."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells Godot which node it should give keyboard focus to if the user presses "
+"the right arrow on the keyboard or right on a gamepad by default. You can "
+"change the key by editing the [code]ui_right[/code] input action. The node "
+"must be a [Control]. If this property is not set, Godot will give focus to "
+"the closest [Control] to the bottom of this one."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells Godot which node it should give keyboard focus to if the user presses "
+"the top arrow on the keyboard or top on a gamepad by default. You can change "
+"the key by editing the [code]ui_top[/code] input action. The node must be a "
+"[Control]. If this property is not set, Godot will give focus to the closest "
+"[Control] to the bottom of this one."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells Godot which node it should give keyboard focus to if the user presses "
+"Tab on a keyboard by default. You can change the key by editing the "
+"[code]ui_focus_next[/code] input action.\n"
+"If this property is not set, Godot will select a \"best guess\" based on "
+"surrounding nodes in the scene tree."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells Godot which node it should give keyboard focus to if the user presses "
+"Shift+Tab on a keyboard by default. You can change the key by editing the "
+"[code]ui_focus_prev[/code] input action.\n"
+"If this property is not set, Godot will select a \"best guess\" based on "
+"surrounding nodes in the scene tree."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Controls the direction on the horizontal axis in which the control should "
+"grow if its horizontal minimum size is changed to be greater than its "
+"current size, as the control always has to be at least the minimum size."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Controls the direction on the vertical axis in which the control should grow "
+"if its vertical minimum size is changed to be greater than its current size, "
+"as the control always has to be at least the minimum size."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Changes the tooltip text. The tooltip appears when the user's mouse cursor "
+"stays idle over this control for a few moments, provided that the [member "
+"mouse_filter] property is not [constant MOUSE_FILTER_IGNORE]. You can change "
+"the time required for the tooltip to appear with [code]gui/timers/"
+"tooltip_delay_sec[/code] option in Project Settings.\n"
+"The tooltip popup will use either a default implementation, or a custom one "
+"that you can provide by overriding [method _make_custom_tooltip]. The "
+"default tooltip includes a [PopupPanel] and [Label] whose theme properties "
+"can be customized using [Theme] methods with the [code]\"TooltipPanel\"[/"
+"code] and [code]\"TooltipLabel\"[/code] respectively. For example:\n"
+"[codeblock]\n"
+"var style_box = StyleBoxFlat.new()\n"
+"style_box.set_bg_color(Color(1, 1, 0))\n"
+"style_box.set_border_width_all(2)\n"
+"# We assume here that the `theme` property has been assigned a custom Theme "
+"beforehand.\n"
+"theme.set_stylebox(\"panel\", \"TooltipPanel\", style_box)\n"
+"theme.set_color(\"font_color\", \"TooltipLabel\", Color(0, 1, 1))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Enables whether input should propagate when you close the control as modal.\n"
+"If [code]false[/code], stops event handling at the viewport input event "
+"handling. The viewport first hides the modal and after marks the input as "
+"handled."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Distance between the node's bottom edge and its parent control, based on "
+"[member anchor_bottom].\n"
+"Margins are often controlled by one or multiple parent [Container] nodes, so "
+"you should not modify them manually if your node is a direct child of a "
+"[Container]. Margins update automatically when you move or resize the node."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Distance between the node's left edge and its parent control, based on "
+"[member anchor_left].\n"
+"Margins are often controlled by one or multiple parent [Container] nodes, so "
+"you should not modify them manually if your node is a direct child of a "
+"[Container]. Margins update automatically when you move or resize the node."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Distance between the node's right edge and its parent control, based on "
+"[member anchor_right].\n"
+"Margins are often controlled by one or multiple parent [Container] nodes, so "
+"you should not modify them manually if your node is a direct child of a "
+"[Container]. Margins update automatically when you move or resize the node."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Distance between the node's top edge and its parent control, based on "
+"[member anchor_top].\n"
+"Margins are often controlled by one or multiple parent [Container] nodes, so "
+"you should not modify them manually if your node is a direct child of a "
+"[Container]. Margins update automatically when you move or resize the node."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The default cursor shape for this control. Useful for Godot plugins and "
+"applications or games that use the system's mouse cursors.\n"
+"[b]Note:[/b] On Linux, shapes may vary depending on the cursor theme of the "
+"system."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Controls whether the control will be able to receive mouse button input "
+"events through [method _gui_input] and how these events should be handled. "
+"Also controls whether the control can receive the [signal mouse_entered], "
+"and [signal mouse_exited] signals. See the constants to learn what each does."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Enables whether rendering of [CanvasItem] based children should be clipped "
+"to this control's rectangle. If [code]true[/code], parts of a child which "
+"would be visibly outside of this control's rectangle will not be rendered."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The node's global position, relative to the world (usually to the top-left "
+"corner of the window)."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The minimum size of the node's bounding rectangle. If you set it to a value "
+"greater than (0, 0), the node's bounding rectangle will always have at least "
+"this size, even if its content is smaller. If it's set to (0, 0), the node "
+"sizes automatically to fit its content, be it a texture or child nodes."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"By default, the node's pivot is its top-left corner. When you change its "
+"[member rect_scale], it will scale around this pivot. Set this property to "
+"[member rect_size] / 2 to center the pivot in the node's rectangle."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The node's position, relative to its parent. It corresponds to the "
+"rectangle's top-left corner. The property is not affected by [member "
+"rect_pivot_offset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The node's rotation around its pivot, in degrees. See [member "
+"rect_pivot_offset] to change the pivot's position."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The node's scale, relative to its [member rect_size]. Change this property "
+"to scale the node around its [member rect_pivot_offset]. The Control's "
+"[member hint_tooltip] will also scale according to this value.\n"
+"[b]Note:[/b] This property is mainly intended to be used for animation "
+"purposes. Text inside the Control will look pixelated or blurry when the "
+"Control is scaled. To support multiple resolutions in your project, use an "
+"appropriate viewport stretch mode as described in the [url=$DOCS_URL/"
+"tutorials/rendering/multiple_resolutions.html]documentation[/url] instead of "
+"scaling Controls individually.\n"
+"[b]Note:[/b] If the Control node is a child of a [Container] node, the scale "
+"will be reset to [code]Vector2(1, 1)[/code] when the scene is instanced. To "
+"set the Control's scale when it's instanced, wait for one frame using "
+"[code]yield(get_tree(), \"idle_frame\")[/code] then set its [member "
+"rect_scale] property."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The size of the node's bounding rectangle, in pixels. [Container] nodes "
+"update this property automatically."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells the parent [Container] nodes how they should resize and place the node "
+"on the X axis. Use one of the [enum SizeFlags] constants to change the "
+"flags. See the constants to learn what each does."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"If the node and at least one of its neighbours uses the [constant "
+"SIZE_EXPAND] size flag, the parent [Container] will let it take more or less "
+"space depending on this property. If this node has a stretch ratio of 2 and "
+"its neighbour a ratio of 1, this node will take two thirds of the available "
+"space."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells the parent [Container] nodes how they should resize and place the node "
+"on the Y axis. Use one of the [enum SizeFlags] constants to change the "
+"flags. See the constants to learn what each does."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Changing this property replaces the current [Theme] resource this node and "
+"all its [Control] children use."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Emitted when the node gains keyboard focus."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Emitted when the node loses keyboard focus."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Emitted when the node receives an [InputEvent]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Emitted when the node's minimum size changes."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Emitted when a modal [Control] is closed. See [method show_modal]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Emitted when the mouse enters the control's [code]Rect[/code] area, provided "
+"its [member mouse_filter] lets the event reach it.\n"
+"[b]Note:[/b] [signal mouse_entered] will not be emitted if the mouse enters "
+"a child [Control] node before entering the parent's [code]Rect[/code] area, "
+"at least until the mouse is moved to reach the parent's [code]Rect[/code] "
+"area."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Emitted when the mouse leaves the control's [code]Rect[/code] area, provided "
+"its [member mouse_filter] lets the event reach it.\n"
+"[b]Note:[/b] [signal mouse_exited] will be emitted if the mouse enters a "
+"child [Control] node, even if the mouse cursor is still inside the parent's "
+"[code]Rect[/code] area."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Emitted when the control changes size."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Emitted when one of the size flags changes. See [member "
+"size_flags_horizontal] and [member size_flags_vertical]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "The node cannot grab focus. Use with [member focus_mode]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The node can only grab focus on mouse clicks. Use with [member focus_mode]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The node can grab focus on mouse click or using the arrows and the Tab keys "
+"on the keyboard. Use with [member focus_mode]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sent when the node changes size. Use [member rect_size] to get the new size."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Sent when the mouse pointer enters the node."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Sent when the mouse pointer exits the node."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Sent when the node grabs focus."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Sent when the node loses focus."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sent when the node's [member theme] changes, right before Godot redraws the "
+"control. Happens when you call one of the [code]add_*_override[/code] "
+"methods."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Sent when an open modal dialog closes. See [method show_modal]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sent when this node is inside a [ScrollContainer] which has begun being "
+"scrolled."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sent when this node is inside a [ScrollContainer] which has stopped being "
+"scrolled."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's arrow mouse cursor when the user hovers the node. Use with "
+"[member mouse_default_cursor_shape]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's I-beam mouse cursor when the user hovers the node. The I-"
+"beam pointer has a shape similar to \"I\". It tells the user they can "
+"highlight or insert text."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's pointing hand mouse cursor when the user hovers the node."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "Show the system's cross mouse cursor when the user hovers the node."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's wait mouse cursor, often an hourglass, when the user "
+"hovers the node."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's busy mouse cursor when the user hovers the node. Often an "
+"hourglass."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's drag mouse cursor, often a closed fist or a cross symbol, "
+"when the user hovers the node. It tells the user they're currently dragging "
+"an item, like a node in the Scene dock."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's drop mouse cursor when the user hovers the node. It can be "
+"an open hand. It tells the user they can drop an item they're currently "
+"grabbing, like a node in the Scene dock."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's forbidden mouse cursor when the user hovers the node. "
+"Often a crossed circle."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's vertical resize mouse cursor when the user hovers the "
+"node. A double-headed vertical arrow. It tells the user they can resize the "
+"window or the panel vertically."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's horizontal resize mouse cursor when the user hovers the "
+"node. A double-headed horizontal arrow. It tells the user they can resize "
+"the window or the panel horizontally."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's window resize mouse cursor when the user hovers the node. "
+"The cursor is a double-headed arrow that goes from the bottom left to the "
+"top right. It tells the user they can resize the window or the panel both "
+"horizontally and vertically."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's window resize mouse cursor when the user hovers the node. "
+"The cursor is a double-headed arrow that goes from the top left to the "
+"bottom right, the opposite of [constant CURSOR_BDIAGSIZE]. It tells the user "
+"they can resize the window or the panel both horizontally and vertically."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's move mouse cursor when the user hovers the node. It shows "
+"2 double-headed arrows at a 90 degree angle. It tells the user they can move "
+"a UI element freely."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's vertical split mouse cursor when the user hovers the node. "
+"On Windows, it's the same as [constant CURSOR_VSIZE]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's horizontal split mouse cursor when the user hovers the "
+"node. On Windows, it's the same as [constant CURSOR_HSIZE]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Show the system's help mouse cursor when the user hovers the node, a "
+"question mark."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the top-left of the parent control's bounds. Use with "
+"[method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the top-right of the parent control's bounds. Use with "
+"[method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the bottom-left of the parent control's bounds. Use "
+"with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the bottom-right of the parent control's bounds. Use "
+"with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the center of the left edge of the parent control's "
+"bounds. Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the center of the top edge of the parent control's "
+"bounds. Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the center of the right edge of the parent control's "
+"bounds. Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the center of the bottom edge of the parent control's "
+"bounds. Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the center of the parent control's bounds. Use with "
+"[method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the left edge of the parent control. The left margin "
+"becomes relative to the left edge and the top margin relative to the top "
+"left corner of the node's parent. Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the top edge of the parent control. The left margin "
+"becomes relative to the top left corner, the top margin relative to the top "
+"edge, and the right margin relative to the top right corner of the node's "
+"parent. Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the right edge of the parent control. The right margin "
+"becomes relative to the right edge and the top margin relative to the top "
+"right corner of the node's parent. Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the bottom edge of the parent control. The left margin "
+"becomes relative to the bottom left corner, the bottom margin relative to "
+"the bottom edge, and the right margin relative to the bottom right corner of "
+"the node's parent. Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to a vertical line that cuts the parent control in half. "
+"Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to a horizontal line that cuts the parent control in "
+"half. Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snap all 4 anchors to the respective corners of the parent control. Set all "
+"4 margins to 0 after you applied this preset and the [Control] will fit its "
+"parent control. This is equivalent to the \"Full Rect\" layout option in the "
+"editor. Use with [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "The control will be resized to its minimum size."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "The control's width will not change."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "The control's height will not change."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid "The control's size will not change."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells the parent [Container] to expand the bounds of this node to fill all "
+"the available space without pushing any other node. Use with [member "
+"size_flags_horizontal] and [member size_flags_vertical]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells the parent [Container] to let this node take all the available space "
+"on the axis you flag. If multiple neighboring nodes are set to expand, "
+"they'll share the space based on their stretch ratio. See [member "
+"size_flags_stretch_ratio]. Use with [member size_flags_horizontal] and "
+"[member size_flags_vertical]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Sets the node's size flags to both fill and expand. See the 2 constants "
+"above for more information."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells the parent [Container] to center the node in itself. It centers the "
+"control based on its bounding box, so it doesn't work with the fill or "
+"expand size flags. Use with [member size_flags_horizontal] and [member "
+"size_flags_vertical]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Tells the parent [Container] to align the node with its end, either the "
+"bottom or the right edge. It doesn't work with the fill or expand size "
+"flags. Use with [member size_flags_horizontal] and [member "
+"size_flags_vertical]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The control will receive mouse button input events through [method "
+"_gui_input] if clicked on. And the control will receive the [signal "
+"mouse_entered] and [signal mouse_exited] signals. These events are "
+"automatically marked as handled, and they will not propagate further to "
+"other controls. This also results in blocking signals in other controls."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The control will receive mouse button input events through [method "
+"_gui_input] if clicked on. And the control will receive the [signal "
+"mouse_entered] and [signal mouse_exited] signals. If this control does not "
+"handle the event, the parent control (if any) will be considered, and so on "
+"until there is no more parent control to potentially handle it. This also "
+"allows signals to fire in other controls. Even if no control handled it at "
+"all, the event will still be handled automatically, so unhandled input will "
+"not be fired."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The control will not receive mouse button input events through [method "
+"_gui_input]. The control will also not receive the [signal mouse_entered] "
+"nor [signal mouse_exited] signals. This will not block other controls from "
+"receiving these events or firing the signals. Ignored events will not be "
+"handled automatically."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The control will grow to the left or top to make up if its minimum size is "
+"changed to be greater than its current size on the respective axis."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The control will grow to the right or bottom to make up if its minimum size "
+"is changed to be greater than its current size on the respective axis."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"The control will grow in both directions equally to make up if its minimum "
+"size is changed to be greater than its current size."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snaps one of the 4 anchor's sides to the origin of the node's [code]Rect[/"
+"code], in the top left. Use it with one of the [code]anchor_*[/code] member "
+"variables, like [member anchor_left]. To change all 4 anchors at once, use "
+"[method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/Control.xml
+msgid ""
+"Snaps one of the 4 anchor's sides to the end of the node's [code]Rect[/"
+"code], in the bottom right. Use it with one of the [code]anchor_*[/code] "
+"member variables, like [member anchor_left]. To change all 4 anchors at "
+"once, use [method set_anchors_preset]."
+msgstr ""
+
+#: doc/classes/ConvexPolygonShape.xml
+msgid "Convex polygon shape for 3D physics."
+msgstr ""
+
+#: doc/classes/ConvexPolygonShape.xml
+msgid ""
+"Convex polygon shape resource, which can be added to a [PhysicsBody] or area."
+msgstr ""
+
+#: doc/classes/ConvexPolygonShape.xml
+msgid "The list of 3D points forming the convex polygon shape."
+msgstr ""
+
+#: doc/classes/ConvexPolygonShape2D.xml
+msgid "Convex polygon shape for 2D physics."
+msgstr ""
+
+#: doc/classes/ConvexPolygonShape2D.xml
+msgid ""
+"Convex polygon shape for 2D physics. A convex polygon, whatever its shape, "
+"is internally decomposed into as many convex polygons as needed to ensure "
+"all collision checks against it are always done on convex polygons (which "
+"are faster to check).\n"
+"The main difference between a [ConvexPolygonShape2D] and a "
+"[ConcavePolygonShape2D] is that a concave polygon assumes it is concave and "
+"uses a more complex method of collision detection, and a convex one forces "
+"itself to be convex in order to speed up collision detection."
+msgstr ""
+
+#: doc/classes/ConvexPolygonShape2D.xml
+msgid ""
+"Based on the set of points provided, this creates and assigns the [member "
+"points] property using the convex hull algorithm. Removing all unneeded "
+"points. See [method Geometry.convex_hull_2d] for details."
+msgstr ""
+
+#: doc/classes/ConvexPolygonShape2D.xml
+msgid ""
+"The polygon's list of vertices. Can be in either clockwise or "
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid "CPU-based 3D particle emitter."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"CPU-based 3D particle node used to create a variety of particle systems and "
+"effects.\n"
+"See also [Particles], which provides the same functionality with hardware "
+"acceleration, but may not run on older devices.\n"
+"[b]Note:[/b] Unlike [Particles], the visibility rect is generated on-the-fly "
+"and doesn't need to be configured by the user."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"Sets this node's properties to match a given [Particles] node with an "
+"assigned [ParticlesMaterial]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Returns the base value of the parameter specified by [enum Parameter]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Returns the [Curve] of the parameter specified by [enum Parameter]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Returns the randomness factor of the parameter specified by [enum Parameter]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Returns the enabled state of the given flag (see [enum Flags] for options)."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Restarts the particle emitter."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Sets the base value of the parameter specified by [enum Parameter]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Sets the [Curve] of the parameter specified by [enum Parameter]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Sets the randomness factor of the parameter specified by [enum Parameter]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Enables or disables the given flag (see [enum Flags] for options)."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles.xml doc/classes/Particles2D.xml
+msgid ""
+"The number of particles emitted in one emission cycle (corresponding to the "
+"[member lifetime]).\n"
+"[b]Note:[/b] Changing [member amount] will reset the particle emission, "
+"therefore removing all particles that were already emitted before changing "
+"[member amount]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Initial rotation applied to each particle, in degrees."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Each particle's rotation will be animated along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Rotation randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Initial angular velocity applied to each particle in [i]degrees[/i] per "
+"second. Sets the speed of rotation of the particle."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Each particle's angular velocity will vary along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Angular velocity randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Particle animation offset."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Each particle's animation offset will vary along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Animation offset randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Particle animation speed."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Each particle's animation speed will vary along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Animation speed randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"Each particle's initial color. To have particle display color in a "
+"[SpatialMaterial] make sure to set [member SpatialMaterial."
+"vertex_color_use_as_albedo] to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Each particle's initial color will vary along this [GradientTexture] "
+"(multiplied with [member color])."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/ParticlesMaterial.xml
+msgid ""
+"Each particle's color will vary along this [GradientTexture] over its "
+"lifetime (multiplied with [member color])."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "The rate at which particles lose velocity."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Damping will vary along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Damping randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Unit vector specifying the particles' emission direction."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles.xml doc/classes/Particles2D.xml
+msgid "Particle draw order. Uses [enum DrawOrder] values."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"The rectangle's extents if [member emission_shape] is set to [constant "
+"EMISSION_SHAPE_BOX]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Sets the [Color]s to modulate particles by when using [constant "
+"EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Sets the direction the particles will be emitted in when using [constant "
+"EMISSION_SHAPE_DIRECTED_POINTS]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Sets the initial positions to spawn particles when using [constant "
+"EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"The axis for the ring shaped emitter when using [constant "
+"EMISSION_SHAPE_RING]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"The height for the ring shaped emitter when using [constant "
+"EMISSION_SHAPE_RING]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"The inner radius for the ring shaped emitter when using [constant "
+"EMISSION_SHAPE_RING]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"The radius for the ring shaped emitter when using [constant "
+"EMISSION_SHAPE_RING]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Particles will be emitted inside this region. See [enum EmissionShape] for "
+"possible values."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"The sphere's radius if [enum EmissionShape] is set to [constant "
+"EMISSION_SHAPE_SPHERE]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles.xml doc/classes/Particles2D.xml
+msgid "If [code]true[/code], particles are being emitted."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles2D.xml
+msgid ""
+"How rapidly particles in an emission cycle are emitted. If greater than "
+"[code]0[/code], there will be a gap in emissions before the next cycle "
+"begins."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"The particle system's frame rate is fixed to a value. For instance, changing "
+"the value to 2 will make the particles render at 2 frames per second. Note "
+"this does not slow down the particle system itself."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Align Y axis of particle with the direction of its velocity."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/ParticlesMaterial.xml
+msgid "If [code]true[/code], particles will not move on the z axis."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/ParticlesMaterial.xml
+msgid "If [code]true[/code], particles rotate around Y axis by [member angle]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"Amount of [member spread] in Y/Z plane. A value of [code]1[/code] restricts "
+"particles to X/Z plane."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles.xml doc/classes/Particles2D.xml
+msgid ""
+"If [code]true[/code], results in fractional delta calculation which has a "
+"smoother particles display effect."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Gravity applied to every particle."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Initial hue variation applied to each particle."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Each particle's hue will vary along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Hue variation randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Initial velocity magnitude for each particle. Direction comes from [member "
+"spread] and the node's orientation."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Initial velocity randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles.xml doc/classes/Particles2D.xml
+msgid "The amount of time each particle will exist (in seconds)."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Particle lifetime randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Linear acceleration applied to each particle in the direction of motion."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Each particle's linear acceleration will vary along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Linear acceleration randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles.xml doc/classes/Particles2D.xml
+msgid ""
+"If [code]true[/code], particles use the parent node's coordinate space. If "
+"[code]false[/code], they use global coordinates."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"The [Mesh] used for each particle. If [code]null[/code], particles will be "
+"spheres."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles2D.xml
+msgid ""
+"If [code]true[/code], only one emission cycle occurs. If set [code]true[/"
+"code] during a cycle, emission will stop at the cycle's end."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"Orbital velocity applied to each particle. Makes the particles circle around "
+"origin in the local XY plane. Specified in number of full rotations around "
+"origin per second.\n"
+"This property is only available when [member flag_disable_z] is [code]true[/"
+"code]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Each particle's orbital velocity will vary along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Orbital velocity randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles2D.xml
+msgid "Particle system starts as if it had already run for this many seconds."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Radial acceleration applied to each particle. Makes particle accelerate away "
+"from origin."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Each particle's radial acceleration will vary along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Radial acceleration randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles2D.xml
+msgid "Emission lifetime randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Initial scale applied to each particle."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Each particle's scale will vary along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Scale randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles2D.xml
+msgid ""
+"Particle system's running speed scaling ratio. A value of [code]0[/code] can "
+"be used to pause the particles."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid ""
+"Each particle's initial direction range from [code]+spread[/code] to [code]-"
+"spread[/code] degrees. Applied to X/Z plane and Y/Z planes."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Tangential acceleration applied to each particle. Tangential acceleration is "
+"perpendicular to the particle's velocity giving the particles a swirling "
+"motion."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Each particle's tangential acceleration will vary along this [Curve]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Tangential acceleration randomness ratio."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles.xml doc/classes/Particles2D.xml
+msgid "Particles are drawn in the order emitted."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/Particles.xml doc/classes/Particles2D.xml
+msgid "Particles are drawn in order of remaining lifetime."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/Particles.xml
+msgid "Particles are drawn in order of depth."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set initial velocity properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set angular velocity properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set orbital velocity properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set linear acceleration properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set radial acceleration properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set tangential acceleration properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set damping properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set angle properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set scale properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set hue variation properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set animation speed properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_curve] to set animation offset properties."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Represents the size of the [enum Parameter] enum."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid "Use with [method set_particle_flag] to set [member flag_align_y]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid "Use with [method set_particle_flag] to set [member flag_rotate_y]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml
+msgid "Use with [method set_particle_flag] to set [member flag_disable_z]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/GeometryInstance.xml doc/classes/ParticlesMaterial.xml
+#: doc/classes/SpatialMaterial.xml
+msgid "Represents the size of the [enum Flags] enum."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "All particles will be emitted from a single point."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/ParticlesMaterial.xml
+msgid "Particles will be emitted in the volume of a sphere."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/ParticlesMaterial.xml
+msgid "Particles will be emitted in the volume of a box."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Particles will be emitted at a position chosen randomly among [member "
+"emission_points]. Particle color will be modulated by [member "
+"emission_colors]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+msgid ""
+"Particles will be emitted at a position chosen randomly among [member "
+"emission_points]. Particle velocity and rotation will be set based on "
+"[member emission_normals]. Particle color will be modulated by [member "
+"emission_colors]."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/ParticlesMaterial.xml
+msgid "Particles will be emitted in a ring or cylinder."
+msgstr ""
+
+#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
+#: doc/classes/ParticlesMaterial.xml
+msgid "Represents the size of the [enum EmissionShape] enum."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid "CPU-based 2D particle emitter."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid ""
+"CPU-based 2D particle node used to create a variety of particle systems and "
+"effects.\n"
+"See also [Particles2D], which provides the same functionality with hardware "
+"acceleration, but may not run on older devices.\n"
+"[b]Note:[/b] Unlike [Particles2D], the visibility rect is generated on-the-"
+"fly and doesn't need to be configured by the user."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml doc/classes/Particles2D.xml
+msgid "$DOCS_URL/tutorials/2d/particle_systems_2d.html"
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid ""
+"Sets this node's properties to match a given [Particles2D] node with an "
+"assigned [ParticlesMaterial]."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid ""
+"Each particle's initial color. If [member texture] is defined, it will be "
+"multiplied by this color."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid ""
+"Each particle's color will vary along this [Gradient] (multiplied with "
+"[member color])."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid ""
+"The rectangle's extents if [member emission_shape] is set to [constant "
+"EMISSION_SHAPE_RECTANGLE]."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid ""
+"The sphere's radius if [member emission_shape] is set to [constant "
+"EMISSION_SHAPE_SPHERE]."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml doc/classes/Particles.xml
+#: doc/classes/Particles2D.xml
+msgid ""
+"The particle system's frame rate is fixed to a value. For instance, changing "
+"the value to 2 will make the particles render at 2 frames per second. Note "
+"this does not slow down the simulation of the particle system itself."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml doc/classes/Particles2D.xml
+msgid ""
+"Normal map to be used for the [member texture] property.\n"
+"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
+"See [url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
+"a comparison of normal map coordinates expected by popular engines."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid ""
+"Orbital velocity applied to each particle. Makes the particles circle around "
+"origin. Specified in number of full rotations around origin per second."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml doc/classes/ParticlesMaterial.xml
+msgid ""
+"Each particle's initial direction range from [code]+spread[/code] to [code]-"
+"spread[/code] degrees."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml doc/classes/Particles2D.xml
+msgid "Particle texture. If [code]null[/code], particles will be squares."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid "Present for consistency with 3D particle nodes, not used in 2D."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid ""
+"Particles will be emitted on the surface of a sphere flattened to two "
+"dimensions."
+msgstr ""
+
+#: doc/classes/CPUParticles2D.xml
+msgid "Particles will be emitted in the area of a rectangle."
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid "Access to advanced cryptographic functionalities."
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid ""
+"The Crypto class allows you to access some more advanced cryptographic "
+"functionalities in Godot.\n"
+"For now, this includes generating cryptographically secure random bytes, RSA "
+"keys and self-signed X509 certificates generation, asymmetric key encryption/"
+"decryption, and signing/verification.\n"
+"[codeblock]\n"
+"extends Node\n"
+"\n"
+"var crypto = Crypto.new()\n"
+"var key = CryptoKey.new()\n"
+"var cert = X509Certificate.new()\n"
+"\n"
+"func _ready():\n"
+" # Generate new RSA key.\n"
+" key = crypto.generate_rsa(4096)\n"
+" # Generate new self-signed certificate with the given key.\n"
+" cert = crypto.generate_self_signed_certificate(key, \"CN=mydomain.com,"
+"O=My Game Company,C=IT\")\n"
+" # Save key and certificate in the user folder.\n"
+" key.save(\"user://generated.key\")\n"
+" cert.save(\"user://generated.crt\")\n"
+" # Encryption\n"
+" var data = \"Some data\"\n"
+" var encrypted = crypto.encrypt(key, data.to_utf8())\n"
+" # Decryption\n"
+" var decrypted = crypto.decrypt(key, encrypted)\n"
+" # Signing\n"
+" var signature = crypto.sign(HashingContext.HASH_SHA256, data."
+"sha256_buffer(), key)\n"
+" # Verifying\n"
+" var verified = crypto.verify(HashingContext.HASH_SHA256, data."
+"sha256_buffer(), signature, key)\n"
+" # Checks\n"
+" assert(verified)\n"
+" assert(data.to_utf8() == decrypted)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Not available in HTML5 exports."
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid ""
+"Compares two [PoolByteArray]s for equality without leaking timing "
+"information in order to prevent timing attacks.\n"
+"See [url=https://paragonie.com/blog/2015/11/preventing-timing-attacks-on-"
+"string-comparison-with-double-hmac-strategy]this blog post[/url] for more "
+"information."
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid ""
+"Decrypt the given [code]ciphertext[/code] with the provided private "
+"[code]key[/code].\n"
+"[b]Note:[/b] The maximum size of accepted ciphertext is limited by the key "
+"size."
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid ""
+"Encrypt the given [code]plaintext[/code] with the provided public [code]key[/"
+"code].\n"
+"[b]Note:[/b] The maximum size of accepted plaintext is limited by the key "
+"size."
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid ""
+"Generates a [PoolByteArray] of cryptographically secure random bytes with "
+"given [code]size[/code]."
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid ""
+"Generates an RSA [CryptoKey] that can be used for creating self-signed "
+"certificates and passed to [method StreamPeerSSL.accept_stream]."
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid ""
+"Generates a self-signed [X509Certificate] from the given [CryptoKey] and "
+"[code]issuer_name[/code]. The certificate validity will be defined by "
+"[code]not_before[/code] and [code]not_after[/code] (first valid date and "
+"last valid date). The [code]issuer_name[/code] must contain at least \"CN="
+"\" (common name, i.e. the domain name), \"O=\" (organization, i.e. your "
+"company name), \"C=\" (country, i.e. 2 lettered ISO-3166 code of the country "
+"the organization is based in).\n"
+"A small example to generate an RSA key and a X509 self-signed certificate.\n"
+"[codeblock]\n"
+"var crypto = Crypto.new()\n"
+"# Generate 4096 bits RSA key.\n"
+"var key = crypto.generate_rsa(4096)\n"
+"# Generate self-signed certificate using the given key.\n"
+"var cert = crypto.generate_self_signed_certificate(key, \"CN=example.com,O=A "
+"Game Company,C=IT\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid ""
+"Generates an [url=https://en.wikipedia.org/wiki/HMAC]HMAC[/url] digest of "
+"[code]msg[/code] using [code]key[/code]. The [code]hash_type[/code] "
+"parameter is the hashing algorithm that is used for the inner and outer "
+"hashes.\n"
+"Currently, only [constant HashingContext.HASH_SHA256] and [constant "
+"HashingContext.HASH_SHA1] are supported."
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid ""
+"Sign a given [code]hash[/code] of type [code]hash_type[/code] with the "
+"provided private [code]key[/code]."
+msgstr ""
+
+#: doc/classes/Crypto.xml
+msgid ""
+"Verify that a given [code]signature[/code] for [code]hash[/code] of type "
+"[code]hash_type[/code] against the provided public [code]key[/code]."
+msgstr ""
+
+#: doc/classes/CryptoKey.xml
+msgid "A cryptographic key (RSA)."
+msgstr ""
+
+#: doc/classes/CryptoKey.xml
+msgid ""
+"The CryptoKey class represents a cryptographic key. Keys can be loaded and "
+"saved like any other [Resource].\n"
+"They can be used to generate a self-signed [X509Certificate] via [method "
+"Crypto.generate_self_signed_certificate] and as private key in [method "
+"StreamPeerSSL.accept_stream] along with the appropriate certificate.\n"
+"[b]Note:[/b] Not available in HTML5 exports."
+msgstr ""
+
+#: doc/classes/CryptoKey.xml
+msgid ""
+"Return [code]true[/code] if this CryptoKey only has the public part, and not "
+"the private one."
+msgstr ""
+
+#: doc/classes/CryptoKey.xml
+msgid ""
+"Loads a key from [code]path[/code]. If [code]public_only[/code] is "
+"[code]true[/code], only the public key will be loaded.\n"
+"[b]Note:[/b] [code]path[/code] should be a \"*.pub\" file if "
+"[code]public_only[/code] is [code]true[/code], a \"*.key\" file otherwise."
+msgstr ""
+
+#: doc/classes/CryptoKey.xml
+msgid ""
+"Loads a key from the given [code]string[/code]. If [code]public_only[/code] "
+"is [code]true[/code], only the public key will be loaded."
+msgstr ""
+
+#: doc/classes/CryptoKey.xml
+msgid ""
+"Saves a key to the given [code]path[/code]. If [code]public_only[/code] is "
+"[code]true[/code], only the public key will be saved.\n"
+"[b]Note:[/b] [code]path[/code] should be a \"*.pub\" file if "
+"[code]public_only[/code] is [code]true[/code], a \"*.key\" file otherwise."
+msgstr ""
+
+#: doc/classes/CryptoKey.xml
+msgid ""
+"Returns a string containing the key in PEM format. If [code]public_only[/"
+"code] is [code]true[/code], only the public key will be included."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGBox.xml
+msgid "A CSG Box shape."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGBox.xml
+msgid "This node allows you to create a box for use with the CSG system."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGBox.xml
+msgid "Depth of the box measured from the center of the box."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGBox.xml
+msgid "Height of the box measured from the center of the box."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGBox.xml
+msgid "The material used to render the box."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGBox.xml
+msgid "Width of the box measured from the center of the box."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGCombiner.xml
+msgid "A CSG node that allows you to combine other CSG modifiers."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGCombiner.xml
+msgid ""
+"For complex arrangements of shapes, it is sometimes needed to add structure "
+"to your CSG nodes. The CSGCombiner node allows you to create this structure. "
+"The node encapsulates the result of the CSG operations of its children. In "
+"this way, it is possible to do operations on one set of shapes that are "
+"children of one CSGCombiner node, and a set of separate operations on a "
+"second set of shapes that are children of a second CSGCombiner node, and "
+"then do an operation that takes the two end results as its input to create "
+"the final shape."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGCylinder.xml
+msgid "A CSG Cylinder shape."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGCylinder.xml
+msgid ""
+"This node allows you to create a cylinder (or cone) for use with the CSG "
+"system."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGCylinder.xml
+msgid ""
+"If [code]true[/code] a cone is created, the [member radius] will only apply "
+"to one side."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGCylinder.xml
+msgid "The height of the cylinder."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGCylinder.xml
+msgid "The material used to render the cylinder."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGCylinder.xml
+msgid "The radius of the cylinder."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGCylinder.xml
+msgid ""
+"The number of sides of the cylinder, the higher this number the more detail "
+"there will be in the cylinder."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGCylinder.xml
+msgid ""
+"If [code]true[/code] the normals of the cylinder are set to give a smooth "
+"effect making the cylinder seem rounded. If [code]false[/code] the cylinder "
+"will have a flat shaded look."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGMesh.xml
+msgid "A CSG Mesh shape that uses a mesh resource."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGMesh.xml
+msgid ""
+"This CSG node allows you to use any mesh resource as a CSG shape, provided "
+"it is closed, does not self-intersect, does not contain internal faces and "
+"has no edges that connect to more then two faces."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGMesh.xml
+msgid "The [Material] used in drawing the CSG shape."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGMesh.xml
+msgid ""
+"The [Mesh] resource to use as a CSG shape.\n"
+"[b]Note:[/b] When using an [ArrayMesh], avoid meshes with vertex normals "
+"unless a flat shader is required. By default, CSGMesh will ignore the mesh's "
+"vertex normals and use a smooth shader calculated using the faces' normals. "
+"If a flat shader is required, ensure that all faces' vertex normals are "
+"parallel."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid "Extrudes a 2D polygon shape to create a 3D mesh."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"An array of 2D points is extruded to quickly and easily create a variety of "
+"3D meshes."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_DEPTH], the depth of the extrusion."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"Material to use for the resulting mesh. The UV maps the top half of the "
+"material to the extruded shape (U along the the length of the extrusions and "
+"V around the outline of the [member polygon]), the bottom-left quarter to "
+"the front end face, and the bottom-right quarter to the back end face."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid "The [member mode] used to extrude the [member polygon]."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_PATH], by default, the top half of the "
+"[member material] is stretched along the entire length of the extruded "
+"shape. If [code]false[/code] the top half of the material is repeated every "
+"step of the extrusion."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_PATH], the path interval or ratio of "
+"path points to extrusions."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_PATH], this will determine if the "
+"interval should be by distance ([constant PATH_INTERVAL_DISTANCE]) or "
+"subdivision fractions ([constant PATH_INTERVAL_SUBDIVIDE])."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_PATH], if [code]true[/code] the ends of "
+"the path are joined, by adding an extrusion between the last and first "
+"points of the path."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_PATH], if [code]true[/code] the "
+"[Transform] of the [CSGPolygon] is used as the starting point for the "
+"extrusions, not the [Transform] of the [member path_node]."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_PATH], the location of the [Path] "
+"object used to extrude the [member polygon]."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_PATH], the [enum PathRotation] method "
+"used to rotate the [member polygon] as it is extruded."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_PATH], extrusions that are less than "
+"this angle, will be merged together to reduce polygon count."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_PATH], this is the distance along the "
+"path, in meters, the texture coordinates will tile. When set to 0, texture "
+"coordinates will match geometry exactly with no tiling."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid "The point array that defines the 2D polygon that is extruded."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid "If [code]true[/code], applies smooth shading to the extrusions."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_SPIN], the total number of degrees the "
+"[member polygon] is rotated when extruding."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is [constant MODE_SPIN], the number of extrusions made."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid "The [member polygon] shape is extruded along the negative Z axis."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"The [member polygon] shape is extruded by rotating it around the Y axis."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"The [member polygon] shape is extruded along the [Path] specified in [member "
+"path_node]."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"The [member polygon] shape is not rotated.\n"
+"[b]Note:[/b] Requires the path's Z coordinates to continually decrease to "
+"ensure viable shapes."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"The [member polygon] shape is rotated along the path, but it is not rotated "
+"around the path axis.\n"
+"[b]Note:[/b] Requires the path's Z coordinates to continually decrease to "
+"ensure viable shapes."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"The [member polygon] shape follows the path and its rotations around the "
+"path axis."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is set to [constant MODE_PATH], [member path_interval] "
+"will determine the distance, in meters, each interval of the path will "
+"extrude."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPolygon.xml
+msgid ""
+"When [member mode] is set to [constant MODE_PATH], [member path_interval] "
+"will subdivide the polygons along the path."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPrimitive.xml
+msgid "Base class for CSG primitives."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPrimitive.xml
+msgid ""
+"Parent class for various CSG primitives. It contains code and functionality "
+"that is common between them. It cannot be used directly. Instead use one of "
+"the various classes that inherit from it."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGPrimitive.xml
+msgid "Invert the faces of the mesh."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid "The CSG base class."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"This is the CSG base class that provides CSG operation support to the "
+"various CSG nodes in Godot."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml doc/classes/RayCast2D.xml
+#: doc/classes/SoftBody.xml
+msgid "Returns an individual bit on the collision mask."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"Returns an [Array] with two elements, the first is the [Transform] of this "
+"node and the second is the root [Mesh] of this node. Only works when this "
+"node is the root shape."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"Returns [code]true[/code] if this is a root shape and is thus the object "
+"that is rendered."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml doc/classes/SoftBody.xml
+msgid ""
+"Sets individual bits on the layer mask. Use this if you only need to change "
+"one layer's value."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml doc/classes/SoftBody.xml
+msgid ""
+"Sets individual bits on the collision mask. Use this if you only need to "
+"change one layer's value."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"Calculate tangents for the CSG shape which allows the use of normal maps. "
+"This is only applied on the root shape, this setting is ignored on any child."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"The physics layers this area is in.\n"
+"Collidable objects can exist in any of 32 different layers. These layers "
+"work like a tagging system, and are not visual. A collidable can use these "
+"layers to select with which objects it can collide, using the collision_mask "
+"property.\n"
+"A contact is detected if object A is in any of the layers that object B "
+"scans, or object B is in any layer scanned by object A. See [url=$DOCS_URL/"
+"tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"The physics layers this CSG shape scans for collisions. See [url=$DOCS_URL/"
+"tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"The operation that is performed on this shape. This is ignored for the first "
+"CSG child node as the operation is between this node and the previous child "
+"of this nodes parent."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"Snap makes the mesh snap to a given distance so that the faces of two meshes "
+"can be perfectly aligned. A lower value results in greater precision but may "
+"be harder to adjust."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"Adds a collision shape to the physics engine for our CSG shape. This will "
+"always act like a static body. Note that the collision shape is still active "
+"even if the CSG shape itself is hidden."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"Geometry of both primitives is merged, intersecting geometry is removed."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid "Only intersecting geometry remains, the rest is removed."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGShape.xml
+msgid ""
+"The second shape is subtracted from the first, leaving a dent with its shape."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGSphere.xml
+msgid "A CSG Sphere shape."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGSphere.xml
+msgid "This node allows you to create a sphere for use with the CSG system."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGSphere.xml
+msgid "The material used to render the sphere."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGSphere.xml
+msgid "Number of vertical slices for the sphere."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGSphere.xml
+msgid "Radius of the sphere."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGSphere.xml
+msgid "Number of horizontal slices for the sphere."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGSphere.xml
+msgid ""
+"If [code]true[/code] the normals of the sphere are set to give a smooth "
+"effect making the sphere seem rounded. If [code]false[/code] the sphere will "
+"have a flat shaded look."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGTorus.xml
+msgid "A CSG Torus shape."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGTorus.xml
+msgid "This node allows you to create a torus for use with the CSG system."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGTorus.xml
+msgid "The inner radius of the torus."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGTorus.xml
+msgid "The material used to render the torus."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGTorus.xml
+msgid "The outer radius of the torus."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGTorus.xml
+msgid "The number of edges each ring of the torus is constructed of."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGTorus.xml
+msgid "The number of slices the torus is constructed of."
+msgstr ""
+
+#: modules/csg/doc_classes/CSGTorus.xml
+msgid ""
+"If [code]true[/code] the normals of the torus are set to give a smooth "
+"effect making the torus seem rounded. If [code]false[/code] the torus will "
+"have a flat shaded look."
+msgstr ""
+
+#: modules/mono/doc_classes/CSharpScript.xml
+msgid ""
+"A script implemented in the C# programming language (Mono-enabled builds "
+"only)."
+msgstr ""
+
+#: modules/mono/doc_classes/CSharpScript.xml
+msgid ""
+"This class represents a C# script. It is the C# equivalent of the [GDScript] "
+"class and is only available in Mono-enabled Godot builds.\n"
+"See also [GodotSharp]."
+msgstr ""
+
+#: modules/mono/doc_classes/CSharpScript.xml
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
+msgstr ""
+
+#: modules/mono/doc_classes/CSharpScript.xml
+#: modules/gdnative/doc_classes/PluginScript.xml
+msgid "Returns a new instance of the script."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "A CubeMap is a 6-sided 3D texture."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid ""
+"A 6-sided 3D texture typically used for faking reflections. It can be used "
+"to make an object look as if it's reflecting its surroundings. This usually "
+"delivers much better performance than other reflection methods."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Returns the [CubeMap]'s height."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid ""
+"Returns an [Image] for a side of the [CubeMap] using one of the [enum Side] "
+"constants."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Returns the [CubeMap]'s width."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid ""
+"Sets an [Image] for a side of the [CubeMap] using one of the [enum Side] "
+"constants."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid ""
+"The render flags for the [CubeMap]. See the [enum Flags] constants for "
+"details."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid ""
+"The lossy storage quality of the [CubeMap] if the storage mode is set to "
+"[constant STORAGE_COMPRESS_LOSSY]."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "The [CubeMap]'s storage mode. See [enum Storage] constants."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Store the [CubeMap] without any compression."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Store the [CubeMap] with strong compression that reduces image quality."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid ""
+"Store the [CubeMap] with moderate compression that doesn't reduce image "
+"quality."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Identifier for the left face of the [CubeMap]."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Identifier for the right face of the [CubeMap]."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Identifier for the bottom face of the [CubeMap]."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Identifier for the top face of the [CubeMap]."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Identifier for the front face of the [CubeMap]."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Identifier for the back face of the [CubeMap]."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Generate mipmaps, to enable smooth zooming out of the texture."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Repeat (instead of clamp to edge)."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Turn on magnifying filter, to enable smooth zooming in of the texture."
+msgstr ""
+
+#: doc/classes/CubeMap.xml
+msgid "Default flags. Generate mipmaps, repeat, and filter are enabled."
+msgstr ""
+
+#: doc/classes/CubeMesh.xml
+msgid "Generate an axis-aligned cuboid [PrimitiveMesh]."
+msgstr ""
+
+#: doc/classes/CubeMesh.xml
+msgid ""
+"Generate an axis-aligned cuboid [PrimitiveMesh].\n"
+"The cube's UV layout is arranged in a 3×2 layout that allows texturing each "
+"face individually. To apply the same texture on all faces, change the "
+"material's UV property to [code]Vector3(3, 2, 1)[/code].\n"
+"[b]Note:[/b] When using a large textured [CubeMesh] (e.g. as a floor), you "
+"may stumble upon UV jittering issues depending on the camera angle. To solve "
+"this, increase [member subdivide_depth], [member subdivide_height] and "
+"[member subdivide_width] until you no longer notice UV jittering."
+msgstr ""
+
+#: doc/classes/CubeMesh.xml
+msgid "Size of the cuboid mesh."
+msgstr ""
+
+#: doc/classes/CubeMesh.xml
+msgid "Number of extra edge loops inserted along the Z axis."
+msgstr ""
+
+#: doc/classes/CubeMesh.xml
+msgid "Number of extra edge loops inserted along the Y axis."
+msgstr ""
+
+#: doc/classes/CubeMesh.xml
+msgid "Number of extra edge loops inserted along the X axis."
+msgstr ""
+
+#: doc/classes/CullInstance.xml
+msgid "Parent of all nodes that can be culled by the Portal system."
+msgstr ""
+
+#: doc/classes/CullInstance.xml
+msgid ""
+"Provides common functionality to nodes that can be culled by the [Portal] "
+"system.\n"
+"[code]Static[/code] and [code]Dynamic[/code] objects are the most "
+"efficiently managed objects in the system, but there are some caveats. They "
+"are expected to be present initially when [Room]s are converted using the "
+"[RoomManager] [code]rooms_convert[/code] function, and their lifetime should "
+"be the same as the game level (i.e. present until you call "
+"[code]rooms_clear[/code] on the [RoomManager]. Although you shouldn't "
+"create / delete these objects during gameplay, you can manage their "
+"visibility with the standard [code]hide[/code] and [code]show[/code] "
+"commands.\n"
+"[code]Roaming[/code] objects on the other hand, require extra processing to "
+"keep track of which [Room] they are within. This enables them to be culled "
+"effectively, wherever they are.\n"
+"[code]Global[/code] objects are not culled by the portal system, and use "
+"view frustum culling only.\n"
+"Objects that are not [code]Static[/code] or [code]Dynamic[/code] can be "
+"freely created and deleted during the lifetime of the game level."
+msgstr ""
+
+#: doc/classes/CullInstance.xml
+msgid ""
+"When set to [code]0[/code], [CullInstance]s will be autoplaced in the [Room] "
+"with the highest priority.\n"
+"When set to a value other than [code]0[/code], the system will attempt to "
+"autoplace in a [Room] with the [code]autoplace_priority[/code], if it is "
+"present.\n"
+"This can be used to control autoplacement of building exteriors in an outer "
+"[RoomGroup]."
+msgstr ""
+
+#: doc/classes/CullInstance.xml
+msgid ""
+"When a manual bound has not been explicitly specified for a [Room], the "
+"convex hull bound will be estimated from the geometry of the objects within "
+"the room. This setting determines whether the geometry of an object is "
+"included in this estimate of the room bound.\n"
+"[b]Note:[/b] This setting is only relevant when the object is set to "
+"[code]PORTAL_MODE_STATIC[/code] or [code]PORTAL_MODE_DYNAMIC[/code], and for "
+"[Portal]s."
+msgstr ""
+
+#: doc/classes/CullInstance.xml
+msgid ""
+"When using [Room]s and [Portal]s, this specifies how the [CullInstance] is "
+"processed in the system."
+msgstr ""
+
+#: doc/classes/CullInstance.xml
+msgid ""
+"Use for instances within [Room]s that will [b]not move[/b] - e.g. walls, "
+"floors.\n"
+"[b]Note:[/b] If you attempt to delete a [code]PORTAL_MODE_STATIC[/code] "
+"instance while the room graph is loaded (converted), it will unload the room "
+"graph and deactivate portal culling. This is because the [b]room graph[/b] "
+"data has been invalidated. You will need to reconvert the rooms using the "
+"[RoomManager] to activate the system again."
+msgstr ""
+
+#: doc/classes/CullInstance.xml
+msgid ""
+"Use for instances within rooms that will move but [b]not change room[/b] - e."
+"g. moving platforms.\n"
+"[b]Note:[/b] If you attempt to delete a [code]PORTAL_MODE_DYNAMIC[/code] "
+"instance while the room graph is loaded (converted), it will unload the room "
+"graph and deactivate portal culling. This is because the [b]room graph[/b] "
+"data has been invalidated. You will need to reconvert the rooms using the "
+"[RoomManager] to activate the system again."
+msgstr ""
+
+#: doc/classes/CullInstance.xml
+msgid "Use for instances that will move [b]between[/b] [Room]s - e.g. players."
+msgstr ""
+
+#: doc/classes/CullInstance.xml
+msgid ""
+"Use for instances that will be frustum culled only - e.g. first person "
+"weapon, debug."
+msgstr ""
+
+#: doc/classes/CullInstance.xml
+msgid ""
+"Use for instances that will not be shown at all - e.g. [b]manual room "
+"bounds[/b] (specified by prefix [i]'Bound_'[/i])."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "A mathematic curve."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"A curve that can be saved and re-used for other objects. By default, it "
+"ranges between [code]0[/code] and [code]1[/code] on the Y axis and positions "
+"points relative to the [code]0.5[/code] Y position."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Adds a point to the curve. For each side, if the [code]*_mode[/code] is "
+"[constant TANGENT_LINEAR], the [code]*_tangent[/code] angle (in degrees) "
+"uses the slope of the curve halfway to the adjacent point. Allows custom "
+"assignments to the [code]*_tangent[/code] angle if [code]*_mode[/code] is "
+"set to [constant TANGENT_FREE]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "Recomputes the baked cache of points for the curve."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Removes points that are closer than [code]CMP_EPSILON[/code] (0.00001) units "
+"to their neighbor on the curve."
+msgstr ""
+
+#: doc/classes/Curve.xml doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid "Removes all points from the curve."
+msgstr ""
+
+#: doc/classes/Curve.xml doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid "Returns the number of points describing the curve."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Returns the left [enum TangentMode] for the point at [code]index[/code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Returns the left tangent angle (in degrees) for the point at [code]index[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "Returns the curve coordinates for the point at [code]index[/code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Returns the right [enum TangentMode] for the point at [code]index[/code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Returns the right tangent angle (in degrees) for the point at [code]index[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Returns the Y value for the point that would exist at the X position "
+"[code]offset[/code] along the curve."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Returns the Y value for the point that would exist at the X position "
+"[code]offset[/code] along the curve using the baked cache. Bakes the curve's "
+"points if not already baked."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "Removes the point at [code]index[/code] from the curve."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Sets the left [enum TangentMode] for the point at [code]index[/code] to "
+"[code]mode[/code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Sets the left tangent angle for the point at [code]index[/code] to "
+"[code]tangent[/code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "Sets the offset from [code]0.5[/code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Sets the right [enum TangentMode] for the point at [code]index[/code] to "
+"[code]mode[/code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Sets the right tangent angle for the point at [code]index[/code] to "
+"[code]tangent[/code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"Assigns the vertical position [code]y[/code] to the point at [code]index[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "The number of points to include in the baked (i.e. cached) curve data."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "The maximum value the curve can reach."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "The minimum value the curve can reach."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "Emitted when [member max_value] or [member min_value] is changed."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "The tangent on this side of the point is user-defined."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid ""
+"The curve calculates the tangent on this side of the point as the slope "
+"halfway towards the adjacent point."
+msgstr ""
+
+#: doc/classes/Curve.xml
+msgid "The total number of available tangent modes."
+msgstr ""
+
+#: doc/classes/Curve2D.xml
+msgid "Describes a Bézier curve in 2D space."
+msgstr ""
+
+#: doc/classes/Curve2D.xml
+msgid ""
+"This class describes a Bézier curve in 2D space. It is mainly used to give a "
+"shape to a [Path2D], but can be manually sampled for other purposes.\n"
+"It keeps a cache of precalculated points along the curve, to speed up "
+"further calculations."
+msgstr ""
+
+#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid ""
+"Adds a point to a curve at [code]position[/code], with control points "
+"[code]in[/code] and [code]out[/code].\n"
+"If [code]at_position[/code] is given, the point is inserted before the point "
+"number [code]at_position[/code], moving that point (and every point after) "
+"after the inserted point. If [code]at_position[/code] is not given, or is an "
+"illegal value ([code]at_position <0[/code] or [code]at_position >= [method "
+"get_point_count][/code]), the point will be appended at the end of the point "
+"list."
+msgstr ""
+
+#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid ""
+"Returns the total length of the curve, based on the cached points. Given "
+"enough density (see [member bake_interval]), it should be approximate enough."
+msgstr ""
+
+#: doc/classes/Curve2D.xml
+msgid "Returns the cache of points as a [PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/Curve2D.xml
+msgid ""
+"Returns the closest offset to [code]to_point[/code]. This offset is meant to "
+"be used in [method interpolate_baked].\n"
+"[code]to_point[/code] must be in this curve's local space."
+msgstr ""
+
+#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid ""
+"Returns the closest baked point (in curve's local space) to [code]to_point[/"
+"code].\n"
+"[code]to_point[/code] must be in this curve's local space."
+msgstr ""
+
+#: doc/classes/Curve2D.xml
+msgid ""
+"Returns the position of the control point leading to the vertex [code]idx[/"
+"code]. The returned position is relative to the vertex [code]idx[/code]. If "
+"the index is out of bounds, the function sends an error to the console, and "
+"returns [code](0, 0)[/code]."
+msgstr ""
+
+#: doc/classes/Curve2D.xml
+msgid ""
+"Returns the position of the control point leading out of the vertex "
+"[code]idx[/code]. The returned position is relative to the vertex [code]idx[/"
+"code]. If the index is out of bounds, the function sends an error to the "
+"console, and returns [code](0, 0)[/code]."
+msgstr ""
+
+#: doc/classes/Curve2D.xml
+msgid ""
+"Returns the position of the vertex [code]idx[/code]. If the index is out of "
+"bounds, the function sends an error to the console, and returns [code](0, 0)"
+"[/code]."
+msgstr ""
+
+#: doc/classes/Curve2D.xml
+msgid ""
+"Returns the position between the vertex [code]idx[/code] and the vertex "
+"[code]idx + 1[/code], where [code]t[/code] controls if the point is the "
+"first vertex ([code]t = 0.0[/code]), the last vertex ([code]t = 1.0[/code]), "
+"or in between. Values of [code]t[/code] outside the range ([code]0.0 >= t "
+"<=1[/code]) give strange, but predictable results.\n"
+"If [code]idx[/code] is out of bounds it is truncated to the first or last "
+"vertex, and [code]t[/code] is ignored. If the curve has no points, the "
+"function sends an error to the console, and returns [code](0, 0)[/code]."
+msgstr ""
+
+#: doc/classes/Curve2D.xml
+msgid ""
+"Returns a point within the curve at position [code]offset[/code], where "
+"[code]offset[/code] is measured as a pixel distance along the curve.\n"
+"To do that, it finds the two cached points where the [code]offset[/code] "
+"lies between, then interpolates the values. This interpolation is cubic if "
+"[code]cubic[/code] is set to [code]true[/code], or linear if set to "
+"[code]false[/code].\n"
+"Cubic interpolation tends to follow the curves better, but linear is faster "
+"(and often, precise enough)."
+msgstr ""
+
+#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid ""
+"Returns the position at the vertex [code]fofs[/code]. It calls [method "
+"interpolate] using the integer part of [code]fofs[/code] as [code]idx[/"
+"code], and its fractional part as [code]t[/code]."
+msgstr ""
+
+#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid ""
+"Deletes the point [code]idx[/code] from the curve. Sends an error to the "
+"console if [code]idx[/code] is out of bounds."
+msgstr ""
+
+#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid ""
+"Sets the position of the control point leading to the vertex [code]idx[/"
+"code]. If the index is out of bounds, the function sends an error to the "
+"console. The position is relative to the vertex."
+msgstr ""
+
+#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid ""
+"Sets the position of the control point leading out of the vertex [code]idx[/"
+"code]. If the index is out of bounds, the function sends an error to the "
+"console. The position is relative to the vertex."
+msgstr ""
+
+#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid ""
+"Sets the position for the vertex [code]idx[/code]. If the index is out of "
+"bounds, the function sends an error to the console."
+msgstr ""
+
+#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
+msgid ""
+"Returns a list of points along the curve, with a curvature controlled point "
+"density. That is, the curvier parts will have more points than the "
+"straighter parts.\n"
+"This approximation makes straight segments between each point, then "
+"subdivides those segments until the resulting shape is similar enough.\n"
+"[code]max_stages[/code] controls how many subdivisions a curve segment may "
+"face before it is considered approximate enough. Each subdivision splits the "
+"segment in half, so the default 5 stages may mean up to 32 subdivisions per "
+"curve segment. Increase with care!\n"
+"[code]tolerance_degrees[/code] controls how many degrees the midpoint of a "
+"segment may deviate from the real curve, before the segment has to be "
+"subdivided."
+msgstr ""
+
+#: doc/classes/Curve2D.xml
+msgid ""
+"The distance in pixels between two adjacent cached points. Changing it "
+"forces the cache to be recomputed the next time the [method "
+"get_baked_points] or [method get_baked_length] function is called. The "
+"smaller the distance, the more points in the cache and the more memory it "
+"will consume, so use with care."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid "Describes a Bézier curve in 3D space."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"This class describes a Bézier curve in 3D space. It is mainly used to give a "
+"shape to a [Path], but can be manually sampled for other purposes.\n"
+"It keeps a cache of precalculated points along the curve, to speed up "
+"further calculations."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid "Returns the cache of points as a [PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid "Returns the cache of tilts as a [PoolRealArray]."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"Returns the cache of up vectors as a [PoolVector3Array].\n"
+"If [member up_vector_enabled] is [code]false[/code], the cache will be empty."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"Returns the closest offset to [code]to_point[/code]. This offset is meant to "
+"be used in [method interpolate_baked] or [method "
+"interpolate_baked_up_vector].\n"
+"[code]to_point[/code] must be in this curve's local space."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"Returns the position of the control point leading to the vertex [code]idx[/"
+"code]. The returned position is relative to the vertex [code]idx[/code]. If "
+"the index is out of bounds, the function sends an error to the console, and "
+"returns [code](0, 0, 0)[/code]."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"Returns the position of the control point leading out of the vertex "
+"[code]idx[/code]. The returned position is relative to the vertex [code]idx[/"
+"code]. If the index is out of bounds, the function sends an error to the "
+"console, and returns [code](0, 0, 0)[/code]."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"Returns the position of the vertex [code]idx[/code]. If the index is out of "
+"bounds, the function sends an error to the console, and returns [code](0, 0, "
+"0)[/code]."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"Returns the tilt angle in radians for the point [code]idx[/code]. If the "
+"index is out of bounds, the function sends an error to the console, and "
+"returns [code]0[/code]."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"Returns the position between the vertex [code]idx[/code] and the vertex "
+"[code]idx + 1[/code], where [code]t[/code] controls if the point is the "
+"first vertex ([code]t = 0.0[/code]), the last vertex ([code]t = 1.0[/code]), "
+"or in between. Values of [code]t[/code] outside the range ([code]0.0 >= t "
+"<=1[/code]) give strange, but predictable results.\n"
+"If [code]idx[/code] is out of bounds it is truncated to the first or last "
+"vertex, and [code]t[/code] is ignored. If the curve has no points, the "
+"function sends an error to the console, and returns [code](0, 0, 0)[/code]."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"Returns a point within the curve at position [code]offset[/code], where "
+"[code]offset[/code] is measured as a distance in 3D units along the curve.\n"
+"To do that, it finds the two cached points where the [code]offset[/code] "
+"lies between, then interpolates the values. This interpolation is cubic if "
+"[code]cubic[/code] is set to [code]true[/code], or linear if set to "
+"[code]false[/code].\n"
+"Cubic interpolation tends to follow the curves better, but linear is faster "
+"(and often, precise enough)."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"Returns an up vector within the curve at position [code]offset[/code], where "
+"[code]offset[/code] is measured as a distance in 3D units along the curve.\n"
+"To do that, it finds the two cached up vectors where the [code]offset[/code] "
+"lies between, then interpolates the values. If [code]apply_tilt[/code] is "
+"[code]true[/code], an interpolated tilt is applied to the interpolated up "
+"vector.\n"
+"If the curve has no up vectors, the function sends an error to the console, "
+"and returns [code](0, 1, 0)[/code]."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"Sets the tilt angle in radians for the point [code]idx[/code]. If the index "
+"is out of bounds, the function sends an error to the console.\n"
+"The tilt controls the rotation along the look-at axis an object traveling "
+"the path would have. In the case of a curve controlling a [PathFollow], this "
+"tilt is an offset over the natural tilt the [PathFollow] calculates."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"The distance in meters between two adjacent cached points. Changing it "
+"forces the cache to be recomputed the next time the [method "
+"get_baked_points] or [method get_baked_length] function is called. The "
+"smaller the distance, the more points in the cache and the more memory it "
+"will consume, so use with care."
+msgstr ""
+
+#: doc/classes/Curve3D.xml
+msgid ""
+"If [code]true[/code], the curve will bake up vectors used for orientation. "
+"This is used when [member PathFollow.rotation_mode] is set to [constant "
+"PathFollow.ROTATION_ORIENTED]. Changing it forces the cache to be recomputed."
+msgstr ""
+
+#: doc/classes/CurveTexture.xml
+msgid "A texture that shows a curve."
+msgstr ""
+
+#: doc/classes/CurveTexture.xml
+msgid ""
+"Renders a given [Curve] provided to it. Simplifies the task of drawing "
+"curves and/or saving them as image files."
+msgstr ""
+
+#: doc/classes/CurveTexture.xml
+msgid "The [code]curve[/code] rendered onto the texture."
+msgstr ""
+
+#: doc/classes/CurveTexture.xml
+msgid "The width of the texture."
+msgstr ""
+
+#: doc/classes/CylinderMesh.xml
+msgid "Class representing a cylindrical [PrimitiveMesh]."
+msgstr ""
+
+#: doc/classes/CylinderMesh.xml
+msgid ""
+"Class representing a cylindrical [PrimitiveMesh]. This class can be used to "
+"create cones by setting either the [member top_radius] or [member "
+"bottom_radius] properties to [code]0.0[/code]."
+msgstr ""
+
+#: doc/classes/CylinderMesh.xml
+msgid ""
+"Bottom radius of the cylinder. If set to [code]0.0[/code], the bottom faces "
+"will not be generated, resulting in a conic shape."
+msgstr ""
+
+#: doc/classes/CylinderMesh.xml
+msgid "Full height of the cylinder."
+msgstr ""
+
+#: doc/classes/CylinderMesh.xml
+msgid ""
+"Number of radial segments on the cylinder. Higher values result in a more "
+"detailed cylinder/cone at the cost of performance."
+msgstr ""
+
+#: doc/classes/CylinderMesh.xml
+msgid ""
+"Number of edge rings along the height of the cylinder. Changing [member "
+"rings] does not have any visual impact unless a shader or procedural mesh "
+"tool is used to alter the vertex data. Higher values result in more "
+"subdivisions, which can be used to create smoother-looking effects with "
+"shaders or procedural mesh tools (at the cost of performance). When not "
+"altering the vertex data using a shader or procedural mesh tool, [member "
+"rings] should be kept to its default value."
+msgstr ""
+
+#: doc/classes/CylinderMesh.xml
+msgid ""
+"Top radius of the cylinder. If set to [code]0.0[/code], the top faces will "
+"not be generated, resulting in a conic shape."
+msgstr ""
+
+#: doc/classes/CylinderShape.xml
+msgid "Cylinder shape for collisions."
+msgstr ""
+
+#: doc/classes/CylinderShape.xml
+msgid "The cylinder's height."
+msgstr ""
+
+#: doc/classes/CylinderShape.xml
+msgid "The cylinder's radius."
+msgstr ""
+
+#: doc/classes/DampedSpringJoint2D.xml
+msgid "Damped spring constraint for 2D physics."
+msgstr ""
+
+#: doc/classes/DampedSpringJoint2D.xml
+msgid ""
+"Damped spring constraint for 2D physics. This resembles a spring joint that "
+"always wants to go back to a given length."
+msgstr ""
+
+#: doc/classes/DampedSpringJoint2D.xml
+msgid ""
+"The spring joint's damping ratio. A value between [code]0[/code] and "
+"[code]1[/code]. When the two bodies move into different directions the "
+"system tries to align them to the spring axis again. A high [code]damping[/"
+"code] value forces the attached bodies to align faster."
+msgstr ""
+
+#: doc/classes/DampedSpringJoint2D.xml
+msgid ""
+"The spring joint's maximum length. The two attached bodies cannot stretch it "
+"past this value."
+msgstr ""
+
+#: doc/classes/DampedSpringJoint2D.xml
+msgid ""
+"When the bodies attached to the spring joint move they stretch or squash it. "
+"The joint always tries to resize towards this length."
+msgstr ""
+
+#: doc/classes/DampedSpringJoint2D.xml
+msgid ""
+"The higher the value, the less the bodies attached to the joint will deform "
+"it. The joint applies an opposing force to the bodies, the product of the "
+"stiffness multiplied by the size difference from its resting length."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid "Dictionary type."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid ""
+"Dictionary type. Associative container which contains values referenced by "
+"unique keys. Dictionaries are composed of pairs of keys (which must be "
+"unique) and values. Dictionaries will preserve the insertion order when "
+"adding elements, even though this may not be reflected when printing the "
+"dictionary. In other programming languages, this data structure is sometimes "
+"referred to as a hash map or associative array.\n"
+"You can define a dictionary by placing a comma-separated list of [code]key: "
+"value[/code] pairs in curly braces [code]{}[/code].\n"
+"Erasing elements while iterating over them [b]is not supported[/b] and will "
+"result in undefined behavior.\n"
+"[b]Note:[/b] Dictionaries are always passed by reference. To get a copy of a "
+"dictionary which can be modified independently of the original dictionary, "
+"use [method duplicate].\n"
+"Creating a dictionary:\n"
+"[codeblock]\n"
+"var my_dict = {} # Creates an empty dictionary.\n"
+"\n"
+"var dict_variable_key = \"Another key name\"\n"
+"var dict_variable_value = \"value2\"\n"
+"var another_dict = {\n"
+" \"Some key name\": \"value1\",\n"
+" dict_variable_key: dict_variable_value,\n"
+"}\n"
+"\n"
+"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n"
+"\n"
+"# Alternative Lua-style syntax.\n"
+"# Doesn't require quotes around keys, but only string constants can be used "
+"as key names.\n"
+"# Additionally, key names must start with a letter or an underscore.\n"
+"# Here, `some_key` is a string literal, not a variable!\n"
+"another_dict = {\n"
+" some_key = 42,\n"
+"}\n"
+"[/codeblock]\n"
+"You can access a dictionary's values by referencing the appropriate key. In "
+"the above example, [code]points_dict[\"White\"][/code] will return [code]50[/"
+"code]. You can also write [code]points_dict.White[/code], which is "
+"equivalent. However, you'll have to use the bracket syntax if the key you're "
+"accessing the dictionary with isn't a fixed string (such as a number or "
+"variable).\n"
+"[codeblock]\n"
+"export(string, \"White\", \"Yellow\", \"Orange\") var my_color\n"
+"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n"
+"func _ready():\n"
+" # We can't use dot syntax here as `my_color` is a variable.\n"
+" var points = points_dict[my_color]\n"
+"[/codeblock]\n"
+"In the above code, [code]points[/code] will be assigned the value that is "
+"paired with the appropriate color selected in [code]my_color[/code].\n"
+"Dictionaries can contain more complex data:\n"
+"[codeblock]\n"
+"my_dict = {\"First Array\": [1, 2, 3, 4]} # Assigns an Array to a String "
+"key.\n"
+"[/codeblock]\n"
+"To add a key to an existing dictionary, access it like an existing key and "
+"assign to it:\n"
+"[codeblock]\n"
+"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n"
+"points_dict[\"Blue\"] = 150 # Add \"Blue\" as a key and assign 150 as its "
+"value.\n"
+"[/codeblock]\n"
+"Finally, dictionaries can contain different types of keys and values in the "
+"same dictionary:\n"
+"[codeblock]\n"
+"# This is a valid dictionary.\n"
+"# To access the string \"Nested value\" below, use `my_dict.sub_dict."
+"sub_key` or `my_dict[\"sub_dict\"][\"sub_key\"]`.\n"
+"# Indexing styles can be mixed and matched depending on your needs.\n"
+"var my_dict = {\n"
+" \"String Key\": 5,\n"
+" 4: [1, 2, 3],\n"
+" 7: \"Hello\",\n"
+" \"sub_dict\": {\"sub_key\": \"Nested value\"},\n"
+"}\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Unlike [Array]s, you can't compare dictionaries directly:\n"
+"[codeblock]\n"
+"array1 = [1, 2, 3]\n"
+"array2 = [1, 2, 3]\n"
+"\n"
+"func compare_arrays():\n"
+" print(array1 == array2) # Will print true.\n"
+"\n"
+"var dict1 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
+"var dict2 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
+"\n"
+"func compare_dictionaries():\n"
+" print(dict1 == dict2) # Will NOT print true.\n"
+"[/codeblock]\n"
+"You need to first calculate the dictionary's hash with [method hash] before "
+"you can compare them:\n"
+"[codeblock]\n"
+"var dict1 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
+"var dict2 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
+"\n"
+"func compare_dictionaries():\n"
+" print(dict1.hash() == dict2.hash()) # Will print true.\n"
+"[/codeblock]\n"
+"[b]Note:[/b] When declaring a dictionary with [code]const[/code], the "
+"dictionary itself can still be mutated by defining the values of individual "
+"keys. Using [code]const[/code] will only prevent assigning the constant with "
+"another value after it was initialized."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid "$DOCS_URL/tutorials/scripting/gdscript/gdscript_basics.html#dictionary"
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid "Clear the dictionary, removing all key/value pairs."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid ""
+"Creates a copy of the dictionary, and returns it. The [code]deep[/code] "
+"parameter causes inner dictionaries and arrays to be copied recursively, but "
+"does not apply to objects."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid "Returns [code]true[/code] if the dictionary is empty."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid ""
+"Erase a dictionary key/value pair by key. Returns [code]true[/code] if the "
+"given key was present in the dictionary, [code]false[/code] otherwise.\n"
+"[b]Note:[/b] Don't erase elements while iterating over the dictionary. You "
+"can iterate over the [method keys] array instead."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid ""
+"Returns the current value for the specified key in the [Dictionary]. If the "
+"key does not exist, the method returns the value of the optional default "
+"argument, or [code]null[/code] if it is omitted."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid ""
+"Returns [code]true[/code] if the dictionary has a given key.\n"
+"[b]Note:[/b] This is equivalent to using the [code]in[/code] operator as "
+"follows:\n"
+"[codeblock]\n"
+"# Will evaluate to `true`.\n"
+"if \"godot\" in {\"godot\": \"engine\"}:\n"
+" pass\n"
+"[/codeblock]\n"
+"This method (like the [code]in[/code] operator) will evaluate to [code]true[/"
+"code] as long as the key exists, even if the associated value is [code]null[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid ""
+"Returns [code]true[/code] if the dictionary has all the keys in the given "
+"array."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid ""
+"Returns a hashed integer value representing the dictionary contents. This "
+"can be used to compare dictionaries by value:\n"
+"[codeblock]\n"
+"var dict1 = {0: 10}\n"
+"var dict2 = {0: 10}\n"
+"# The line below prints `true`, whereas it would have printed `false` if "
+"both variables were compared directly.\n"
+"print(dict1.hash() == dict2.hash())\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Dictionaries with the same keys/values but in a different order "
+"will have a different hash."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid "Returns the list of keys in the [Dictionary]."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid "Returns the number of keys in the dictionary."
+msgstr ""
+
+#: doc/classes/Dictionary.xml
+msgid "Returns the list of values in the [Dictionary]."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid "Directional light from a distance, as from the Sun."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"A directional light is a type of [Light] node that models an infinite number "
+"of parallel rays covering the entire scene. It is used for lights with "
+"strong intensity that are located far away from the scene to model sunlight "
+"or moonlight. The worldspace location of the DirectionalLight transform "
+"(origin) is ignored. Only the basis is used to determine light direction."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml doc/classes/Light.xml
+#: doc/classes/OmniLight.xml doc/classes/SpotLight.xml
+msgid "$DOCS_URL/tutorials/3d/lights_and_shadows.html"
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"Amount of extra bias for shadow splits that are far away. If self-shadowing "
+"occurs only on the splits far away, increasing this value can fix them."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"If [code]true[/code], shadow detail is sacrificed in exchange for smoother "
+"transitions between splits."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"Optimizes shadow rendering for detail versus movement. See [enum "
+"ShadowDepthRange]."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid "The maximum distance for shadow splits."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid "The light's shadow rendering algorithm. See [enum ShadowMode]."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"Can be used to fix special cases of self shadowing when objects are "
+"perpendicular to the light."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"The distance from camera to shadow split 1. Relative to [member "
+"directional_shadow_max_distance]. Only used when [member "
+"directional_shadow_mode] is [code]SHADOW_PARALLEL_2_SPLITS[/code] or "
+"[code]SHADOW_PARALLEL_4_SPLITS[/code]."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"The distance from shadow split 1 to split 2. Relative to [member "
+"directional_shadow_max_distance]. Only used when [member "
+"directional_shadow_mode] is [code]SHADOW_PARALLEL_2_SPLITS[/code] or "
+"[code]SHADOW_PARALLEL_4_SPLITS[/code]."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"The distance from shadow split 2 to split 3. Relative to [member "
+"directional_shadow_max_distance]. Only used when [member "
+"directional_shadow_mode] is [code]SHADOW_PARALLEL_4_SPLITS[/code]."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"Renders the entire scene's shadow map from an orthogonal point of view. This "
+"is the fastest directional shadow mode. May result in blurrier shadows on "
+"close objects."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"Splits the view frustum in 2 areas, each with its own shadow map. This "
+"shadow mode is a compromise between [constant SHADOW_ORTHOGONAL] and "
+"[constant SHADOW_PARALLEL_4_SPLITS] in terms of performance."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"Splits the view frustum in 4 areas, each with its own shadow map. This is "
+"the slowest directional shadow mode."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"Keeps the shadow stable when the camera moves, at the cost of lower "
+"effective shadow resolution."
+msgstr ""
+
+#: doc/classes/DirectionalLight.xml
+msgid ""
+"Tries to achieve maximum shadow resolution. May result in saw effect on "
+"shadow edges. This mode typically works best in games where the camera will "
+"often move at high speeds, such as most racing games."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid "Type used to handle the filesystem."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Directory type. It is used to manage directories and their content (not "
+"restricted to the project folder).\n"
+"When creating a new [Directory], its default opened directory will be "
+"[code]res://[/code]. This may change in the future, so it is advised to "
+"always use [method open] to initialize your [Directory] where you want to "
+"operate, with explicit error checking.\n"
+"[b]Note:[/b] Many resources types are imported (e.g. textures or sound "
+"files), and their source asset will not be included in the exported game, as "
+"only the imported version is used. Use [ResourceLoader] to access imported "
+"resources.\n"
+"Here is an example on how to iterate through the files of a directory:\n"
+"[codeblock]\n"
+"func dir_contents(path):\n"
+" var dir = Directory.new()\n"
+" if dir.open(path) == OK:\n"
+" dir.list_dir_begin()\n"
+" var file_name = dir.get_next()\n"
+" while file_name != \"\":\n"
+" if dir.current_is_dir():\n"
+" print(\"Found directory: \" + file_name)\n"
+" else:\n"
+" print(\"Found file: \" + file_name)\n"
+" file_name = dir.get_next()\n"
+" else:\n"
+" print(\"An error occurred when trying to access the path.\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Directory.xml doc/classes/File.xml
+msgid "$DOCS_URL/tutorials/scripting/filesystem.html"
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Changes the currently opened directory to the one passed as an argument. The "
+"argument can be relative to the current directory (e.g. [code]newdir[/code] "
+"or [code]../newdir[/code]), or an absolute path (e.g. [code]/tmp/newdir[/"
+"code] or [code]res://somedir/newdir[/code]).\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Copies the [code]from[/code] file to the [code]to[/code] destination. Both "
+"arguments should be paths to files, either relative or absolute. If the "
+"destination file exists and is not access-protected, it will be "
+"overwritten.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Returns whether the current item processed with the last [method get_next] "
+"call is a directory ([code].[/code] and [code]..[/code] are considered "
+"directories)."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Returns whether the target directory exists. The argument can be relative to "
+"the current directory, or an absolute path."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Returns whether the target file exists. The argument can be relative to the "
+"current directory, or an absolute path."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Returns the absolute path to the currently opened directory (e.g. "
+"[code]res://folder[/code] or [code]C:\\tmp\\folder[/code])."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Returns the currently opened directory's drive index. See [method get_drive] "
+"to convert returned index to the name of the drive."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"On Windows, returns the name of the drive (partition) passed as an argument "
+"(e.g. [code]C:[/code]).\n"
+"On macOS, returns the path to the mounted volume passed as an argument.\n"
+"On Linux, returns the path to the mounted volume or GTK 3 bookmark passed as "
+"an argument.\n"
+"On other platforms, or if the requested drive does not exist, the method "
+"returns an empty String."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"On Windows, returns the number of drives (partitions) mounted on the current "
+"filesystem.\n"
+"On macOS, returns the number of mounted volumes.\n"
+"On Linux, returns the number of mounted volumes and GTK 3 bookmarks.\n"
+"On other platforms, the method returns 0."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Returns the next element (file or directory) in the current directory "
+"(including [code].[/code] and [code]..[/code], unless "
+"[code]skip_navigational[/code] was given to [method list_dir_begin]).\n"
+"The name of the file or directory is returned (and not its full path). Once "
+"the stream has been fully processed, the method returns an empty String and "
+"closes the stream automatically (i.e. [method list_dir_end] would not be "
+"mandatory in such a case)."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"On UNIX desktop systems, returns the available space on the current "
+"directory's disk. On other platforms, this information is not available and "
+"the method returns 0 or -1."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Initializes the stream used to list all files and directories using the "
+"[method get_next] function, closing the currently opened stream if needed. "
+"Once the stream has been processed, it should typically be closed with "
+"[method list_dir_end].\n"
+"If [code]skip_navigational[/code] is [code]true[/code], [code].[/code] and "
+"[code]..[/code] are filtered out.\n"
+"If [code]skip_hidden[/code] is [code]true[/code], hidden files are filtered "
+"out."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Closes the current stream opened with [method list_dir_begin] (whether it "
+"has been fully processed with [method get_next] does not matter)."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Creates a directory. The argument can be relative to the current directory, "
+"or an absolute path. The target directory should be placed in an already "
+"existing directory (to create the full path recursively, see [method "
+"make_dir_recursive]).\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Creates a target directory and all necessary intermediate directories in its "
+"path, by calling [method make_dir] recursively. The argument can be relative "
+"to the current directory, or an absolute path.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Opens an existing directory of the filesystem. The [code]path[/code] "
+"argument can be within the project tree ([code]res://folder[/code]), the "
+"user directory ([code]user://folder[/code]) or an absolute path of the user "
+"filesystem (e.g. [code]/tmp/folder[/code] or [code]C:\\tmp\\folder[/code]).\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Deletes the target file or an empty directory. The argument can be relative "
+"to the current directory, or an absolute path. If the target directory is "
+"not empty, the operation will fail.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/Directory.xml
+msgid ""
+"Renames (move) the [code]from[/code] file or directory to the [code]to[/"
+"code] destination. Both arguments should be paths to files or directories, "
+"either relative or absolute. If the destination file or directory exists and "
+"is not access-protected, it will be overwritten.\n"
+"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
+msgstr ""
+
+#: doc/classes/DTLSServer.xml
+msgid "Helper class to implement a DTLS server."
+msgstr ""
+
+#: doc/classes/DTLSServer.xml
+msgid ""
+"This class is used to store the state of a DTLS server. Upon [method setup] "
+"it converts connected [PacketPeerUDP] to [PacketPeerDTLS] accepting them via "
+"[method take_connection] as DTLS clients. Under the hood, this class is used "
+"to store the DTLS state and cookies of the server. The reason of why the "
+"state and cookies are needed is outside of the scope of this documentation.\n"
+"Below a small example of how to use it:\n"
+"[codeblock]\n"
+"# server.gd\n"
+"extends Node\n"
+"\n"
+"var dtls := DTLSServer.new()\n"
+"var server := UDPServer.new()\n"
+"var peers = []\n"
+"\n"
+"func _ready():\n"
+" server.listen(4242)\n"
+" var key = load(\"key.key\") # Your private key.\n"
+" var cert = load(\"cert.crt\") # Your X509 certificate.\n"
+" dtls.setup(key, cert)\n"
+"\n"
+"func _process(delta):\n"
+" while server.is_connection_available():\n"
+" var peer : PacketPeerUDP = server.take_connection()\n"
+" var dtls_peer : PacketPeerDTLS = dtls.take_connection(peer)\n"
+" if dtls_peer.get_status() != PacketPeerDTLS.STATUS_HANDSHAKING:\n"
+" continue # It is normal that 50% of the connections fails due to "
+"cookie exchange.\n"
+" print(\"Peer connected!\")\n"
+" peers.append(dtls_peer)\n"
+" for p in peers:\n"
+" p.poll() # Must poll to update the state.\n"
+" if p.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n"
+" while p.get_available_packet_count() > 0:\n"
+" print(\"Received message from client: %s\" % p.get_packet()."
+"get_string_from_utf8())\n"
+" p.put_packet(\"Hello DTLS client\".to_utf8())\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# client.gd\n"
+"extends Node\n"
+"\n"
+"var dtls := PacketPeerDTLS.new()\n"
+"var udp := PacketPeerUDP.new()\n"
+"var connected = false\n"
+"\n"
+"func _ready():\n"
+" udp.connect_to_host(\"127.0.0.1\", 4242)\n"
+" dtls.connect_to_peer(udp, false) # Use true in production for "
+"certificate validation!\n"
+"\n"
+"func _process(delta):\n"
+" dtls.poll()\n"
+" if dtls.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n"
+" if !connected:\n"
+" # Try to contact server\n"
+" dtls.put_packet(\"The answer is... 42!\".to_utf8())\n"
+" while dtls.get_available_packet_count() > 0:\n"
+" print(\"Connected: %s\" % dtls.get_packet()."
+"get_string_from_utf8())\n"
+" connected = true\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/DTLSServer.xml
+msgid ""
+"Setup the DTLS server to use the given [code]private_key[/code] and provide "
+"the given [code]certificate[/code] to clients. You can pass the optional "
+"[code]chain[/code] parameter to provide additional CA chain information "
+"along with the certificate."
+msgstr ""
+
+#: doc/classes/DTLSServer.xml
+msgid ""
+"Try to initiate the DTLS handshake with the given [code]udp_peer[/code] "
+"which must be already connected (see [method PacketPeerUDP."
+"connect_to_host]).\n"
+"[b]Note:[/b] You must check that the state of the return PacketPeerUDP is "
+"[constant PacketPeerDTLS.STATUS_HANDSHAKING], as it is normal that 50% of "
+"the new connections will be invalid due to cookie exchange."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "DynamicFont renders vector font files at runtime."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid ""
+"DynamicFont renders vector font files dynamically at runtime instead of "
+"using a prerendered texture atlas like [BitmapFont]. This trades the faster "
+"loading time of [BitmapFont]s for the ability to change font parameters like "
+"size and spacing during runtime. [DynamicFontData] is used for referencing "
+"the font file paths. DynamicFont also supports defining one or more fallback "
+"fonts, which will be used when displaying a character not supported by the "
+"main font.\n"
+"DynamicFont uses the [url=https://www.freetype.org/]FreeType[/url] library "
+"for rasterization. Supported formats are TrueType ([code].ttf[/code]), "
+"OpenType ([code].otf[/code]) and Web Open Font Format 1 ([code].woff[/"
+"code]). Web Open Font Format 2 ([code].woff2[/code]) is [i]not[/i] "
+"supported.\n"
+"[codeblock]\n"
+"var dynamic_font = DynamicFont.new()\n"
+"dynamic_font.font_data = load(\"res://BarlowCondensed-Bold.ttf\")\n"
+"dynamic_font.size = 64\n"
+"$\"Label\".set(\"custom_fonts/font\", dynamic_font)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] DynamicFont doesn't support features such as kerning, right-to-"
+"left typesetting, ligatures, text shaping, variable fonts and optional font "
+"features yet. If you wish to \"bake\" an optional font feature into a TTF "
+"font file, you can use [url=https://fontforge.org/]FontForge[/url] to do so. "
+"In FontForge, use [b]File > Generate Fonts[/b], click [b]Options[/b], choose "
+"the desired features then generate the font."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Adds a fallback font."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid ""
+"Returns a string containing all the characters available in the main and all "
+"the fallback fonts.\n"
+"If a given character is included in more than one font, it appears only once "
+"in the returned string."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Returns the fallback font at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Returns the number of fallback fonts."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid ""
+"Returns the spacing for the given [code]type[/code] (see [enum SpacingType])."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Removes the fallback font at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Sets the fallback font at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid ""
+"Sets the spacing for [code]type[/code] (see [enum SpacingType]) to "
+"[code]value[/code] in pixels (not relative to the font size)."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Extra spacing at the bottom in pixels."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid ""
+"Extra spacing for each character in pixels.\n"
+"This can be a negative number to make the distance between characters "
+"smaller."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid ""
+"Extra spacing for the space character (in addition to [member "
+"extra_spacing_char]) in pixels.\n"
+"This can be a negative number to make the distance between words smaller."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Extra spacing at the top in pixels."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "The font data."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid ""
+"The font outline's color.\n"
+"[b]Note:[/b] It's recommended to leave this at the default value so that you "
+"can adjust it in individual controls. For example, if the outline is made "
+"black here, it won't be possible to change its color using a Label's font "
+"outline modulate theme item."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "The font outline's thickness in pixels (not relative to the font size)."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "The font size in pixels."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid ""
+"If [code]true[/code], filtering is used. This makes the font blurry instead "
+"of pixelated when scaling it if font oversampling is disabled or "
+"ineffective. It's recommended to enable this when using the font in a "
+"control whose size changes over time, unless a pixel art aesthetic is "
+"desired."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid ""
+"If [code]true[/code], mipmapping is used. This improves the font's "
+"appearance when downscaling it if font oversampling is disabled or "
+"ineffective."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Spacing at the top."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Spacing at the bottom."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Spacing for each character."
+msgstr ""
+
+#: doc/classes/DynamicFont.xml
+msgid "Spacing for the space character."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
+msgid "Used with [DynamicFont] to describe the location of a font file."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
+msgid ""
+"Used with [DynamicFont] to describe the location of a vector font file for "
+"dynamic rendering at runtime."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
+msgid ""
+"If [code]true[/code], the font is rendered with anti-aliasing. This property "
+"applies both to the main font and its outline (if it has one)."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
+msgid "The path to the vector font file."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
+msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
+msgid "Disables font hinting (smoother but less crisp)."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
+msgid "Use the light font hinting mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
+msgid "Use the default font hinting mode (crisper but less smooth)."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid "A script that is executed when exporting the project."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
+"the project. Their most common use is to determine what files are being "
+"included in the exported project. For each plugin, [method _export_begin] is "
+"called at the beginning of the export process and then [method _export_file] "
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Virtual method to be overridden by the user. It is called when the export "
+"starts and provides all information about the export. [code]features[/code] "
+"is the list of features for the export, [code]is_debug[/code] is [code]true[/"
+"code] for debug builds, [code]path[/code] is the target path for the "
+"exported project. [code]flags[/code] is only used when running a runnable "
+"profile, e.g. when using native run on Android."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Virtual method to be overridden by the user. Called when the export is "
+"finished."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Virtual method to be overridden by the user. Called for each exported file, "
+"providing arguments that can be used to identify the file. [code]path[/code] "
+"is the path of the file, [code]type[/code] is the [Resource] represented by "
+"the file (e.g. [PackedScene]) and [code]features[/code] is the list of "
+"features for the export.\n"
+"Calling [method skip] inside this callback will make the file not included "
+"in the export."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a custom file to be exported. [code]path[/code] is the virtual path "
+"that can be used to load the file, [code]file[/code] is the binary data of "
+"the file. If [code]remap[/code] is [code]true[/code], file will not be "
+"exported, but instead remapped to the given [code]path[/code]."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds an iOS bundle file from the given [code]path[/code] to the exported "
+"project."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a C++ code to the iOS export. The final code is created from the code "
+"appended by each active export plugin."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a dynamic library (*.dylib, *.framework) to Linking Phase in iOS's "
+"Xcode project and embeds it into resulting binary.\n"
+"[b]Note:[/b] For static libraries (*.a) works in same way as [method "
+"add_ios_framework].\n"
+"This method should not be used for System libraries as they are already "
+"present on the device."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a static library (*.a) or dynamic library (*.dylib, *.framework) to "
+"Linking Phase in iOS's Xcode project."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid "Adds linker flags for the iOS export."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid "Adds content for iOS Property List files."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid "Adds a static lib from the given [code]path[/code] to the iOS project."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"To be called inside [method _export_file]. Skips the current file, so it's "
+"not included in the export."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"An editor feature profile which can be used to disable specific features."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"An editor feature profile can be used to disable specific features of the "
+"Godot editor. When disabled, the features won't appear in the editor, which "
+"makes the editor less cluttered. This is useful in education settings to "
+"reduce confusion or when working in a team. For example, artists and level "
+"designers could use a feature profile that disables the script editor to "
+"avoid accidentally making changes to files they aren't supposed to edit.\n"
+"To manage editor feature profiles visually, use [b]Editor > Manage Feature "
+"Profiles...[/b] at the top of the editor window."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid "Returns the specified [code]feature[/code]'s human-readable name."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"Returns [code]true[/code] if the class specified by [code]class_name[/code] "
+"is disabled. When disabled, the class won't appear in the Create New Node "
+"dialog."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"Returns [code]true[/code] if editing for the class specified by "
+"[code]class_name[/code] is disabled. When disabled, the class will still "
+"appear in the Create New Node dialog but the inspector will be read-only "
+"when selecting a node that extends the class."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"Returns [code]true[/code] if [code]property[/code] is disabled in the class "
+"specified by [code]class_name[/code]. When a property is disabled, it won't "
+"appear in the inspector when selecting a node that extends the class "
+"specified by [code]class_name[/code]."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"Returns [code]true[/code] if the [code]feature[/code] is disabled. When a "
+"feature is disabled, it will disappear from the editor entirely."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"Loads an editor feature profile from a file. The file must follow the JSON "
+"format obtained by using the feature profile manager's [b]Export[/b] button "
+"or the [method save_to_file] method."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"Saves the editor feature profile to a file in JSON format. It can then be "
+"imported using the feature profile manager's [b]Import[/b] button or the "
+"[method load_from_file] button."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"If [code]disable[/code] is [code]true[/code], disables the class specified "
+"by [code]class_name[/code]. When disabled, the class won't appear in the "
+"Create New Node dialog."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"If [code]disable[/code] is [code]true[/code], disables editing for the class "
+"specified by [code]class_name[/code]. When disabled, the class will still "
+"appear in the Create New Node dialog but the inspector will be read-only "
+"when selecting a node that extends the class."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"If [code]disable[/code] is [code]true[/code], disables editing for "
+"[code]property[/code] in the class specified by [code]class_name[/code]. "
+"When a property is disabled, it won't appear in the inspector when selecting "
+"a node that extends the class specified by [code]class_name[/code]."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"If [code]disable[/code] is [code]true[/code], disables the editor feature "
+"specified in [code]feature[/code]. When a feature is disabled, it will "
+"disappear from the editor entirely."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"The 3D editor. If this feature is disabled, the 3D editor won't display but "
+"3D nodes will still display in the Create New Node dialog."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"The Script tab, which contains the script editor and class reference "
+"browser. If this feature is disabled, the Script tab won't display."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"The AssetLib tab. If this feature is disabled, the AssetLib tab won't "
+"display."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"Scene tree editing. If this feature is disabled, the Scene tree dock will "
+"still be visible but will be read-only."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"The Node dock. If this feature is disabled, signals and groups won't be "
+"visible and modifiable from the editor."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"The FileSystem dock. If this feature is disabled, the FileSystem dock won't "
+"be visible."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml
+msgid ""
+"The Import dock. If this feature is disabled, the Import dock won't be "
+"visible."
+msgstr ""
+
+#: doc/classes/EditorFeatureProfile.xml doc/classes/SpatialMaterial.xml
+msgid "Represents the size of the [enum Feature] enum."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "A modified version of [FileDialog] used by the editor."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"Adds a comma-delimited file extension filter option to the "
+"[EditorFileDialog] with an optional semi-colon-delimited label.\n"
+"For example, [code]\"*.tscn, *.scn; Scenes\"[/code] results in filter text "
+"\"Scenes (*.tscn, *.scn)\"."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "Removes all filters except for \"All Files (*)\"."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"Returns the [code]VBoxContainer[/code] used to display the file system.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"Notify the [EditorFileDialog] that its view of the data is no longer "
+"accurate. Updates the view contents on next view update."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"The location from which the user may select a file, including [code]res://[/"
+"code], [code]user://[/code], and the local file system."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "The currently occupied directory."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "The currently selected file."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "The file system path in the address bar."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"If [code]true[/code], the [EditorFileDialog] will not warn the user before "
+"overwriting files."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"The view format in which the [EditorFileDialog] displays resources to the "
+"user."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"The purpose of the [EditorFileDialog], which defines the allowed behaviors."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"If [code]true[/code], hidden files and directories will be visible in the "
+"[EditorFileDialog]."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "Emitted when a directory is selected."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "Emitted when a file is selected."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "Emitted when multiple files are selected."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"The [EditorFileDialog] can select only one file. Accepting the window will "
+"open the file."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"The [EditorFileDialog] can select multiple files. Accepting the window will "
+"open all files."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"The [EditorFileDialog] can select only one directory. Accepting the window "
+"will open the directory."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"The [EditorFileDialog] can select a file or directory. Accepting the window "
+"will open it."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"The [EditorFileDialog] can select only one file. Accepting the window will "
+"save the file."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"The [EditorFileDialog] can only view [code]res://[/code] directory contents."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid ""
+"The [EditorFileDialog] can only view [code]user://[/code] directory contents."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "The [EditorFileDialog] can view the entire local file system."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "The [EditorFileDialog] displays resources as thumbnails."
+msgstr ""
+
+#: doc/classes/EditorFileDialog.xml
+msgid "The [EditorFileDialog] displays resources as a list of filenames."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Resource filesystem, as the editor sees it."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid ""
+"This object holds information of all resources in the filesystem, their "
+"types, etc.\n"
+"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
+"the singleton using [method EditorInterface.get_resource_filesystem]."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid ""
+"Returns the resource type of the file, given the full path. This returns a "
+"string such as [code]\"Resource\"[/code] or [code]\"GDScript\"[/code], "
+"[i]not[/i] a file extension such as [code]\".gd\"[/code]."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Gets the root directory object."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Returns a view into the filesystem at [code]path[/code]."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Returns the scan progress for 0 to 1 if the FS is being scanned."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Returns [code]true[/code] of the filesystem is being scanned."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Scan the filesystem for changes."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Check if the source of any imported resource changed."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid ""
+"Update a file information. Call this if an external program (not Godot) "
+"modified the file."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Scans the script files and updates the list of custom class names."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Emitted if the filesystem changed."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Emitted if a resource is reimported."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid ""
+"Emitted if at least one resource is reloaded when the filesystem is scanned."
+msgstr ""
+
+#: doc/classes/EditorFileSystem.xml
+msgid "Emitted if the source of any imported file changed."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid "A directory for the resource filesystem."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid "A more generalized, low-level variation of the directory concept."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid ""
+"Returns the index of the directory with name [code]name[/code] or [code]-1[/"
+"code] if not found."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid ""
+"Returns the index of the file with name [code]name[/code] or [code]-1[/code] "
+"if not found."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid "Returns the name of the file at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid "Returns the number of files in this directory."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid ""
+"Returns [code]true[/code] if the file at index [code]idx[/code] imported "
+"properly."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid "Returns the path to the file at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid ""
+"Returns the base class of the script class defined in the file at index "
+"[code]idx[/code]. If the file doesn't define a script class using the "
+"[code]class_name[/code] syntax, this will return an empty string."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid ""
+"Returns the name of the script class defined in the file at index [code]idx[/"
+"code]. If the file doesn't define a script class using the [code]class_name[/"
+"code] syntax, this will return an empty string."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid ""
+"Returns the resource type of the file at index [code]idx[/code]. This "
+"returns a string such as [code]\"Resource\"[/code] or [code]\"GDScript\"[/"
+"code], [i]not[/i] a file extension such as [code]\".gd\"[/code]."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid "Returns the name of this directory."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid ""
+"Returns the parent directory for this directory or [code]null[/code] if "
+"called on a directory at [code]res://[/code] or [code]user://[/code]."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid "Returns the path to this directory."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid "Returns the subdirectory at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/EditorFileSystemDirectory.xml
+msgid "Returns the number of subdirectories in this directory."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"Registers a custom resource importer in the editor. Use the class to parse "
+"any file and import it as a new resource type."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
+"functionality. Use them to import resources from custom files or to provide "
+"alternatives to the editor's existing importers.\n"
+"EditorImportPlugins work by associating with specific file extensions and a "
+"resource type. See [method get_recognized_extensions] and [method "
+"get_resource_type]. They may optionally specify some import presets that "
+"affect the import process. EditorImportPlugins are responsible for creating "
+"the resources and saving them in the [code].import[/code] directory (see "
+"[member ProjectSettings.application/config/"
+"use_hidden_project_data_directory]).\n"
+"Below is an example EditorImportPlugin that imports a [Mesh] from a file "
+"with the extension \".special\" or \".spec\":\n"
+"[codeblock]\n"
+"tool\n"
+"extends EditorImportPlugin\n"
+"\n"
+"func get_importer_name():\n"
+" return \"my.special.plugin\"\n"
+"\n"
+"func get_visible_name():\n"
+" return \"Special Mesh\"\n"
+"\n"
+"func get_recognized_extensions():\n"
+" return [\"special\", \"spec\"]\n"
+"\n"
+"func get_save_extension():\n"
+" return \"mesh\"\n"
+"\n"
+"func get_resource_type():\n"
+" return \"Mesh\"\n"
+"\n"
+"func get_preset_count():\n"
+" return 1\n"
+"\n"
+"func get_preset_name(i):\n"
+" return \"Default\"\n"
+"\n"
+"func get_import_options(i):\n"
+" return [{\"name\": \"my_option\", \"default_value\": false}]\n"
+"\n"
+"func import(source_file, save_path, options, platform_variants, gen_files):\n"
+" var file = File.new()\n"
+" if file.open(source_file, File.READ) != OK:\n"
+" return FAILED\n"
+"\n"
+" var mesh = Mesh.new()\n"
+" # Fill the Mesh with data read in \"file\", left as an exercise to the "
+"reader\n"
+"\n"
+" var filename = save_path + \".\" + get_save_extension()\n"
+" return ResourceSaver.save(filename, mesh)\n"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
+msgid "$DOCS_URL/tutorials/plugins/editor/import_plugins.html"
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"Gets the options and default values for the preset at this index. Returns an "
+"Array of Dictionaries with the following keys: [code]name[/code], "
+"[code]default_value[/code], [code]property_hint[/code] (optional), "
+"[code]hint_string[/code] (optional), [code]usage[/code] (optional)."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"Gets the order of this importer to be run when importing resources. "
+"Importers with [i]lower[/i] import orders will be called first, and higher "
+"values will be called later. Use this to ensure the importer runs after the "
+"dependencies are already imported. The default import order is [code]0[/"
+"code] unless overridden by a specific importer. See [enum ResourceImporter."
+"ImportOrder] for some predefined values."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid "Gets the unique name of the importer."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"This method can be overridden to hide specific import options if conditions "
+"are met. This is mainly useful for hiding options that depend on others if "
+"one of them is disabled. For example:\n"
+"[codeblock]\n"
+"func get_option_visibility(option, options):\n"
+" # Only show the lossy quality setting if the compression mode is set to "
+"\"Lossy\".\n"
+" if option == \"compress/lossy_quality\" and options.has(\"compress/mode"
+"\"):\n"
+" return int(options[\"compress/mode\"]) == COMPRESS_LOSSY\n"
+"\n"
+" return true\n"
+"[/codeblock]\n"
+"Return [code]true[/code] to make all options always visible."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"Gets the number of initial presets defined by the plugin. Use [method "
+"get_import_options] to get the default options for the preset and [method "
+"get_preset_name] to get the name of the preset."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid "Gets the name of the options preset at this index."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"Gets the priority of this plugin for the recognized extension. Higher "
+"priority plugins will be preferred. The default priority is [code]1.0[/code]."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"Gets the list of file extensions to associate with this loader (case-"
+"insensitive). e.g. [code][\"obj\"][/code]."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"Gets the Godot resource type associated with this loader. e.g. [code]\"Mesh"
+"\"[/code] or [code]\"Animation\"[/code]."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"Gets the extension used to save this resource in the [code].import[/code] "
+"directory (see [member ProjectSettings.application/config/"
+"use_hidden_project_data_directory])."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"Gets the name to display in the import window. You should choose this name "
+"as a continuation to \"Import as\", e.g. \"Import as Special Mesh\"."
+msgstr ""
+
+#: doc/classes/EditorImportPlugin.xml
+msgid ""
+"Imports [code]source_file[/code] into [code]save_path[/code] with the import "
+"[code]options[/code] specified. The [code]platform_variants[/code] and "
+"[code]gen_files[/code] arrays will be modified by this function.\n"
+"This method must be overridden to do the actual importing work. See this "
+"class' description for an example of overriding this method."
+msgstr ""
+
+#: doc/classes/EditorInspector.xml
+msgid "A tab used to edit properties of the selected node."
+msgstr ""
+
+#: doc/classes/EditorInspector.xml
+msgid ""
+"The editor inspector is by default located on the right-hand side of the "
+"editor. It's used to edit the properties of the selected node. For example, "
+"you can select a node such as [Sprite] then edit its transform through the "
+"inspector tool. The editor inspector is an essential tool in the game "
+"development workflow.\n"
+"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
+"the singleton using [method EditorInterface.get_inspector]."
+msgstr ""
+
+#: doc/classes/EditorInspector.xml
+msgid ""
+"Refreshes the inspector.\n"
+"[b]Note:[/b] To save on CPU resources, calling this method will do nothing "
+"if the time specified in [code]docks/property_editor/auto_refresh_interval[/"
+"code] editor setting hasn't passed yet since this method was last called. "
+"(By default, this interval is set to 0.3 seconds.)"
+msgstr ""
+
+#: doc/classes/EditorInspector.xml
+msgid ""
+"Emitted when the Edit button of an [Object] has been pressed in the "
+"inspector. This is mainly used in the remote scene tree inspector."
+msgstr ""
+
+#: doc/classes/EditorInspector.xml
+msgid "Emitted when a property is edited in the inspector."
+msgstr ""
+
+#: doc/classes/EditorInspector.xml
+msgid ""
+"Emitted when a property is keyed in the inspector. Properties can be keyed "
+"by clicking the \"key\" icon next to a property when the Animation panel is "
+"toggled."
+msgstr ""
+
+#: doc/classes/EditorInspector.xml
+msgid "Emitted when a property is selected in the inspector."
+msgstr ""
+
+#: doc/classes/EditorInspector.xml
+msgid ""
+"Emitted when a boolean property is toggled in the inspector.\n"
+"[b]Note:[/b] This signal is never emitted if the internal [code]autoclear[/"
+"code] property enabled. Since this property is always enabled in the editor "
+"inspector, this signal is never emitted by the editor itself."
+msgstr ""
+
+#: doc/classes/EditorInspector.xml
+msgid "Emitted when a resource is selected in the inspector."
+msgstr ""
+
+#: doc/classes/EditorInspector.xml
+msgid ""
+"Emitted when a property that requires a restart to be applied is edited in "
+"the inspector. This is only used in the Project Settings and Editor Settings."
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid "Plugin for adding custom property editors on inspector."
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid ""
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
+"When an object is edited, the [method can_handle] function is called and "
+"must return [code]true[/code] if the object type is supported.\n"
+"If supported, the function [method parse_begin] will be called, allowing to "
+"place custom controls at the beginning of the class.\n"
+"Subsequently, the [method parse_category] and [method parse_property] are "
+"called for every category and property. They offer the ability to add custom "
+"controls to the inspector too.\n"
+"Finally, [method parse_end] will be called.\n"
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid "$DOCS_URL/tutorials/plugins/editor/inspector_plugins.html"
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid "Adds a custom control, which is not necessarily a property editor."
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid ""
+"Adds a property editor for an individual property. The [code]editor[/code] "
+"control must extend [EditorProperty]."
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid ""
+"Adds an editor that allows modifying multiple properties. The [code]editor[/"
+"code] control must extend [EditorProperty]."
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid "Returns [code]true[/code] if this object can be handled by this plugin."
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid "Called to allow adding controls at the beginning of the list."
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid "Called to allow adding controls at the beginning of the category."
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid "Called to allow adding controls at the end of the list."
+msgstr ""
+
+#: doc/classes/EditorInspectorPlugin.xml
+msgid ""
+"Called to allow adding property specific editors to the inspector. Usually "
+"these inherit [EditorProperty]. Returning [code]true[/code] removes the "
+"built-in editor for this property, otherwise allows to insert a custom "
+"editor before the built-in one."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Godot editor's interface."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"EditorInterface gives you control over Godot editor's window. It allows "
+"customizing the window, saving and (re-)loading scenes, rendering mesh "
+"previews, inspecting and editing resources and objects, and provides access "
+"to [EditorSettings], [EditorFileSystem], [EditorResourcePreview], "
+"[ScriptEditor], the editor viewport, and information about scenes.\n"
+"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
+"the singleton using [method EditorPlugin.get_editor_interface]."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Edits the given [Node]. The node will be also selected if it's inside the "
+"scene tree."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Edits the given [Resource]. If the resource is a [Script] you can also edit "
+"it with [method edit_script] to specify the line and column position."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Edits the given [Script]. The line and column on which to open the script "
+"can also be specified. The script will be open with the user-configured "
+"editor for the script's language which may be an external editor."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns the main container of Godot editor's window. For example, you can "
+"use it to retrieve the size of the container and place your controls "
+"accordingly.\n"
+"[b]Warning:[/b] Removing and freeing this node will render the editor "
+"useless and may cause a crash."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Returns the current path being viewed in the [FileSystemDock]."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Returns the edited (current) scene's root [Node]."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns the actual scale of the editor UI ([code]1.0[/code] being 100% "
+"scale). This can be used to adjust position and dimensions of the UI added "
+"by plugins.\n"
+"[b]Note:[/b] This value is set via the [code]interface/editor/display_scale[/"
+"code] and [code]interface/editor/custom_display_scale[/code] editor "
+"settings. Editor must be restarted for changes to be properly applied."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Returns the editor's [EditorSettings] instance."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns the main editor control. Use this as a parent for main screens.\n"
+"[b]Note:[/b] This returns the main editor control containing the whole "
+"editor, not the 2D or 3D viewports specifically.\n"
+"[b]Warning:[/b] Removing and freeing this node will render a part of the "
+"editor useless and may cause a crash."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns the editor's [FileSystemDock] instance.\n"
+"[b]Warning:[/b] Removing and freeing this node will render a part of the "
+"editor useless and may cause a crash."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns the editor's [EditorInspector] instance.\n"
+"[b]Warning:[/b] Removing and freeing this node will render a part of the "
+"editor useless and may cause a crash."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Returns an [Array] with the file paths of the currently opened scenes."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns the name of the scene that is being played. If no scene is currently "
+"being played, returns an empty string."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Returns the editor's [EditorFileSystem] instance."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Returns the editor's [EditorResourcePreview] instance."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns the editor's [ScriptEditor] instance.\n"
+"[b]Warning:[/b] Removing and freeing this node will render a part of the "
+"editor useless and may cause a crash."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns the path of the directory currently selected in the "
+"[FileSystemDock]. If a file is selected, its base directory will be returned "
+"using [method String.get_base_dir] instead."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Returns the editor's [EditorSelection] instance."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Shows the given property on the given [code]object[/code] in the editor's "
+"Inspector dock. If [code]inspector_only[/code] is [code]true[/code], plugins "
+"will not attempt to edit [code]object[/code]."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns [code]true[/code] if a scene is currently being played, [code]false[/"
+"code] otherwise. Paused scenes are considered as being played."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns [code]true[/code] if the specified [code]plugin[/code] is enabled. "
+"The plugin name is the same as its directory name."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Returns mesh previews rendered at the given size as an [Array] of [Texture]s."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Opens the scene at the given path."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Plays the currently active scene."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Plays the scene specified by its filepath."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Plays the main scene."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Reloads the scene at the given path."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Saves the scene. Returns either [code]OK[/code] or [code]ERR_CANT_CREATE[/"
+"code] (see [@GlobalScope] constants)."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Saves the scene as a file at [code]path[/code]."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Selects the file, with the path provided by [code]file[/code], in the "
+"FileSystem dock."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Sets the editor's current main screen to the one specified in [code]name[/"
+"code]. [code]name[/code] must match the text of the tab in question exactly "
+"([code]2D[/code], [code]3D[/code], [code]Script[/code], [code]AssetLib[/"
+"code])."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"Sets the enabled status of a plugin. The plugin name is the same as its "
+"directory name."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid "Stops the scene that is currently playing."
+msgstr ""
+
+#: doc/classes/EditorInterface.xml
+msgid ""
+"If [code]true[/code], enables distraction-free mode which hides side docks "
+"to increase the space available for the main view."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Used by the editor to extend its functionality."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Plugins are used by the editor to extend functionality. The most common "
+"types of plugins are those which edit a given node or resource type, import "
+"plugins and export plugins. See also [EditorScript] to add functions to the "
+"editor."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "$DOCS_URL/tutorials/plugins/editor/index.html"
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Adds a script at [code]path[/code] to the Autoload list as [code]name[/code]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Adds a control to the bottom panel (together with Output, Debug, Animation, "
+"etc). Returns a reference to the button added. It's up to you to hide/show "
+"the button when needed. When your plugin is deactivated, make sure to remove "
+"your custom control with [method remove_control_from_bottom_panel] and free "
+"it with [method Node.queue_free]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Adds a custom control to a container (see [enum CustomControlContainer]). "
+"There are many locations where custom controls can be added in the editor "
+"UI.\n"
+"Please remember that you have to manage the visibility of your custom "
+"controls yourself (and likely hide it after adding it).\n"
+"When your plugin is deactivated, make sure to remove your custom control "
+"with [method remove_control_from_container] and free it with [method Node."
+"queue_free]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Adds the control to a specific dock slot (see [enum DockSlot] for options).\n"
+"If the dock is repositioned and as long as the plugin is active, the editor "
+"will save the dock position on further sessions.\n"
+"When your plugin is deactivated, make sure to remove your custom control "
+"with [method remove_control_from_docks] and free it with [method Node."
+"queue_free]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Adds a custom type, which will appear in the list of nodes or resources. An "
+"icon can be optionally passed.\n"
+"When given node or resource is selected, the base type will be instanced "
+"(ie, \"Spatial\", \"Control\", \"Resource\"), then the script will be loaded "
+"and set to this object.\n"
+"You can use the virtual method [method handles] to check if your custom "
+"object is being edited by checking the script or using the [code]is[/code] "
+"keyword.\n"
+"During run-time, this will be a simple object with a script so this function "
+"does not need to be called then."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Registers a new [EditorExportPlugin]. Export plugins are used to perform "
+"tasks when the project is being exported.\n"
+"See [method add_inspector_plugin] for an example of how to register a plugin."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Registers a new [EditorImportPlugin]. Import plugins are used to import "
+"custom and unsupported assets as a custom [Resource] type.\n"
+"[b]Note:[/b] If you want to import custom 3D asset formats use [method "
+"add_scene_import_plugin] instead.\n"
+"See [method add_inspector_plugin] for an example of how to register a plugin."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Registers a new [EditorInspectorPlugin]. Inspector plugins are used to "
+"extend [EditorInspector] and provide custom configuration tools for your "
+"object's properties.\n"
+"[b]Note:[/b] Always use [method remove_inspector_plugin] to remove the "
+"registered [EditorInspectorPlugin] when your [EditorPlugin] is disabled to "
+"prevent leaks and an unexpected behavior.\n"
+"[codeblock]\n"
+"const MyInspectorPlugin = preload(\"res://addons/your_addon/path/to/your/"
+"script.gd\")\n"
+"var inspector_plugin = MyInspectorPlugin.new()\n"
+"\n"
+"func _enter_tree():\n"
+" add_inspector_plugin(inspector_plugin)\n"
+"\n"
+"func _exit_tree():\n"
+" remove_inspector_plugin(inspector_plugin)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Registers a new [EditorSceneImporter]. Scene importers are used to import "
+"custom 3D asset formats as scenes."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Registers a new [EditorSpatialGizmoPlugin]. Gizmo plugins are used to add "
+"custom gizmos to the 3D preview viewport for a [Spatial].\n"
+"See [method add_inspector_plugin] for an example of how to register a plugin."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Adds a custom menu item to [b]Project > Tools[/b] as [code]name[/code] that "
+"calls [code]callback[/code] on an instance of [code]handler[/code] with a "
+"parameter [code]ud[/code] when user activates it."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Adds a custom submenu under [b]Project > Tools >[/b] [code]name[/code]. "
+"[code]submenu[/code] should be an object of class [PopupMenu]. This submenu "
+"should be cleaned up using [code]remove_tool_menu_item(name)[/code]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"This method is called when the editor is about to save the project, switch "
+"to another tab, etc. It asks the plugin to apply any pending state changes "
+"to ensure consistency.\n"
+"This is used, for example, in shader editors to let the plugin know that it "
+"must apply the shader code being written by the user to the object."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"This method is called when the editor is about to run the project. The "
+"plugin can then perform required operations before the project runs.\n"
+"This method must return a boolean. If this method returns [code]false[/"
+"code], the project will not run. The run is aborted immediately, so this "
+"also prevents all other plugins' [method build] methods from running."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Clear all the state and reset the object being edited to zero. This ensures "
+"your plugin does not keep editing a currently existing node, or a node from "
+"the wrong scene."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Called by the engine when the user disables the [EditorPlugin] in the Plugin "
+"tab of the project settings window."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"This function is used for plugins that edit specific object types (nodes or "
+"resources). It requests the editor to edit the given object."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Called by the engine when the user enables the [EditorPlugin] in the Plugin "
+"tab of the project settings window."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Called by the engine when the 2D editor's viewport is updated. Use the "
+"[code]overlay[/code] [Control] for drawing. You can update the viewport "
+"manually by calling [method update_overlays].\n"
+"[codeblock]\n"
+"func forward_canvas_draw_over_viewport(overlay):\n"
+" # Draw a circle at cursor position.\n"
+" overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color."
+"white)\n"
+"\n"
+"func forward_canvas_gui_input(event):\n"
+" if event is InputEventMouseMotion:\n"
+" # Redraw viewport when cursor is moved.\n"
+" update_overlays()\n"
+" return true\n"
+" return false\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"This method is the same as [method forward_canvas_draw_over_viewport], "
+"except it draws on top of everything. Useful when you need an extra layer "
+"that shows over anything else.\n"
+"You need to enable calling of this method by using [method "
+"set_force_draw_over_forwarding_enabled]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Called when there is a root node in the current edited scene, [method "
+"handles] is implemented and an [InputEvent] happens in the 2D viewport. "
+"Intercepts the [InputEvent], if [code]return true[/code] [EditorPlugin] "
+"consumes the [code]event[/code], otherwise forwards [code]event[/code] to "
+"other Editor classes. Example:\n"
+"[codeblock]\n"
+"# Prevents the InputEvent to reach other Editor classes\n"
+"func forward_canvas_gui_input(event):\n"
+" var forward = true\n"
+" return forward\n"
+"[/codeblock]\n"
+"Must [code]return false[/code] in order to forward the [InputEvent] to other "
+"Editor classes. Example:\n"
+"[codeblock]\n"
+"# Consumes InputEventMouseMotion and forwards other InputEvent types\n"
+"func forward_canvas_gui_input(event):\n"
+" var forward = false\n"
+" if event is InputEventMouseMotion:\n"
+" forward = true\n"
+" return forward\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Called by the engine when the 3D editor's viewport is updated. Use the "
+"[code]overlay[/code] [Control] for drawing. You can update the viewport "
+"manually by calling [method update_overlays].\n"
+"[codeblock]\n"
+"func forward_spatial_draw_over_viewport(overlay):\n"
+" # Draw a circle at cursor position.\n"
+" overlay.draw_circle(overlay.get_local_mouse_position(), 64)\n"
+"\n"
+"func forward_spatial_gui_input(camera, event):\n"
+" if event is InputEventMouseMotion:\n"
+" # Redraw viewport when cursor is moved.\n"
+" update_overlays()\n"
+" return true\n"
+" return false\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"This method is the same as [method forward_spatial_draw_over_viewport], "
+"except it draws on top of everything. Useful when you need an extra layer "
+"that shows over anything else.\n"
+"You need to enable calling of this method by using [method "
+"set_force_draw_over_forwarding_enabled]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Called when there is a root node in the current edited scene, [method "
+"handles] is implemented and an [InputEvent] happens in the 3D viewport. "
+"Intercepts the [InputEvent], if [code]return true[/code] [EditorPlugin] "
+"consumes the [code]event[/code], otherwise forwards [code]event[/code] to "
+"other Editor classes. Example:\n"
+"[codeblock]\n"
+"# Prevents the InputEvent to reach other Editor classes\n"
+"func forward_spatial_gui_input(camera, event):\n"
+" var forward = true\n"
+" return forward\n"
+"[/codeblock]\n"
+"Must [code]return false[/code] in order to forward the [InputEvent] to other "
+"Editor classes. Example:\n"
+"[codeblock]\n"
+"# Consumes InputEventMouseMotion and forwards other InputEvent types\n"
+"func forward_spatial_gui_input(camera, event):\n"
+" var forward = false\n"
+" if event is InputEventMouseMotion:\n"
+" forward = true\n"
+" return forward\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"This is for editors that edit script-based objects. You can return a list of "
+"breakpoints in the format ([code]script:line[/code]), for example: "
+"[code]res://path_to_script.gd:25[/code]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Returns the [EditorInterface] object that gives you control over Godot "
+"editor's window and its functionalities."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Override this method in your plugin to return a [Texture] in order to give "
+"it an icon.\n"
+"For main screen plugins, this appears at the top of the screen, to the right "
+"of the \"2D\", \"3D\", \"Script\", and \"AssetLib\" buttons.\n"
+"Ideally, the plugin icon should be white with a transparent background and "
+"16x16 pixels in size.\n"
+"[codeblock]\n"
+"func get_plugin_icon():\n"
+" # You can use a custom icon:\n"
+" return preload(\"res://addons/my_plugin/my_plugin_icon.svg\")\n"
+" # Or use a built-in icon:\n"
+" return get_editor_interface().get_base_control().get_icon(\"Node\", "
+"\"EditorIcons\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Override this method in your plugin to provide the name of the plugin when "
+"displayed in the Godot editor.\n"
+"For main screen plugins, this appears at the top of the screen, to the right "
+"of the \"2D\", \"3D\", \"Script\", and \"AssetLib\" buttons."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Gets the Editor's dialogue used for making scripts.\n"
+"[b]Note:[/b] Users can configure it before use.\n"
+"[b]Warning:[/b] Removing and freeing this node will render a part of the "
+"editor useless and may cause a crash."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Gets the state of your plugin editor. This is used when saving the scene (so "
+"state is kept when opening it again) and for switching tabs (so state can be "
+"restored when the tab returns)."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Gets the undo/redo object. Most actions in the editor can be undoable, so "
+"use this object to make sure this happens when it's worth it."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Gets the GUI layout of the plugin. This is used to save the project's editor "
+"layout when [method queue_save_layout] is called or the editor layout was "
+"changed(For example changing the position of a dock)."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Implement this function if your plugin edits a specific type of object "
+"(Resource or Node). If you return [code]true[/code], then you will get the "
+"functions [method edit] and [method make_visible] called when the editor "
+"requests them. If you have declared the methods [method "
+"forward_canvas_gui_input] and [method forward_spatial_gui_input] these will "
+"be called too."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Returns [code]true[/code] if this is a main screen editor plugin (it goes in "
+"the workspace selector together with [b]2D[/b], [b]3D[/b], [b]Script[/b] and "
+"[b]AssetLib[/b])."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Minimizes the bottom panel."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Makes a specific item in the bottom panel visible."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"This function will be called when the editor is requested to become visible. "
+"It is used for plugins that edit a specific object type.\n"
+"Remember that you have to manage the visibility of all your editor controls "
+"manually."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Queue save the project's editor layout."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Removes an Autoload [code]name[/code] from the list."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Removes the control from the bottom panel. You have to manually [method Node."
+"queue_free] the control."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Removes the control from the specified container. You have to manually "
+"[method Node.queue_free] the control."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Removes the control from the dock. You have to manually [method Node."
+"queue_free] the control."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Removes a custom type added by [method add_custom_type]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Removes an export plugin registered by [method add_export_plugin]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Removes an import plugin registered by [method add_import_plugin]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Removes an inspector plugin registered by [method add_import_plugin]"
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Removes a scene importer registered by [method add_scene_import_plugin]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Removes a gizmo plugin registered by [method add_spatial_gizmo_plugin]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Removes a menu [code]name[/code] from [b]Project > Tools[/b]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"This method is called after the editor saves the project or when it's "
+"closed. It asks the plugin to save edited external scenes/resources."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Enables calling of [method forward_canvas_force_draw_over_viewport] for the "
+"2D editor and [method forward_spatial_force_draw_over_viewport] for the 3D "
+"editor when their viewports are updated. You need to call this method only "
+"once and it will work permanently for this plugin."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Use this method if you always want to receive inputs from 3D view screen "
+"inside [method forward_spatial_gui_input]. It might be especially usable if "
+"your plugin will want to use raycast in the scene."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Restore the state saved by [method get_state]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Restore the plugin GUI layout saved by [method get_window_layout]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Updates the overlays of the 2D and 3D editor viewport. Causes methods "
+"[method forward_canvas_draw_over_viewport], [method "
+"forward_canvas_force_draw_over_viewport], [method "
+"forward_spatial_draw_over_viewport] and [method "
+"forward_spatial_force_draw_over_viewport] to be called."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Emitted when user changes the workspace ([b]2D[/b], [b]3D[/b], [b]Script[/"
+"b], [b]AssetLib[/b]). Also works with custom screens defined by plugins."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Emitted when the scene is changed in the editor. The argument will return "
+"the root node of the scene that has just become active. If this scene is new "
+"and empty, the argument will be [code]null[/code]."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid ""
+"Emitted when user closes a scene. The argument is file path to a closed "
+"scene."
+msgstr ""
+
+#: doc/classes/EditorPlugin.xml
+msgid "Represents the size of the [enum DockSlot] enum."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid "Custom control to edit properties for adding into the inspector."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"This control allows property editing for one or multiple properties into "
+"[EditorInspector]. It is added via [EditorInspectorPlugin]."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"If any of the controls added can gain keyboard focus, add it here. This "
+"ensures that focus will be restored if the inspector is refreshed."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"If one or several properties have changed, this must be called. [code]field[/"
+"code] is used in case your editor can modify fields separately (as an "
+"example, Vector3.x). The [code]changing[/code] argument avoids the editor "
+"requesting this property to be refreshed (leave as [code]false[/code] if "
+"unsure)."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid "Gets the edited object."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Gets the edited property. If your editor is for a single property (added via "
+"[method EditorInspectorPlugin.parse_property]), then this will return the "
+"property."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid "Must be implemented to provide a custom tooltip to the property editor."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Puts the [code]editor[/code] control below the property label. The control "
+"must be previously added using [method Node.add_child]."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid "When this virtual function is called, you must update your editor."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Used by the inspector, set to [code]true[/code] when the property is "
+"checkable."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Used by the inspector, set to [code]true[/code] when the property is checked."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Used by the inspector, set to [code]true[/code] when the property is drawn "
+"with the editor theme's warning color. This is used for editable children's "
+"properties."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Used by the inspector, set to [code]true[/code] when the property can add "
+"keys for animation."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid "Set this property to change the label (if you want to show one)."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Used by the inspector, set to [code]true[/code] when the property is read-"
+"only."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Emit it if you want multiple properties modified at the same time. Do not "
+"use if added via [method EditorInspectorPlugin.parse_property]."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid "Used by sub-inspectors. Emit it if what was selected was an Object ID."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Do not emit this manually, use the [method emit_changed] method instead."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid "Emitted when a property was checked. Used internally."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Emit it if you want to add this value as an animation key (check for keying "
+"being enabled first)."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid "Emit it if you want to key a property with a single value."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"Emit it if you want to mark (or unmark) the value of a property for being "
+"saved regardless of being equal to the default value.\n"
+"The default value is the one the property will get when the node is just "
+"instantiated and can come from an ancestor scene in the inheritance/"
+"instancing chain, a script or a builtin class."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid ""
+"If you want a sub-resource to be edited, emit this signal with the resource."
+msgstr ""
+
+#: doc/classes/EditorProperty.xml
+msgid "Emitted when selected. Used internally."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid "Godot editor's control for selecting [Resource] type properties."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid ""
+"This [Control] node is used in the editor's Inspector dock to allow editing "
+"of [Resource] type properties. It provides options for creating, loading, "
+"saving and converting resources. Can be used with [EditorInspectorPlugin] to "
+"recreate the same behavior.\n"
+"[b]Note:[/b] This [Control] does not include any editor for the resource, as "
+"editing is controlled by the Inspector dock itself or sub-Inspectors."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid ""
+"Returns a list of all allowed types and subtypes corresponding to the "
+"[member base_type]. If the [member base_type] is empty, an empty list is "
+"returned."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid ""
+"This virtual method can be implemented to handle context menu items not "
+"handled by default. See [method set_create_options]."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid ""
+"This virtual method is called when updating the context menu of "
+"[EditorResourcePicker]. Implement this method to override the \"New ...\" "
+"items with your own options. [code]menu_node[/code] is a reference to the "
+"[PopupMenu] node.\n"
+"[b]Note:[/b] Implement [method handle_menu_selected] to handle these custom "
+"items."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid ""
+"Sets the toggle mode state for the main button. Works only if [member "
+"toggle_mode] is set to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid ""
+"The base type of allowed resource types. Can be a comma-separated list of "
+"several options."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid "If [code]true[/code], the value can be selected and edited."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid "The edited resource value."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid ""
+"If [code]true[/code], the main button with the resource preview works in the "
+"toggle mode. Use [method set_toggle_pressed] to manually set the state."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid "Emitted when the value of the edited resource was changed."
+msgstr ""
+
+#: doc/classes/EditorResourcePicker.xml
+msgid ""
+"Emitted when the resource value was set and user clicked to edit it. When "
+"[code]edit[/code] is [code]true[/code], the signal was caused by the context "
+"menu \"Edit\" option."
+msgstr ""
+
+#: doc/classes/EditorResourcePreview.xml
+msgid "Helper to generate previews of resources or files."
+msgstr ""
+
+#: doc/classes/EditorResourcePreview.xml
+msgid ""
+"This object is used to generate previews for resources of files.\n"
+"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
+"the singleton using [method EditorInterface.get_resource_previewer]."
+msgstr ""
+
+#: doc/classes/EditorResourcePreview.xml
+msgid "Create an own, custom preview generator."
+msgstr ""
+
+#: doc/classes/EditorResourcePreview.xml
+msgid ""
+"Check if the resource changed, if so, it will be invalidated and the "
+"corresponding signal emitted."
+msgstr ""
+
+#: doc/classes/EditorResourcePreview.xml
+msgid ""
+"Queue the [code]resource[/code] being edited for preview. Once the preview "
+"is ready, the [code]receiver[/code]'s [code]receiver_func[/code] will be "
+"called. The [code]receiver_func[/code] must take the following four "
+"arguments: [String] path, [Texture] preview, [Texture] thumbnail_preview, "
+"[Variant] userdata. [code]userdata[/code] can be anything, and will be "
+"returned when [code]receiver_func[/code] is called.\n"
+"[b]Note:[/b] If it was not possible to create the preview the "
+"[code]receiver_func[/code] will still be called, but the preview will be "
+"null."
+msgstr ""
+
+#: doc/classes/EditorResourcePreview.xml
+msgid ""
+"Queue a resource file located at [code]path[/code] for preview. Once the "
+"preview is ready, the [code]receiver[/code]'s [code]receiver_func[/code] "
+"will be called. The [code]receiver_func[/code] must take the following four "
+"arguments: [String] path, [Texture] preview, [Texture] thumbnail_preview, "
+"[Variant] userdata. [code]userdata[/code] can be anything, and will be "
+"returned when [code]receiver_func[/code] is called.\n"
+"[b]Note:[/b] If it was not possible to create the preview the "
+"[code]receiver_func[/code] will still be called, but the preview will be "
+"null."
+msgstr ""
+
+#: doc/classes/EditorResourcePreview.xml
+msgid "Removes a custom preview generator."
+msgstr ""
+
+#: doc/classes/EditorResourcePreview.xml
+msgid ""
+"Emitted if a preview was invalidated (changed). [code]path[/code] "
+"corresponds to the path of the preview."
+msgstr ""
+
+#: doc/classes/EditorResourcePreviewGenerator.xml
+msgid "Custom generator of previews."
+msgstr ""
+
+#: doc/classes/EditorResourcePreviewGenerator.xml
+msgid ""
+"Custom code to generate previews. Please check [code]file_dialog/"
+"thumbnail_size[/code] in [EditorSettings] to find out the right size to do "
+"previews at."
+msgstr ""
+
+#: doc/classes/EditorResourcePreviewGenerator.xml
+msgid ""
+"If this function returns [code]true[/code], the generator will call [method "
+"generate] or [method generate_from_path] for small previews as well.\n"
+"By default, it returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/EditorResourcePreviewGenerator.xml
+msgid ""
+"Generate a preview from a given resource with the specified size. This must "
+"always be implemented.\n"
+"Returning an empty texture is an OK way to fail and let another generator "
+"take care.\n"
+"Care must be taken because this function is always called from a thread (not "
+"the main thread)."
+msgstr ""
+
+#: doc/classes/EditorResourcePreviewGenerator.xml
+msgid ""
+"Generate a preview directly from a path with the specified size. "
+"Implementing this is optional, as default code will load and call [method "
+"generate].\n"
+"Returning an empty texture is an OK way to fail and let another generator "
+"take care.\n"
+"Care must be taken because this function is always called from a thread (not "
+"the main thread)."
+msgstr ""
+
+#: doc/classes/EditorResourcePreviewGenerator.xml
+msgid ""
+"If this function returns [code]true[/code], the generator will automatically "
+"generate the small previews from the normal preview texture generated by the "
+"methods [method generate] or [method generate_from_path].\n"
+"By default, it returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/EditorResourcePreviewGenerator.xml
+msgid ""
+"Returns [code]true[/code] if your generator supports the resource of type "
+"[code]type[/code]."
+msgstr ""
+
+#: doc/classes/EditorSceneImporter.xml
+msgid "Imports scenes from third-parties' 3D files."
+msgstr ""
+
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
+#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
+msgid "FBX 3D asset importer."
+msgstr ""
+
+#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
+msgid ""
+"This is an FBX 3D asset importer with full support for most FBX features.\n"
+"If exporting a FBX scene from Autodesk Maya, use these FBX export settings:\n"
+"[codeblock]\n"
+"- Smoothing Groups\n"
+"- Smooth Mesh\n"
+"- Triangluate (for meshes with blend shapes)\n"
+"- Bake Animation\n"
+"- Resample All\n"
+"- Deformed Models\n"
+"- Skins\n"
+"- Blend Shapes\n"
+"- Curve Filters\n"
+"- Constant Key Reducer\n"
+"- Auto Tangents Only\n"
+"- *Do not check* Constraints (as it will break the file)\n"
+"- Can check Embed Media (embeds textures into the exported FBX file)\n"
+" - Note that when importing embedded media, the texture and mesh will be a "
+"single immutable file.\n"
+" - You will have to re-export then re-import the FBX if the texture has "
+"changed.\n"
+"- Units: Centimeters\n"
+"- Up Axis: Y\n"
+"- Binary format in FBX 2017\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/EditorScenePostImport.xml
+msgid "Post-processes scenes after import."
+msgstr ""
+
+#: doc/classes/EditorScenePostImport.xml
+msgid ""
+"Imported scenes can be automatically modified right after import by setting "
+"their [b]Custom Script[/b] Import property to a [code]tool[/code] script "
+"that inherits from this class.\n"
+"The [method post_import] callback receives the imported scene's root node "
+"and returns the modified version of the scene. Usage example:\n"
+"[codeblock]\n"
+"tool # Needed so it runs in editor\n"
+"extends EditorScenePostImport\n"
+"\n"
+"# This sample changes all node names\n"
+"\n"
+"# Called right after the scene is imported and gets the root node\n"
+"func post_import(scene):\n"
+" # Change all node names to \"modified_[oldnodename]\"\n"
+" iterate(scene)\n"
+" return scene # Remember to return the imported scene\n"
+"\n"
+"func iterate(node):\n"
+" if node != null:\n"
+" node.name = \"modified_\" + node.name\n"
+" for child in node.get_children():\n"
+" iterate(child)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/EditorScenePostImport.xml
+msgid "$DOCS_URL/tutorials/assets_pipeline/importing_scenes.html#custom-script"
+msgstr ""
+
+#: doc/classes/EditorScenePostImport.xml
+msgid ""
+"Returns the source file path which got imported (e.g. [code]res://scene.dae[/"
+"code])."
+msgstr ""
+
+#: doc/classes/EditorScenePostImport.xml
+msgid "Returns the resource folder the imported scene file is located in."
+msgstr ""
+
+#: doc/classes/EditorScenePostImport.xml
+msgid ""
+"Called after the scene was imported. This method must return the modified "
+"version of the scene."
+msgstr ""
+
+#: doc/classes/EditorScript.xml
+msgid "Base script that can be used to add extension functions to the editor."
+msgstr ""
+
+#: doc/classes/EditorScript.xml
+msgid ""
+"Scripts extending this class and implementing its [method _run] method can "
+"be executed from the Script Editor's [b]File > Run[/b] menu option (or by "
+"pressing [code]Ctrl+Shift+X[/code]) while the editor is running. This is "
+"useful for adding custom in-editor functionality to Godot. For more complex "
+"additions, consider using [EditorPlugin]s instead.\n"
+"[b]Note:[/b] Extending scripts need to have [code]tool[/code] mode enabled.\n"
+"[b]Example script:[/b]\n"
+"[codeblock]\n"
+"tool\n"
+"extends EditorScript\n"
+"\n"
+"func _run():\n"
+" print(\"Hello from the Godot Editor!\")\n"
+"[/codeblock]\n"
+"[b]Note:[/b] The script is run in the Editor context, which means the output "
+"is visible in the console window started with the Editor (stdout) instead of "
+"the usual Godot [b]Output[/b] dock."
+msgstr ""
+
+#: doc/classes/EditorScript.xml
+msgid "This method is executed by the Editor when [b]File > Run[/b] is used."
+msgstr ""
+
+#: doc/classes/EditorScript.xml
+msgid ""
+"Adds [code]node[/code] as a child of the root node in the editor context.\n"
+"[b]Warning:[/b] The implementation of this method is currently disabled."
+msgstr ""
+
+#: doc/classes/EditorScript.xml
+msgid "Returns the [EditorInterface] singleton instance."
+msgstr ""
+
+#: doc/classes/EditorScript.xml
+msgid "Returns the Editor's currently active scene."
+msgstr ""
+
+#: doc/classes/EditorScriptPicker.xml
+msgid ""
+"Godot editor's control for selecting the [code]script[/code] property of a "
+"[Node]."
+msgstr ""
+
+#: doc/classes/EditorScriptPicker.xml
+msgid ""
+"Similar to [EditorResourcePicker] this [Control] node is used in the "
+"editor's Inspector dock, but only to edit the [code]script[/code] property "
+"of a [Node]. Default options for creating new resources of all possible "
+"subtypes are replaced with dedicated buttons that open the \"Attach Node "
+"Script\" dialog. Can be used with [EditorInspectorPlugin] to recreate the "
+"same behavior.\n"
+"[b]Note:[/b] You must set the [member script_owner] for the custom context "
+"menu items to work."
+msgstr ""
+
+#: doc/classes/EditorScriptPicker.xml
+msgid "The owner [Node] of the script property that holds the edited resource."
+msgstr ""
+
+#: doc/classes/EditorSelection.xml
+msgid "Manages the SceneTree selection in the editor."
+msgstr ""
+
+#: doc/classes/EditorSelection.xml
+msgid ""
+"This object manages the SceneTree selection in the editor.\n"
+"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
+"the singleton using [method EditorInterface.get_selection]."
+msgstr ""
+
+#: doc/classes/EditorSelection.xml
+msgid ""
+"Adds a node to the selection.\n"
+"[b]Note:[/b] The newly selected node will not be automatically edited in the "
+"inspector. If you want to edit a node, use [method EditorInterface."
+"edit_node]."
+msgstr ""
+
+#: doc/classes/EditorSelection.xml
+msgid "Clear the selection."
+msgstr ""
+
+#: doc/classes/EditorSelection.xml
+msgid "Gets the list of selected nodes."
+msgstr ""
+
+#: doc/classes/EditorSelection.xml
+msgid ""
+"Gets the list of selected nodes, optimized for transform operations (i.e. "
+"moving them, rotating, etc). This list avoids situations where a node is "
+"selected and also child/grandchild."
+msgstr ""
+
+#: doc/classes/EditorSelection.xml
+msgid "Removes a node from the selection."
+msgstr ""
+
+#: doc/classes/EditorSelection.xml
+msgid "Emitted when the selection changes."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid "Object that holds the project-independent editor settings."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Object that holds the project-independent editor settings. These settings "
+"are generally visible in the [b]Editor > Editor Settings[/b] menu.\n"
+"Property names use slash delimiters to distinguish sections. Setting values "
+"can be of any [Variant] type. It's recommended to use [code]snake_case[/"
+"code] for editor settings to be consistent with the Godot editor itself.\n"
+"Accessing the settings can be done using the following methods, such as:\n"
+"[codeblock]\n"
+"# `settings.set(\"some/property\", value)` also works as this class "
+"overrides `_set()` internally.\n"
+"settings.set_setting(\"some/property\",value)\n"
+"\n"
+"# `settings.get(\"some/property\", value)` also works as this class "
+"overrides `_get()` internally.\n"
+"settings.get_setting(\"some/property\")\n"
+"\n"
+"var list_of_settings = settings.get_property_list()\n"
+"[/codeblock]\n"
+"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
+"the singleton using [method EditorInterface.get_editor_settings]."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Adds a custom property info to a property. The dictionary must contain:\n"
+"- [code]name[/code]: [String] (the name of the property)\n"
+"- [code]type[/code]: [int] (see [enum Variant.Type])\n"
+"- optionally [code]hint[/code]: [int] (see [enum PropertyHint]) and "
+"[code]hint_string[/code]: [String]\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"editor_settings.set(\"category/property_name\", 0)\n"
+"\n"
+"var property_info = {\n"
+" \"name\": \"category/property_name\",\n"
+" \"type\": TYPE_INT,\n"
+" \"hint\": PROPERTY_HINT_ENUM,\n"
+" \"hint_string\": \"one,two,three\"\n"
+"}\n"
+"\n"
+"editor_settings.add_property_info(property_info)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid "Erases the setting whose name is specified by [code]property[/code]."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid "Returns the list of favorite files and directories for this project."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Returns project-specific metadata for the [code]section[/code] and "
+"[code]key[/code] specified. If the metadata doesn't exist, [code]default[/"
+"code] will be returned instead. See also [method set_project_metadata]."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Returns the project-specific settings path. Projects all have a unique "
+"subdirectory inside the settings path where project-specific settings are "
+"saved."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Returns the list of recently visited folders in the file dialog for this "
+"project."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Returns the value of the setting specified by [code]name[/code]. This is "
+"equivalent to using [method Object.get] on the EditorSettings instance."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Gets the global settings path for the engine. Inside this path, you can find "
+"some standard paths such as:\n"
+"[code]settings/tmp[/code] - Used for temporary storage of files\n"
+"[code]settings/templates[/code] - Where export templates are located"
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Returns [code]true[/code] if the setting specified by [code]name[/code] "
+"exists, [code]false[/code] otherwise."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Returns [code]true[/code] if the setting specified by [code]name[/code] can "
+"have its value reverted to the default value, [code]false[/code] otherwise. "
+"When this method returns [code]true[/code], a Revert button will display "
+"next to the setting in the Editor Settings."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Returns the default value of the setting specified by [code]name[/code]. "
+"This is the value that would be applied when clicking the Revert button in "
+"the Editor Settings."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid "Sets the list of favorite files and directories for this project."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Sets the initial value of the setting specified by [code]name[/code] to "
+"[code]value[/code]. This is used to provide a value for the Revert button in "
+"the Editor Settings. If [code]update_current[/code] is true, the current "
+"value of the setting will be set to [code]value[/code] as well."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Sets project-specific metadata with the [code]section[/code], [code]key[/"
+"code] and [code]data[/code] specified. This metadata is stored outside the "
+"project folder and therefore won't be checked into version control. See also "
+"[method get_project_metadata]."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Sets the list of recently visited folders in the file dialog for this "
+"project."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Sets the [code]value[/code] of the setting specified by [code]name[/code]. "
+"This is equivalent to using [method Object.set] on the EditorSettings "
+"instance."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid "Emitted after any editor setting has changed."
+msgstr ""
+
+#: doc/classes/EditorSettings.xml
+msgid ""
+"Emitted after any editor setting has changed. It's used by various editor "
+"plugins to update their visuals on theme changes or logic on configuration "
+"changes."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid "Custom gizmo for editing Spatial objects."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Custom gizmo that is used for providing custom visualization and editing "
+"(handles) for 3D Spatial objects. See [EditorSpatialGizmoPlugin] for more "
+"information."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Adds the specified [code]segments[/code] to the gizmo's collision shape for "
+"picking. Call this function during [method redraw]."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Adds collision triangles to the gizmo for picking. A [TriangleMesh] can be "
+"generated from a regular [Mesh] too. Call this function during [method "
+"redraw]."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Adds a list of handles (points) which can be used to deform the object being "
+"edited.\n"
+"There are virtual functions which will be called upon editing of these "
+"handles. Call this function during [method redraw]."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Adds lines to the gizmo (as sets of 2 points), with a given material. The "
+"lines are used for visualizing the gizmo. Call this function during [method "
+"redraw]."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Adds a mesh to the gizmo with the specified [code]billboard[/code] state, "
+"[code]skeleton[/code] and [code]material[/code]. If [code]billboard[/code] "
+"is [code]true[/code], the mesh will rotate to always face the camera. Call "
+"this function during [method redraw]."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Adds an unscaled billboard for visualization. Call this function during "
+"[method redraw]."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Removes everything in the gizmo including meshes, collisions and handles."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Commit a handle being edited (handles must have been previously added by "
+"[method add_handles]).\n"
+"If the [code]cancel[/code] parameter is [code]true[/code], an option to "
+"restore the edited value to the original is provided."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Gets the name of an edited handle (handles must have been previously added "
+"by [method add_handles]).\n"
+"Handles can be named for reference to the user when editing."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Gets actual value of a handle. This value can be anything and used for "
+"eventually undoing the motion when calling [method commit_handle]."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Returns the [EditorSpatialGizmoPlugin] that owns this gizmo. It's useful to "
+"retrieve materials using [method EditorSpatialGizmoPlugin.get_material]."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid "Returns the Spatial node associated with this gizmo."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Returns [code]true[/code] if the handle at index [code]index[/code] is "
+"highlighted by being hovered with the mouse."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"This function is called when the [Spatial] this gizmo refers to changes (the "
+"[method Spatial.update_gizmo] is called)."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"This function is used when the user drags a gizmo handle (previously added "
+"with [method add_handles]) in screen coordinates.\n"
+"The [Camera] is also provided so screen coordinates can be converted to "
+"raycasts."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Sets the gizmo's hidden state. If [code]true[/code], the gizmo will be "
+"hidden. If [code]false[/code], it will be shown."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmo.xml
+msgid ""
+"Sets the reference [Spatial] node for the gizmo. [code]node[/code] must "
+"inherit from [Spatial]."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid "Used by the editor to define Spatial gizmo types."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid "$DOCS_URL/tutorials/plugins/editor/spatial_gizmos.html"
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Adds a new material to the internal material list for the plugin. It can "
+"then be accessed with [method get_material]. Should not be overridden."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Override this method to define whether the gizmo can be hidden or not. "
+"Returns [code]true[/code] if not overridden."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Override this method to commit gizmo handles. Called for this plugin's "
+"active gizmos."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Override this method to return a custom [EditorSpatialGizmo] for the spatial "
+"nodes of your choice, return [code]null[/code] for the rest of nodes. See "
+"also [method has_gizmo]."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Creates a handle material with its variants (selected and/or editable) and "
+"adds them to the internal material list. They can then be accessed with "
+"[method get_material] and used in [method EditorSpatialGizmo.add_handles]. "
+"Should not be overridden.\n"
+"You can optionally provide a texture to use instead of the default icon."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Creates an icon material with its variants (selected and/or editable) and "
+"adds them to the internal material list. They can then be accessed with "
+"[method get_material] and used in [method EditorSpatialGizmo."
+"add_unscaled_billboard]. Should not be overridden."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Creates an unshaded material with its variants (selected and/or editable) "
+"and adds them to the internal material list. They can then be accessed with "
+"[method get_material] and used in [method EditorSpatialGizmo.add_mesh] and "
+"[method EditorSpatialGizmo.add_lines]. Should not be overridden."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Override this method to provide gizmo's handle names. Called for this "
+"plugin's active gizmos."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Gets actual value of a handle from gizmo. Called for this plugin's active "
+"gizmos."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Gets material from the internal list of materials. If an "
+"[EditorSpatialGizmo] is provided, it will try to get the corresponding "
+"variant (selected and/or editable)."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Override this method to provide the name that will appear in the gizmo "
+"visibility menu."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Override this method to set the gizmo's priority. Higher values correspond "
+"to higher priority. If a gizmo with higher priority conflicts with another "
+"gizmo, only the gizmo with higher priority will be used.\n"
+"All built-in editor gizmos return a priority of [code]-1[/code]. If not "
+"overridden, this method will return [code]0[/code], which means custom "
+"gizmos will automatically override built-in gizmos."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Override this method to define which Spatial nodes have a gizmo from this "
+"plugin. Whenever a [Spatial] node is added to a scene this method is called, "
+"if it returns [code]true[/code] the node gets a generic [EditorSpatialGizmo] "
+"assigned and is added to this plugin's list of active gizmos."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Gets whether a handle is highlighted or not. Called for this plugin's active "
+"gizmos."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Override this method to define whether a Spatial with this gizmo should be "
+"selectable even when the gizmo is hidden."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Callback to redraw the provided gizmo. Called for this plugin's active "
+"gizmos."
+msgstr ""
+
+#: doc/classes/EditorSpatialGizmoPlugin.xml
+msgid ""
+"Update the value of a handle after it has been updated. Called for this "
+"plugin's active gizmos."
+msgstr ""
+
+#: doc/classes/EditorSpinSlider.xml
+msgid "Godot editor's control for editing numeric values."
+msgstr ""
+
+#: doc/classes/EditorSpinSlider.xml
+msgid ""
+"This [Control] node is used in the editor's Inspector dock to allow editing "
+"of numeric values. Can be used with [EditorInspectorPlugin] to recreate the "
+"same behavior."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Version Control System (VCS) interface which reads and writes to the local "
+"VCS in use."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Used by the editor to display VCS extracted information in the editor. The "
+"implementation of this API is included in VCS addons, which are essentially "
+"GDNative plugins that need to be put into the project folder. These VCS "
+"addons are scripts which are attached (on demand) to the object instance of "
+"[code]EditorVCSInterface[/code]. All the functions listed below, instead of "
+"performing the task themselves, they call the internally defined functions "
+"in the VCS addons to provide a plug-n-play experience."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Creates a version commit if the addon is initialized, else returns without "
+"doing anything. Uses the files which have been staged previously, with the "
+"commit message set to a value as provided as in the argument."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Returns an [Array] of [Dictionary] objects containing the diff output from "
+"the VCS in use, if a VCS addon is initialized, else returns an empty [Array] "
+"object. The diff contents also consist of some contextual lines which "
+"provide context to the observed line change in the file.\n"
+"Each [Dictionary] object has the line diff contents under the keys:\n"
+"- [code]\"content\"[/code] to store a [String] containing the line contents\n"
+"- [code]\"status\"[/code] to store a [String] which contains [code]\"+\"[/"
+"code] in case the content is a line addition but it stores a [code]\"-\"[/"
+"code] in case of deletion and an empty string in the case the line content "
+"is neither an addition nor a deletion.\n"
+"- [code]\"new_line_number\"[/code] to store an integer containing the new "
+"line number of the line content.\n"
+"- [code]\"line_count\"[/code] to store an integer containing the number of "
+"lines in the line content.\n"
+"- [code]\"old_line_number\"[/code] to store an integer containing the old "
+"line number of the line content.\n"
+"- [code]\"offset\"[/code] to store the offset of the line change since the "
+"first contextual line content."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Returns a [Dictionary] containing the path of the detected file change "
+"mapped to an integer signifying what kind of change the corresponding file "
+"has experienced.\n"
+"The following integer values are being used to signify that the detected "
+"file is:\n"
+"- [code]0[/code]: New to the VCS working directory\n"
+"- [code]1[/code]: Modified\n"
+"- [code]2[/code]: Renamed\n"
+"- [code]3[/code]: Deleted\n"
+"- [code]4[/code]: Typechanged"
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid "Returns the project name of the VCS working directory."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Returns the name of the VCS if the VCS has been initialized, else return an "
+"empty string."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Initializes the VCS addon if not already. Uses the argument value as the "
+"path to the working directory of the project. Creates the initial commit if "
+"required. Returns [code]true[/code] if no failure occurs, else returns "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Returns [code]true[/code] if the addon is ready to respond to function "
+"calls, else returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Returns [code]true[/code] if the VCS addon has been initialized, else "
+"returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Shuts down the VCS addon to allow cleanup code to run on call. Returns "
+"[code]true[/code] is no failure occurs, else returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Stages the file which should be committed when [method EditorVCSInterface."
+"commit] is called. Argument should contain the absolute path."
+msgstr ""
+
+#: doc/classes/EditorVCSInterface.xml
+msgid ""
+"Unstages the file which was staged previously to be committed, so that it is "
+"no longer committed when [method EditorVCSInterface.commit] is called. "
+"Argument should contain the absolute path."
+msgstr ""
+
+#: doc/classes/EncodedObjectAsID.xml
+msgid "Holds a reference to an [Object]'s instance ID."
+msgstr ""
+
+#: doc/classes/EncodedObjectAsID.xml
+msgid ""
+"Utility class which holds a reference to the internal identifier of an "
+"[Object] instance, as given by [method Object.get_instance_id]. This ID can "
+"then be used to retrieve the object instance with [method @GDScript."
+"instance_from_id].\n"
+"This class is used internally by the editor inspector and script debugger, "
+"but can also be used in plugins to pass and display objects as their IDs."
+msgstr ""
+
+#: doc/classes/EncodedObjectAsID.xml
+msgid ""
+"The [Object] identifier stored in this [EncodedObjectAsID] instance. The "
+"object instance can be retrieved with [method @GDScript.instance_from_id]."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid "Access to engine properties."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"The [Engine] singleton allows you to query and modify the project's run-time "
+"parameters, such as frames per second, time scale, and others."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns engine author information in a Dictionary.\n"
+"[code]lead_developers[/code] - Array of Strings, lead developer names\n"
+"[code]founders[/code] - Array of Strings, founder names\n"
+"[code]project_managers[/code] - Array of Strings, project manager names\n"
+"[code]developers[/code] - Array of Strings, developer names"
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns an Array of copyright information Dictionaries.\n"
+"[code]name[/code] - String, component name\n"
+"[code]parts[/code] - Array of Dictionaries {[code]files[/code], "
+"[code]copyright[/code], [code]license[/code]} describing subsections of the "
+"component"
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns a Dictionary of Arrays of donor names.\n"
+"{[code]platinum_sponsors[/code], [code]gold_sponsors[/code], "
+"[code]silver_sponsors[/code], [code]bronze_sponsors[/code], "
+"[code]mini_sponsors[/code], [code]gold_donors[/code], [code]silver_donors[/"
+"code], [code]bronze_donors[/code]}"
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns the total number of frames drawn. On headless platforms, or if the "
+"render loop is disabled with [code]--disable-render-loop[/code] via command "
+"line, [method get_frames_drawn] always returns [code]0[/code]. See [method "
+"get_idle_frames]."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid "Returns the frames per second of the running game."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns the total number of frames passed since engine initialization which "
+"is advanced on each [b]idle frame[/b], regardless of whether the render loop "
+"is enabled. See also [method get_frames_drawn] and [method "
+"get_physics_frames].\n"
+"[method get_idle_frames] can be used to run expensive logic less often "
+"without relying on a [Timer]:\n"
+"[codeblock]\n"
+"func _process(_delta):\n"
+" if Engine.get_idle_frames() % 2 == 0:\n"
+" pass # Run expensive logic only once every 2 idle (render) frames "
+"here.\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns Dictionary of licenses used by Godot and included third party "
+"components."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid "Returns Godot license text."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid "Returns the main loop object (see [MainLoop] and [SceneTree])."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns the total number of frames passed since engine initialization which "
+"is advanced on each [b]physics frame[/b]. See also [method "
+"get_idle_frames].\n"
+"[method get_physics_frames] can be used to run expensive logic less often "
+"without relying on a [Timer]:\n"
+"[codeblock]\n"
+"func _physics_process(_delta):\n"
+" if Engine.get_physics_frames() % 2 == 0:\n"
+" pass # Run expensive logic only once every 2 physics frames here.\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns the fraction through the current physics tick we are at the time of "
+"rendering the frame. This can be used to implement fixed timestep "
+"interpolation."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns a global singleton with given [code]name[/code]. Often used for "
+"plugins, e.g. [code]GodotPayment[/code] on Android."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns the current engine version information in a Dictionary.\n"
+"[code]major[/code] - Holds the major version number as an int\n"
+"[code]minor[/code] - Holds the minor version number as an int\n"
+"[code]patch[/code] - Holds the patch version number as an int\n"
+"[code]hex[/code] - Holds the full version number encoded as a "
+"hexadecimal int with one byte (2 places) per number (see example below)\n"
+"[code]status[/code] - Holds the status (e.g. \"beta\", \"rc1\", "
+"\"rc2\", ... \"stable\") as a String\n"
+"[code]build[/code] - Holds the build name (e.g. \"custom_build\") as a "
+"String\n"
+"[code]hash[/code] - Holds the full Git commit hash as a String\n"
+"[code]year[/code] - Holds the year the version was released in as an "
+"int\n"
+"[code]string[/code] - [code]major[/code] + [code]minor[/code] + "
+"[code]patch[/code] + [code]status[/code] + [code]build[/code] in a single "
+"String\n"
+"The [code]hex[/code] value is encoded as follows, from left to right: one "
+"byte for the major, one byte for the minor, one byte for the patch version. "
+"For example, \"3.1.12\" would be [code]0x03010C[/code]. [b]Note:[/b] It's "
+"still an int internally, and printing it will give you its decimal "
+"representation, which is not particularly meaningful. Use hexadecimal "
+"literals for easy version comparisons from code:\n"
+"[codeblock]\n"
+"if Engine.get_version_info().hex >= 0x030200:\n"
+" # Do things specific to version 3.2 or later\n"
+"else:\n"
+" # Do things specific to versions before 3.2\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns [code]true[/code] if a singleton with given [code]name[/code] exists "
+"in global scope."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Returns [code]true[/code] if the game is inside the fixed process and "
+"physics phase of the game loop."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"If [code]true[/code], the script is currently running inside the editor. "
+"This is useful for [code]tool[/code] scripts to conditionally draw editor "
+"helpers, or prevent accidentally running \"game\" code that would affect the "
+"scene state while in the editor:\n"
+"[codeblock]\n"
+"if Engine.editor_hint:\n"
+" draw_gizmos()\n"
+"else:\n"
+" simulate_physics()\n"
+"[/codeblock]\n"
+"See [url=$DOCS_URL/tutorials/misc/running_code_in_the_editor.html]Running "
+"code in the editor[/url] in the documentation for more information.\n"
+"[b]Note:[/b] To detect whether the script is run from an editor [i]build[/i] "
+"(e.g. when pressing [code]F5[/code]), use [method OS.has_feature] with the "
+"[code]\"editor\"[/code] argument instead. [code]OS.has_feature(\"editor\")[/"
+"code] will evaluate to [code]true[/code] both when the code is running in "
+"the editor and when running the project from the editor, but it will "
+"evaluate to [code]false[/code] when the code is run from an exported project."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"The number of fixed iterations per second. This controls how often physics "
+"simulation and [method Node._physics_process] methods are run. This value "
+"should generally always be set to [code]60[/code] or above, as Godot doesn't "
+"interpolate the physics step. As a result, values lower than [code]60[/code] "
+"will look stuttery. This value can be increased to make input more reactive "
+"or work around collision tunneling issues, but keep in mind doing so will "
+"increase CPU usage. See also [member target_fps] and [member ProjectSettings."
+"physics/common/physics_fps].\n"
+"[b]Note:[/b] Only 8 physics ticks may be simulated per rendered frame at "
+"most. If more than 8 physics ticks have to be simulated per rendered frame "
+"to keep up with rendering, the game will appear to slow down (even if "
+"[code]delta[/code] is used consistently in physics calculations). Therefore, "
+"it is recommended not to increase [member Engine.iterations_per_second] "
+"above 240. Otherwise, the game will slow down when the rendering framerate "
+"goes below 30 FPS."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Controls how much physics ticks are synchronized with real time. For 0 or "
+"less, the ticks are synchronized. Such values are recommended for network "
+"games, where clock synchronization matters. Higher values cause higher "
+"deviation of the in-game clock and real clock but smooth out framerate "
+"jitters. The default value of 0.5 should be fine for most; values above 2 "
+"could cause the game to react to dropped frames with a noticeable delay and "
+"are not recommended.\n"
+"[b]Note:[/b] For best results, when using a custom physics interpolation "
+"solution, the physics jitter fix should be disabled by setting [member "
+"physics_jitter_fix] to [code]0[/code]."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"If [code]false[/code], stops printing error and warning messages to the "
+"console and editor Output log. This can be used to hide error and warning "
+"messages during unit test suite runs. This property is equivalent to the "
+"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
+"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
+"project, important error messages may be hidden even if they are emitted "
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
+"code] script, this will also impact the editor itself. Do [i]not[/i] report "
+"bugs before ensuring error messages are enabled (as they are by default).\n"
+"[b]Note:[/b] This property does not impact the editor's Errors tab when "
+"running a project from the editor."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"The desired frames per second. If the hardware cannot keep up, this setting "
+"may not be respected. A value of 0 means no limit."
+msgstr ""
+
+#: doc/classes/Engine.xml
+msgid ""
+"Controls how fast or slow the in-game clock ticks versus the real life one. "
+"It defaults to 1.0. A value of 2.0 means the game moves twice as fast as "
+"real life, whilst a value of 0.5 means the game moves at half the regular "
+"speed."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Resource for environment nodes (like [WorldEnvironment]) that define "
+"multiple rendering options."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Resource for environment nodes (like [WorldEnvironment]) that define "
+"multiple environment operations (such as background [Sky] or [Color], "
+"ambient light, fog, depth-of-field...). These parameters affect the final "
+"render of the scene. The order of these operations is:\n"
+"- Depth of Field Blur\n"
+"- Glow\n"
+"- Tonemap (Auto Exposure)\n"
+"- Adjustments\n"
+"These effects will only apply when the [Viewport]'s intended usage is \"3D\" "
+"or \"3D Without Effects\". This can be configured for the root Viewport with "
+"[member ProjectSettings.rendering/quality/intended_usage/"
+"framebuffer_allocation], or for specific Viewports via the [member Viewport."
+"usage] property."
+msgstr ""
+
+#: doc/classes/Environment.xml doc/classes/WorldEnvironment.xml
+msgid "$DOCS_URL/tutorials/3d/environment_and_post_processing.html"
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "$DOCS_URL/tutorials/3d/high_dynamic_range.html"
+msgstr ""
+
+#: doc/classes/Environment.xml doc/classes/Material.xml doc/classes/Mesh.xml
+#: doc/classes/MeshInstance.xml doc/classes/WorldEnvironment.xml
+msgid "https://godotengine.org/asset-library/asset/123"
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Returns [code]true[/code] if the glow level [code]idx[/code] is specified, "
+"[code]false[/code] otherwise."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Enables or disables the glow level at index [code]idx[/code]. Each level "
+"relies on the previous level. This means that enabling higher glow levels "
+"will slow down the glow effect rendering, even if previous levels aren't "
+"enabled."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The global brightness value of the rendered scene. Effective only if "
+"[code]adjustment_enabled[/code] is [code]true[/code]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Applies the provided [Texture] resource to affect the global color aspect of "
+"the rendered scene. Effective only if [code]adjustment_enabled[/code] is "
+"[code]true[/code]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The global contrast value of the rendered scene (default value is 1). "
+"Effective only if [code]adjustment_enabled[/code] is [code]true[/code]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"If [code]true[/code], enables the [code]adjustment_*[/code] properties "
+"provided by this resource. If [code]false[/code], modifications to the "
+"[code]adjustment_*[/code] properties will have no effect on the rendered "
+"scene."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The global color saturation value of the rendered scene (default value is "
+"1). Effective only if [code]adjustment_enabled[/code] is [code]true[/code]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The ambient light's [Color]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The ambient light's energy. The higher the value, the stronger the light."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Defines the amount of light that the sky brings on the scene. A value of 0 "
+"means that the sky's light emission has no effect on the scene illumination, "
+"thus all ambient illumination is provided by the ambient light. On the "
+"contrary, a value of 1 means that all the light that affects the scene is "
+"provided by the sky, thus the ambient light parameter has no effect on the "
+"scene."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"If [code]true[/code], enables the tonemapping auto exposure mode of the "
+"scene renderer. If [code]true[/code], the renderer will automatically "
+"determine the exposure setting to adapt to the scene's illumination and the "
+"observed light."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The maximum luminance value for the auto exposure."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The minimum luminance value for the auto exposure."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The scale of the auto exposure effect. Affects the intensity of auto "
+"exposure."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The speed of the auto exposure effect. Affects the time needed for the "
+"camera to perform auto exposure."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The ID of the camera feed to show in the background."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The maximum layer ID to display. Only effective when using the [constant "
+"BG_CANVAS] background mode."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The [Color] displayed for clear areas of the scene. Only effective when "
+"using the [constant BG_COLOR] or [constant BG_COLOR_SKY] background modes)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The power of the light emitted by the background."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The background mode. See [enum BGMode] for possible values."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The [Sky] resource defined as background."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The [Sky] resource's custom field of view."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The [Sky] resource's rotation expressed as a [Basis]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The [Sky] resource's rotation expressed as Euler angles in radians."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The [Sky] resource's rotation expressed as Euler angles in degrees."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The amount of far blur for the depth-of-field effect."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The distance from the camera where the far blur effect affects the rendering."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "If [code]true[/code], enables the depth-of-field far blur effect."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The depth-of-field far blur's quality. Higher values can mitigate the "
+"visible banding effect seen at higher strengths, but are much slower."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The length of the transition between the no-blur area and far blur."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The amount of near blur for the depth-of-field effect."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Distance from the camera where the near blur effect affects the rendering."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "If [code]true[/code], enables the depth-of-field near blur effect."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The depth-of-field near blur's quality. Higher values can mitigate the "
+"visible banding effect seen at higher strengths, but are much slower."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The length of the transition between the near blur and no-blur area."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The fog's [Color]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The fog's depth starting distance from the camera."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The fog depth's intensity curve. A number of presets are available in the "
+"[b]Inspector[/b] by right-clicking the curve."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"If [code]true[/code], the depth fog effect is enabled. When enabled, fog "
+"will appear in the distance (relative to the camera)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The fog's depth end distance from the camera. If this value is set to 0, it "
+"will be equal to the current camera's [member Camera.far] value."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"If [code]true[/code], fog effects are enabled. [member fog_height_enabled] "
+"and/or [member fog_depth_enabled] must be set to [code]true[/code] to "
+"actually display fog."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The height fog's intensity. A number of presets are available in the "
+"[b]Inspector[/b] by right-clicking the curve."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"If [code]true[/code], the height fog effect is enabled. When enabled, fog "
+"will appear in a defined height range, regardless of the distance from the "
+"camera. This can be used to simulate \"deep water\" effects with a lower "
+"performance cost compared to a dedicated shader."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The Y coordinate where the height fog will be the most intense. If this "
+"value is greater than [member fog_height_min], fog will be displayed from "
+"bottom to top. Otherwise, it will be displayed from top to bottom."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The Y coordinate where the height fog will be the least intense. If this "
+"value is greater than [member fog_height_max], fog will be displayed from "
+"top to bottom. Otherwise, it will be displayed from bottom to top."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The intensity of the depth fog color transition when looking towards the "
+"sun. The sun's direction is determined automatically using the "
+"DirectionalLight node in the scene."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The depth fog's [Color] when looking towards the sun."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The intensity of the fog light transmittance effect. Amount of light that "
+"the fog transmits."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Enables fog's light transmission effect. If [code]true[/code], light will be "
+"more visible in the fog to simulate light scattering as in real life."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Smooths out the blockiness created by sampling higher levels, at the cost of "
+"performance.\n"
+"[b]Note:[/b] When using the GLES2 renderer, this is only available if the "
+"GPU supports the [code]GL_EXT_gpu_shader4[/code] extension."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The glow blending mode."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The bloom's intensity. If set to a value higher than [code]0[/code], this "
+"will make glow visible in areas darker than the [member glow_hdr_threshold]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "If [code]true[/code], the glow effect is enabled."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The higher threshold of the HDR glow. Areas brighter than this threshold "
+"will be clamped for the purposes of the glow effect."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The bleed scale of the HDR glow."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The lower threshold of the HDR glow. When using the GLES2 renderer (which "
+"doesn't support HDR), this needs to be below [code]1.0[/code] for glow to be "
+"visible. A value of [code]0.9[/code] works well in this case."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Takes more samples during downsample pass of glow. This ensures that single "
+"pixels are captured by glow which makes the glow look smoother and more "
+"stable during movement. However, it is very expensive and makes the glow "
+"post process take twice as long."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The glow intensity. When using the GLES2 renderer, this should be increased "
+"to 1.5 to compensate for the lack of HDR rendering."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"If [code]true[/code], the 1st level of glow is enabled. This is the most "
+"\"local\" level (least blurry)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "If [code]true[/code], the 2th level of glow is enabled."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "If [code]true[/code], the 3th level of glow is enabled."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "If [code]true[/code], the 4th level of glow is enabled."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "If [code]true[/code], the 5th level of glow is enabled."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "If [code]true[/code], the 6th level of glow is enabled."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"If [code]true[/code], the 7th level of glow is enabled. This is the most "
+"\"global\" level (blurriest)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The glow strength. When using the GLES2 renderer, this should be increased "
+"to 1.3 to compensate for the lack of HDR rendering."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The depth tolerance for screen-space reflections."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"If [code]true[/code], screen-space reflections are enabled. Screen-space "
+"reflections are more accurate than reflections from [GIProbe]s or "
+"[ReflectionProbe]s, but are slower and can't reflect surfaces occluded by "
+"others."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The fade-in distance for screen-space reflections. Affects the area from the "
+"reflected material to the screen-space reflection)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The fade-out distance for screen-space reflections. Affects the area from "
+"the screen-space reflection to the \"global\" reflection."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The maximum number of steps for screen-space reflections. Higher values are "
+"slower."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"If [code]true[/code], screen-space reflections will take the material "
+"roughness into account."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The screen-space ambient occlusion intensity on materials that have an AO "
+"texture defined. Values higher than [code]0[/code] will make the SSAO effect "
+"visible in areas darkened by AO textures."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The screen-space ambient occlusion bias. This should be kept high enough to "
+"prevent \"smooth\" curves from being affected by ambient occlusion."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The screen-space ambient occlusion blur quality. See [enum SSAOBlur] for "
+"possible values."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The screen-space ambient occlusion color."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The screen-space ambient occlusion edge sharpness."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"If [code]true[/code], the screen-space ambient occlusion effect is enabled. "
+"This darkens objects' corners and cavities to simulate ambient light not "
+"reaching the entire object as in real life. This works well for small, "
+"dynamic objects, but baked lighting or ambient occlusion textures will do a "
+"better job at displaying ambient occlusion on large static objects. This is "
+"a costly effect and should be disabled first when running into performance "
+"issues."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The primary screen-space ambient occlusion intensity. See also [member "
+"ssao_radius]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The secondary screen-space ambient occlusion intensity. See also [member "
+"ssao_radius2]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The screen-space ambient occlusion intensity in direct light. In real life, "
+"ambient occlusion only applies to indirect light, which means its effects "
+"can't be seen in direct light. Values higher than [code]0[/code] will make "
+"the SSAO effect visible in direct light."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The screen-space ambient occlusion quality. Higher qualities will make "
+"better use of small objects for ambient occlusion, but are slower."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The primary screen-space ambient occlusion radius."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The secondary screen-space ambient occlusion radius. If set to a value "
+"higher than [code]0[/code], enables the secondary screen-space ambient "
+"occlusion effect which can be used to improve the effect's appearance (at "
+"the cost of performance)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "The default exposure used for tonemapping."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The tonemapping mode to use. Tonemapping is the process that \"converts\" "
+"HDR values to be suitable for rendering on a LDR display. (Godot doesn't "
+"support rendering on HDR displays yet.)"
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"The white reference value for tonemapping. Only effective if the [member "
+"tonemap_mode] isn't set to [constant TONE_MAPPER_LINEAR]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Keeps on screen every pixel drawn in the background. This is the fastest "
+"background mode, but it can only be safely used in fully-interior scenes (no "
+"visible sky or sky reflections). If enabled in a scene where the background "
+"is visible, \"ghost trail\" artifacts will be visible when moving the camera."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Clears the background using the clear color defined in [member "
+"ProjectSettings.rendering/environment/default_clear_color]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Clears the background using a custom clear color."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Displays a user-defined sky in the background."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Clears the background using a custom clear color and allows defining a sky "
+"for shading and reflection. This mode is slightly faster than [constant "
+"BG_SKY] and should be preferred in scenes where reflections can be visible, "
+"but the sky itself never is (e.g. top-down camera)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Displays a [CanvasLayer] in the background."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Displays a camera feed in the background."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Represents the size of the [enum BGMode] enum."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Additive glow blending mode. Mostly used for particles, glows (bloom), lens "
+"flare, bright sources."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Screen glow blending mode. Increases brightness, used frequently with bloom."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Soft light glow blending mode. Modifies contrast, exposes shadows and "
+"highlights (vivid bloom)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Replace glow blending mode. Replaces all pixels' color by the glow value. "
+"This can be used to simulate a full-screen blur effect by tweaking the glow "
+"parameters to match the original image's brightness."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Linear tonemapper operator. Reads the linear data and passes it on "
+"unmodified."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Reinhardt tonemapper operator. Performs a variation on rendered pixels' "
+"colors by this formula: [code]color = color / (1 + color)[/code]."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Filmic tonemapper operator."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
+"of the ACES tonemapping curve."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid ""
+"High quality Academy Color Encoding System tonemapper operator that matches "
+"the industry standard. Performs a more physically accurate curve fit which "
+"better simulates how light works in the real world. The color of lights and "
+"emissive materials will become lighter as the emissive energy increases, and "
+"will eventually become white if the light is bright enough to saturate the "
+"camera sensor."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Low depth-of-field blur quality (fastest)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Medium depth-of-field blur quality."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "High depth-of-field blur quality (slowest)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "No blur for the screen-space ambient occlusion effect (fastest)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "1×1 blur for the screen-space ambient occlusion effect."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "2×2 blur for the screen-space ambient occlusion effect."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "3×3 blur for the screen-space ambient occlusion effect (slowest)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Low quality for the screen-space ambient occlusion effect (fastest)."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Low quality for the screen-space ambient occlusion effect."
+msgstr ""
+
+#: doc/classes/Environment.xml
+msgid "Low quality for the screen-space ambient occlusion effect (slowest)."
+msgstr ""
+
+#: doc/classes/Expression.xml
+msgid "A class that stores an expression you can execute."
+msgstr ""
+
+#: doc/classes/Expression.xml
+msgid ""
+"An expression can be made of any arithmetic operation, built-in math "
+"function call, method call of a passed instance, or built-in type "
+"construction call.\n"
+"An example expression text using the built-in math functions could be "
+"[code]sqrt(pow(3,2) + pow(4,2))[/code].\n"
+"In the following example we use a [LineEdit] node to write our expression "
+"and show the result.\n"
+"[codeblock]\n"
+"onready var expression = Expression.new()\n"
+"\n"
+"func _ready():\n"
+" $LineEdit.connect(\"text_entered\", self, \"_on_text_entered\")\n"
+"\n"
+"func _on_text_entered(command):\n"
+" var error = expression.parse(command, [])\n"
+" if error != OK:\n"
+" print(expression.get_error_text())\n"
+" return\n"
+" var result = expression.execute([], null, true)\n"
+" if not expression.has_execute_failed():\n"
+" $LineEdit.text = str(result)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Expression.xml
+msgid ""
+"Executes the expression that was previously parsed by [method parse] and "
+"returns the result. Before you use the returned object, you should check if "
+"the method failed by calling [method has_execute_failed].\n"
+"If you defined input variables in [method parse], you can specify their "
+"values in the inputs array, in the same order."
+msgstr ""
+
+#: doc/classes/Expression.xml
+msgid "Returns the error text if [method parse] has failed."
+msgstr ""
+
+#: doc/classes/Expression.xml
+msgid "Returns [code]true[/code] if [method execute] has failed."
+msgstr ""
+
+#: doc/classes/Expression.xml
+msgid ""
+"Parses the expression and returns an [enum Error] code.\n"
+"You can optionally specify names of variables that may appear in the "
+"expression with [code]input_names[/code], so that you can bind them when it "
+"gets executed."
+msgstr ""
+
+#: doc/classes/ExternalTexture.xml
+msgid "Enable OpenGL ES external texture extension."
+msgstr ""
+
+#: doc/classes/ExternalTexture.xml
+msgid ""
+"Enable support for the OpenGL ES external texture extension as defined by "
+"[url=https://www.khronos.org/registry/OpenGL/extensions/OES/"
+"OES_EGL_image_external.txt]OES_EGL_image_external[/url].\n"
+"[b]Note:[/b] This is only supported for Android platforms."
+msgstr ""
+
+#: doc/classes/ExternalTexture.xml
+msgid "Returns the external texture name."
+msgstr ""
+
+#: doc/classes/ExternalTexture.xml
+msgid "External texture size."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Type to handle file reading and writing operations."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"File type. This is used to permanently store data into the user device's "
+"file system and to read from it. This can be used to store game save data or "
+"player configuration files, for example.\n"
+"Here's a sample on how to write and read from a file:\n"
+"[codeblock]\n"
+"func save(content):\n"
+" var file = File.new()\n"
+" file.open(\"user://save_game.dat\", File.WRITE)\n"
+" file.store_string(content)\n"
+" file.close()\n"
+"\n"
+"func load():\n"
+" var file = File.new()\n"
+" file.open(\"user://save_game.dat\", File.READ)\n"
+" var content = file.get_as_text()\n"
+" file.close()\n"
+" return content\n"
+"[/codeblock]\n"
+"In the example above, the file will be saved in the user data folder as "
+"specified in the [url=$DOCS_URL/tutorials/io/data_paths.html]Data paths[/"
+"url] documentation.\n"
+"[b]Note:[/b] To access project resources once exported, it is recommended to "
+"use [ResourceLoader] instead of the [File] API, as some files are converted "
+"to engine-specific formats and their original source files might not be "
+"present in the exported PCK package.\n"
+"[b]Note:[/b] Files are automatically closed only if the process exits "
+"\"normally\" (such as by clicking the window manager's close button or "
+"pressing [b]Alt + F4[/b]). If you stop the project execution by pressing "
+"[b]F8[/b] while the project is running, the file won't be closed as the game "
+"process will be killed. You can work around this by calling [method flush] "
+"at regular intervals."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Closes the currently opened file and prevents subsequent read/write "
+"operations. Use [method flush] to persist the data to disk without closing "
+"the file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns [code]true[/code] if the file cursor has already read past the end "
+"of the file.\n"
+"[b]Note:[/b] [code]eof_reached() == false[/code] cannot be used to check "
+"whether there is more data available. To loop while there is more data "
+"available, use:\n"
+"[codeblock]\n"
+"while file.get_position() < file.get_len():\n"
+" # Read data\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns [code]true[/code] if the file exists in the given path.\n"
+"[b]Note:[/b] Many resources types are imported (e.g. textures or sound "
+"files), and their source asset will not be included in the exported game, as "
+"only the imported version is used. See [method ResourceLoader.exists] for an "
+"alternative approach that takes resource remapping into account."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Writes the file's buffer to disk. Flushing is automatically performed when "
+"the file is closed. This means you don't need to call [method flush] "
+"manually before closing a file using [method close]. Still, calling [method "
+"flush] can be used to ensure the data is safe even if the project crashes "
+"instead of being closed gracefully.\n"
+"[b]Note:[/b] Only call [method flush] when you actually need it. Otherwise, "
+"it will decrease performance due to constant disk writes."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns the next 16 bits from the file as an integer. See [method store_16] "
+"for details on what values can be stored and retrieved this way."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns the next 32 bits from the file as an integer. See [method store_32] "
+"for details on what values can be stored and retrieved this way."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns the next 64 bits from the file as an integer. See [method store_64] "
+"for details on what values can be stored and retrieved this way."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns the next 8 bits from the file as an integer. See [method store_8] "
+"for details on what values can be stored and retrieved this way."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns the whole file as a [String].\n"
+"Text is interpreted as being UTF-8 encoded."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Returns next [code]len[/code] bytes of the file as a [PoolByteArray]."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns the next value of the file in CSV (Comma-Separated Values) format. "
+"You can pass a different delimiter [code]delim[/code] to use other than the "
+"default [code]\",\"[/code] (comma). This delimiter must be one-character "
+"long, and cannot be a double quotation mark.\n"
+"Text is interpreted as being UTF-8 encoded. Text values must be enclosed in "
+"double quotes if they include the delimiter character. Double quotes within "
+"a text value can be escaped by doubling their occurrence.\n"
+"For example, the following CSV lines are valid and will be properly parsed "
+"as two strings each:\n"
+"[codeblock]\n"
+"Alice,\"Hello, Bob!\"\n"
+"Bob,Alice! What a surprise!\n"
+"Alice,\"I thought you'd reply with \"\"Hello, world\"\".\"\n"
+"[/codeblock]\n"
+"Note how the second line can omit the enclosing quotes as it does not "
+"include the delimiter. However it [i]could[/i] very well use quotes, it was "
+"only written without for demonstration purposes. The third line must use "
+"[code]\"\"[/code] for each quotation mark that needs to be interpreted as "
+"such instead of the end of a text value."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Returns the next 64 bits from the file as a floating-point number."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns the last error that happened when trying to perform operations. "
+"Compare with the [code]ERR_FILE_*[/code] constants from [enum Error]."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Returns the next 32 bits from the file as a floating-point number."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Returns the size of the file in bytes."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns the next line of the file as a [String].\n"
+"Text is interpreted as being UTF-8 encoded."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns an MD5 String representing the file at the given path or an empty "
+"[String] on failure."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns the last time the [code]file[/code] was modified in unix timestamp "
+"format or returns a [String] \"ERROR IN [code]file[/code]\". This unix "
+"timestamp can be converted to datetime by using [method OS."
+"get_datetime_from_unix_time]."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns a [String] saved in Pascal format from the file.\n"
+"Text is interpreted as being UTF-8 encoded."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Returns the path as a [String] for the current open file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Returns the absolute path as a [String] for the current open file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Returns the file cursor's position."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Returns the next bits from the file as a floating-point number."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns a SHA-256 [String] representing the file at the given path or an "
+"empty [String] on failure."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Returns the next [Variant] value from the file. If [code]allow_objects[/"
+"code] is [code]true[/code], decoding objects is allowed.\n"
+"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
+"Do not use this option if the serialized object comes from untrusted sources "
+"to avoid potential security threats such as remote code execution."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Returns [code]true[/code] if the file is currently opened."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Opens the file for writing or reading, depending on the flags."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Opens a compressed file for reading or writing.\n"
+"[b]Note:[/b] [method open_compressed] can only read files that were saved by "
+"Godot, not third-party compression formats. See [url=https://github.com/"
+"godotengine/godot/issues/28999]GitHub issue #28999[/url] for a workaround."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Opens an encrypted file in write or read mode. You need to pass a binary key "
+"to encrypt/decrypt it.\n"
+"[b]Note:[/b] The provided key must be 32 bytes long."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Opens an encrypted file in write or read mode. You need to pass a password "
+"to encrypt/decrypt it."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Changes the file reading/writing cursor to the specified position (in bytes "
+"from the beginning of the file)."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Changes the file reading/writing cursor to the specified position (in bytes "
+"from the end of the file).\n"
+"[b]Note:[/b] This is an offset, so you should use negative numbers or the "
+"cursor will be at the end of the file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Stores an integer as 16 bits in the file.\n"
+"[b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, "
+"2^16 - 1][/code]. Any other value will overflow and wrap around.\n"
+"To store a signed integer, use [method store_64] or store a signed integer "
+"from the interval [code][-2^15, 2^15 - 1][/code] (i.e. keeping one bit for "
+"the signedness) and compute its sign manually when reading. For example:\n"
+"[codeblock]\n"
+"const MAX_15B = 1 << 15\n"
+"const MAX_16B = 1 << 16\n"
+"\n"
+"func unsigned16_to_signed(unsigned):\n"
+" return (unsigned + MAX_15B) % MAX_16B - MAX_15B\n"
+"\n"
+"func _ready():\n"
+" var f = File.new()\n"
+" f.open(\"user://file.dat\", File.WRITE_READ)\n"
+" f.store_16(-42) # This wraps around and stores 65494 (2^16 - 42).\n"
+" f.store_16(121) # In bounds, will store 121.\n"
+" f.seek(0) # Go back to start to read the stored value.\n"
+" var read1 = f.get_16() # 65494\n"
+" var read2 = f.get_16() # 121\n"
+" var converted1 = unsigned16_to_signed(read1) # -42\n"
+" var converted2 = unsigned16_to_signed(read2) # 121\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Stores an integer as 32 bits in the file.\n"
+"[b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, "
+"2^32 - 1][/code]. Any other value will overflow and wrap around.\n"
+"To store a signed integer, use [method store_64], or convert it manually "
+"(see [method store_16] for an example)."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Stores an integer as 64 bits in the file.\n"
+"[b]Note:[/b] The [code]value[/code] must lie in the interval [code][-2^63, "
+"2^63 - 1][/code] (i.e. be a valid [int] value)."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Stores an integer as 8 bits in the file.\n"
+"[b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, 255]"
+"[/code]. Any other value will overflow and wrap around.\n"
+"To store a signed integer, use [method store_64], or convert it manually "
+"(see [method store_16] for an example)."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Stores the given array of bytes in the file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Store the given [PoolStringArray] in the file as a line formatted in the CSV "
+"(Comma-Separated Values) format. You can pass a different delimiter "
+"[code]delim[/code] to use other than the default [code]\",\"[/code] (comma). "
+"This delimiter must be one-character long.\n"
+"Text will be encoded as UTF-8."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Stores a floating-point number as 64 bits in the file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Stores a floating-point number as 32 bits in the file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Appends [code]line[/code] to the file followed by a line return character "
+"([code]\\n[/code]), encoding the text as UTF-8."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Stores the given [String] as a line in the file in Pascal format (i.e. also "
+"store the length of the string).\n"
+"Text will be encoded as UTF-8."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Stores a floating-point number in the file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Appends [code]string[/code] to the file without a line return, encoding the "
+"text as UTF-8.\n"
+"[b]Note:[/b] This method is intended to be used to write text files. The "
+"string is stored as a UTF-8 encoded buffer without string length or "
+"terminating zero, which means that it can't be loaded back easily. If you "
+"want to store a retrievable string in a binary file, consider using [method "
+"store_pascal_string] instead. For retrieving strings from a text file, you "
+"can use [code]get_buffer(length).get_string_from_utf8()[/code] (if you know "
+"the length) or [method get_as_text]."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Stores any Variant value in the file. If [code]full_objects[/code] is "
+"[code]true[/code], encoding objects is allowed (and can potentially include "
+"code).\n"
+"[b]Note:[/b] Not all properties are included. Only properties that are "
+"configured with the [constant PROPERTY_USAGE_STORAGE] flag set will be "
+"serialized. You can add a new usage flag to a property by overriding the "
+"[method Object._get_property_list] method in your class. You can also check "
+"how property usage is configured by calling [method Object."
+"_get_property_list]. See [enum PropertyUsageFlags] for the possible usage "
+"flags."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"If [code]true[/code], the file is read with big-endian [url=https://en."
+"wikipedia.org/wiki/Endianness]endianness[/url]. If [code]false[/code], the "
+"file is read with little-endian endianness. If in doubt, leave this to "
+"[code]false[/code] as most files are written with little-endian endianness.\n"
+"[b]Note:[/b] [member endian_swap] is only about the file format, not the CPU "
+"type. The CPU endianness doesn't affect the default endianness for files "
+"written.\n"
+"[b]Note:[/b] This is always reset to [code]false[/code] whenever you open "
+"the file. Therefore, you must set [member endian_swap] [i]after[/i] opening "
+"the file, not before."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Opens the file for read operations. The cursor is positioned at the "
+"beginning of the file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Opens the file for write operations. The file is created if it does not "
+"exist, and truncated if it does."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Opens the file for read and write operations. Does not truncate the file. "
+"The cursor is positioned at the beginning of the file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Opens the file for read and write operations. The file is created if it does "
+"not exist, and truncated if it does. The cursor is positioned at the "
+"beginning of the file."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Uses the [url=http://fastlz.org/]FastLZ[/url] compression method."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Uses the [url=https://en.wikipedia.org/wiki/DEFLATE]DEFLATE[/url] "
+"compression method."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid ""
+"Uses the [url=https://facebook.github.io/zstd/]Zstandard[/url] compression "
+"method."
+msgstr ""
+
+#: doc/classes/File.xml
+msgid "Uses the [url=https://www.gzip.org/]gzip[/url] compression method."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Dialog for selecting files or directories in the filesystem."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"FileDialog is a preset dialog used to choose files and directories in the "
+"filesystem. It supports filter masks. The FileDialog automatically sets its "
+"window title according to the [member mode]. If you want to use a custom "
+"title, disable this by setting [member mode_overrides_title] to [code]false[/"
+"code]."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"Adds [code]filter[/code] as a custom filter; [code]filter[/code] should be "
+"of the form [code]\"filename.extension ; Description\"[/code]. For example, "
+"[code]\"*.png ; PNG Images\"[/code]."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Clear all the added filters in the dialog."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Clear currently selected items in the dialog."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"Returns the LineEdit for the selected file.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"Returns the vertical box container of the dialog, custom controls can be "
+"added to it.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Invalidate and update the current dialog content list."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"The file system access scope. See enum [code]Access[/code] constants.\n"
+"[b]Warning:[/b] Currently, in sandboxed environments such as HTML5 builds or "
+"sandboxed macOS apps, FileDialog cannot access the host file system. See "
+"[url=https://github.com/godotengine/godot-proposals/issues/1123]godot-"
+"proposals#1123[/url]."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "The current working directory of the file dialog."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "The currently selected file of the file dialog."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "The currently selected file path of the file dialog."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"The available file type filters. For example, this shows only [code].png[/"
+"code] and [code].gd[/code] files: [code]set_filters(PoolStringArray([\"*."
+"png ; PNG Images\",\"*.gd ; GDScript Files\"]))[/code]."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"The dialog's open or save mode, which affects the selection behavior. See "
+"enum [code]Mode[/code] constants."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"If [code]true[/code], changing the [code]Mode[/code] property will set the "
+"window title accordingly (e.g. setting mode to [constant MODE_OPEN_FILE] "
+"will change the window title to \"Open a File\")."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "If [code]true[/code], the dialog will show hidden files."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Emitted when the user selects a directory."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"Emitted when the user selects a file by double-clicking it or pressing the "
+"[b]OK[/b] button."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Emitted when the user selects multiple files."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "The dialog allows selecting one, and only one file."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "The dialog allows selecting multiple files."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"The dialog only allows selecting a directory, disallowing the selection of "
+"any file."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "The dialog allows selecting one file or directory."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "The dialog will warn when a file exists."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"The dialog only allows accessing files under the [Resource] path "
+"([code]res://[/code])."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"The dialog only allows accessing files under user data path ([code]user://[/"
+"code])."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "The dialog allows accessing files on the whole file system."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "The color modulation applied to the file icon."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid ""
+"The color tint for disabled files (when the [FileDialog] is used in open "
+"folder mode)."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "The color modulation applied to the folder icon."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Custom icon for files."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Custom icon for folders."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Custom icon for the parent folder arrow."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Custom icon for the reload button."
+msgstr ""
+
+#: doc/classes/FileDialog.xml
+msgid "Custom icon for the toggle hidden button."
+msgstr ""
+
+#: doc/classes/float.xml
+msgid "Float built-in type."
+msgstr ""
+
+#: doc/classes/float.xml
+msgid ""
+"The [float] built-in type is a 64-bit double-precision floating-point "
+"number, equivalent to [code]double[/code] in C++. This type has 14 reliable "
+"decimal digits of precision. The [float] type can be stored in [Variant], "
+"which is the generic type used by the engine. The maximum value of [float] "
+"is approximately [code]1.79769e308[/code], and the minimum is approximately "
+"[code]-1.79769e308[/code].\n"
+"Most methods and properties in the engine use 32-bit single-precision "
+"floating-point numbers instead, equivalent to [code]float[/code] in C++, "
+"which have 6 reliable decimal digits of precision. For data structures such "
+"as [Vector2] and [Vector3], Godot uses 32-bit floating-point numbers.\n"
+"Math done using the [float] type is not guaranteed to be exact or "
+"deterministic, and will often result in small errors. You should usually use "
+"the [method @GDScript.is_equal_approx] and [method @GDScript.is_zero_approx] "
+"methods instead of [code]==[/code] to compare [float] values for equality."
+msgstr ""
+
+#: doc/classes/float.xml
+msgid "https://en.wikipedia.org/wiki/Double-precision_floating-point_format"
+msgstr ""
+
+#: doc/classes/float.xml
+msgid "https://en.wikipedia.org/wiki/Single-precision_floating-point_format"
+msgstr ""
+
+#: doc/classes/float.xml
+msgid ""
+"Cast a [bool] value to a floating-point value, [code]float(true)[/code] will "
+"be equal to 1.0 and [code]float(false)[/code] will be equal to 0.0."
+msgstr ""
+
+#: doc/classes/float.xml
+msgid ""
+"Cast an [int] value to a floating-point value, [code]float(1)[/code] will be "
+"equal to 1.0."
+msgstr ""
+
+#: doc/classes/float.xml
+msgid ""
+"Cast a [String] value to a floating-point value. This method accepts float "
+"value strings like [code]\"1.23\"[/code] and exponential notation strings "
+"for its parameter so calling [code]float(\"1e3\")[/code] will return 1000.0 "
+"and calling [code]float(\"1e-3\")[/code] will return 0.001. Calling this "
+"method with an invalid float string will return 0. This method stops parsing "
+"at the first invalid character and will return the parsed result so far, so "
+"calling [code]float(\"1a3\")[/code] will return 1 while calling "
+"[code]float(\"1e3a2\")[/code] will return 1000.0."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid "Internationalized font and text drawing support."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid ""
+"Font contains a Unicode-compatible character set, as well as the ability to "
+"draw it with variable width, ascent, descent and kerning. For creating fonts "
+"from TTF files (or other font formats), see the editor support for fonts.\n"
+"[b]Note:[/b] If a [DynamicFont] doesn't contain a character used in a "
+"string, the character in question will be replaced with codepoint "
+"[code]0xfffd[/code] if it's available in the [DynamicFont]. If this "
+"replacement character isn't available in the DynamicFont, the character will "
+"be hidden without displaying any replacement character in the string.\n"
+"[b]Note:[/b] If a [BitmapFont] doesn't contain a character used in a string, "
+"the character in question will be hidden without displaying any replacement "
+"character in the string.\n"
+"[b]Note:[/b] Unicode characters after [code]0xffff[/code] (such as most "
+"emoji) are [i]not[/i] supported on Windows. They will display as unknown "
+"characters instead. This will be resolved in Godot 4.0."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid ""
+"Draw [code]string[/code] into a canvas item using the font at a given "
+"position, with [code]modulate[/code] color, and optionally clipping the "
+"width. [code]position[/code] specifies the baseline, not the top. To draw "
+"from the top, [i]ascent[/i] must be added to the Y axis.\n"
+"See also [method CanvasItem.draw_string]."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid ""
+"Draw character [code]char[/code] into a canvas item using the font at a "
+"given position, with [code]modulate[/code] color, and optionally kerning if "
+"[code]next[/code] is passed. clipping the width. [code]position[/code] "
+"specifies the baseline, not the top. To draw from the top, [i]ascent[/i] "
+"must be added to the Y axis. The width used by the character is returned, "
+"making this function useful for drawing strings character by character."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid "Returns the font ascent (number of pixels above the baseline)."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid ""
+"Returns the size of a character, optionally taking kerning into account if "
+"the next character is provided. Note that the height returned is the font "
+"height (see [method get_height]) and has no relation to the glyph height."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid "Returns the font descent (number of pixels below the baseline)."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid "Returns the total font height (ascent plus descent) in pixels."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid ""
+"Returns the size of a string, taking kerning and advance into account. Note "
+"that the height returned is the font height (see [method get_height]) and "
+"has no relation to the string."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid ""
+"Returns the size that the string would have with word wrapping enabled with "
+"a fixed [code]width[/code]."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid "Returns [code]true[/code] if the font has an outline."
+msgstr ""
+
+#: doc/classes/Font.xml
+msgid ""
+"After editing a font (changing size, ascent, char rects, etc.). Call this "
+"function to propagate changes to controls that might use it."
+msgstr ""
+
+#: doc/classes/FuncRef.xml
+msgid "Reference to a function in an object."
+msgstr ""
+
+#: doc/classes/FuncRef.xml
+msgid ""
+"In GDScript, functions are not [i]first-class objects[/i]. This means it is "
+"impossible to store them directly as variables, return them from another "
+"function, or pass them as arguments.\n"
+"However, by creating a [FuncRef] using the [method @GDScript.funcref] "
+"function, a reference to a function in a given object can be created, passed "
+"around and called."
+msgstr ""
+
+#: doc/classes/FuncRef.xml
+msgid ""
+"Calls the referenced function previously set in [member function] or [method "
+"@GDScript.funcref]."
+msgstr ""
+
+#: doc/classes/FuncRef.xml
+msgid ""
+"Calls the referenced function previously set in [member function] or [method "
+"@GDScript.funcref]. Contrarily to [method call_func], this method does not "
+"support a variable number of arguments but expects all parameters to be "
+"passed via a single [Array]."
+msgstr ""
+
+#: doc/classes/FuncRef.xml
+msgid "Returns whether the object still exists and has the function assigned."
+msgstr ""
+
+#: doc/classes/FuncRef.xml
+msgid ""
+"The object containing the referenced function. This object must be of a type "
+"actually inheriting from [Object], not a built-in type such as [int], "
+"[Vector2] or [Dictionary]."
+msgstr ""
+
+#: doc/classes/FuncRef.xml
+msgid "The name of the referenced function."
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid ""
+"An external library containing functions or script classes to use in Godot."
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid ""
+"A GDNative library can implement [NativeScript]s, global functions to call "
+"with the [GDNative] class, or low-level engine extensions through interfaces "
+"such as [ARVRInterfaceGDNative]. The library must be compiled for each "
+"platform and architecture that the project will run on."
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid ""
+"Returns paths to all dependency libraries for the current platform and "
+"architecture."
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid ""
+"Returns the path to the dynamic library file for the current platform and "
+"architecture."
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid ""
+"This resource in INI-style [ConfigFile] format, as in [code].gdnlib[/code] "
+"files."
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid ""
+"If [code]true[/code], Godot loads only one copy of the library and each "
+"script that references the library will share static data like static or "
+"global variables.\n"
+"If [code]false[/code], Godot loads a separate copy of the library into "
+"memory for each script that references it."
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid ""
+"If [code]true[/code], the editor will temporarily unload the library "
+"whenever the user switches away from the editor window, allowing the user to "
+"recompile the library without restarting Godot.\n"
+"[b]Note:[/b] If the library defines tool scripts that run inside the editor, "
+"[code]reloadable[/code] must be [code]false[/code]. Otherwise, the editor "
+"will attempt to unload the tool scripts while they're in use and crash."
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid ""
+"If [code]true[/code], Godot loads the library at startup rather than the "
+"first time a script uses the library, calling [code]{prefix}"
+"gdnative_singleton[/code] after initializing the library (where [code]"
+"{prefix}[/code] is the value of [member symbol_prefix]). The library remains "
+"loaded as long as Godot is running.\n"
+"[b]Note:[/b] A singleton library cannot be [member reloadable]."
+msgstr ""
+
+#: modules/gdnative/doc_classes/GDNativeLibrary.xml
+msgid ""
+"The prefix this library's entry point functions begin with. For example, a "
+"GDNativeLibrary would declare its [code]gdnative_init[/code] function as "
+"[code]godot_gdnative_init[/code] by default.\n"
+"On platforms that require statically linking libraries (currently only iOS), "
+"each library must have a different [code]symbol_prefix[/code]."
+msgstr ""
+
+#: modules/gdscript/doc_classes/GDScript.xml
+msgid "A script implemented in the GDScript programming language."
+msgstr ""
+
+#: modules/gdscript/doc_classes/GDScript.xml
+msgid ""
+"A script implemented in the GDScript programming language. The script "
+"extends the functionality of all objects that instance it.\n"
+"[method new] creates a new instance of the script. [method Object."
+"set_script] extends an existing object, if that object's class matches one "
+"of the script's base classes."
+msgstr ""
+
+#: modules/gdscript/doc_classes/GDScript.xml
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
+msgstr ""
+
+#: modules/gdscript/doc_classes/GDScript.xml
+msgid "Returns byte code for the script source code."
+msgstr ""
+
+#: modules/gdscript/doc_classes/GDScript.xml
+msgid ""
+"Returns a new instance of the script.\n"
+"For example:\n"
+"[codeblock]\n"
+"var MyClass = load(\"myclass.gd\")\n"
+"var instance = MyClass.new()\n"
+"assert(instance.get_script() == MyClass)\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/gdscript/doc_classes/GDScriptFunctionState.xml
+msgid "State of a function call after yielding."
+msgstr ""
+
+#: modules/gdscript/doc_classes/GDScriptFunctionState.xml
+msgid ""
+"Calling [method @GDScript.yield] within a function will cause that function "
+"to yield and return its current state as an object of this type. The yielded "
+"function call can then be resumed later by calling [method resume] on this "
+"state object."
+msgstr ""
+
+#: modules/gdscript/doc_classes/GDScriptFunctionState.xml
+msgid ""
+"Check whether the function call may be resumed. This is not the case if the "
+"function state was already resumed.\n"
+"If [code]extended_check[/code] is enabled, it also checks if the associated "
+"script and object still exist. The extended check is done in debug mode as "
+"part of [method GDScriptFunctionState.resume], but you can use this if you "
+"know you may be trying to resume without knowing for sure the object and/or "
+"script have survived up to that point."
+msgstr ""
+
+#: modules/gdscript/doc_classes/GDScriptFunctionState.xml
+msgid ""
+"Resume execution of the yielded function call.\n"
+"If handed an argument, return the argument from the [method @GDScript.yield] "
+"call in the yielded function call. You can pass e.g. an [Array] to hand "
+"multiple arguments.\n"
+"This function returns what the resumed function call returns, possibly "
+"another function state if yielded again."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The generic 6-degrees-of-freedom joint can implement a variety of joint "
+"types by locking certain axes' rotation or translation."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The first 3 DOF axes are linear axes, which represent translation of Bodies, "
+"and the latter 3 DOF axes represent the angular motion. Each axis can be "
+"either locked, or limited."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The amount of rotational damping across the X axis.\n"
+"The lower, the longer an impulse from one side takes to travel to the other "
+"side."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If [code]true[/code], rotation across the X axis is limited."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"When rotating across the X axis, this error tolerance factor defines how "
+"much the correction gets slowed down. The lower, the slower."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The maximum amount of force that can occur, when rotating around the X axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The minimum rotation in negative direction to break loose and rotate around "
+"the X axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The amount of rotational restitution across the X axis. The lower, the more "
+"restitution occurs."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The speed of all rotations across the X axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The minimum rotation in positive direction to break loose and rotate around "
+"the X axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The amount of rotational damping across the Y axis. The lower, the more "
+"dampening occurs."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If [code]true[/code], rotation across the Y axis is limited."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"When rotating across the Y axis, this error tolerance factor defines how "
+"much the correction gets slowed down. The lower, the slower."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The maximum amount of force that can occur, when rotating around the Y axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The minimum rotation in negative direction to break loose and rotate around "
+"the Y axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The amount of rotational restitution across the Y axis. The lower, the more "
+"restitution occurs."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The speed of all rotations across the Y axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The minimum rotation in positive direction to break loose and rotate around "
+"the Y axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The amount of rotational damping across the Z axis. The lower, the more "
+"dampening occurs."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If [code]true[/code], rotation across the Z axis is limited."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"When rotating across the Z axis, this error tolerance factor defines how "
+"much the correction gets slowed down. The lower, the slower."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The maximum amount of force that can occur, when rotating around the Z axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The minimum rotation in negative direction to break loose and rotate around "
+"the Z axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The amount of rotational restitution across the Z axis. The lower, the more "
+"restitution occurs."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The speed of all rotations across the Z axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The minimum rotation in positive direction to break loose and rotate around "
+"the Z axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If [code]true[/code], a rotating motor at the X axis is enabled."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "Maximum acceleration for the motor at the X axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "Target speed for the motor at the X axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If [code]true[/code], a rotating motor at the Y axis is enabled."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "Maximum acceleration for the motor at the Y axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "Target speed for the motor at the Y axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If [code]true[/code], a rotating motor at the Z axis is enabled."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "Maximum acceleration for the motor at the Z axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "Target speed for the motor at the Z axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The amount of damping that happens at the X motion."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If [code]true[/code], the linear motion across the X axis is limited."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The minimum difference between the pivot points' X axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The amount of restitution on the X axis movement. The lower, the more "
+"momentum gets lost."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"A factor applied to the movement across the X axis. The lower, the slower "
+"the movement."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The maximum difference between the pivot points' X axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The amount of damping that happens at the Y motion."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If [code]true[/code], the linear motion across the Y axis is limited."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The minimum difference between the pivot points' Y axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The amount of restitution on the Y axis movement. The lower, the more "
+"momentum gets lost."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"A factor applied to the movement across the Y axis. The lower, the slower "
+"the movement."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The maximum difference between the pivot points' Y axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The amount of damping that happens at the Z motion."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If [code]true[/code], the linear motion across the Z axis is limited."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The minimum difference between the pivot points' Z axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The amount of restitution on the Z axis movement. The lower, the more "
+"momentum gets lost."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"A factor applied to the movement across the Z axis. The lower, the slower "
+"the movement."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The maximum difference between the pivot points' Z axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"If [code]true[/code], then there is a linear motor on the X axis. It will "
+"attempt to reach the target velocity while staying within the force limits."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The maximum force the linear motor can apply on the X axis while trying to "
+"reach the target velocity."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The speed that the linear motor will attempt to reach on the X axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"If [code]true[/code], then there is a linear motor on the Y axis. It will "
+"attempt to reach the target velocity while staying within the force limits."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The maximum force the linear motor can apply on the Y axis while trying to "
+"reach the target velocity."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The speed that the linear motor will attempt to reach on the Y axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"If [code]true[/code], then there is a linear motor on the Z axis. It will "
+"attempt to reach the target velocity while staying within the force limits."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The maximum force the linear motor can apply on the Z axis while trying to "
+"reach the target velocity."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The speed that the linear motor will attempt to reach on the Z axis."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/PhysicsServer.xml
+msgid "The minimum difference between the pivot points' axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/PhysicsServer.xml
+msgid "The maximum difference between the pivot points' axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"A factor applied to the movement across the axes. The lower, the slower the "
+"movement."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The amount of restitution on the axes' movement. The lower, the more "
+"momentum gets lost."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The amount of damping that happens at the linear motion across the axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The velocity the linear motor will try to reach."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"The maximum force the linear motor will apply while trying to reach the "
+"velocity target."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The minimum rotation in negative direction to break loose and rotate around "
+"the axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The minimum rotation in positive direction to break loose and rotate around "
+"the axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "The speed of all rotations across the axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The amount of rotational damping across the axes. The lower, the more "
+"dampening occurs."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The amount of rotational restitution across the axes. The lower, the more "
+"restitution occurs."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The maximum amount of force that can occur, when rotating around the axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid ""
+"When rotating across the axes, this error tolerance factor defines how much "
+"the correction gets slowed down. The lower, the slower."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/PhysicsServer.xml
+msgid "Target speed for the motor at the axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/PhysicsServer.xml
+msgid "Maximum acceleration for the motor at the axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If enabled, linear motion is possible within the given limits."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If enabled, rotational motion is possible within the given limits."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If enabled, there is a rotational motor across these axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml
+msgid "If enabled, there is a linear motor across these axes."
+msgstr ""
+
+#: doc/classes/Generic6DOFJoint.xml doc/classes/HingeJoint.xml
+msgid "Represents the size of the [enum Flag] enum."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid "Helper node to calculate generic geometry operations."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Geometry provides users with a set of helper functions to create geometric "
+"shapes, compute intersections between shapes, and process various other "
+"geometric operations."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns an array with 6 [Plane]s that describe the sides of a box centered "
+"at the origin. The box size is defined by [code]extents[/code], which "
+"represents one (positive) corner of the box (i.e. half its actual size)."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns an array of [Plane]s closely bounding a faceted capsule centered at "
+"the origin with radius [code]radius[/code] and height [code]height[/code]. "
+"The parameter [code]sides[/code] defines how many planes will be generated "
+"for the side part of the capsule, whereas [code]lats[/code] gives the number "
+"of latitudinal steps at the bottom and top of the capsule. The parameter "
+"[code]axis[/code] describes the axis along which the capsule is oriented (0 "
+"for X, 1 for Y, 2 for Z)."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns an array of [Plane]s closely bounding a faceted cylinder centered at "
+"the origin with radius [code]radius[/code] and height [code]height[/code]. "
+"The parameter [code]sides[/code] defines how many planes will be generated "
+"for the round part of the cylinder. The parameter [code]axis[/code] "
+"describes the axis along which the cylinder is oriented (0 for X, 1 for Y, 2 "
+"for Z)."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Clips the polygon defined by the points in [code]points[/code] against the "
+"[code]plane[/code] and returns the points of the clipped polygon."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Clips [code]polygon_a[/code] against [code]polygon_b[/code] and returns an "
+"array of clipped polygons. This performs [constant OPERATION_DIFFERENCE] "
+"between polygons. Returns an empty array if [code]polygon_b[/code] "
+"completely overlaps [code]polygon_a[/code].\n"
+"If [code]polygon_b[/code] is enclosed by [code]polygon_a[/code], returns an "
+"outer polygon (boundary) and inner polygon (hole) which could be "
+"distinguished by calling [method is_polygon_clockwise]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Clips [code]polyline[/code] against [code]polygon[/code] and returns an "
+"array of clipped polylines. This performs [constant OPERATION_DIFFERENCE] "
+"between the polyline and the polygon. This operation can be thought of as "
+"cutting a line with a closed shape."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Given an array of [Vector2]s, returns the convex hull as a list of points in "
+"counterclockwise order. The last point is the same as the first one."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Mutually excludes common area defined by intersection of [code]polygon_a[/"
+"code] and [code]polygon_b[/code] (see [method intersect_polygons_2d]) and "
+"returns an array of excluded polygons. This performs [constant "
+"OPERATION_XOR] between polygons. In other words, returns all but common area "
+"between polygons.\n"
+"The operation may result in an outer polygon (boundary) and inner polygon "
+"(hole) produced which could be distinguished by calling [method "
+"is_polygon_clockwise]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns the 3D point on the 3D segment ([code]s1[/code], [code]s2[/code]) "
+"that is closest to [code]point[/code]. The returned point will always be "
+"inside the specified segment."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns the 2D point on the 2D segment ([code]s1[/code], [code]s2[/code]) "
+"that is closest to [code]point[/code]. The returned point will always be "
+"inside the specified segment."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns the 3D point on the 3D line defined by ([code]s1[/code], [code]s2[/"
+"code]) that is closest to [code]point[/code]. The returned point can be "
+"inside the segment ([code]s1[/code], [code]s2[/code]) or outside of it, i.e. "
+"somewhere on the line extending from the segment."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns the 2D point on the 2D line defined by ([code]s1[/code], [code]s2[/"
+"code]) that is closest to [code]point[/code]. The returned point can be "
+"inside the segment ([code]s1[/code], [code]s2[/code]) or outside of it, i.e. "
+"somewhere on the line extending from the segment."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Given the two 3D segments ([code]p1[/code], [code]p2[/code]) and ([code]q1[/"
+"code], [code]q2[/code]), finds those two points on the two segments that are "
+"closest to each other. Returns a [PoolVector3Array] that contains this point "
+"on ([code]p1[/code], [code]p2[/code]) as well the accompanying point on "
+"([code]q1[/code], [code]q2[/code])."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Given the two 2D segments ([code]p1[/code], [code]q1[/code]) and ([code]p2[/"
+"code], [code]q2[/code]), finds those two points on the two segments that are "
+"closest to each other. Returns a [PoolVector2Array] that contains this point "
+"on ([code]p1[/code], [code]q1[/code]) as well the accompanying point on "
+"([code]p2[/code], [code]q2[/code])."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid "Used internally by the engine."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Intersects [code]polygon_a[/code] with [code]polygon_b[/code] and returns an "
+"array of intersected polygons. This performs [constant "
+"OPERATION_INTERSECTION] between polygons. In other words, returns common "
+"area shared by polygons. Returns an empty array if no intersection occurs.\n"
+"The operation may result in an outer polygon (boundary) and inner polygon "
+"(hole) produced which could be distinguished by calling [method "
+"is_polygon_clockwise]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Intersects [code]polyline[/code] with [code]polygon[/code] and returns an "
+"array of intersected polylines. This performs [constant "
+"OPERATION_INTERSECTION] between the polyline and the polygon. This operation "
+"can be thought of as chopping a line with a closed shape."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns [code]true[/code] if [code]point[/code] is inside the circle or if "
+"it's located exactly [i]on[/i] the circle's boundary, otherwise returns "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns [code]true[/code] if [code]point[/code] is inside [code]polygon[/"
+"code] or if it's located exactly [i]on[/i] polygon's boundary, otherwise "
+"returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns [code]true[/code] if [code]polygon[/code]'s vertices are ordered in "
+"clockwise order, otherwise returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Checks if the two lines ([code]from_a[/code], [code]dir_a[/code]) and "
+"([code]from_b[/code], [code]dir_b[/code]) intersect. If yes, return the "
+"point of intersection as [Vector2]. If no intersection takes place, returns "
+"an empty [Variant].\n"
+"[b]Note:[/b] The lines are specified using direction vectors, not end points."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Given an array of [Vector2]s representing tiles, builds an atlas. The "
+"returned dictionary has two keys: [code]points[/code] is a vector of "
+"[Vector2] that specifies the positions of each tile, [code]size[/code] "
+"contains the overall size of the whole atlas as [Vector2]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Merges (combines) [code]polygon_a[/code] and [code]polygon_b[/code] and "
+"returns an array of merged polygons. This performs [constant "
+"OPERATION_UNION] between polygons.\n"
+"The operation may result in an outer polygon (boundary) and multiple inner "
+"polygons (holes) produced which could be distinguished by calling [method "
+"is_polygon_clockwise]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Inflates or deflates [code]polygon[/code] by [code]delta[/code] units "
+"(pixels). If [code]delta[/code] is positive, makes the polygon grow outward. "
+"If [code]delta[/code] is negative, shrinks the polygon inward. Returns an "
+"array of polygons because inflating/deflating may result in multiple "
+"discrete polygons. Returns an empty array if [code]delta[/code] is negative "
+"and the absolute value of it approximately exceeds the minimum bounding "
+"rectangle dimensions of the polygon.\n"
+"Each polygon's vertices will be rounded as determined by [code]join_type[/"
+"code], see [enum PolyJoinType].\n"
+"The operation may result in an outer polygon (boundary) and inner polygon "
+"(hole) produced which could be distinguished by calling [method "
+"is_polygon_clockwise].\n"
+"[b]Note:[/b] To translate the polygon's vertices specifically, use the "
+"[method Transform2D.xform] method:\n"
+"[codeblock]\n"
+"var polygon = PoolVector2Array([Vector2(0, 0), Vector2(100, 0), Vector2(100, "
+"100), Vector2(0, 100)])\n"
+"var offset = Vector2(50, 50)\n"
+"polygon = Transform2D(0, offset).xform(polygon)\n"
+"print(polygon) # prints [Vector2(50, 50), Vector2(150, 50), Vector2(150, "
+"150), Vector2(50, 150)]\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Inflates or deflates [code]polyline[/code] by [code]delta[/code] units "
+"(pixels), producing polygons. If [code]delta[/code] is positive, makes the "
+"polyline grow outward. Returns an array of polygons because inflating/"
+"deflating may result in multiple discrete polygons. If [code]delta[/code] is "
+"negative, returns an empty array.\n"
+"Each polygon's vertices will be rounded as determined by [code]join_type[/"
+"code], see [enum PolyJoinType].\n"
+"Each polygon's endpoints will be rounded as determined by [code]end_type[/"
+"code], see [enum PolyEndType].\n"
+"The operation may result in an outer polygon (boundary) and inner polygon "
+"(hole) produced which could be distinguished by calling [method "
+"is_polygon_clockwise]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Returns if [code]point[/code] is inside the triangle specified by [code]a[/"
+"code], [code]b[/code] and [code]c[/code]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Tests if the 3D ray starting at [code]from[/code] with the direction of "
+"[code]dir[/code] intersects the triangle specified by [code]a[/code], "
+"[code]b[/code] and [code]c[/code]. If yes, returns the point of intersection "
+"as [Vector3]. If no intersection takes place, an empty [Variant] is returned."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Given the 2D segment ([code]segment_from[/code], [code]segment_to[/code]), "
+"returns the position on the segment (as a number between 0 and 1) at which "
+"the segment hits the circle that is located at position "
+"[code]circle_position[/code] and has radius [code]circle_radius[/code]. If "
+"the segment does not intersect the circle, -1 is returned (this is also the "
+"case if the line extending the segment would intersect the circle, but the "
+"segment does not)."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Given a convex hull defined though the [Plane]s in the array [code]planes[/"
+"code], tests if the segment ([code]from[/code], [code]to[/code]) intersects "
+"with that hull. If an intersection is found, returns a [PoolVector3Array] "
+"containing the point the intersection and the hull's normal. If no "
+"intersecion is found, an the returned array is empty."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Checks if the segment ([code]from[/code], [code]to[/code]) intersects the "
+"cylinder with height [code]height[/code] that is centered at the origin and "
+"has radius [code]radius[/code]. If no, returns an empty [PoolVector3Array]. "
+"If an intersection takes place, the returned array contains the point of "
+"intersection and the cylinder's normal at the point of intersection."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Checks if the two segments ([code]from_a[/code], [code]to_a[/code]) and "
+"([code]from_b[/code], [code]to_b[/code]) intersect. If yes, return the point "
+"of intersection as [Vector2]. If no intersection takes place, returns an "
+"empty [Variant]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Checks if the segment ([code]from[/code], [code]to[/code]) intersects the "
+"sphere that is located at [code]sphere_position[/code] and has radius "
+"[code]sphere_radius[/code]. If no, returns an empty [PoolVector3Array]. If "
+"yes, returns a [PoolVector3Array] containing the point of intersection and "
+"the sphere's normal at the point of intersection."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Tests if the segment ([code]from[/code], [code]to[/code]) intersects the "
+"triangle [code]a[/code], [code]b[/code], [code]c[/code]. If yes, returns the "
+"point of intersection as [Vector3]. If no intersection takes place, an empty "
+"[Variant] is returned."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Triangulates the area specified by discrete set of [code]points[/code] such "
+"that no point is inside the circumcircle of any resulting triangle. Returns "
+"a [PoolIntArray] where each triangle consists of three consecutive point "
+"indices into [code]points[/code] (i.e. the returned array will have [code]n "
+"* 3[/code] elements, with [code]n[/code] being the number of found "
+"triangles). If the triangulation did not succeed, an empty [PoolIntArray] is "
+"returned."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Triangulates the polygon specified by the points in [code]polygon[/code]. "
+"Returns a [PoolIntArray] where each triangle consists of three consecutive "
+"point indices into [code]polygon[/code] (i.e. the returned array will have "
+"[code]n * 3[/code] elements, with [code]n[/code] being the number of found "
+"triangles). If the triangulation did not succeed, an empty [PoolIntArray] is "
+"returned."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Create regions where either subject or clip polygons (or both) are filled."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Create regions where subject polygons are filled except where clip polygons "
+"are filled."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid "Create regions where both subject and clip polygons are filled."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Create regions where either subject or clip polygons are filled but not "
+"where both are filled."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Squaring is applied uniformally at all convex edge joins at [code]1 * delta[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"While flattened paths can never perfectly trace an arc, they are "
+"approximated by a series of arc chords."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"There's a necessary limit to mitered joins since offsetting edges that join "
+"at very acute angles will produce excessively long and narrow \"spikes\". "
+"For any given edge join, when miter offsetting would exceed that maximum "
+"distance, \"square\" joining is applied."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Endpoints are joined using the [enum PolyJoinType] value and the path filled "
+"as a polygon."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid ""
+"Endpoints are joined using the [enum PolyJoinType] value and the path filled "
+"as a polyline."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid "Endpoints are squared off with no extension."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid "Endpoints are squared off and extended by [code]delta[/code] units."
+msgstr ""
+
+#: doc/classes/Geometry.xml
+msgid "Endpoints are rounded off and extended by [code]delta[/code] units."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid "Base node for geometry-based visual instances."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"Base node for geometry-based visual instances. Shares some common "
+"functionality like visibility and custom materials."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"Returns the [enum GeometryInstance.Flags] that have been set for this object."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"Overrides the bounding box of this node with a custom one. To remove it, set "
+"an [AABB] with all fields set to zero."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"Sets the [enum GeometryInstance.Flags] specified. See [enum GeometryInstance."
+"Flags] for options."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"The selected shadow casting flag. See [enum ShadowCastingSetting] for "
+"possible values."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"The extra distance added to the GeometryInstance's bounding box ([AABB]) to "
+"increase its cull box."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"When disabled, the mesh will be taken into account when computing indirect "
+"lighting, but the resulting lightmap will not be saved. Useful for emissive "
+"only materials or shadow casters."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"Scale factor for the generated baked lightmap. Useful for adding detail to "
+"certain mesh instances."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"The GeometryInstance's max LOD distance.\n"
+"[b]Note:[/b] This property currently has no effect."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"The GeometryInstance's max LOD margin.\n"
+"[b]Note:[/b] This property currently has no effect."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"The GeometryInstance's min LOD distance.\n"
+"[b]Note:[/b] This property currently has no effect."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"The GeometryInstance's min LOD margin.\n"
+"[b]Note:[/b] This property currently has no effect."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"The material overlay for the whole geometry.\n"
+"If a material is assigned to this property, it will be rendered on top of "
+"any other active material for all the surfaces."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"The material override for the whole geometry.\n"
+"If a material is assigned to this property, it will be used instead of any "
+"material set in any material slot of the mesh."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"If [code]true[/code], this GeometryInstance will be used when baking lights "
+"using a [GIProbe] or [BakedLightmap]."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid "The generated lightmap texture will have the original size."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid "The generated lightmap texture will be twice as large, on each axis."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid "The generated lightmap texture will be 4 times as large, on each axis."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid "The generated lightmap texture will be 8 times as large, on each axis."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid "Will not cast any shadows."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"Will cast shadows from all visible faces in the GeometryInstance.\n"
+"Will take culling into account, so faces not being rendered will not be "
+"taken into account when shadow casting."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"Will cast shadows from all visible faces in the GeometryInstance.\n"
+"Will not take culling into account, so all faces will be taken into account "
+"when shadow casting."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"Will only show the shadows casted from this object.\n"
+"In other words, the actual mesh will not be visible, only the shadows casted "
+"from the mesh will be."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"Will allow the GeometryInstance to be used when baking lights using a "
+"[GIProbe] or [BakedLightmap]."
+msgstr ""
+
+#: doc/classes/GeometryInstance.xml
+msgid ""
+"Unused in this class, exposed for consistency with [enum VisualServer."
+"InstanceFlags]."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid "Real-time global illumination (GI) probe."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"[GIProbe]s are used to provide high-quality real-time indirect light to "
+"scenes. They precompute the effect of objects that emit light and the effect "
+"of static geometry to simulate the behavior of complex light in real-time. "
+"[GIProbe]s need to be baked before using, however, once baked, dynamic "
+"objects will receive light from them. Further, lights can be fully dynamic "
+"or baked.\n"
+"Having [GIProbe]s in a scene can be expensive, the quality of the probe can "
+"be turned down in exchange for better performance in the [ProjectSettings] "
+"using [member ProjectSettings.rendering/quality/voxel_cone_tracing/"
+"high_quality].\n"
+"[b]Procedural generation:[/b] [GIProbe] can be baked in an exported project, "
+"which makes it suitable for procedurally generated or user-built levels as "
+"long as all the geometry is generated in advance.\n"
+"[b]Performance:[/b] [GIProbe] is relatively demanding on the GPU and is not "
+"suited to low-end hardware such as integrated graphics (consider "
+"[BakedLightmap] instead). To provide a fallback for low-end hardware, "
+"consider adding an option to disable [GIProbe] in your project's options "
+"menus. A [GIProbe] node can be disabled by hiding it.\n"
+"[b]Note:[/b] Meshes should have sufficiently thick walls to avoid light "
+"leaks (avoid one-sided walls). For interior levels, enclose your level "
+"geometry in a sufficiently large box and bridge the loops to close the mesh. "
+"To further prevent light leaks, you can also strategically place temporary "
+"[MeshInstance] nodes with [member GeometryInstance.use_in_baked_light] "
+"enabled. These temporary nodes can then be hidden after baking the [GIProbe] "
+"node.\n"
+"[b]Note:[/b] Due to a renderer limitation, emissive [ShaderMaterial]s cannot "
+"emit light when used in a [GIProbe]. Only emissive [SpatialMaterial]s can "
+"emit light in a [GIProbe]."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid "$DOCS_URL/tutorials/3d/gi_probes.html"
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"Bakes the effect from all [GeometryInstance]s marked with [member "
+"GeometryInstance.use_in_baked_light] and [Light]s marked with either "
+"[constant Light.BAKE_INDIRECT] or [constant Light.BAKE_ALL]. If "
+"[code]create_visual_debug[/code] is [code]true[/code], after baking the "
+"light, this will generate a [MultiMesh] that has a cube representing each "
+"solid cell with each cube colored to the cell's albedo color. This can be "
+"used to visualize the [GIProbe]'s data and debug any issues that may be "
+"occurring.\n"
+"[b]Note:[/b] [method bake] works from the editor and in exported projects. "
+"This makes it suitable for procedurally generated or user-built levels. "
+"Baking a [GIProbe] generally takes from 5 to 20 seconds in most scenes. "
+"Reducing [member subdiv] can speed up baking."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid "Calls [method bake] with [code]create_visual_debug[/code] enabled."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"Offsets the lookup of the light contribution from the [GIProbe]. This can be "
+"used to avoid self-shadowing, but may introduce light leaking at higher "
+"values. This and [member normal_bias] should be played around with to "
+"minimize self-shadowing and light leaking.\n"
+"[b]Note:[/b] [code]bias[/code] should usually be above 1.0 as that is the "
+"size of the voxels."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"[i]Deprecated.[/i] This property has been deprecated due to known bugs and "
+"no longer has any effect when enabled."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid "The [GIProbeData] resource that holds the data for this [GIProbe]."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"The maximum brightness that the [GIProbe] will recognize. Brightness will be "
+"scaled within this range."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"Energy multiplier. Makes the lighting contribution from the [GIProbe] "
+"brighter."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"The size of the area covered by the [GIProbe]. If you make the extents "
+"larger without increasing the subdivisions with [member subdiv], the size of "
+"each cell will increase and result in lower detailed lighting."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"If [code]true[/code], ignores the sky contribution when calculating lighting."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"Offsets the lookup into the [GIProbe] based on the object's normal "
+"direction. Can be used to reduce some self-shadowing artifacts."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"How much light propagates through the probe internally. A higher value "
+"allows light to spread further."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"Number of times to subdivide the grid that the [GIProbe] operates on. A "
+"higher number results in finer detail and thus higher visual quality, while "
+"lower numbers result in better performance."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"Use 64 subdivisions. This is the lowest quality setting, but the fastest. "
+"Use it if you can, but especially use it on lower-end hardware."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid "Use 128 subdivisions. This is the default quality setting."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid "Use 256 subdivisions."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid ""
+"Use 512 subdivisions. This is the highest quality setting, but the slowest. "
+"On lower-end hardware, this could cause the GPU to stall."
+msgstr ""
+
+#: doc/classes/GIProbe.xml
+msgid "Represents the size of the [enum Subdiv] enum."
+msgstr ""
+
+#: modules/gltf/doc_classes/GLTFLight.xml
+msgid ""
+"The [Color] of the light. Defaults to white. A black color causes the light "
+"to have no effect."
+msgstr ""
+
+#: modules/gltf/doc_classes/GLTFLight.xml
+msgid ""
+"The inner angle of the cone in a spotlight. Must be less than or equal to "
+"the outer cone angle.\n"
+"Within this angle, the light is at full brightness. Between the inner and "
+"outer cone angles, there is a transition from full brightness to zero "
+"brightness. When creating a Godot [SpotLight], the ratio between the inner "
+"and outer cone angles is used to calculate the attenuation of the light."
+msgstr ""
+
+#: modules/gltf/doc_classes/GLTFLight.xml
+msgid ""
+"The intensity of the light. This is expressed in candelas (lumens per "
+"steradian) for point and spot lights, and lux (lumens per m²) for "
+"directional lights. When creating a Godot light, this value is converted to "
+"a unitless multiplier."
+msgstr ""
+
+#: modules/gltf/doc_classes/GLTFLight.xml
+msgid ""
+"The outer angle of the cone in a spotlight. Must be greater than or equal to "
+"the inner angle.\n"
+"At this angle, the light drops off to zero brightness. Between the inner and "
+"outer cone angles, there is a transition from full brightness to zero "
+"brightness. If this angle is a half turn, then the spotlight emits in all "
+"directions. When creating a Godot [SpotLight], the outer cone angle is used "
+"as the angle of the spotlight."
+msgstr ""
+
+#: modules/gltf/doc_classes/GLTFLight.xml
+msgid ""
+"The range of the light, beyond which the light has no effect. GLTF lights "
+"with no range defined behave like physical lights (which have infinite "
+"range). When creating a Godot light, the range is clamped to 4096."
+msgstr ""
+
+#: modules/gltf/doc_classes/GLTFLight.xml
+msgid ""
+"The type of the light. The values accepted by Godot are \"point\", \"spot\", "
+"and \"directional\", which correspond to Godot's [OmniLight], [SpotLight], "
+"and [DirectionalLight] respectively."
+msgstr ""
+
+#: modules/mono/doc_classes/GodotSharp.xml
+msgid "Bridge between Godot and the Mono runtime (Mono-enabled builds only)."
+msgstr ""
+
+#: modules/mono/doc_classes/GodotSharp.xml
+msgid ""
+"This class is a bridge between Godot and the Mono runtime. It exposes "
+"several low-level operations and is only available in Mono-enabled Godot "
+"builds.\n"
+"See also [CSharpScript]."
+msgstr ""
+
+#: modules/mono/doc_classes/GodotSharp.xml
+msgid "Attaches the current thread to the Mono runtime."
+msgstr ""
+
+#: modules/mono/doc_classes/GodotSharp.xml
+msgid "Detaches the current thread from the Mono runtime."
+msgstr ""
+
+#: modules/mono/doc_classes/GodotSharp.xml
+msgid ""
+"Returns the current MonoDomain ID.\n"
+"[b]Note:[/b] The Mono runtime must be initialized for this method to work "
+"(use [method is_runtime_initialized] to check). If the Mono runtime isn't "
+"initialized at the time this method is called, the engine will crash."
+msgstr ""
+
+#: modules/mono/doc_classes/GodotSharp.xml
+msgid ""
+"Returns the scripts MonoDomain's ID. This will be the same MonoDomain ID as "
+"[method get_domain_id], unless the scripts domain isn't loaded.\n"
+"[b]Note:[/b] The Mono runtime must be initialized for this method to work "
+"(use [method is_runtime_initialized] to check). If the Mono runtime isn't "
+"initialized at the time this method is called, the engine will crash."
+msgstr ""
+
+#: modules/mono/doc_classes/GodotSharp.xml
+msgid ""
+"Returns [code]true[/code] if the domain is being finalized, [code]false[/"
+"code] otherwise."
+msgstr ""
+
+#: modules/mono/doc_classes/GodotSharp.xml
+msgid ""
+"Returns [code]true[/code] if the Mono runtime is initialized, [code]false[/"
+"code] otherwise."
+msgstr ""
+
+#: modules/mono/doc_classes/GodotSharp.xml
+msgid ""
+"Returns [code]true[/code] if the Mono runtime is shutting down, [code]false[/"
+"code] otherwise."
+msgstr ""
+
+#: modules/mono/doc_classes/GodotSharp.xml
+msgid ""
+"Returns [code]true[/code] if the scripts domain is loaded, [code]false[/"
+"code] otherwise."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid ""
+"A color interpolator resource which can be used to generate colors between "
+"user-defined color points."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid ""
+"Given a set of colors, this resource will interpolate them in order. This "
+"means that if you have color 1, color 2 and color 3, the ramp will "
+"interpolate from color 1 to color 2 and from color 2 to color 3. The ramp "
+"will initially have 2 colors (black and white), one (black) at ramp lower "
+"offset 0 and the other (white) at the ramp higher offset 1."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid ""
+"Adds the specified color to the end of the ramp, with the specified offset."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid "Returns the color of the ramp color at index [code]point[/code]."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid "Returns the offset of the ramp color at index [code]point[/code]."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid "Returns the number of colors in the ramp."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid "Returns the interpolated color specified by [code]offset[/code]."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid "Removes the color at the index [code]point[/code]."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid "Sets the color of the ramp color at index [code]point[/code]."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid "Sets the offset for the ramp color at index [code]point[/code]."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid "Gradient's colors returned as a [PoolColorArray]."
+msgstr ""
+
+#: doc/classes/Gradient.xml
+msgid "Gradient's offsets returned as a [PoolRealArray]."
+msgstr ""
+
+#: doc/classes/GradientTexture.xml
+msgid "Gradient-filled texture."
+msgstr ""
+
+#: doc/classes/GradientTexture.xml
+msgid ""
+"GradientTexture uses a [Gradient] to fill the texture data. The gradient "
+"will be filled from left to right using colors obtained from the gradient. "
+"This means the texture does not necessarily represent an exact copy of the "
+"gradient, but instead an interpolation of samples obtained from the gradient "
+"at fixed steps (see [member width])."
+msgstr ""
+
+#: doc/classes/GradientTexture.xml
+msgid "The [Gradient] that will be used to fill the texture."
+msgstr ""
+
+#: doc/classes/GradientTexture.xml
+msgid "The number of color samples that will be obtained from the [Gradient]."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"GraphEdit is an area capable of showing various GraphNodes. It manages "
+"connection events between them."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"GraphEdit manages the showing of GraphNodes it contains, as well as "
+"connections and disconnections between them. Signals are sent for each of "
+"these two events. Disconnection between GraphNode slots is disabled by "
+"default.\n"
+"It is greatly advised to enable low-processor usage mode (see [member OS."
+"low_processor_usage_mode]) when using GraphEdits."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Makes possible the connection between two different slot types. The type is "
+"defined with the [method GraphNode.set_slot] method."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Makes possible to disconnect nodes when dragging from the slot at the left "
+"if it has the specified type."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Makes possible to disconnect nodes when dragging from the slot at the right "
+"if it has the specified type."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Removes all connections between nodes."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Create a connection between the [code]from_port[/code] slot of the "
+"[code]from[/code] GraphNode and the [code]to_port[/code] slot of the "
+"[code]to[/code] GraphNode. If the connection already exists, no connection "
+"is created."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Removes the connection between the [code]from_port[/code] slot of the "
+"[code]from[/code] GraphNode and the [code]to_port[/code] slot of the "
+"[code]to[/code] GraphNode. If the connection does not exist, no connection "
+"is removed."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Returns an Array containing the list of connections. A connection consists "
+"in a structure of the form [code]{ from_port: 0, from: \"GraphNode name 0\", "
+"to_port: 1, to: \"GraphNode name 1\" }[/code]."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Gets the [HBoxContainer] that contains the zooming and grid snap controls in "
+"the top left of the graph. You can use this method to reposition the toolbar "
+"or to add your own custom controls to it.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Returns [code]true[/code] if the [code]from_port[/code] slot of the "
+"[code]from[/code] GraphNode is connected to the [code]to_port[/code] slot of "
+"the [code]to[/code] GraphNode."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Returns whether it's possible to connect slots of the specified types."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Makes it not possible to connect between two different slot types. The type "
+"is defined with the [method GraphNode.set_slot] method."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Removes the possibility to disconnect nodes when dragging from the slot at "
+"the left if it has the specified type."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Removes the possibility to disconnect nodes when dragging from the slot at "
+"the right if it has the specified type."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Sets the coloration of the connection between [code]from[/code]'s "
+"[code]from_port[/code] and [code]to[/code]'s [code]to_port[/code] with the "
+"color provided in the [code]activity[/code] theme property."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Sets the specified [code]node[/code] as the one selected."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "If [code]true[/code], the minimap is visible."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The opacity of the minimap rectangle."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"The size of the minimap rectangle. The map itself is based on the size of "
+"the grid area and is scaled to fit this rectangle."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"If [code]true[/code], enables disconnection of existing connections in the "
+"GraphEdit by dragging the right end."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The scroll offset."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"If [code]true[/code], makes a label with the current zoom level visible. The "
+"zoom value is displayed in percents."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The snapping distance in pixels."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "If [code]true[/code], enables snapping."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The current zoom value."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The upper zoom limit."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The lower zoom limit."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The step of each zoom level."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Emitted at the beginning of a GraphNode movement."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Emitted at the end of a GraphNode movement."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Emitted when user dragging connection from input port into empty space of "
+"the graph."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Emitted to the GraphEdit when the connection between the [code]from_slot[/"
+"code] slot of the [code]from[/code] GraphNode and the [code]to_slot[/code] "
+"slot of the [code]to[/code] GraphNode is attempted to be created."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Emitted when user dragging connection from output port into empty space of "
+"the graph."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Emitted when the user presses [code]Ctrl + C[/code]."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Emitted when a GraphNode is attempted to be removed from the GraphEdit."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Emitted to the GraphEdit when the connection between [code]from_slot[/code] "
+"slot of [code]from[/code] GraphNode and [code]to_slot[/code] slot of "
+"[code]to[/code] GraphNode is attempted to be removed."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Emitted when a GraphNode is attempted to be duplicated in the GraphEdit."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Emitted when a GraphNode is selected."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Emitted when the user presses [code]Ctrl + V[/code]."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Emitted when a popup is requested. Happens on right-clicking in the "
+"GraphEdit. [code]position[/code] is the position of the mouse pointer when "
+"the signal is sent."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"Emitted when the scroll offset is changed by the user. It will not be "
+"emitted when changed in code."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Color of major grid lines."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "Color of minor grid lines."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The fill color of the selection rectangle."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The outline color of the selection rectangle."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid ""
+"The horizontal range within which a port can be grabbed (on both sides)."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The vertical range within which a port can be grabbed (on both sides)."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The icon for the zoom out button."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The icon for the zoom in button."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The icon for the zoom reset button."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The icon for the snap toggle button."
+msgstr ""
+
+#: doc/classes/GraphEdit.xml
+msgid "The background drawn under the grid."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"A GraphNode is a container with potentially several input and output slots "
+"allowing connections between GraphNodes. Slots can have different, "
+"incompatible types."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"A GraphNode is a container. Each GraphNode can have several input and output "
+"slots, sometimes referred to as ports, allowing connections between "
+"GraphNodes. To add a slot to GraphNode, add any [Control]-derived child node "
+"to it.\n"
+"After adding at least one child to GraphNode new sections will be "
+"automatically created in the Inspector called 'Slot'. When 'Slot' is "
+"expanded you will see list with index number for each slot. You can click on "
+"each of them to expand further.\n"
+"In the Inspector you can enable (show) or disable (hide) slots. By default, "
+"all slots are disabled so you may not see any slots on your GraphNode "
+"initially. You can assign a type to each slot. Only slots of the same type "
+"will be able to connect to each other. You can also assign colors to slots. "
+"A tuple of input and output slots is defined for each GUI element included "
+"in the GraphNode. Input connections are on the left and output connections "
+"are on the right side of GraphNode. Only enabled slots are counted as "
+"connections."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Disables all input and output slots of the GraphNode."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Disables input and output slot whose index is [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Returns the [Color] of the input connection [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Returns the number of enabled input slots (connections) to the GraphNode."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Returns the position of the input connection [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Returns the type of the input connection [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Returns the [Color] of the output connection [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Returns the number of enabled output slots (connections) of the GraphNode."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Returns the position of the output connection [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Returns the type of the output connection [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Returns the left (input) [Color] of the slot [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Returns the right (output) [Color] of the slot [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Returns the left (input) type of the slot [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Returns the right (output) type of the slot [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Returns [code]true[/code] if left (input) side of the slot [code]idx[/code] "
+"is enabled."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Returns [code]true[/code] if right (output) side of the slot [code]idx[/"
+"code] is enabled."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Sets properties of the slot with ID [code]idx[/code].\n"
+"If [code]enable_left[/code]/[code]right[/code], a port will appear and the "
+"slot will be able to be connected from this side.\n"
+"[code]type_left[/code]/[code]right[/code] is an arbitrary type of the port. "
+"Only ports with the same type values can be connected.\n"
+"[code]color_left[/code]/[code]right[/code] is the tint of the port's icon on "
+"this side.\n"
+"[code]custom_left[/code]/[code]right[/code] is a custom texture for this "
+"side's port.\n"
+"[b]Note:[/b] This method only sets properties of the slot. To create the "
+"slot, add a [Control]-derived child to the GraphNode.\n"
+"Individual properties can be set using one of the [code]set_slot_*[/code] "
+"methods. You must enable at least one side of the slot to do so."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Sets the [Color] of the left (input) side of the slot [code]idx[/code] to "
+"[code]color_left[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Sets the [Color] of the right (output) side of the slot [code]idx[/code] to "
+"[code]color_right[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Toggles the left (input) side of the slot [code]idx[/code]. If "
+"[code]enable_left[/code] is [code]true[/code], a port will appear on the "
+"left side and the slot will be able to be connected from this side."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Toggles the right (output) side of the slot [code]idx[/code]. If "
+"[code]enable_right[/code] is [code]true[/code], a port will appear on the "
+"right side and the slot will be able to be connected from this side."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Sets the left (input) type of the slot [code]idx[/code] to [code]type_left[/"
+"code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Sets the right (output) type of the slot [code]idx[/code] to "
+"[code]type_right[/code]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "If [code]true[/code], the GraphNode is a comment node."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"The offset of the GraphNode, relative to the scroll offset of the "
+"[GraphEdit].\n"
+"[b]Note:[/b] You cannot use position directly, as [GraphEdit] is a "
+"[Container]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Sets the overlay shown above the GraphNode. See [enum Overlay]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"If [code]true[/code], the user can resize the GraphNode.\n"
+"[b]Note:[/b] Dragging the handle will only emit the [signal resize_request] "
+"signal, the GraphNode needs to be resized manually."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "If [code]true[/code], the GraphNode is selected."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"If [code]true[/code], the close button will be visible.\n"
+"[b]Note:[/b] Pressing it will only emit the [signal close_request] signal, "
+"the GraphNode needs to be removed manually."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "The text displayed in the GraphNode's title bar."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Emitted when the GraphNode is requested to be closed. Happens on clicking "
+"the close button (see [member show_close])."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Emitted when the GraphNode is dragged."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Emitted when the GraphNode is moved."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Emitted when the GraphNode is requested to be displayed over other ones. "
+"Happens on focusing (clicking into) the GraphNode."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"Emitted when the GraphNode is requested to be resized. Happens on dragging "
+"the resizer handle (see [member resizable])."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Emitted when any GraphNode's slot is updated."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "No overlay is shown."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Show overlay set in the [code]breakpoint[/code] theme property."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Show overlay set in the [code]position[/code] theme property."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "The color modulation applied to the close button icon."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "The color modulation applied to the resizer icon."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Color of the title text."
+msgstr ""
+
+#: doc/classes/GraphNode.xml doc/classes/WindowDialog.xml
+msgid "The vertical offset of the close button."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Horizontal offset for the ports."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "The vertical distance between ports."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Vertical offset of the title text."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "Font used for the title text."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"The icon for the close button, visible when [member show_close] is enabled."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "The icon used for representing ports."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "The icon used for resizer, visible when [member resizable] is enabled."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"The background used when [member overlay] is set to [constant "
+"OVERLAY_BREAKPOINT]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "The [StyleBox] used when [member comment] is enabled."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"The [StyleBox] used when [member comment] is enabled and the [GraphNode] is "
+"focused."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "The default background for [GraphNode]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid ""
+"The background used when [member overlay] is set to [constant "
+"OVERLAY_POSITION]."
+msgstr ""
+
+#: doc/classes/GraphNode.xml
+msgid "The background used when the [GraphNode] is selected."
+msgstr ""
+
+#: doc/classes/GridContainer.xml
+msgid ""
+"Grid container used to arrange Control-derived children in a grid like "
+"layout."
+msgstr ""
+
+#: doc/classes/GridContainer.xml
+msgid ""
+"GridContainer will arrange its Control-derived children in a grid like "
+"structure, the grid columns are specified using the [member columns] "
+"property and the number of rows will be equal to the number of children in "
+"the container divided by the number of columns. For example, if the "
+"container has 5 children, and 2 columns, there will be 3 rows in the "
+"container.\n"
+"Notice that grid layout will preserve the columns and rows for every size of "
+"the container, and that empty columns will be expanded automatically.\n"
+"[b]Note:[/b] GridContainer only works with child nodes inheriting from "
+"Control. It won't rearrange child nodes inheriting from Node2D."
+msgstr ""
+
+#: doc/classes/GridContainer.xml
+msgid ""
+"The number of columns in the [GridContainer]. If modified, [GridContainer] "
+"reorders its Control-derived children to accommodate the new layout."
+msgstr ""
+
+#: doc/classes/GridContainer.xml
+msgid "The horizontal separation of children nodes."
+msgstr ""
+
+#: doc/classes/GridContainer.xml
+msgid "The vertical separation of children nodes."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "Node for 3D tile-based maps."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"GridMap lets you place meshes on a grid interactively. It works both from "
+"the editor and from scripts, which can help you create in-game level "
+"editors.\n"
+"GridMaps use a [MeshLibrary] which contains a list of tiles. Each tile is a "
+"mesh with materials plus optional collision and navigation shapes.\n"
+"A GridMap contains a collection of cells. Each grid cell refers to a tile in "
+"the [MeshLibrary]. All cells in the map have the same dimensions.\n"
+"Internally, a GridMap is split into a sparse collection of octants for "
+"efficient rendering and physics processing. Every octant has the same "
+"dimensions and can contain several cells.\n"
+"[b]Note:[/b] GridMap doesn't extend [VisualInstance] and therefore can't be "
+"hidden or cull masked based on [member VisualInstance.layers]. If you make a "
+"light not affect the first layer, the whole GridMap won't be lit by the "
+"light in question."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "$DOCS_URL/tutorials/3d/using_gridmaps.html"
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "Clear all cells."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"Returns an array of [ArrayMesh]es and [Transform] references of all bake "
+"meshes that exist within the current GridMap."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"The [MeshLibrary] item index located at the grid-based X, Y and Z "
+"coordinates. If the cell is empty, [constant INVALID_CELL_ITEM] will be "
+"returned."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"The orientation of the cell at the grid-based X, Y and Z coordinates. -1 is "
+"returned if the cell is empty."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "Returns an individual bit on the [member collision_layer]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "Returns an individual bit on the [member collision_mask]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"Returns an array of [Transform] and [Mesh] references corresponding to the "
+"non-empty cells in the grid. The transforms are specified in world space."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"Returns an array of [Vector3] with the non-empty cell coordinates in the "
+"grid map."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"Returns the position of a grid cell in the GridMap's local coordinate space."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"Sets the mesh index for the cell referenced by its grid-based X, Y and Z "
+"coordinates.\n"
+"A negative item index such as [constant INVALID_CELL_ITEM] will clear the "
+"cell.\n"
+"Optionally, the item's orientation can be passed. For valid orientation "
+"values, see [method Basis.get_orthogonal_index]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "Sets an individual bit on the [member collision_layer]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "Sets an individual bit on the [member collision_mask]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"Returns the coordinates of the grid cell containing the given point.\n"
+"[code]pos[/code] should be in the GridMap's local coordinate space."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "If [code]true[/code], grid items are centered on the X axis."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "If [code]true[/code], grid items are centered on the Y axis."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "If [code]true[/code], grid items are centered on the Z axis."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"The size of each octant measured in number of cells. This applies to all "
+"three axis."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"The scale of the cell items.\n"
+"This does not affect the size of the grid cells themselves, only the items "
+"in them. This can be used to make cell items overlap their neighbors."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"The dimensions of the grid's cells.\n"
+"This does not affect the size of the meshes. See [member cell_scale]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"The physics layers this GridMap is in.\n"
+"GridMaps act as static bodies, meaning they aren't affected by gravity or "
+"other forces. They only affect other physics bodies that collide with them."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"The physics layers this GridMap detects collisions in. See [url=$DOCS_URL/"
+"tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "The assigned [MeshLibrary]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid "Emitted when [member cell_size] changes."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"Invalid cell item that can be used in [method set_cell_item] to clear cells "
+"(or represent an empty cell in [method get_cell_item])."
+msgstr ""
+
+#: doc/classes/GrooveJoint2D.xml
+msgid "Groove constraint for 2D physics."
+msgstr ""
+
+#: doc/classes/GrooveJoint2D.xml
+msgid ""
+"Groove constraint for 2D physics. This is useful for making a body \"slide\" "
+"through a segment placed in another."
+msgstr ""
+
+#: doc/classes/GrooveJoint2D.xml
+msgid ""
+"The body B's initial anchor position defined by the joint's origin and a "
+"local offset [member initial_offset] along the joint's Y axis (along the "
+"groove)."
+msgstr ""
+
+#: doc/classes/GrooveJoint2D.xml
+msgid ""
+"The groove's length. The groove is from the joint's origin towards [member "
+"length] along the joint's local Y axis."
+msgstr ""
+
+#: doc/classes/HashingContext.xml
+msgid "Context to compute cryptographic hashes over multiple iterations."
+msgstr ""
+
+#: doc/classes/HashingContext.xml
+msgid ""
+"The HashingContext class provides an interface for computing cryptographic "
+"hashes over multiple iterations. This is useful for example when computing "
+"hashes of big files (so you don't have to load them all in memory), network "
+"streams, and data streams in general (so you don't have to hold buffers).\n"
+"The [enum HashType] enum shows the supported hashing algorithms.\n"
+"[codeblock]\n"
+"const CHUNK_SIZE = 1024\n"
+"\n"
+"func hash_file(path):\n"
+" var ctx = HashingContext.new()\n"
+" var file = File.new()\n"
+" # Start a SHA-256 context.\n"
+" ctx.start(HashingContext.HASH_SHA256)\n"
+" # Check that file exists.\n"
+" if not file.file_exists(path):\n"
+" return\n"
+" # Open the file to hash.\n"
+" file.open(path, File.READ)\n"
+" # Update the context after reading each chunk.\n"
+" while not file.eof_reached():\n"
+" ctx.update(file.get_buffer(CHUNK_SIZE))\n"
+" # Get the computed hash.\n"
+" var res = ctx.finish()\n"
+" # Print the result as hex string and array.\n"
+" printt(res.hex_encode(), Array(res))\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Not available in HTML5 exports."
+msgstr ""
+
+#: doc/classes/HashingContext.xml
+msgid "Closes the current context, and return the computed hash."
+msgstr ""
+
+#: doc/classes/HashingContext.xml
+msgid ""
+"Starts a new hash computation of the given [code]type[/code] (e.g. [constant "
+"HASH_SHA256] to start computation of a SHA-256)."
+msgstr ""
+
+#: doc/classes/HashingContext.xml
+msgid "Updates the computation with the given [code]chunk[/code] of data."
+msgstr ""
+
+#: doc/classes/HashingContext.xml
+msgid "Hashing algorithm: MD5."
+msgstr ""
+
+#: doc/classes/HashingContext.xml
+msgid "Hashing algorithm: SHA-1."
+msgstr ""
+
+#: doc/classes/HashingContext.xml
+msgid "Hashing algorithm: SHA-256."
+msgstr ""
+
+#: doc/classes/HBoxContainer.xml
+msgid "Horizontal box container."
+msgstr ""
+
+#: doc/classes/HBoxContainer.xml
+msgid "Horizontal box container. See [BoxContainer]."
+msgstr ""
+
+#: doc/classes/HBoxContainer.xml
+msgid "The horizontal space between the [HBoxContainer]'s elements."
+msgstr ""
+
+#: doc/classes/HeightMapShape.xml
+msgid "Height map shape for 3D physics."
+msgstr ""
+
+#: doc/classes/HeightMapShape.xml
+msgid ""
+"Height map shape resource, which can be added to a [PhysicsBody] or [Area]."
+msgstr ""
+
+#: doc/classes/HeightMapShape.xml
+msgid ""
+"Height map data, pool array must be of [member map_width] * [member "
+"map_depth] size."
+msgstr ""
+
+#: doc/classes/HeightMapShape.xml
+msgid ""
+"Depth of the height map data. Changing this will resize the [member "
+"map_data]."
+msgstr ""
+
+#: doc/classes/HeightMapShape.xml
+msgid ""
+"Width of the height map data. Changing this will resize the [member "
+"map_data]."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml
+msgid "A hinge between two 3D PhysicsBodies."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml
+msgid ""
+"A HingeJoint normally uses the Z axis of body A as the hinge axis, another "
+"axis can be specified when adding it manually though. See also "
+"[Generic6DOFJoint]."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml doc/classes/SpriteBase3D.xml
+msgid "Returns the value of the specified flag."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml doc/classes/ParticlesMaterial.xml
+#: doc/classes/PinJoint.xml
+msgid "Returns the value of the specified parameter."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml
+msgid "If [code]true[/code], enables the specified flag."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml doc/classes/PinJoint.xml
+msgid "Sets the value of the specified parameter."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The speed with which the rotation across the axis perpendicular to the hinge "
+"gets corrected."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml
+msgid ""
+"If [code]true[/code], the hinges maximum and minimum rotation, defined by "
+"[member angular_limit/lower] and [member angular_limit/upper] has effects."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml
+msgid ""
+"The minimum rotation. Only active if [member angular_limit/enable] is "
+"[code]true[/code]."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml doc/classes/PhysicsServer.xml
+msgid "The lower this value, the more the rotation gets slowed down."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml
+msgid ""
+"The maximum rotation. Only active if [member angular_limit/enable] is "
+"[code]true[/code]."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml
+msgid "When activated, a motor turns the hinge."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml doc/classes/PhysicsServer.xml
+msgid "Maximum acceleration for the motor."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml doc/classes/PhysicsServer.xml
+msgid "Target speed for the motor."
+msgstr ""
+
+#: doc/classes/HingeJoint.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The speed with which the two bodies get pulled together when they move in "
+"different directions."
+msgstr ""
+
+#: doc/classes/HMACContext.xml
+msgid "Used to create an HMAC for a message using a key."
+msgstr ""
+
+#: doc/classes/HMACContext.xml
+msgid ""
+"The HMACContext class is useful for advanced HMAC use cases, such as "
+"streaming the message as it supports creating the message over time rather "
+"than providing it all at once.\n"
+"[codeblock]\n"
+"extends Node\n"
+"var ctx = HMACContext.new()\n"
+"\n"
+"func _ready():\n"
+" var key = \"supersecret\".to_utf8()\n"
+" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
+" assert(err == OK)\n"
+" var msg1 = \"this is \".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
+" err = ctx.update(msg1)\n"
+" assert(err == OK)\n"
+" err = ctx.update(msg2)\n"
+" assert(err == OK)\n"
+" var hmac = ctx.finish()\n"
+" print(hmac.hex_encode())\n"
+"[/codeblock]\n"
+"And in C# we can use the following.\n"
+"[codeblock]\n"
+"using Godot;\n"
+"using System;\n"
+"using System.Diagnostics;\n"
+"\n"
+"public class CryptoNode : Node\n"
+"{\n"
+" private HMACContext ctx = new HMACContext();\n"
+" public override void _Ready()\n"
+" {\n"
+" PoolByteArray key = String(\"supersecret\").to_utf8();\n"
+" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
+" GD.Assert(err == OK);\n"
+" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
+" err = ctx.Update(msg1);\n"
+" GD.Assert(err == OK);\n"
+" err = ctx.Update(msg2);\n"
+" GD.Assert(err == OK);\n"
+" PoolByteArray hmac = ctx.Finish();\n"
+" GD.Print(hmac.HexEncode());\n"
+" }\n"
+"}\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Not available in HTML5 exports."
+msgstr ""
+
+#: doc/classes/HMACContext.xml
+msgid ""
+"Returns the resulting HMAC. If the HMAC failed, an empty [PoolByteArray] is "
+"returned."
+msgstr ""
+
+#: doc/classes/HMACContext.xml
+msgid ""
+"Initializes the HMACContext. This method cannot be called again on the same "
+"HMACContext until [method finish] has been called."
+msgstr ""
+
+#: doc/classes/HMACContext.xml
+msgid ""
+"Updates the message to be HMACed. This can be called multiple times before "
+"[method finish] is called to append [code]data[/code] to the message, but "
+"cannot be called until [method start] has been called."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml
+msgid "Horizontal scroll bar."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml
+msgid ""
+"Horizontal version of [ScrollBar], which goes from left (min) to right (max)."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml
+msgid ""
+"Icon used as a button to scroll the [ScrollBar] left. Supports custom step "
+"using the [member ScrollBar.custom_step] property."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml doc/classes/VScrollBar.xml
+msgid "Displayed when the mouse cursor hovers over the decrement button."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml doc/classes/VScrollBar.xml
+msgid "Displayed when the decrement button is being pressed."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml
+msgid ""
+"Icon used as a button to scroll the [ScrollBar] right. Supports custom step "
+"using the [member ScrollBar.custom_step] property."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml doc/classes/VScrollBar.xml
+msgid "Displayed when the mouse cursor hovers over the increment button."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml doc/classes/VScrollBar.xml
+msgid "Displayed when the increment button is being pressed."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml doc/classes/VScrollBar.xml
+msgid ""
+"Used as texture for the grabber, the draggable element representing current "
+"scroll."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml doc/classes/VScrollBar.xml
+msgid "Used when the mouse hovers over the grabber."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml doc/classes/VScrollBar.xml
+msgid "Used when the grabber is being dragged."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml doc/classes/VScrollBar.xml
+msgid "Used as background of this [ScrollBar]."
+msgstr ""
+
+#: doc/classes/HScrollBar.xml doc/classes/VScrollBar.xml
+msgid "Used as background when the [ScrollBar] has the GUI focus."
+msgstr ""
+
+#: doc/classes/HSeparator.xml
+msgid "Horizontal separator."
+msgstr ""
+
+#: doc/classes/HSeparator.xml
+msgid ""
+"Horizontal separator. See [Separator]. Even though it looks horizontal, it "
+"is used to separate objects vertically."
+msgstr ""
+
+#: doc/classes/HSeparator.xml
+msgid ""
+"The height of the area covered by the separator. Effectively works like a "
+"minimum height."
+msgstr ""
+
+#: doc/classes/HSeparator.xml
+msgid "The style for the separator line. Works best with [StyleBoxLine]."
+msgstr ""
+
+#: doc/classes/HSlider.xml
+msgid "Horizontal slider."
+msgstr ""
+
+#: doc/classes/HSlider.xml
+msgid ""
+"Horizontal slider. See [Slider]. This one goes from left (min) to right "
+"(max).\n"
+"[b]Note:[/b] The [signal Range.changed] and [signal Range.value_changed] "
+"signals are part of the [Range] class which this class inherits from."
+msgstr ""
+
+#: doc/classes/HSlider.xml doc/classes/VSlider.xml
+msgid "The texture for the grabber (the draggable element)."
+msgstr ""
+
+#: doc/classes/HSlider.xml doc/classes/VSlider.xml
+msgid "The texture for the grabber when it's disabled."
+msgstr ""
+
+#: doc/classes/HSlider.xml doc/classes/VSlider.xml
+msgid "The texture for the grabber when it's focused."
+msgstr ""
+
+#: doc/classes/HSlider.xml doc/classes/VSlider.xml
+msgid ""
+"The texture for the ticks, visible when [member Slider.tick_count] is "
+"greater than 0."
+msgstr ""
+
+#: doc/classes/HSlider.xml
+msgid "The background of the area to the left of the grabber."
+msgstr ""
+
+#: doc/classes/HSlider.xml
+msgid ""
+"The background for the whole slider. Determines the height of the "
+"[code]grabber_area[/code]."
+msgstr ""
+
+#: doc/classes/HSplitContainer.xml
+msgid "Horizontal split container."
+msgstr ""
+
+#: doc/classes/HSplitContainer.xml
+msgid ""
+"Horizontal split container. See [SplitContainer]. This goes from left to "
+"right."
+msgstr ""
+
+#: doc/classes/HSplitContainer.xml doc/classes/VSplitContainer.xml
+msgid ""
+"Boolean value. If 1 ([code]true[/code]), the grabber will hide automatically "
+"when it isn't under the cursor. If 0 ([code]false[/code]), it's always "
+"visible."
+msgstr ""
+
+#: doc/classes/HSplitContainer.xml doc/classes/VSplitContainer.xml
+msgid "The space between sides of the container."
+msgstr ""
+
+#: doc/classes/HSplitContainer.xml doc/classes/VSplitContainer.xml
+msgid "The icon used for the grabber drawn in the middle area."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Low-level hyper-text transfer protocol client."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"Hyper-text transfer protocol client (sometimes called \"User Agent\"). Used "
+"to make HTTP requests to download web content, upload files and other data "
+"or to communicate with various services, among other use cases. [b]See the "
+"[HTTPRequest] node for a higher-level alternative.[/b]\n"
+"[b]Note:[/b] This client only needs to connect to a host once (see [method "
+"connect_to_host]) to send multiple requests. Because of this, methods that "
+"take URLs usually take just the part after the host instead of the full URL, "
+"as the client is already connected to a host. See [method request] for a "
+"full example and to get started.\n"
+"A [HTTPClient] should be reused between multiple requests or to connect to "
+"different hosts instead of creating one client per request. Supports SSL and "
+"SSL server certificate verification. HTTP status codes in the 2xx range "
+"indicate success, 3xx redirection (i.e. \"try again, but over here\"), 4xx "
+"something was wrong with the request, and 5xx something went wrong on the "
+"server's side.\n"
+"For more information on HTTP, see https://developer.mozilla.org/en-US/docs/"
+"Web/HTTP (or read RFC 2616 to get it straight from the source: https://tools."
+"ietf.org/html/rfc2616).\n"
+"[b]Note:[/b] When performing HTTP requests from a project exported to HTML5, "
+"keep in mind the remote server may not allow requests from foreign origins "
+"due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/"
+"url]. If you host the server in question, you should modify its backend to "
+"allow requests from foreign origins by adding the [code]Access-Control-Allow-"
+"Origin: *[/code] HTTP header.\n"
+"[b]Note:[/b] SSL/TLS support is currently limited to TLS 1.0, TLS 1.1, and "
+"TLS 1.2. Attempting to connect to a TLS 1.3-only server will return an "
+"error.\n"
+"[b]Warning:[/b] SSL/TLS certificate revocation and certificate pinning are "
+"currently not supported. Revoked certificates are accepted as long as they "
+"are otherwise valid. If this is a concern, you may want to use automatically "
+"managed certificates with a short validity period."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "$DOCS_URL/tutorials/networking/http_client_class.html"
+msgstr ""
+
+#: doc/classes/HTTPClient.xml doc/classes/HTTPRequest.xml
+#: doc/classes/StreamPeerSSL.xml
+msgid "$DOCS_URL/tutorials/networking/ssl_certificates.html"
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Closes the current connection, allowing reuse of this [HTTPClient]."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"Connects to a host. This needs to be done before any requests are sent.\n"
+"The host should not have http:// prepended but will strip the protocol "
+"identifier if provided.\n"
+"If no [code]port[/code] is specified (or [code]-1[/code] is used), it is "
+"automatically set to 80 for HTTP and 443 for HTTPS (if [code]use_ssl[/code] "
+"is enabled).\n"
+"[code]verify_host[/code] will check the SSL identity of the host if set to "
+"[code]true[/code]."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"Returns the response's body length.\n"
+"[b]Note:[/b] Some Web servers may not send a body length. In this case, the "
+"value returned will be [code]-1[/code]. If using chunked transfer encoding, "
+"the body length will also be [code]-1[/code]."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Returns the response's HTTP status code."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Returns the response headers."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"Returns all response headers as a Dictionary of structure [code]{ \"key\": "
+"\"value1; value2\" }[/code] where the case-sensitivity of the keys and "
+"values is kept like the server delivers it. A value is a simple String, this "
+"string can have more than one value where \"; \" is used as separator.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"{\n"
+" \"content-length\": 12,\n"
+" \"Content-Type\": \"application/json; charset=UTF-8\",\n"
+"}\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"Returns a [enum Status] constant. Need to call [method poll] in order to get "
+"status updates."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "If [code]true[/code], this [HTTPClient] has a response available."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "If [code]true[/code], this [HTTPClient] has a response that is chunked."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"This needs to be called in order to have any request processed. Check "
+"results with [method get_status]."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"Generates a GET/POST application/x-www-form-urlencoded style query string "
+"from a provided dictionary, e.g.:\n"
+"[codeblock]\n"
+"var fields = {\"username\": \"user\", \"password\": \"pass\"}\n"
+"var query_string = http_client.query_string_from_dict(fields)\n"
+"# Returns \"username=user&password=pass\"\n"
+"[/codeblock]\n"
+"Furthermore, if a key has a [code]null[/code] value, only the key itself is "
+"added, without equal sign and value. If the value is an array, for each "
+"value in it a pair with the same key is added.\n"
+"[codeblock]\n"
+"var fields = {\"single\": 123, \"not_valued\": null, \"multiple\": [22, 33, "
+"44]}\n"
+"var query_string = http_client.query_string_from_dict(fields)\n"
+"# Returns \"single=123&not_valued&multiple=22&multiple=33&multiple=44\"\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Reads one chunk from the response."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"Sends a request to the connected host.\n"
+"The URL parameter is usually just the part after the host, so for "
+"[code]http://somehost.com/index.php[/code], it is [code]/index.php[/code]. "
+"When sending requests to an HTTP proxy server, it should be an absolute URL. "
+"For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also "
+"allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the "
+"authority component ([code]host:port[/code]).\n"
+"Headers are HTTP request headers. For available HTTP methods, see [enum "
+"Method].\n"
+"To create a POST request with query strings to push to the server, do:\n"
+"[codeblock]\n"
+"var fields = {\"username\" : \"user\", \"password\" : \"pass\"}\n"
+"var query_string = http_client.query_string_from_dict(fields)\n"
+"var headers = [\"Content-Type: application/x-www-form-urlencoded\", "
+"\"Content-Length: \" + str(query_string.length())]\n"
+"var result = http_client.request(http_client.METHOD_POST, \"/index.php\", "
+"headers, query_string)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] The [code]request_data[/code] parameter is ignored if "
+"[code]method[/code] is [constant HTTPClient.METHOD_GET]. This is because GET "
+"methods can't contain request data. As a workaround, you can pass request "
+"data as a query string in the URL. See [method String.http_escape] for an "
+"example."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"Sends a raw request to the connected host.\n"
+"The URL parameter is usually just the part after the host, so for "
+"[code]http://somehost.com/index.php[/code], it is [code]/index.php[/code]. "
+"When sending requests to an HTTP proxy server, it should be an absolute URL. "
+"For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also "
+"allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the "
+"authority component ([code]host:port[/code]).\n"
+"Headers are HTTP request headers. For available HTTP methods, see [enum "
+"Method].\n"
+"Sends the body data raw, as a byte array and does not encode it in any way."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml doc/classes/HTTPRequest.xml
+msgid ""
+"Sets the proxy server for HTTP requests.\n"
+"The proxy server is unset if [code]host[/code] is empty or [code]port[/code] "
+"is -1."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml doc/classes/HTTPRequest.xml
+msgid ""
+"Sets the proxy server for HTTPS requests.\n"
+"The proxy server is unset if [code]host[/code] is empty or [code]port[/code] "
+"is -1."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"If [code]true[/code], execution will block until all data is read from the "
+"response."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "The connection to use for this client."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"The size of the buffer used and maximum bytes to read per iteration. See "
+"[method read_response_body_chunk]."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP GET method. The GET method requests a representation of the specified "
+"resource. Requests using GET should only retrieve data."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP HEAD method. The HEAD method asks for a response identical to that of a "
+"GET request, but without the response body. This is useful to request "
+"metadata like HTTP headers or to check if a resource exists."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP POST method. The POST method is used to submit an entity to the "
+"specified resource, often causing a change in state or side effects on the "
+"server. This is often used for forms and submitting data or uploading files."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP PUT method. The PUT method asks to replace all current representations "
+"of the target resource with the request payload. (You can think of POST as "
+"\"create or update\" and PUT as \"update\", although many services tend to "
+"not make a clear distinction or change their meaning)."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP DELETE method. The DELETE method requests to delete the specified "
+"resource."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP OPTIONS method. The OPTIONS method asks for a description of the "
+"communication options for the target resource. Rarely used."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP TRACE method. The TRACE method performs a message loop-back test along "
+"the path to the target resource. Returns the entire HTTP request received in "
+"the response body. Rarely used."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP CONNECT method. The CONNECT method establishes a tunnel to the server "
+"identified by the target resource. Rarely used."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP PATCH method. The PATCH method is used to apply partial modifications "
+"to a resource."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Represents the size of the [enum Method] enum."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Status: Disconnected from the server."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Status: Currently resolving the hostname for the given URL into an IP."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Status: DNS failure: Can't resolve the hostname for the given URL."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Status: Currently connecting to server."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Status: Can't connect to the server."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Status: Connection established."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Status: Currently sending request."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Status: HTTP body received."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Status: Error in HTTP connection."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid "Status: Error in SSL handshake."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]100 Continue[/code]. Interim response that indicates "
+"everything so far is OK and that the client should continue with the request "
+"(or ignore this status if already finished)."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]101 Switching Protocol[/code]. Sent in response to an "
+"[code]Upgrade[/code] request header by the client. Indicates the protocol "
+"the server is switching to."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]102 Processing[/code] (WebDAV). Indicates that the "
+"server has received and is processing the request, but no response is "
+"available yet."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]200 OK[/code]. The request has succeeded. Default "
+"response for successful requests. Meaning varies depending on the request. "
+"GET: The resource has been fetched and is transmitted in the message body. "
+"HEAD: The entity headers are in the message body. POST: The resource "
+"describing the result of the action is transmitted in the message body. "
+"TRACE: The message body contains the request message as received by the "
+"server."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]201 Created[/code]. The request has succeeded and a "
+"new resource has been created as a result of it. This is typically the "
+"response sent after a PUT request."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]202 Accepted[/code]. The request has been received "
+"but not yet acted upon. It is non-committal, meaning that there is no way in "
+"HTTP to later send an asynchronous response indicating the outcome of "
+"processing the request. It is intended for cases where another process or "
+"server handles the request, or for batch processing."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]203 Non-Authoritative Information[/code]. This "
+"response code means returned meta-information set is not exact set as "
+"available from the origin server, but collected from a local or a third "
+"party copy. Except this condition, 200 OK response should be preferred "
+"instead of this response."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]204 No Content[/code]. There is no content to send "
+"for this request, but the headers may be useful. The user-agent may update "
+"its cached headers for this resource with the new ones."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]205 Reset Content[/code]. The server has fulfilled "
+"the request and desires that the client resets the \"document view\" that "
+"caused the request to be sent to its original state as received from the "
+"origin server."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]206 Partial Content[/code]. This response code is "
+"used because of a range header sent by the client to separate download into "
+"multiple streams."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]207 Multi-Status[/code] (WebDAV). A Multi-Status "
+"response conveys information about multiple resources in situations where "
+"multiple status codes might be appropriate."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]208 Already Reported[/code] (WebDAV). Used inside a "
+"DAV: propstat response element to avoid enumerating the internal members of "
+"multiple bindings to the same collection repeatedly."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]226 IM Used[/code] (WebDAV). The server has fulfilled "
+"a GET request for the resource, and the response is a representation of the "
+"result of one or more instance-manipulations applied to the current instance."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]300 Multiple Choice[/code]. The request has more than "
+"one possible responses and there is no standardized way to choose one of the "
+"responses. User-agent or user should choose one of them."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]301 Moved Permanently[/code]. Redirection. This "
+"response code means the URI of requested resource has been changed. The new "
+"URI is usually included in the response."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]302 Found[/code]. Temporary redirection. This "
+"response code means the URI of requested resource has been changed "
+"temporarily. New changes in the URI might be made in the future. Therefore, "
+"this same URI should be used by the client in future requests."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]303 See Other[/code]. The server is redirecting the "
+"user agent to a different resource, as indicated by a URI in the Location "
+"header field, which is intended to provide an indirect response to the "
+"original request."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]304 Not Modified[/code]. A conditional GET or HEAD "
+"request has been received and would have resulted in a 200 OK response if it "
+"were not for the fact that the condition evaluated to [code]false[/code]."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]305 Use Proxy[/code]. [i]Deprecated. Do not use.[/i]"
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]306 Switch Proxy[/code]. [i]Deprecated. Do not use.[/"
+"i]"
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]307 Temporary Redirect[/code]. The target resource "
+"resides temporarily under a different URI and the user agent MUST NOT change "
+"the request method if it performs an automatic redirection to that URI."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]308 Permanent Redirect[/code]. The target resource "
+"has been assigned a new permanent URI and any future references to this "
+"resource ought to use one of the enclosed URIs."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]400 Bad Request[/code]. The request was invalid. The "
+"server cannot or will not process the request due to something that is "
+"perceived to be a client error (e.g., malformed request syntax, invalid "
+"request message framing, invalid request contents, or deceptive request "
+"routing)."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]401 Unauthorized[/code]. Credentials required. The "
+"request has not been applied because it lacks valid authentication "
+"credentials for the target resource."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]402 Payment Required[/code]. This response code is "
+"reserved for future use. Initial aim for creating this code was using it for "
+"digital payment systems, however this is not currently used."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]403 Forbidden[/code]. The client does not have access "
+"rights to the content, i.e. they are unauthorized, so server is rejecting to "
+"give proper response. Unlike [code]401[/code], the client's identity is "
+"known to the server."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]404 Not Found[/code]. The server can not find "
+"requested resource. Either the URL is not recognized or the endpoint is "
+"valid but the resource itself does not exist. May also be sent instead of "
+"403 to hide existence of a resource if the client is not authorized."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]405 Method Not Allowed[/code]. The request's HTTP "
+"method is known by the server but has been disabled and cannot be used. For "
+"example, an API may forbid DELETE-ing a resource. The two mandatory methods, "
+"GET and HEAD, must never be disabled and should not return this error code."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]406 Not Acceptable[/code]. The target resource does "
+"not have a current representation that would be acceptable to the user "
+"agent, according to the proactive negotiation header fields received in the "
+"request. Used when negotiation content."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]407 Proxy Authentication Required[/code]. Similar to "
+"401 Unauthorized, but it indicates that the client needs to authenticate "
+"itself in order to use a proxy."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]408 Request Timeout[/code]. The server did not "
+"receive a complete request message within the time that it was prepared to "
+"wait."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]409 Conflict[/code]. The request could not be "
+"completed due to a conflict with the current state of the target resource. "
+"This code is used in situations where the user might be able to resolve the "
+"conflict and resubmit the request."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]410 Gone[/code]. The target resource is no longer "
+"available at the origin server and this condition is likely permanent."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]411 Length Required[/code]. The server refuses to "
+"accept the request without a defined Content-Length header."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]412 Precondition Failed[/code]. One or more "
+"conditions given in the request header fields evaluated to [code]false[/"
+"code] when tested on the server."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]413 Entity Too Large[/code]. The server is refusing "
+"to process a request because the request payload is larger than the server "
+"is willing or able to process."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]414 Request-URI Too Long[/code]. The server is "
+"refusing to service the request because the request-target is longer than "
+"the server is willing to interpret."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]415 Unsupported Media Type[/code]. The origin server "
+"is refusing to service the request because the payload is in a format not "
+"supported by this method on the target resource."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]416 Requested Range Not Satisfiable[/code]. None of "
+"the ranges in the request's Range header field overlap the current extent of "
+"the selected resource or the set of ranges requested has been rejected due "
+"to invalid ranges or an excessive request of small or overlapping ranges."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]417 Expectation Failed[/code]. The expectation given "
+"in the request's Expect header field could not be met by at least one of the "
+"inbound servers."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]418 I'm A Teapot[/code]. Any attempt to brew coffee "
+"with a teapot should result in the error code \"418 I'm a teapot\". The "
+"resulting entity body MAY be short and stout."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]421 Misdirected Request[/code]. The request was "
+"directed at a server that is not able to produce a response. This can be "
+"sent by a server that is not configured to produce responses for the "
+"combination of scheme and authority that are included in the request URI."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]422 Unprocessable Entity[/code] (WebDAV). The server "
+"understands the content type of the request entity (hence a 415 Unsupported "
+"Media Type status code is inappropriate), and the syntax of the request "
+"entity is correct (thus a 400 Bad Request status code is inappropriate) but "
+"was unable to process the contained instructions."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]423 Locked[/code] (WebDAV). The source or destination "
+"resource of a method is locked."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]424 Failed Dependency[/code] (WebDAV). The method "
+"could not be performed on the resource because the requested action depended "
+"on another action and that action failed."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]426 Upgrade Required[/code]. The server refuses to "
+"perform the request using the current protocol but might be willing to do so "
+"after the client upgrades to a different protocol."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]428 Precondition Required[/code]. The origin server "
+"requires the request to be conditional."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]429 Too Many Requests[/code]. The user has sent too "
+"many requests in a given amount of time (see \"rate limiting\"). Back off "
+"and increase time between requests or try again later."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]431 Request Header Fields Too Large[/code]. The "
+"server is unwilling to process the request because its header fields are too "
+"large. The request MAY be resubmitted after reducing the size of the request "
+"header fields."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]451 Response Unavailable For Legal Reasons[/code]. "
+"The server is denying access to the resource as a consequence of a legal "
+"demand."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]500 Internal Server Error[/code]. The server "
+"encountered an unexpected condition that prevented it from fulfilling the "
+"request."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]501 Not Implemented[/code]. The server does not "
+"support the functionality required to fulfill the request."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]502 Bad Gateway[/code]. The server, while acting as a "
+"gateway or proxy, received an invalid response from an inbound server it "
+"accessed while attempting to fulfill the request. Usually returned by load "
+"balancers or proxies."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]503 Service Unavailable[/code]. The server is "
+"currently unable to handle the request due to a temporary overload or "
+"scheduled maintenance, which will likely be alleviated after some delay. Try "
+"again later."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]504 Gateway Timeout[/code]. The server, while acting "
+"as a gateway or proxy, did not receive a timely response from an upstream "
+"server it needed to access in order to complete the request. Usually "
+"returned by load balancers or proxies."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]505 HTTP Version Not Supported[/code]. The server "
+"does not support, or refuses to support, the major version of HTTP that was "
+"used in the request message."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]506 Variant Also Negotiates[/code]. The server has an "
+"internal configuration error: the chosen variant resource is configured to "
+"engage in transparent content negotiation itself, and is therefore not a "
+"proper end point in the negotiation process."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]507 Insufficient Storage[/code]. The method could not "
+"be performed on the resource because the server is unable to store the "
+"representation needed to successfully complete the request."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]508 Loop Detected[/code]. The server terminated an "
+"operation because it encountered an infinite loop while processing a request "
+"with \"Depth: infinity\". This status indicates that the entire operation "
+"failed."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]510 Not Extended[/code]. The policy for accessing the "
+"resource has not been met in the request. The server should send back all "
+"the information necessary for the client to issue an extended request."
+msgstr ""
+
+#: doc/classes/HTTPClient.xml
+msgid ""
+"HTTP status code [code]511 Network Authentication Required[/code]. The "
+"client needs to authenticate to gain network access."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "A node with the ability to send HTTP(S) requests."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid ""
+"A node with the ability to send HTTP requests. Uses [HTTPClient] "
+"internally.\n"
+"Can be used to make HTTP requests, i.e. download or upload files or web "
+"content via HTTP.\n"
+"[b]Warning:[/b] See the notes and warnings on [HTTPClient] for limitations, "
+"especially regarding SSL security.\n"
+"[b]Example of contacting a REST API and printing one of its returned fields:"
+"[/b]\n"
+"[codeblock]\n"
+"func _ready():\n"
+" # Create an HTTP request node and connect its completion signal.\n"
+" var http_request = HTTPRequest.new()\n"
+" add_child(http_request)\n"
+" http_request.connect(\"request_completed\", self, "
+"\"_http_request_completed\")\n"
+"\n"
+" # Perform a GET request. The URL below returns JSON as of writing.\n"
+" var error = http_request.request(\"https://httpbin.org/get\")\n"
+" if error != OK:\n"
+" push_error(\"An error occurred in the HTTP request.\")\n"
+"\n"
+" # Perform a POST request. The URL below returns JSON as of writing.\n"
+" # Note: Don't make simultaneous requests using a single HTTPRequest "
+"node.\n"
+" # The snippet below is provided for reference only.\n"
+" var body = {\"name\": \"Godette\"}\n"
+" error = http_request.request(\"https://httpbin.org/post\", [], true, "
+"HTTPClient.METHOD_POST, body)\n"
+" if error != OK:\n"
+" push_error(\"An error occurred in the HTTP request.\")\n"
+"\n"
+"\n"
+"# Called when the HTTP request is completed.\n"
+"func _http_request_completed(result, response_code, headers, body):\n"
+" var response = parse_json(body.get_string_from_utf8())\n"
+"\n"
+" # Will print the user agent string used by the HTTPRequest node (as "
+"recognized by httpbin.org).\n"
+" print(response.headers[\"User-Agent\"])\n"
+"[/codeblock]\n"
+"[b]Example of loading and displaying an image using HTTPRequest:[/b]\n"
+"[codeblock]\n"
+"func _ready():\n"
+" # Create an HTTP request node and connect its completion signal.\n"
+" var http_request = HTTPRequest.new()\n"
+" add_child(http_request)\n"
+" http_request.connect(\"request_completed\", self, "
+"\"_http_request_completed\")\n"
+"\n"
+" # Perform the HTTP request. The URL below returns a PNG image as of "
+"writing.\n"
+" var error = http_request.request(\"https://via.placeholder.com/512\")\n"
+" if error != OK:\n"
+" push_error(\"An error occurred in the HTTP request.\")\n"
+"\n"
+"\n"
+"# Called when the HTTP request is completed.\n"
+"func _http_request_completed(result, response_code, headers, body):\n"
+" var image = Image.new()\n"
+" var error = image.load_png_from_buffer(body)\n"
+" if error != OK:\n"
+" push_error(\"Couldn't load the image.\")\n"
+"\n"
+" var texture = ImageTexture.new()\n"
+" texture.create_from_image(image)\n"
+"\n"
+" # Display the image in a TextureRect node.\n"
+" var texture_rect = TextureRect.new()\n"
+" add_child(texture_rect)\n"
+" texture_rect.texture = texture\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "$DOCS_URL/tutorials/networking/http_request_class.html"
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Cancels the current request."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid ""
+"Returns the response body length.\n"
+"[b]Note:[/b] Some Web servers may not send a body length. In this case, the "
+"value returned will be [code]-1[/code]. If using chunked transfer encoding, "
+"the body length will also be [code]-1[/code]."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Returns the amount of bytes this HTTPRequest downloaded."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid ""
+"Returns the current status of the underlying [HTTPClient]. See [enum "
+"HTTPClient.Status]."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid ""
+"Creates request on the underlying [HTTPClient]. If there is no configuration "
+"errors, it tries to connect using [method HTTPClient.connect_to_host] and "
+"passes parameters onto [method HTTPClient.request].\n"
+"Returns [constant OK] if request is successfully created. (Does not imply "
+"that the server has responded), [constant ERR_UNCONFIGURED] if not in the "
+"tree, [constant ERR_BUSY] if still processing previous request, [constant "
+"ERR_INVALID_PARAMETER] if given string is not a valid URL format, or "
+"[constant ERR_CANT_CONNECT] if not using thread and the [HTTPClient] cannot "
+"connect to host.\n"
+"[b]Note:[/b] When [code]method[/code] is [constant HTTPClient.METHOD_GET], "
+"the payload sent via [code]request_data[/code] might be ignored by the "
+"server or even cause the server to reject the request (check [url=https://"
+"datatracker.ietf.org/doc/html/rfc7231#section-4.3.1]RFC 7231 section 4.3.1[/"
+"url] for more details). As a workaround, you can send data as a query string "
+"in the URL. See [method String.http_escape] for an example."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid ""
+"Creates request on the underlying [HTTPClient] using a raw array of bytes "
+"for the request body. If there is no configuration errors, it tries to "
+"connect using [method HTTPClient.connect_to_host] and passes parameters onto "
+"[method HTTPClient.request].\n"
+"Returns [constant OK] if request is successfully created. (Does not imply "
+"that the server has responded), [constant ERR_UNCONFIGURED] if not in the "
+"tree, [constant ERR_BUSY] if still processing previous request, [constant "
+"ERR_INVALID_PARAMETER] if given string is not a valid URL format, or "
+"[constant ERR_CANT_CONNECT] if not using thread and the [HTTPClient] cannot "
+"connect to host."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Maximum allowed size for response bodies."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid ""
+"The size of the buffer used and maximum bytes to read per iteration. See "
+"[member HTTPClient.read_chunk_size].\n"
+"Set this to a lower value (e.g. 4096 for 4 KiB) when downloading small files "
+"to decrease memory usage at the cost of download speeds."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "The file to download into. Will output any received file into it."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Maximum number of allowed redirects."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "If [code]true[/code], multithreading is used to improve performance."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Emitted when a request is completed."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Request successful."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Request failed while connecting."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Request failed while resolving."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Request failed due to connection (read/write) error."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Request failed on SSL handshake."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Request does not have a response (yet)."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Request exceeded its maximum size limit, see [member body_size_limit]."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Request failed (currently unused)."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "HTTPRequest couldn't open the download file."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "HTTPRequest couldn't write to the download file."
+msgstr ""
+
+#: doc/classes/HTTPRequest.xml
+msgid "Request reached its maximum redirect limit, see [member max_redirects]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Image datatype."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Native image datatype. Contains image data which can be converted to an "
+"[ImageTexture] and provides commonly used [i]image processing[/i] methods. "
+"The maximum width and height for an [Image] are [constant MAX_WIDTH] and "
+"[constant MAX_HEIGHT].\n"
+"An [Image] cannot be assigned to a [code]texture[/code] property of an "
+"object directly (such as [Sprite]), and has to be converted manually to an "
+"[ImageTexture] first.\n"
+"[b]Note:[/b] The maximum image size is 16384×16384 pixels due to graphics "
+"hardware limitations. Larger images may fail to import."
+msgstr ""
+
+#: doc/classes/Image.xml doc/classes/ImageTexture.xml
+msgid "$DOCS_URL/tutorials/assets_pipeline/importing_images.html"
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Alpha-blends [code]src_rect[/code] from [code]src[/code] image to this image "
+"at coordinates [code]dest[/code]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Alpha-blends [code]src_rect[/code] from [code]src[/code] image to this image "
+"using [code]mask[/code] image at coordinates [code]dst[/code]. Alpha "
+"channels are required for both [code]src[/code] and [code]mask[/code]. "
+"[code]dst[/code] pixels and [code]src[/code] pixels will blend if the "
+"corresponding mask pixel's alpha value is not 0. [code]src[/code] image and "
+"[code]mask[/code] image [b]must[/b] have the same size (width and height) "
+"but they can have different formats."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Copies [code]src_rect[/code] from [code]src[/code] image to this image at "
+"coordinates [code]dst[/code]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Blits [code]src_rect[/code] area from [code]src[/code] image to this image "
+"at the coordinates given by [code]dst[/code]. [code]src[/code] pixel is "
+"copied onto [code]dst[/code] if the corresponding [code]mask[/code] pixel's "
+"alpha value is not 0. [code]src[/code] image and [code]mask[/code] image "
+"[b]must[/b] have the same size (width and height) but they can have "
+"different formats."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Converts a bumpmap to a normalmap. A bumpmap provides a height offset per-"
+"pixel, while a normalmap provides a normal direction per pixel."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Removes the image's mipmaps."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Compresses the image to use less memory. Can not directly access pixel data "
+"while the image is compressed. Returns error if the chosen compression mode "
+"is not available. See [enum CompressMode] and [enum CompressSource] "
+"constants."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Converts the image's format. See [enum Format] constants."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Copies [code]src[/code] image to this image."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Creates an empty image of given size and format. See [enum Format] "
+"constants. If [code]use_mipmaps[/code] is [code]true[/code] then generate "
+"mipmaps for this image. See the [method generate_mipmaps]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Creates a new image of given size and format. See [enum Format] constants. "
+"Fills the image with the given raw data. If [code]use_mipmaps[/code] is "
+"[code]true[/code] then loads mipmaps for this image from [code]data[/code]. "
+"See [method generate_mipmaps]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Crops the image to the given [code]width[/code] and [code]height[/code]. If "
+"the specified size is larger than the current size, the extra area is filled "
+"with black pixels."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Decompresses the image if it is compressed. Returns an error if decompress "
+"function is not available."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Returns [constant ALPHA_BLEND] if the image has data for alpha values. "
+"Returns [constant ALPHA_BIT] if all the alpha values are stored in a single "
+"bit. Returns [constant ALPHA_NONE] if no data for alpha values is found."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Stretches the image and enlarges it by a factor of 2. No interpolation is "
+"done."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Fills the image with [code]color[/code]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Fills [code]rect[/code] with [code]color[/code]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Blends low-alpha pixels with nearby pixels."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Flips the image horizontally."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Flips the image vertically."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Generates mipmaps for the image. Mipmaps are precalculated lower-resolution "
+"copies of the image that are automatically used if the image needs to be "
+"scaled down when rendered. They help improve image quality and performance "
+"when rendering. This method returns an error if the image is compressed, in "
+"a custom format, or if the image's width/height is [code]0[/code].\n"
+"[b]Note:[/b] Mipmap generation is done on the CPU, is single-threaded and is "
+"[i]always[/i] done on the main thread. This means generating mipmaps will "
+"result in noticeable stuttering during gameplay, even if [method "
+"generate_mipmaps] is called from a [Thread]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Returns a copy of the image's raw data."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Returns the image's format. See [enum Format] constants."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Returns the image's height."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Returns the offset where the image's mipmap with index [code]mipmap[/code] "
+"is stored in the [code]data[/code] dictionary."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Returns the color of the pixel at [code](x, y)[/code] if the image is "
+"locked. If the image is unlocked, it always returns a [Color] with the value "
+"[code](0, 0, 0, 1.0)[/code]. This is the same as [method get_pixelv], but "
+"two integer arguments instead of a Vector2 argument."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Returns the color of the pixel at [code]src[/code] if the image is locked. "
+"If the image is unlocked, it always returns a [Color] with the value [code]"
+"(0, 0, 0, 1.0)[/code]. This is the same as [method get_pixel], but with a "
+"Vector2 argument instead of two integer arguments."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Returns a new image that is a copy of the image's area specified with "
+"[code]rect[/code]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Returns the image's size (width and height)."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Returns a [Rect2] enclosing the visible portion of the image, considering "
+"each pixel with a non-zero alpha channel as visible."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Returns the image's width."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Returns [code]true[/code] if the image has generated mipmaps."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Returns [code]true[/code] if the image is compressed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Returns [code]true[/code] if the image has no data."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Returns [code]true[/code] if all the image's pixels have an alpha value of "
+"0. Returns [code]false[/code] if any pixel has an alpha value higher than 0."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Loads an image from file [code]path[/code]. See [url=$DOCS_URL/tutorials/"
+"assets_pipeline/importing_images.html#supported-image-formats]Supported "
+"image formats[/url] for a list of supported image formats and limitations.\n"
+"[b]Warning:[/b] This method should only be used in the editor or in cases "
+"when you need to load external images at run-time, such as images located at "
+"the [code]user://[/code] directory, and may not work in exported projects.\n"
+"See also [ImageTexture] description for usage examples."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Loads an image from the binary contents of a BMP file.\n"
+"[b]Note:[/b] Godot's BMP module doesn't support 16-bit per pixel images. "
+"Only 1-bit, 4-bit, 8-bit, 24-bit, and 32-bit per pixel images are supported."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Loads an image from the binary contents of a JPEG file."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Loads an image from the binary contents of a PNG file."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Loads an image from the binary contents of a TGA file."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Loads an image from the binary contents of a WebP file."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Locks the data for reading and writing access. Sends an error to the console "
+"if the image is not locked when reading or writing a pixel."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Converts the image's data to represent coordinates on a 3D plane. This is "
+"used when the image represents a normalmap. A normalmap can add lots of "
+"detail to a 3D surface without increasing the polygon count."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Multiplies color values with alpha values. Resulting color values for a "
+"pixel are [code](color * alpha)/256[/code]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Resizes the image to the given [code]width[/code] and [code]height[/code]. "
+"New pixels are calculated using the [code]interpolation[/code] mode defined "
+"via [enum Interpolation] constants."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Resizes the image to the nearest power of 2 for the width and height. If "
+"[code]square[/code] is [code]true[/code] then set width and height to be the "
+"same. New pixels are calculated using the [code]interpolation[/code] mode "
+"defined via [enum Interpolation] constants."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Converts a standard RGBE (Red Green Blue Exponent) image to an sRGB image."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Saves the image as an EXR file to [code]path[/code]. If [code]grayscale[/"
+"code] is [code]true[/code] and the image has only one channel, it will be "
+"saved explicitly as monochrome rather than one red channel. This function "
+"will return [constant ERR_UNAVAILABLE] if Godot was compiled without the "
+"TinyEXR module.\n"
+"[b]Note:[/b] The TinyEXR module is disabled in non-editor builds, which "
+"means [method save_exr] will return [constant ERR_UNAVAILABLE] when it is "
+"called from an exported project."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Saves the image as a PNG file to [code]path[/code]."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Sets the [Color] of the pixel at [code](x, y)[/code] if the image is locked. "
+"Example:\n"
+"[codeblock]\n"
+"var img = Image.new()\n"
+"img.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n"
+"img.lock()\n"
+"img.set_pixel(x, y, color) # Works\n"
+"img.unlock()\n"
+"img.set_pixel(x, y, color) # Does not have an effect\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Sets the [Color] of the pixel at [code](dst.x, dst.y)[/code] if the image is "
+"locked. Note that the [code]dst[/code] values must be integers. Example:\n"
+"[codeblock]\n"
+"var img = Image.new()\n"
+"img.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n"
+"img.lock()\n"
+"img.set_pixelv(Vector2(x, y), color) # Works\n"
+"img.unlock()\n"
+"img.set_pixelv(Vector2(x, y), color) # Does not have an effect\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Shrinks the image by a factor of 2."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Converts the raw data from the sRGB colorspace to a linear scale."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Unlocks the data and prevents changes."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Holds all the image's color data in a given format. See [enum Format] "
+"constants."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "The maximal width allowed for [Image] resources."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "The maximal height allowed for [Image] resources."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Texture format with a single 8-bit depth representing luminance."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format with two values, luminance and alpha each stored with "
+"8 bits."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]RED[/code] with a single component and a "
+"bitdepth of 8.\n"
+"[b]Note:[/b] When using the GLES2 backend, this uses the alpha channel "
+"instead of the red channel for storage."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]RG[/code] with two components and a bitdepth of "
+"8 for each."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]RGB[/code] with three components, each with a "
+"bitdepth of 8.\n"
+"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
+"conversion is performed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]RGBA[/code] with four components, each with a "
+"bitdepth of 8.\n"
+"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
+"conversion is performed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]RGBA[/code] with four components, each with a "
+"bitdepth of 4."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]GL_RGB5_A1[/code] where 5 bits of depth for each "
+"component of RGB and one bit for alpha."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]GL_R32F[/code] where there's one component, a 32-"
+"bit floating-point value."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]GL_RG32F[/code] where there are two components, "
+"each a 32-bit floating-point values."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]GL_RGB32F[/code] where there are three "
+"components, each a 32-bit floating-point values."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]GL_RGBA32F[/code] where there are four "
+"components, each a 32-bit floating-point values."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]GL_R32F[/code] where there's one component, a 16-"
+"bit \"half-precision\" floating-point value."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]GL_RG32F[/code] where there are two components, "
+"each a 16-bit \"half-precision\" floating-point value."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]GL_RGB32F[/code] where there are three "
+"components, each a 16-bit \"half-precision\" floating-point value."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"OpenGL texture format [code]GL_RGBA32F[/code] where there are four "
+"components, each a 16-bit \"half-precision\" floating-point value."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"A special OpenGL texture format where the three color components have 9 bits "
+"of precision and all three share a single 5-bit exponent."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"The [url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] "
+"texture format that uses Block Compression 1, and is the smallest variation "
+"of S3TC, only providing 1 bit of alpha and color data being premultiplied "
+"with alpha.\n"
+"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
+"conversion is performed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"The [url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] "
+"texture format that uses Block Compression 2, and color data is interpreted "
+"as not having been premultiplied by alpha. Well suited for images with sharp "
+"alpha transitions between translucent and opaque areas.\n"
+"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
+"conversion is performed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"The [url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] "
+"texture format also known as Block Compression 3 or BC3 that contains 64 "
+"bits of alpha channel data followed by 64 bits of DXT1-encoded color data. "
+"Color data is not premultiplied by alpha, same as DXT3. DXT5 generally "
+"produces superior results for transparent gradients compared to DXT3.\n"
+"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
+"conversion is performed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Texture format that uses [url=https://www.khronos.org/opengl/wiki/"
+"Red_Green_Texture_Compression]Red Green Texture Compression[/url], "
+"normalizing the red channel data using the same compression algorithm that "
+"DXT5 uses for the alpha channel."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Texture format that uses [url=https://www.khronos.org/opengl/wiki/"
+"Red_Green_Texture_Compression]Red Green Texture Compression[/url], "
+"normalizing the red and green channel data using the same compression "
+"algorithm that DXT5 uses for the alpha channel."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Texture format that uses [url=https://www.khronos.org/opengl/wiki/"
+"BPTC_Texture_Compression]BPTC[/url] compression with unsigned normalized "
+"RGBA components.\n"
+"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
+"conversion is performed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Texture format that uses [url=https://www.khronos.org/opengl/wiki/"
+"BPTC_Texture_Compression]BPTC[/url] compression with signed floating-point "
+"RGB components."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Texture format that uses [url=https://www.khronos.org/opengl/wiki/"
+"BPTC_Texture_Compression]BPTC[/url] compression with unsigned floating-point "
+"RGB components."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Texture format used on PowerVR-supported mobile platforms, uses 2-bit color "
+"depth with no alpha. More information can be found [url=https://en.wikipedia."
+"org/wiki/PVRTC]here[/url].\n"
+"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
+"conversion is performed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Same as [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url], but with an "
+"alpha component."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Similar to [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url], but with 4-"
+"bit color depth and no alpha."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Same as [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC4[/url], but with an "
+"alpha component."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"[url=https://en.wikipedia.org/wiki/"
+"Ericsson_Texture_Compression#ETC1]Ericsson Texture Compression format 1[/"
+"url], also referred to as \"ETC1\", and is part of the OpenGL ES graphics "
+"standard. This format cannot store an alpha channel."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"[url=https://en.wikipedia.org/wiki/"
+"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
+"format 2[/url] ([code]R11_EAC[/code] variant), which provides one channel of "
+"unsigned data."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"[url=https://en.wikipedia.org/wiki/"
+"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
+"format 2[/url] ([code]SIGNED_R11_EAC[/code] variant), which provides one "
+"channel of signed data."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"[url=https://en.wikipedia.org/wiki/"
+"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
+"format 2[/url] ([code]RG11_EAC[/code] variant), which provides two channels "
+"of unsigned data."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"[url=https://en.wikipedia.org/wiki/"
+"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
+"format 2[/url] ([code]SIGNED_RG11_EAC[/code] variant), which provides two "
+"channels of signed data."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"[url=https://en.wikipedia.org/wiki/"
+"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
+"format 2[/url] ([code]RGB8[/code] variant), which is a follow-up of ETC1 and "
+"compresses RGB888 data.\n"
+"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
+"conversion is performed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"[url=https://en.wikipedia.org/wiki/"
+"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
+"format 2[/url] ([code]RGBA8[/code]variant), which compresses RGBA8888 data "
+"with full alpha support.\n"
+"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
+"conversion is performed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"[url=https://en.wikipedia.org/wiki/"
+"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
+"format 2[/url] ([code]RGB8_PUNCHTHROUGH_ALPHA1[/code] variant), which "
+"compresses RGBA data to make alpha either fully transparent or fully "
+"opaque.\n"
+"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
+"conversion is performed."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Represents the size of the [enum Format] enum."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Performs nearest-neighbor interpolation. If the image is resized, it will be "
+"pixelated."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Performs bilinear interpolation. If the image is resized, it will be blurry. "
+"This mode is faster than [constant INTERPOLATE_CUBIC], but it results in "
+"lower quality."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Performs cubic interpolation. If the image is resized, it will be blurry. "
+"This mode often gives better results compared to [constant "
+"INTERPOLATE_BILINEAR], at the cost of being slower."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Performs bilinear separately on the two most-suited mipmap levels, then "
+"linearly interpolates between them.\n"
+"It's slower than [constant INTERPOLATE_BILINEAR], but produces higher-"
+"quality results with far fewer aliasing artifacts.\n"
+"If the image does not have mipmaps, they will be generated and used "
+"internally, but no mipmaps will be generated on the resulting image.\n"
+"[b]Note:[/b] If you intend to scale multiple copies of the original image, "
+"it's better to call [method generate_mipmaps]] on it in advance, to avoid "
+"wasting processing power in generating them again and again.\n"
+"On the other hand, if the image already has mipmaps, they will be used, and "
+"a new set will be generated for the resulting image."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Performs Lanczos interpolation. This is the slowest image resizing mode, but "
+"it typically gives the best results, especially when downscalng images."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Image does not have alpha."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Image stores alpha in a single bit."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Image uses alpha."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Use S3TC compression."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Use PVRTC2 compression."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Use PVRTC4 compression."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Use ETC compression."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Use ETC2 compression."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Source texture (before compression) is a regular texture. Default for all "
+"textures."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid "Source texture (before compression) is in sRGB space."
+msgstr ""
+
+#: doc/classes/Image.xml
+msgid ""
+"Source texture (before compression) is a normal texture (e.g. it can be "
+"compressed into two channels)."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid "A [Texture] based on an [Image]."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid ""
+"A [Texture] based on an [Image]. For an image to be displayed, an "
+"[ImageTexture] has to be created from it using the [method "
+"create_from_image] method:\n"
+"[codeblock]\n"
+"var texture = ImageTexture.new()\n"
+"var image = Image.new()\n"
+"image.load(\"res://icon.png\")\n"
+"texture.create_from_image(image)\n"
+"$Sprite.texture = texture\n"
+"[/codeblock]\n"
+"This way, textures can be created at run-time by loading images both from "
+"within the editor and externally.\n"
+"[b]Warning:[/b] Prefer to load imported textures with [method @GDScript."
+"load] over loading them from within the filesystem dynamically with [method "
+"Image.load], as it may not work in exported projects:\n"
+"[codeblock]\n"
+"var texture = load(\"res://icon.png\")\n"
+"$Sprite.texture = texture\n"
+"[/codeblock]\n"
+"This is because images have to be imported as [StreamTexture] first to be "
+"loaded with [method @GDScript.load]. If you'd still like to load an image "
+"file just like any other [Resource], import it as an [Image] resource "
+"instead, and then load it normally using the [method @GDScript.load] "
+"method.\n"
+"But do note that the image data can still be retrieved from an imported "
+"texture as well using the [method Texture.get_data] method, which returns a "
+"copy of the data:\n"
+"[codeblock]\n"
+"var texture = load(\"res://icon.png\")\n"
+"var image : Image = texture.get_data()\n"
+"[/codeblock]\n"
+"An [ImageTexture] is not meant to be operated from within the editor "
+"interface directly, and is mostly useful for rendering images on screen "
+"dynamically via code. If you need to generate images procedurally from "
+"within the editor, consider saving and importing images as custom texture "
+"resources implementing a new [EditorImportPlugin].\n"
+"[b]Note:[/b] The maximum texture size is 16384×16384 pixels due to graphics "
+"hardware limitations."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid ""
+"Create a new [ImageTexture] with [code]width[/code] and [code]height[/"
+"code].\n"
+"[code]format[/code] is a value from [enum Image.Format], [code]flags[/code] "
+"is any combination of [enum Texture.Flags]."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid ""
+"Initializes the texture by allocating and setting the data from an [Image] "
+"with [code]flags[/code] from [enum Texture.Flags]. An sRGB to linear color "
+"space conversion can take place, according to [enum Image.Format]."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid "Returns the format of the texture, one of [enum Image.Format]."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid ""
+"Loads an image from a file path and creates a texture from it.\n"
+"[b]Note:[/b] This method is deprecated and will be removed in Godot 4.0, use "
+"[method Image.load] and [method create_from_image] instead."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid ""
+"Replaces the texture's data with a new [Image].\n"
+"[b]Note:[/b] The texture has to be initialized first with the [method "
+"create_from_image] method before it can be updated. The new image "
+"dimensions, format, and mipmaps configuration should match the existing "
+"texture's image configuration, otherwise it has to be re-created with the "
+"[method create_from_image] method.\n"
+"Use this method over [method create_from_image] if you need to update the "
+"texture frequently, which is faster than allocating additional memory for a "
+"new texture each time."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml doc/classes/VisualServer.xml
+msgid "Resizes the texture to the specified dimensions."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid "The storage quality for [constant STORAGE_COMPRESS_LOSSY]."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid "The storage type (raw, lossy, or compressed)."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid "[Image] data is stored raw and unaltered."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid ""
+"[Image] data is compressed with a lossy algorithm. You can set the storage "
+"quality with [member lossy_quality]."
+msgstr ""
+
+#: doc/classes/ImageTexture.xml
+msgid "[Image] data is compressed with a lossless algorithm."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid "Draws simple geometry from code."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid ""
+"Draws simple geometry from code. Uses a drawing mode similar to OpenGL 1.x.\n"
+"See also [ArrayMesh], [MeshDataTool] and [SurfaceTool] for procedural "
+"geometry generation.\n"
+"[b]Note:[/b] ImmediateGeometry3D is best suited to small amounts of mesh "
+"data that change every frame. It will be slow when handling large amounts of "
+"mesh data. If mesh data doesn't change often, use [ArrayMesh], "
+"[MeshDataTool] or [SurfaceTool] instead.\n"
+"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-"
+"OpenGL/Face-culling]winding order[/url] for front faces of triangle "
+"primitive modes.\n"
+"[b]Note:[/b] In case of missing points when handling large amounts of mesh "
+"data, try increasing its buffer size limit under [member ProjectSettings."
+"rendering/limits/buffers/immediate_buffer_size_kb]."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid ""
+"Simple helper to draw an UV sphere with given latitude, longitude and radius."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid ""
+"Adds a vertex in local coordinate space with the currently set color/uv/etc."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid ""
+"Begin drawing (and optionally pass a texture override). When done call "
+"[method end]. For more information on how this works, search for "
+"[code]glBegin()[/code] and [code]glEnd()[/code] references.\n"
+"For the type of primitive, see the [enum Mesh.PrimitiveType] enum."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid "Clears everything that was drawn using begin/end."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid "Ends a drawing context and displays the results."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid "The current drawing color."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid "The next vertex's normal."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid "The next vertex's tangent (and binormal facing)."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid "The next vertex's UV."
+msgstr ""
+
+#: doc/classes/ImmediateGeometry.xml
+msgid "The next vertex's second layer UV."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "A singleton that deals with inputs."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"A singleton that deals with inputs. This includes key presses, mouse buttons "
+"and movement, joypads, and input actions. Actions and their events can be "
+"set in the [b]Input Map[/b] tab in the [b]Project > Project Settings[/b], or "
+"with the [InputMap] class."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "$DOCS_URL/tutorials/inputs/index.html"
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"This will simulate pressing the specified action.\n"
+"The strength can be used for non-boolean actions, it's ranged between 0 and "
+"1 representing the intensity of the given action.\n"
+"[b]Note:[/b] This method will not cause any [method Node._input] calls. It "
+"is intended to be used with [method is_action_pressed] and [method "
+"is_action_just_pressed]. If you want to simulate [code]_input[/code], use "
+"[method parse_input_event] instead."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "If the specified action is already pressed, this will release it."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Adds a new mapping entry (in SDL2 format) to the mapping database. "
+"Optionally update already connected devices."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Sends all input events which are in the current buffer to the game loop. "
+"These events may have been buffered as a result of accumulated input "
+"([method set_use_accumulated_input]) or agile input flushing ([member "
+"ProjectSettings.input_devices/buffering/agile_event_flushing]).\n"
+"The engine will already do this itself at key execution points (at least "
+"once per frame). However, this can be useful in advanced cases where you "
+"want precise control over the timing of event handling."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns the acceleration of the device's accelerometer sensor, if the device "
+"has one. Otherwise, the method returns [constant Vector3.ZERO].\n"
+"Note this method returns an empty [Vector3] when running from the editor "
+"even when your device has an accelerometer. You must export your project to "
+"a supported device to read values from the accelerometer.\n"
+"[b]Note:[/b] This method only works on iOS, Android, and UWP. On other "
+"platforms, it always returns [constant Vector3.ZERO]. On Android the unit of "
+"measurement for each axis is m/s² while on iOS and UWP it's a multiple of "
+"the Earth's gravitational acceleration [code]g[/code] (~9.81 m/s²)."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns a value between 0 and 1 representing the raw intensity of the given "
+"action, ignoring the action's deadzone. In most cases, you should use "
+"[method get_action_strength] instead.\n"
+"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
+"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
+"for [InputEventJoypadMotion] events."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns a value between 0 and 1 representing the intensity of the given "
+"action. In a joypad, for example, the further away the axis (analog sticks "
+"or L2, R2 triggers) is from the dead zone, the closer the value will be to "
+"1. If the action is mapped to a control that has no axis as the keyboard, "
+"the value returned will be 0 or 1.\n"
+"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
+"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
+"for [InputEventJoypadMotion] events."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Get axis input by specifying two actions, one negative and one positive.\n"
+"This is a shorthand for writing [code]Input."
+"get_action_strength(\"positive_action\") - Input."
+"get_action_strength(\"negative_action\")[/code]."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns an [Array] containing the device IDs of all currently connected "
+"joypads."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Returns the currently assigned cursor shape (see [enum CursorShape])."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns the gravity of the device's accelerometer sensor, if the device has "
+"one. Otherwise, the method returns [constant Vector3.ZERO].\n"
+"[b]Note:[/b] This method only works on Android and iOS. On other platforms, "
+"it always returns [constant Vector3.ZERO]. On Android the unit of "
+"measurement for each axis is m/s² while on iOS it's a multiple of the "
+"Earth's gravitational acceleration [code]g[/code] (~9.81 m/s²)."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the "
+"gyroscope sensor, if the device has one. Otherwise, the method returns "
+"[constant Vector3.ZERO].\n"
+"[b]Note:[/b] This method only works on Android and iOS. On other platforms, "
+"it always returns [constant Vector3.ZERO]."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns the current value of the joypad axis at given index (see [enum "
+"JoystickList])."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Returns the index of the provided axis name."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Receives a [enum JoystickList] axis and returns its equivalent name as a "
+"string."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Returns the index of the provided button name."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Receives a gamepad button from [enum JoystickList] and returns its "
+"equivalent name as a string."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns a SDL2-compatible device GUID on platforms that use gamepad "
+"remapping. Returns [code]\"Default Gamepad\"[/code] otherwise."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Returns the name of the joypad at the specified device index."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Returns the duration of the current vibration effect in seconds."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns the strength of the joypad vibration: x is the strength of the weak "
+"motor, and y is the strength of the strong motor."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns the mouse speed for the last time the cursor was moved, and this "
+"until the next frame where the mouse moves. This means that even if the "
+"mouse is not moving, this function will still return the value of the last "
+"motion."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns the magnetic field strength in micro-Tesla for all axes of the "
+"device's magnetometer sensor, if the device has one. Otherwise, the method "
+"returns [constant Vector3.ZERO].\n"
+"[b]Note:[/b] This method only works on Android, iOS and UWP. On other "
+"platforms, it always returns [constant Vector3.ZERO]."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at "
+"the same time, the bits are added together."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Returns the mouse mode. See the constants for more information."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Gets an input vector by specifying four actions for the positive and "
+"negative X and Y axes.\n"
+"This method is useful when getting vector input, such as from a joystick, "
+"directional pad, arrows, or WASD. The vector has its length limited to 1 and "
+"has a circular deadzone, which is useful for using vector input as "
+"movement.\n"
+"By default, the deadzone is automatically calculated from the average of the "
+"action deadzones. However, you can override the deadzone to be whatever you "
+"want (on the range of 0 to 1)."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns [code]true[/code] when the user starts pressing the action event, "
+"meaning it's [code]true[/code] only on the frame that the user pressed down "
+"the button.\n"
+"This is useful for code that needs to run only once when an action is "
+"pressed, instead of every frame while it's pressed.\n"
+"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
+"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns [code]true[/code] when the user stops pressing the action event, "
+"meaning it's [code]true[/code] only on the frame that the user released the "
+"button.\n"
+"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
+"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
+"for [InputEventJoypadMotion] events."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns [code]true[/code] if you are pressing the action event. Note that if "
+"an action has multiple buttons assigned and more than one of them is "
+"pressed, releasing one button will release the action, even if some other "
+"button assigned to this action is still pressed.\n"
+"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
+"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns [code]true[/code] if you are pressing the joypad button (see [enum "
+"JoystickList])."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns [code]true[/code] if the system knows the specified device. This "
+"means that it sets all button and axis indices exactly as defined in [enum "
+"JoystickList]. Unknown joypads are not expected to match these constants, "
+"but you can still retrieve events from them."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns [code]true[/code] if you are pressing the mouse button specified "
+"with [enum ButtonList]."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Returns [code]true[/code] if you are pressing the key in the physical "
+"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Notifies the [Input] singleton that a connection has changed, to update the "
+"state for the [code]device[/code] index.\n"
+"This is used internally and should not have to be called from user scripts. "
+"See [signal joy_connection_changed] for the signal emitted when this is "
+"triggered internally."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Feeds an [InputEvent] to the game. Can be used to artificially trigger input "
+"events from code. Also generates [method Node._input] calls.\n"
+"Example:\n"
+"[codeblock]\n"
+"var a = InputEventAction.new()\n"
+"a.action = \"ui_cancel\"\n"
+"a.pressed = true\n"
+"Input.parse_input_event(a)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Removes all mappings from the internal database that match the given GUID."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Sets the acceleration value of the accelerometer sensor. Can be used for "
+"debugging on devices without a hardware sensor, for example in an editor on "
+"a PC.\n"
+"[b]Note:[/b] This value can be immediately overwritten by the hardware "
+"sensor value on Android and iOS."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Sets a custom mouse cursor image, which is only visible inside the game "
+"window. The hotspot can also be specified. Passing [code]null[/code] to the "
+"image parameter resets to the system cursor. See [enum CursorShape] for the "
+"list of shapes.\n"
+"[code]image[/code]'s size must be lower than 256×256.\n"
+"[code]hotspot[/code] must be within [code]image[/code]'s size.\n"
+"[b]Note:[/b] [AnimatedTexture]s aren't supported as custom mouse cursors. If "
+"using an [AnimatedTexture], only the first frame will be displayed.\n"
+"[b]Note:[/b] Only images imported with the [b]Lossless[/b], [b]Lossy[/b] or "
+"[b]Uncompressed[/b] compression modes are supported. The [b]Video RAM[/b] "
+"compression mode can't be used for custom cursors."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Sets the default cursor shape to be used in the viewport instead of "
+"[constant CURSOR_ARROW].\n"
+"[b]Note:[/b] If you want to change the default cursor shape for [Control]'s "
+"nodes, use [member Control.mouse_default_cursor_shape] instead.\n"
+"[b]Note:[/b] This method generates an [InputEventMouseMotion] to update "
+"cursor immediately."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Sets the gravity value of the accelerometer sensor. Can be used for "
+"debugging on devices without a hardware sensor, for example in an editor on "
+"a PC.\n"
+"[b]Note:[/b] This value can be immediately overwritten by the hardware "
+"sensor value on Android and iOS."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Sets the value of the rotation rate of the gyroscope sensor. Can be used for "
+"debugging on devices without a hardware sensor, for example in an editor on "
+"a PC.\n"
+"[b]Note:[/b] This value can be immediately overwritten by the hardware "
+"sensor value on Android and iOS."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Sets the value of the magnetic field of the magnetometer sensor. Can be used "
+"for debugging on devices without a hardware sensor, for example in an editor "
+"on a PC.\n"
+"[b]Note:[/b] This value can be immediately overwritten by the hardware "
+"sensor value on Android and iOS."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Sets the mouse mode. See the constants for more information."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Enables or disables the accumulation of similar input events sent by the "
+"operating system. When input accumulation is enabled, all input events "
+"generated during a frame will be merged and emitted when the frame is done "
+"rendering. Therefore, this limits the number of input method calls per "
+"second to the rendering FPS.\n"
+"Input accumulation is enabled by default. It can be disabled to get slightly "
+"more precise/reactive input at the cost of increased CPU usage. In "
+"applications where drawing freehand lines is required, input accumulation "
+"should generally be disabled while the user is drawing the line to get "
+"results that closely follow the actual input."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Starts to vibrate the joypad. Joypads usually come with two rumble motors, a "
+"strong and a weak one. [code]weak_magnitude[/code] is the strength of the "
+"weak motor (between 0 and 1) and [code]strong_magnitude[/code] is the "
+"strength of the strong motor (between 0 and 1). [code]duration[/code] is the "
+"duration of the effect in seconds (a duration of 0 will try to play the "
+"vibration indefinitely).\n"
+"[b]Note:[/b] Not every hardware is compatible with long effect durations; it "
+"is recommended to restart an effect if it has to be played for more than a "
+"few seconds."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Stops the vibration of the joypad."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Vibrate Android and iOS devices.\n"
+"[b]Note:[/b] It needs [code]VIBRATE[/code] permission for Android at export "
+"settings. iOS does not support duration."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Sets the mouse position to the specified vector."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Emitted when a joypad device has been connected or disconnected."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Makes the mouse cursor visible if it is hidden."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Makes the mouse cursor hidden if it is visible."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Captures the mouse. The mouse will be hidden and its position locked at the "
+"center of the screen.\n"
+"[b]Note:[/b] If you want to process the mouse's movement in this mode, you "
+"need to use [member InputEventMouseMotion.relative]."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Makes the mouse cursor visible but confines it to the game window."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Arrow cursor. Standard, default pointing cursor."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"I-beam cursor. Usually used to show where the text cursor will appear when "
+"the mouse is clicked."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Pointing hand cursor. Usually used to indicate the pointer is over a link or "
+"other interactable item."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Cross cursor. Typically appears over regions in which a drawing operation "
+"can be performed or for selections."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Wait cursor. Indicates that the application is busy performing an operation. "
+"This cursor shape denotes that the application is still usable during the "
+"operation."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Busy cursor. Indicates that the application is busy performing an operation. "
+"This cursor shape denotes that the application isn't usable during the "
+"operation (e.g. something is blocking its main thread)."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Drag cursor. Usually displayed when dragging something."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Can drop cursor. Usually displayed when dragging something to indicate that "
+"it can be dropped at the current position."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Forbidden cursor. Indicates that the current action is forbidden (for "
+"example, when dragging something) or that the control at a position is "
+"disabled."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Vertical resize mouse cursor. A double-headed vertical arrow. It tells the "
+"user they can resize the window or the panel vertically."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Horizontal resize mouse cursor. A double-headed horizontal arrow. It tells "
+"the user they can resize the window or the panel horizontally."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Window resize mouse cursor. The cursor is a double-headed arrow that goes "
+"from the bottom left to the top right. It tells the user they can resize the "
+"window or the panel both horizontally and vertically."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Window resize mouse cursor. The cursor is a double-headed arrow that goes "
+"from the top left to the bottom right, the opposite of [constant "
+"CURSOR_BDIAGSIZE]. It tells the user they can resize the window or the panel "
+"both horizontally and vertically."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Move cursor. Indicates that something can be moved."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Vertical split mouse cursor. On Windows, it's the same as [constant "
+"CURSOR_VSIZE]."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid ""
+"Horizontal split mouse cursor. On Windows, it's the same as [constant "
+"CURSOR_HSIZE]."
+msgstr ""
+
+#: doc/classes/Input.xml
+msgid "Help cursor. Usually a question mark."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid "Generic input event."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid "Base class of all sort of input event. See [method Node._input]."
+msgstr ""
+
+#: doc/classes/InputEvent.xml doc/classes/InputEventJoypadButton.xml
+#: doc/classes/InputEventJoypadMotion.xml doc/classes/InputEventKey.xml
+#: doc/classes/InputEventMouse.xml doc/classes/InputEventScreenDrag.xml
+#: doc/classes/InputEventScreenTouch.xml
+#: doc/classes/InputEventWithModifiers.xml
+msgid "$DOCS_URL/tutorials/inputs/inputevent.html"
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"Returns [code]true[/code] if the given input event and this input event can "
+"be added together (only for events of type [InputEventMouseMotion]).\n"
+"The given input event's position, global position and speed will be copied. "
+"The resulting [code]relative[/code] is a sum of both events. Both events' "
+"modifiers have to be identical."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid "Returns a [String] representation of the event."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"Returns a value between 0.0 and 1.0 depending on the given actions' state. "
+"Useful for getting the value of events of type [InputEventJoypadMotion].\n"
+"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
+"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
+"direction for [InputEventJoypadMotion] events."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"Returns [code]true[/code] if this input event matches a pre-defined action "
+"of any type.\n"
+"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
+"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
+"direction for [InputEventJoypadMotion] events."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"Returns [code]true[/code] if the given action is being pressed (and is not "
+"an echo event for [InputEventKey] events, unless [code]allow_echo[/code] is "
+"[code]true[/code]). Not relevant for events of type [InputEventMouseMotion] "
+"or [InputEventScreenDrag].\n"
+"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
+"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"Returns [code]true[/code] if the given action is released (i.e. not "
+"pressed). Not relevant for events of type [InputEventMouseMotion] or "
+"[InputEventScreenDrag].\n"
+"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
+"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
+"direction for [InputEventJoypadMotion] events."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"Returns [code]true[/code] if this input event's type is one that can be "
+"assigned to an input action."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"Returns [code]true[/code] if this input event is an echo event (only for "
+"events of type [InputEventKey])."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"Returns [code]true[/code] if this input event is pressed. Not relevant for "
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"Returns [code]true[/code] if the specified [code]event[/code] matches this "
+"event. Only valid for action events i.e key ([InputEventKey]), button "
+"([InputEventMouseButton] or [InputEventJoypadButton]), axis "
+"[InputEventJoypadMotion] or action ([InputEventAction]) events.\n"
+"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
+"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
+"direction for [InputEventJoypadMotion] events."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"Returns a copy of the given input event which has been offset by "
+"[code]local_ofs[/code] and transformed by [code]xform[/code]. Relevant for "
+"events of type [InputEventMouseButton], [InputEventMouseMotion], "
+"[InputEventScreenTouch], [InputEventScreenDrag], [InputEventMagnifyGesture] "
+"and [InputEventPanGesture]."
+msgstr ""
+
+#: doc/classes/InputEvent.xml
+msgid ""
+"The event's device ID.\n"
+"[b]Note:[/b] This device ID will always be [code]-1[/code] for emulated "
+"mouse input from a touchscreen. This can be used to distinguish emulated "
+"mouse input from physical mouse input."
+msgstr ""
+
+#: doc/classes/InputEventAction.xml
+msgid "Input event type for actions."
+msgstr ""
+
+#: doc/classes/InputEventAction.xml
+msgid ""
+"Contains a generic action which can be targeted from several types of "
+"inputs. Actions can be created from the [b]Input Map[/b] tab in the "
+"[b]Project > Project Settings[/b] menu. See [method Node._input]."
+msgstr ""
+
+#: doc/classes/InputEventAction.xml
+msgid "$DOCS_URL/tutorials/inputs/inputevent.html#actions"
+msgstr ""
+
+#: doc/classes/InputEventAction.xml
+msgid "The action's name. Actions are accessed via this [String]."
+msgstr ""
+
+#: doc/classes/InputEventAction.xml
+msgid ""
+"If [code]true[/code], the action's state is pressed. If [code]false[/code], "
+"the action's state is released."
+msgstr ""
+
+#: doc/classes/InputEventAction.xml
+msgid ""
+"The action's strength between 0 and 1. This value is considered as equal to "
+"0 if pressed is [code]false[/code]. The event strength allows faking analog "
+"joypad motion events, by specifying how strongly the joypad axis is bent or "
+"pressed."
+msgstr ""
+
+#: doc/classes/InputEventGesture.xml
+msgid "Base class for touch control gestures."
+msgstr ""
+
+#: doc/classes/InputEventGesture.xml
+msgid ""
+"The local gesture position relative to the [Viewport]. If used in [method "
+"Control._gui_input], the position is relative to the current [Control] that "
+"received this gesture."
+msgstr ""
+
+#: doc/classes/InputEventJoypadButton.xml
+msgid "Input event for gamepad buttons."
+msgstr ""
+
+#: doc/classes/InputEventJoypadButton.xml
+msgid ""
+"Input event type for gamepad buttons. For gamepad analog sticks and "
+"joysticks, see [InputEventJoypadMotion]."
+msgstr ""
+
+#: doc/classes/InputEventJoypadButton.xml
+msgid "Button identifier. One of the [enum JoystickList] button constants."
+msgstr ""
+
+#: doc/classes/InputEventJoypadButton.xml
+msgid ""
+"If [code]true[/code], the button's state is pressed. If [code]false[/code], "
+"the button's state is released."
+msgstr ""
+
+#: doc/classes/InputEventJoypadButton.xml
+msgid ""
+"Represents the pressure the user puts on the button with his finger, if the "
+"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
+msgstr ""
+
+#: doc/classes/InputEventJoypadMotion.xml
+msgid ""
+"Input event type for gamepad joysticks and other motions. For buttons, see "
+"[code]InputEventJoypadButton[/code]."
+msgstr ""
+
+#: doc/classes/InputEventJoypadMotion.xml
+msgid ""
+"Stores information about joystick motions. One [InputEventJoypadMotion] "
+"represents one axis at a time."
+msgstr ""
+
+#: doc/classes/InputEventJoypadMotion.xml
+msgid "Axis identifier. Use one of the [enum JoystickList] axis constants."
+msgstr ""
+
+#: doc/classes/InputEventJoypadMotion.xml
+msgid ""
+"Current position of the joystick on the given axis. The value ranges from "
+"[code]-1.0[/code] to [code]1.0[/code]. A value of [code]0[/code] means the "
+"axis is in its resting position."
+msgstr ""
+
+#: doc/classes/InputEventKey.xml
+msgid "Input event type for keyboard events."
+msgstr ""
+
+#: doc/classes/InputEventKey.xml
+msgid ""
+"Stores key presses on the keyboard. Supports key presses, key releases and "
+"[member echo] events."
+msgstr ""
+
+#: doc/classes/InputEventKey.xml
+msgid ""
+"Returns the physical scancode combined with modifier keys such as "
+"[code]Shift[/code] or [code]Alt[/code]. See also [InputEventWithModifiers].\n"
+"To get a human-readable representation of the [InputEventKey] with "
+"modifiers, use [code]OS.get_scancode_string(event."
+"get_physical_scancode_with_modifiers())[/code] where [code]event[/code] is "
+"the [InputEventKey]."
+msgstr ""
+
+#: doc/classes/InputEventKey.xml
+msgid ""
+"Returns the scancode combined with modifier keys such as [code]Shift[/code] "
+"or [code]Alt[/code]. See also [InputEventWithModifiers].\n"
+"To get a human-readable representation of the [InputEventKey] with "
+"modifiers, use [code]OS.get_scancode_string(event."
+"get_scancode_with_modifiers())[/code] where [code]event[/code] is the "
+"[InputEventKey]."
+msgstr ""
+
+#: doc/classes/InputEventKey.xml
+msgid ""
+"If [code]true[/code], the key was already pressed before this event. It "
+"means the user is holding the key down."
+msgstr ""
+
+#: doc/classes/InputEventKey.xml
+msgid ""
+"Key physical scancode, which corresponds to one of the [enum KeyList] "
+"constants. Represent the physical location of a key on the 101/102-key US "
+"QWERTY keyboard.\n"
+"To get a human-readable representation of the [InputEventKey], use [code]OS."
+"get_scancode_string(event.physical_scancode)[/code] where [code]event[/code] "
+"is the [InputEventKey]."
+msgstr ""
+
+#: doc/classes/InputEventKey.xml
+msgid ""
+"If [code]true[/code], the key's state is pressed. If [code]false[/code], the "
+"key's state is released."
+msgstr ""
+
+#: doc/classes/InputEventKey.xml
+msgid ""
+"The key scancode, which corresponds to one of the [enum KeyList] constants. "
+"Represent key in the current keyboard layout.\n"
+"To get a human-readable representation of the [InputEventKey], use [code]OS."
+"get_scancode_string(event.scancode)[/code] where [code]event[/code] is the "
+"[InputEventKey]."
+msgstr ""
+
+#: doc/classes/InputEventKey.xml
+msgid ""
+"The key Unicode identifier (when relevant). Unicode identifiers for the "
+"composite characters and complex scripts may not be available unless IME "
+"input mode is active. See [method OS.set_ime_active] for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
+#: doc/classes/InputEventMouse.xml
+msgid "Base input event type for mouse events."
+msgstr ""
+
+#: doc/classes/InputEventMouse.xml
+msgid "Stores general mouse events information."
+msgstr ""
+
+#: doc/classes/InputEventMouse.xml
+msgid ""
+"The mouse button mask identifier, one of or a bitwise combination of the "
+"[enum ButtonList] button masks."
+msgstr ""
+
+#: doc/classes/InputEventMouse.xml
+msgid ""
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
+msgstr ""
+
+#: doc/classes/InputEventMouse.xml
+msgid ""
+"The local mouse position relative to the [Viewport]. If used in [method "
+"Control._gui_input], the position is relative to the current [Control] which "
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
+msgstr ""
+
+#: doc/classes/InputEventMouseButton.xml
+msgid "Input event type for mouse button events."
+msgstr ""
+
+#: doc/classes/InputEventMouseButton.xml
+msgid "Contains mouse click information. See [method Node._input]."
+msgstr ""
+
+#: doc/classes/InputEventMouseButton.xml doc/classes/InputEventMouseMotion.xml
+msgid "$DOCS_URL/tutorials/inputs/mouse_and_input_coordinates.html"
+msgstr ""
+
+#: doc/classes/InputEventMouseButton.xml
+msgid ""
+"The mouse button identifier, one of the [enum ButtonList] button or button "
+"wheel constants."
+msgstr ""
+
+#: doc/classes/InputEventMouseButton.xml
+msgid "If [code]true[/code], the mouse button's state is a double-click."
+msgstr ""
+
+#: doc/classes/InputEventMouseButton.xml
+msgid ""
+"The amount (or delta) of the event. When used for high-precision scroll "
+"events, this indicates the scroll amount (vertical or horizontal). This is "
+"only supported on some platforms; the reported sensitivity varies depending "
+"on the platform. May be [code]0[/code] if not supported."
+msgstr ""
+
+#: doc/classes/InputEventMouseButton.xml
+msgid ""
+"If [code]true[/code], the mouse button's state is pressed. If [code]false[/"
+"code], the mouse button's state is released."
+msgstr ""
+
+#: doc/classes/InputEventMouseMotion.xml
+msgid "Input event type for mouse motion events."
+msgstr ""
+
+#: doc/classes/InputEventMouseMotion.xml
+msgid ""
+"Contains mouse and pen motion information. Supports relative, absolute "
+"positions and speed. See [method Node._input].\n"
+"[b]Note:[/b] By default, this event is only emitted once per frame rendered "
+"at most. If you need more precise input reporting, call [method Input."
+"set_use_accumulated_input] with [code]false[/code] to make events emitted as "
+"often as possible. If you use InputEventMouseMotion to draw lines, consider "
+"implementing [url=https://en.wikipedia.org/wiki/Bresenham"
+"%27s_line_algorithm]Bresenham's line algorithm[/url] as well to avoid "
+"visible gaps in lines if the user is moving the mouse quickly."
+msgstr ""
+
+#: doc/classes/InputEventMouseMotion.xml
+msgid ""
+"Represents the pressure the user puts on the pen. Ranges from [code]0.0[/"
+"code] to [code]1.0[/code]."
+msgstr ""
+
+#: doc/classes/InputEventMouseMotion.xml
+msgid ""
+"The mouse position relative to the previous position (position at the last "
+"frame).\n"
+"[b]Note:[/b] Since [InputEventMouseMotion] is only emitted when the mouse "
+"moves, the last event won't have a relative position of [code]Vector2(0, 0)[/"
+"code] when the user stops moving the mouse."
+msgstr ""
+
+#: doc/classes/InputEventMouseMotion.xml
+msgid "The mouse speed in pixels per second."
+msgstr ""
+
+#: doc/classes/InputEventMouseMotion.xml
+msgid ""
+"Represents the angles of tilt of the pen. Positive X-coordinate value "
+"indicates a tilt to the right. Positive Y-coordinate value indicates a tilt "
+"toward the user. Ranges from [code]-1.0[/code] to [code]1.0[/code] for both "
+"axes."
+msgstr ""
+
+#: doc/classes/InputEventScreenDrag.xml
+msgid ""
+"Input event type for screen drag events. Only available on mobile devices."
+msgstr ""
+
+#: doc/classes/InputEventScreenDrag.xml
+msgid "Contains screen drag information. See [method Node._input]."
+msgstr ""
+
+#: doc/classes/InputEventScreenDrag.xml
+msgid "The drag event index in the case of a multi-drag event."
+msgstr ""
+
+#: doc/classes/InputEventScreenDrag.xml
+msgid "The drag position."
+msgstr ""
+
+#: doc/classes/InputEventScreenDrag.xml
+msgid ""
+"The drag position relative to the previous position (position at the last "
+"frame)."
+msgstr ""
+
+#: doc/classes/InputEventScreenDrag.xml
+msgid "The drag speed."
+msgstr ""
+
+#: doc/classes/InputEventScreenTouch.xml
+msgid ""
+"Input event type for screen touch events.\n"
+"(only available on mobile devices)"
+msgstr ""
+
+#: doc/classes/InputEventScreenTouch.xml
+msgid ""
+"Stores multi-touch press/release information. Supports touch press, touch "
+"release and [member index] for multi-touch count and order."
+msgstr ""
+
+#: doc/classes/InputEventScreenTouch.xml
+msgid ""
+"The touch index in the case of a multi-touch event. One index = one finger."
+msgstr ""
+
+#: doc/classes/InputEventScreenTouch.xml
+msgid "The touch position."
+msgstr ""
+
+#: doc/classes/InputEventScreenTouch.xml
+msgid ""
+"If [code]true[/code], the touch's state is pressed. If [code]false[/code], "
+"the touch's state is released."
+msgstr ""
+
+#: doc/classes/InputEventWithModifiers.xml
+msgid "Base class for keys events with modifiers."
+msgstr ""
+
+#: doc/classes/InputEventWithModifiers.xml
+msgid ""
+"Contains keys events information with modifiers support like [code]Shift[/"
+"code] or [code]Alt[/code]. See [method Node._input]."
+msgstr ""
+
+#: doc/classes/InputEventWithModifiers.xml
+msgid "State of the [code]Alt[/code] modifier."
+msgstr ""
+
+#: doc/classes/InputEventWithModifiers.xml
+msgid "State of the [code]Command[/code] modifier."
+msgstr ""
+
+#: doc/classes/InputEventWithModifiers.xml
+msgid "State of the [code]Ctrl[/code] modifier."
+msgstr ""
+
+#: doc/classes/InputEventWithModifiers.xml
+msgid "State of the [code]Meta[/code] modifier."
+msgstr ""
+
+#: doc/classes/InputEventWithModifiers.xml
+msgid "State of the [code]Shift[/code] modifier."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid "Singleton that manages [InputEventAction]."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid ""
+"Manages all [InputEventAction] which can be created/modified from the "
+"project settings menu [b]Project > Project Settings > Input Map[/b] or in "
+"code with [method add_action] and [method action_add_event]. See [method "
+"Node._input]."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid "$DOCS_URL/tutorials/inputs/inputevent.html#inputmap"
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid ""
+"Adds an [InputEvent] to an action. This [InputEvent] will trigger the action."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid "Removes an [InputEvent] from an action."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid "Removes all events from an action."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid "Returns a deadzone value for the action."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid ""
+"Returns [code]true[/code] if the action has the given [InputEvent] "
+"associated with it."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid "Sets a deadzone value for the action."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid ""
+"Adds an empty action to the [InputMap] with a configurable [code]deadzone[/"
+"code].\n"
+"An [InputEvent] can then be added to this action with [method "
+"action_add_event]."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid "Removes an action from the [InputMap]."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid ""
+"Returns [code]true[/code] if the given event is part of an existing action. "
+"This method ignores keyboard modifiers if the given [InputEvent] is not "
+"pressed (for proper release detection). See [method action_has_event] if you "
+"don't want this behavior.\n"
+"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
+"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
+"direction for [InputEventJoypadMotion] events."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid "Returns an array of [InputEvent]s associated with a given action."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid "Returns an array of all actions in the [InputMap]."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid ""
+"Returns [code]true[/code] if the [InputMap] has a registered action with the "
+"given name."
+msgstr ""
+
+#: doc/classes/InputMap.xml
+msgid ""
+"Clears all [InputEventAction] in the [InputMap] and load it anew from "
+"[ProjectSettings]."
+msgstr ""
+
+#: doc/classes/InstancePlaceholder.xml
+msgid "Placeholder for the root [Node] of a [PackedScene]."
+msgstr ""
+
+#: doc/classes/InstancePlaceholder.xml
+msgid ""
+"Turning on the option [b]Load As Placeholder[/b] for an instanced scene in "
+"the editor causes it to be replaced by an InstancePlaceholder when running "
+"the game. This makes it possible to delay actually loading the scene until "
+"calling [method replace_by_instance]. This is useful to avoid loading large "
+"scenes all at once by loading parts of it selectively.\n"
+"The InstancePlaceholder does not have a transform. This causes any child "
+"nodes to be positioned relatively to the Viewport from point (0,0), rather "
+"than their parent as displayed in the editor. Replacing the placeholder with "
+"a scene with a transform will transform children relatively to their parent "
+"again."
+msgstr ""
+
+#: doc/classes/InstancePlaceholder.xml
+msgid ""
+"Not thread-safe. Use [method Object.call_deferred] if calling from a thread."
+msgstr ""
+
+#: doc/classes/InstancePlaceholder.xml
+msgid ""
+"Gets the path to the [PackedScene] resource file that is loaded by default "
+"when calling [method replace_by_instance]. Not thread-safe. Use [method "
+"Object.call_deferred] if calling from a thread."
+msgstr ""
+
+#: doc/classes/InstancePlaceholder.xml
+msgid ""
+"Replaces this placeholder by the scene handed as an argument, or the "
+"original scene if no argument is given. As for all resources, the scene is "
+"loaded only if it's not loaded already. By manually loading the scene "
+"beforehand, delays caused by this function can be avoided."
+msgstr ""
+
+#: doc/classes/int.xml
+msgid "Integer built-in type."
+msgstr ""
+
+#: doc/classes/int.xml
+msgid ""
+"Signed 64-bit integer type.\n"
+"It can take values in the interval [code][-2^63, 2^63 - 1][/code], i.e. "
+"[code][-9223372036854775808, 9223372036854775807][/code]. Exceeding those "
+"bounds will wrap around.\n"
+"[int] is a [Variant] type, and will thus be used when assigning an integer "
+"value to a [Variant]. It can also be enforced with the [code]: int[/code] "
+"type hint.\n"
+"[codeblock]\n"
+"var my_variant = 0 # int, value 0.\n"
+"my_variant += 4.2 # float, value 4.2.\n"
+"var my_int: int = 1 # int, value 1.\n"
+"my_int = 4.2 # int, value 4, the right value is implicitly cast to int.\n"
+"my_int = int(\"6.7\") # int, value 6, the String is explicitly cast with "
+"int.\n"
+"\n"
+"var max_int = 9223372036854775807\n"
+"print(max_int) # 9223372036854775807, OK.\n"
+"max_int += 1\n"
+"print(max_int) # -9223372036854775808, we overflowed and wrapped around.\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/int.xml
+msgid ""
+"Cast a [bool] value to an integer value, [code]int(true)[/code] will be "
+"equals to 1 and [code]int(false)[/code] will be equals to 0."
+msgstr ""
+
+#: doc/classes/int.xml
+msgid ""
+"Cast a float value to an integer value, this method simply removes the "
+"number fractions (i.e. rounds [code]from[/code] towards zero), so for "
+"example [code]int(2.7)[/code] will be equals to 2, [code]int(0.1)[/code] "
+"will be equals to 0 and [code]int(-2.7)[/code] will be equals to -2. This "
+"operation is also called truncation."
+msgstr ""
+
+#: doc/classes/int.xml
+msgid ""
+"Cast a [String] value to an integer value, this method is an integer parser "
+"from a string, so calling this method with an invalid integer string will "
+"return 0, a valid string will be something like [code]'1.7'[/code]. This "
+"method will ignore all non-number characters, so calling [code]int('1e3')[/"
+"code] will return 13."
+msgstr ""
+
+#: doc/classes/InterpolatedCamera.xml
+msgid "[i]Deprecated.[/i] Camera which moves toward another node."
+msgstr ""
+
+#: doc/classes/InterpolatedCamera.xml
+msgid ""
+"[i]Deprecated (will be removed in Godot 4.0).[/i] InterpolatedCamera is a "
+"[Camera] which smoothly moves to match a target node's position and "
+"rotation.\n"
+"If it is not [member enabled] or does not have a valid target set, "
+"InterpolatedCamera acts like a normal Camera."
+msgstr ""
+
+#: doc/classes/InterpolatedCamera.xml
+msgid "Sets the node to move toward and orient with."
+msgstr ""
+
+#: doc/classes/InterpolatedCamera.xml
+msgid ""
+"If [code]true[/code], and a target is set, the camera will move "
+"automatically."
+msgstr ""
+
+#: doc/classes/InterpolatedCamera.xml
+msgid ""
+"How quickly the camera moves toward its target. Higher values will result in "
+"tighter camera motion."
+msgstr ""
+
+#: doc/classes/InterpolatedCamera.xml
+msgid "The target's [NodePath]."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid "Internet protocol (IP) support functions such as DNS resolution."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"IP contains support functions for the Internet Protocol (IP). TCP/IP support "
+"is in different classes (see [StreamPeerTCP] and [TCP_Server]). IP provides "
+"DNS hostname resolution support, both blocking and threaded."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Removes all of a [code]hostname[/code]'s cached references. If no "
+"[code]hostname[/code] is given, all cached IP addresses are removed."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Removes a given item [code]id[/code] from the queue. This should be used to "
+"free a queue after it has completed to enable more queries to happen."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid "Returns all the user's current IPv4 and IPv6 addresses as an array."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Returns all network adapters as an array.\n"
+"Each adapter is a dictionary of the form:\n"
+"[codeblock]\n"
+"{\n"
+" \"index\": \"1\", # Interface index.\n"
+" \"name\": \"eth0\", # Interface name.\n"
+" \"friendly\": \"Ethernet One\", # A friendly name (might be empty).\n"
+" \"addresses\": [\"192.168.1.101\"], # An array of IP addresses "
+"associated to this interface.\n"
+"}\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Returns a queued hostname's IP address, given its queue [code]id[/code]. "
+"Returns an empty string on error or if resolution hasn't happened yet (see "
+"[method get_resolve_item_status])."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Return resolved addresses, or an empty array if an error happened or "
+"resolution didn't happen yet (see [method get_resolve_item_status])."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Returns a queued hostname's status as a [enum ResolverStatus] constant, "
+"given its queue [code]id[/code]."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type "
+"method). The address type returned depends on the [enum Type] constant given "
+"as [code]ip_type[/code]."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Resolves a given hostname in a blocking way. Addresses are returned as an "
+"[Array] of IPv4 or IPv6 depending on [code]ip_type[/code]."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Creates a queue item to resolve a hostname to an IPv4 or IPv6 address "
+"depending on the [enum Type] constant given as [code]ip_type[/code]. Returns "
+"the queue ID if successful, or [constant RESOLVER_INVALID_ID] on error."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid "DNS hostname resolver status: No status."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid "DNS hostname resolver status: Waiting."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid "DNS hostname resolver status: Done."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid "DNS hostname resolver status: Error."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Maximum number of concurrent DNS resolver queries allowed, [constant "
+"RESOLVER_INVALID_ID] is returned if exceeded."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid ""
+"Invalid ID constant. Returned if [constant RESOLVER_MAX_QUERIES] is exceeded."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid "Address type: None."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid "Address type: Internet protocol version 4 (IPv4)."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid "Address type: Internet protocol version 6 (IPv6)."
+msgstr ""
+
+#: doc/classes/IP.xml
+msgid "Address type: Any."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Control that provides a list of selectable items (and/or icons) in a single "
+"column, or optionally in multiple columns."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"This control provides a selectable list of items that may be in a single (or "
+"multiple columns) with option of text, icons, or both text and icon. "
+"Tooltips are supported and may be different for every item in the list.\n"
+"Selectable items in the list may be selected or deselected and multiple "
+"selection may be enabled. Selection with right mouse button may also be "
+"enabled to allow use of popup context menus. Items may also be \"activated\" "
+"by double-clicking them or by pressing Enter.\n"
+"Item text only supports single-line strings, newline characters (e.g. "
+"[code]\\n[/code]) in the string won't produce a newline. Text wrapping is "
+"enabled in [constant ICON_MODE_TOP] mode, but column's width is adjusted to "
+"fully fit its content by default. You need to set [member "
+"fixed_column_width] greater than zero to wrap the text."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Adds an item to the item list with no text, only an icon."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Adds an item to the item list with specified text. Specify an [code]icon[/"
+"code], or use [code]null[/code] as the [code]icon[/code] for a list item "
+"with no icon.\n"
+"If selectable is [code]true[/code], the list item will be selectable."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Removes all items from the list."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Ensure current selection is visible, adjusting the scroll position as "
+"necessary."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Returns the item index at the given [code]position[/code].\n"
+"When there is no item at that point, -1 will be returned if [code]exact[/"
+"code] is [code]true[/code], and the closest item index will be returned "
+"otherwise."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Returns the number of items currently in the list."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Returns the custom background color of the item specified by [code]idx[/"
+"code] index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Returns the custom foreground color of the item specified by [code]idx[/"
+"code] index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Returns the icon associated with the specified index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Returns a [Color] modulating item's icon at the specified index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Returns the region of item's icon used. The whole icon will be used if the "
+"region has no area."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Returns the metadata value of the specified index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Returns the text associated with the specified index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Returns the tooltip hint associated with the specified index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Returns an array with the indexes of the selected items."
+msgstr ""
+
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
+msgid ""
+"Returns the vertical scrollbar.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Returns [code]true[/code] if one or more items are selected."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Returns [code]true[/code] if the item at the specified index is disabled."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Returns [code]true[/code] if the item icon will be drawn transposed, i.e. "
+"the X and Y axes are swapped."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Returns [code]true[/code] if the item at the specified index is selectable."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Returns [code]true[/code] if the tooltip is enabled for specified item index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Returns [code]true[/code] if the item at the specified index is currently "
+"selected."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Moves item from index [code]from_idx[/code] to [code]to_idx[/code]."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Removes the item specified by [code]idx[/code] index from the list."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Select the item at the specified index.\n"
+"[b]Note:[/b] This method does not trigger the item selection signal."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Sets the background color of the item specified by [code]idx[/code] index to "
+"the specified [Color]."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Sets the foreground color of the item specified by [code]idx[/code] index to "
+"the specified [Color]."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Disables (or enables) the item at the specified index.\n"
+"Disabled items cannot be selected and do not trigger activation signals "
+"(when double-clicking or pressing Enter)."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Sets (or replaces) the icon's [Texture] associated with the specified index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Sets a modulating [Color] of the item associated with the specified index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Sets the region of item's icon used. The whole icon will be used if the "
+"region has no area."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Sets whether the item icon will be drawn transposed."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Sets a value (of any type) to be stored with the item associated with the "
+"specified index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Allows or disallows selection of the item associated with the specified "
+"index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Sets text of the item associated with the specified index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Sets the tooltip hint for the item associated with the specified index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Sets whether the tooltip hint is enabled for specified item index."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Sorts items in the list by their text."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Ensures the item associated with the specified index is not selected."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Ensures there are no items selected."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"If [code]true[/code], the currently selected item can be selected again."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "If [code]true[/code], right mouse button click can select items."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"If [code]true[/code], the control will automatically resize the height to "
+"fit its content."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"The width all columns will be adjusted to.\n"
+"A value of zero disables the adjustment, each item will have a width equal "
+"to the width of its content and the columns will have an uneven width."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"The size all icons will be adjusted to.\n"
+"If either X or Y component is not greater than zero, icon size won't be "
+"affected."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"The icon position, whether above or to the left of the text. See the [enum "
+"IconMode] constants."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"The scale of icon applied after [member fixed_icon_size] and transposing "
+"takes effect."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Maximum columns the list will have.\n"
+"If greater than zero, the content will be split among the specified "
+"columns.\n"
+"A value of zero means unlimited columns, i.e. all items will be put in the "
+"same row."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Maximum lines of text allowed in each item. Space will be reserved even when "
+"there is not enough lines of text to display.\n"
+"[b]Note:[/b] This property takes effect only when [member icon_mode] is "
+"[constant ICON_MODE_TOP]. To make the text wrap, [member fixed_column_width] "
+"should be greater than zero."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Whether all columns will have the same width.\n"
+"If [code]true[/code], the width is equal to the largest column width of all "
+"columns."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Allows single or multiple item selection. See the [enum SelectMode] "
+"constants."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Triggered when specified list item is activated via double-clicking or by "
+"pressing Enter."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Triggered when specified list item has been selected via right mouse "
+"clicking.\n"
+"The click position is also provided to allow appropriate popup of context "
+"menus at the correct location.\n"
+"[member allow_rmb_select] must be enabled."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Triggered when specified item has been selected.\n"
+"[member allow_reselect] must be enabled to reselect an item."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Triggered when a multiple selection is altered on a list allowing multiple "
+"selection."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Triggered when a left mouse click is issued within the rect of the list but "
+"on empty space."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Triggered when a right mouse click is issued within the rect of the list but "
+"on empty space.\n"
+"[member allow_rmb_select] must be enabled."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Icon is drawn above the text."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Icon is drawn to the left of the text."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Only allow selecting a single item."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "Allows selecting multiple items by holding Ctrl or Shift."
+msgstr ""
+
+#: doc/classes/ItemList.xml doc/classes/Tree.xml
+msgid "Default text [Color] of the item."
+msgstr ""
+
+#: doc/classes/ItemList.xml doc/classes/Tree.xml
+msgid "Text [Color] used when the item is selected."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"[Color] of the guideline. The guideline is a line drawn between each row of "
+"items."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "The horizontal spacing between items."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "The spacing between item's icon and text."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "The vertical spacing between each line of text."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "The vertical spacing between items."
+msgstr ""
+
+#: doc/classes/ItemList.xml doc/classes/Tree.xml
+msgid "[Font] of the item's text."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"Default [StyleBox] for the [ItemList], i.e. used when the control is not "
+"being focused."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "[StyleBox] used when the [ItemList] is being focused."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid "[StyleBox] used for the cursor, when the [ItemList] is being focused."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"[StyleBox] used for the cursor, when the [ItemList] is not being focused."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"[StyleBox] for the selected items, used when the [ItemList] is not being "
+"focused."
+msgstr ""
+
+#: doc/classes/ItemList.xml
+msgid ""
+"[StyleBox] for the selected items, used when the [ItemList] is being focused."
+msgstr ""
+
+#: doc/classes/JavaScript.xml
+msgid ""
+"Singleton that connects the engine with the browser's JavaScript context in "
+"HTML5 export."
+msgstr ""
+
+#: doc/classes/JavaScript.xml
+msgid ""
+"The JavaScript singleton is implemented only in the HTML5 export. It's used "
+"to access the browser's JavaScript context. This allows interaction with "
+"embedding pages or calling third-party JavaScript APIs.\n"
+"[b]Note:[/b] This singleton can be disabled at build-time to improve "
+"security. By default, the JavaScript singleton is enabled. Official export "
+"templates also have the JavaScript singleton enabled. See [url=$DOCS_URL/"
+"development/compiling/compiling_for_web.html]Compiling for the Web[/url] in "
+"the documentation for more information."
+msgstr ""
+
+#: doc/classes/JavaScript.xml
+msgid ""
+"$DOCS_URL/tutorials/export/exporting_for_web.html#calling-javascript-from-"
+"script"
+msgstr ""
+
+#: doc/classes/JavaScript.xml
+msgid ""
+"Creates a reference to a script function that can be used as a callback by "
+"JavaScript. The reference must be kept until the callback happens, or it "
+"won't be called at all. See [JavaScriptObject] for usage."
+msgstr ""
+
+#: doc/classes/JavaScript.xml
+msgid ""
+"Creates a new JavaScript object using the [code]new[/code] constructor. The "
+"[code]object[/code] must a valid property of the JavaScript [code]window[/"
+"code]. See [JavaScriptObject] for usage."
+msgstr ""
+
+#: doc/classes/JavaScript.xml
+msgid ""
+"Prompts the user to download a file containing the specified [code]buffer[/"
+"code]. The file will have the given [code]name[/code] and [code]mime[/code] "
+"type.\n"
+"[b]Note:[/b] The browser may override the [url=https://en.wikipedia.org/wiki/"
+"Media_type]MIME type[/url] provided based on the file [code]name[/code]'s "
+"extension.\n"
+"[b]Note:[/b] Browsers might block the download if [method download_buffer] "
+"is not being called from a user interaction (e.g. button click).\n"
+"[b]Note:[/b] Browsers might ask the user for permission or block the "
+"download if multiple download requests are made in a quick succession."
+msgstr ""
+
+#: doc/classes/JavaScript.xml
+msgid ""
+"Execute the string [code]code[/code] as JavaScript code within the browser "
+"window. This is a call to the actual global JavaScript function [code]eval()"
+"[/code].\n"
+"If [code]use_global_execution_context[/code] is [code]true[/code], the code "
+"will be evaluated in the global execution context. Otherwise, it is "
+"evaluated in the execution context of a function within the engine's runtime "
+"environment."
+msgstr ""
+
+#: doc/classes/JavaScript.xml
+msgid ""
+"Returns an interface to a JavaScript object that can be used by scripts. The "
+"[code]interface[/code] must be a valid property of the JavaScript "
+"[code]window[/code]. The callback must accept a single [Array] argument, "
+"which will contain the JavaScript [code]arguments[/code]. See "
+"[JavaScriptObject] for usage."
+msgstr ""
+
+#: doc/classes/JavaScriptObject.xml
+msgid "A wrapper class for native JavaScript objects."
+msgstr ""
+
+#: doc/classes/JavaScriptObject.xml
+msgid ""
+"JavaScriptObject is used to interact with JavaScript objects retrieved or "
+"created via [method JavaScript.get_interface], [method JavaScript."
+"create_object], or [method JavaScript.create_callback].\n"
+"Example:\n"
+"[codeblock]\n"
+"extends Node\n"
+"\n"
+"var _my_js_callback = JavaScript.create_callback(self, \"myCallback\") # "
+"This reference must be kept\n"
+"var console = JavaScript.get_interface(\"console\")\n"
+"\n"
+"func _init():\n"
+" var buf = JavaScript.create_object(\"ArrayBuffer\", 10) # new "
+"ArrayBuffer(10)\n"
+" print(buf) # prints [JavaScriptObject:OBJECT_ID]\n"
+" var uint8arr = JavaScript.create_object(\"Uint8Array\", buf) # new "
+"Uint8Array(buf)\n"
+" uint8arr[1] = 255\n"
+" prints(uint8arr[1], uint8arr.byteLength) # prints 255 10\n"
+" console.log(uint8arr) # prints in browser console \"Uint8Array(10) [ 0, "
+"255, 0, 0, 0, 0, 0, 0, 0, 0 ]\"\n"
+"\n"
+" # Equivalent of JavaScript: Array.from(uint8arr).forEach(myCallback)\n"
+" JavaScript.get_interface(\"Array\").from(uint8arr)."
+"forEach(_my_js_callback)\n"
+"\n"
+"func myCallback(args):\n"
+" # Will be called with the parameters passed to the \"forEach\" callback\n"
+" # [0, 0, [JavaScriptObject:1173]]\n"
+" # [255, 1, [JavaScriptObject:1173]]\n"
+" # ...\n"
+" # [0, 9, [JavaScriptObject:1180]]\n"
+" print(args)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Only available in the HTML5 platform."
+msgstr ""
+
+#: doc/classes/JNISingleton.xml
+msgid ""
+"Singleton that connects the engine with Android plugins to interface with "
+"native Android code."
+msgstr ""
+
+#: doc/classes/JNISingleton.xml
+msgid ""
+"The JNISingleton is implemented only in the Android export. It's used to "
+"call methods and connect signals from an Android plugin written in Java or "
+"Kotlin. Methods and signals can be called and connected to the JNISingleton "
+"as if it is a Node. See [url=https://en.wikipedia.org/wiki/"
+"Java_Native_Interface]Java Native Interface - Wikipedia[/url] for more "
+"information."
+msgstr ""
+
+#: doc/classes/JNISingleton.xml
+msgid "$DOCS_URL/tutorials/platform/android/android_plugin.html"
+msgstr ""
+
+#: doc/classes/Joint.xml
+msgid "Base class for all 3D joints."
+msgstr ""
+
+#: doc/classes/Joint.xml
+msgid ""
+"Joints are used to bind together two physics bodies. They have a solver "
+"priority and can define if the bodies of the two attached nodes should be "
+"able to collide with each other."
+msgstr ""
+
+#: doc/classes/Joint.xml doc/classes/RigidBody.xml doc/classes/VehicleBody.xml
+#: doc/classes/VehicleWheel.xml
+msgid "https://godotengine.org/asset-library/asset/524"
+msgstr ""
+
+#: doc/classes/Joint.xml
+msgid ""
+"If [code]true[/code], the two bodies of the nodes are not able to collide "
+"with each other."
+msgstr ""
+
+#: doc/classes/Joint.xml
+msgid "The node attached to the first side (A) of the joint."
+msgstr ""
+
+#: doc/classes/Joint.xml
+msgid "The node attached to the second side (B) of the joint."
+msgstr ""
+
+#: doc/classes/Joint.xml
+msgid ""
+"The priority used to define which solver is executed first for multiple "
+"joints. The lower the value, the higher the priority."
+msgstr ""
+
+#: doc/classes/Joint2D.xml
+msgid "Base node for all joint constraints in 2D physics."
+msgstr ""
+
+#: doc/classes/Joint2D.xml
+msgid ""
+"Base node for all joint constraints in 2D physics. Joints take 2 bodies and "
+"apply a custom constraint."
+msgstr ""
+
+#: doc/classes/Joint2D.xml
+msgid ""
+"When [member node_a] and [member node_b] move in different directions the "
+"[code]bias[/code] controls how fast the joint pulls them back to their "
+"original position. The lower the [code]bias[/code] the more the two bodies "
+"can pull on the joint."
+msgstr ""
+
+#: doc/classes/Joint2D.xml
+msgid ""
+"If [code]true[/code], [member node_a] and [member node_b] can not collide."
+msgstr ""
+
+#: doc/classes/Joint2D.xml
+msgid "The first body attached to the joint. Must derive from [PhysicsBody2D]."
+msgstr ""
+
+#: doc/classes/Joint2D.xml
+msgid ""
+"The second body attached to the joint. Must derive from [PhysicsBody2D]."
+msgstr ""
+
+#: doc/classes/JSON.xml
+msgid "Helper class for parsing JSON data."
+msgstr ""
+
+#: doc/classes/JSON.xml
+msgid ""
+"Helper class for parsing JSON data. For usage example and other important "
+"hints, see [JSONParseResult]."
+msgstr ""
+
+#: doc/classes/JSON.xml
+msgid ""
+"Parses a JSON-encoded string and returns a [JSONParseResult] containing the "
+"result."
+msgstr ""
+
+#: doc/classes/JSON.xml
+msgid ""
+"Converts a [Variant] var to JSON text and returns the result. Useful for "
+"serializing data to store or send over the network.\n"
+"[b]Note:[/b] The JSON specification does not define integer or float types, "
+"but only a [i]number[/i] type. Therefore, converting a Variant to JSON text "
+"will convert all numerical values to [float] types.\n"
+"Use [code]indent[/code] parameter to pretty print the output.\n"
+"[b]Example output:[/b]\n"
+"[codeblock]\n"
+"## JSON.print(my_dictionary)\n"
+"{\"name\":\"my_dictionary\",\"version\":\"1.0.0\",\"entities\":[{\"name\":"
+"\"entity_0\",\"value\":\"value_0\"},{\"name\":\"entity_1\",\"value\":"
+"\"value_1\"}]}\n"
+"\n"
+"## JSON.print(my_dictionary, \"\\t\")\n"
+"{\n"
+" \"name\": \"my_dictionary\",\n"
+" \"version\": \"1.0.0\",\n"
+" \"entities\": [\n"
+" {\n"
+" \"name\": \"entity_0\",\n"
+" \"value\": \"value_0\"\n"
+" },\n"
+" {\n"
+" \"name\": \"entity_1\",\n"
+" \"value\": \"value_1\"\n"
+" }\n"
+" ]\n"
+"}\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/JSONParseResult.xml
+msgid "Data class wrapper for decoded JSON."
+msgstr ""
+
+#: doc/classes/JSONParseResult.xml
+msgid ""
+"Returned by [method JSON.parse], [JSONParseResult] contains the decoded JSON "
+"or error information if the JSON source wasn't successfully parsed. You can "
+"check if the JSON source was successfully parsed with [code]if json_result."
+"error == OK[/code]."
+msgstr ""
+
+#: doc/classes/JSONParseResult.xml
+msgid ""
+"The error type if the JSON source was not successfully parsed. See the [enum "
+"Error] constants."
+msgstr ""
+
+#: doc/classes/JSONParseResult.xml
+msgid ""
+"The line number where the error occurred if the JSON source was not "
+"successfully parsed."
+msgstr ""
+
+#: doc/classes/JSONParseResult.xml
+msgid ""
+"The error message if the JSON source was not successfully parsed. See the "
+"[enum Error] constants."
+msgstr ""
+
+#: doc/classes/JSONParseResult.xml
+msgid ""
+"A [Variant] containing the parsed JSON. Use [method @GDScript.typeof] or the "
+"[code]is[/code] keyword to check if it is what you expect. For example, if "
+"the JSON source starts with curly braces ([code]{}[/code]), a [Dictionary] "
+"will be returned. If the JSON source starts with brackets ([code][][/code]), "
+"an [Array] will be returned.\n"
+"[b]Note:[/b] The JSON specification does not define integer or float types, "
+"but only a [i]number[/i] type. Therefore, parsing a JSON text will convert "
+"all numerical values to [float] types.\n"
+"[b]Note:[/b] JSON objects do not preserve key order like Godot dictionaries, "
+"thus, you should not rely on keys being in a certain order if a dictionary "
+"is constructed from JSON. In contrast, JSON arrays retain the order of their "
+"elements:\n"
+"[codeblock]\n"
+"var p = JSON.parse('[\"hello\", \"world\", \"!\"]')\n"
+"if typeof(p.result) == TYPE_ARRAY:\n"
+" print(p.result[0]) # Prints \"hello\"\n"
+"else:\n"
+" push_error(\"Unexpected results.\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/JSONRPC.xml
+msgid "A helper to handle dictionaries which look like JSONRPC documents."
+msgstr ""
+
+#: doc/classes/JSONRPC.xml
+msgid ""
+"[url=https://www.jsonrpc.org/]JSON-RPC[/url] is a standard which wraps a "
+"method call in a [JSON] object. The object has a particular structure and "
+"identifies which method is called, the parameters to that function, and "
+"carries an ID to keep track of responses. This class implements that "
+"standard on top of [Dictionary]; you will have to convert between a "
+"[Dictionary] and [JSON] with other functions."
+msgstr ""
+
+#: doc/classes/JSONRPC.xml
+msgid ""
+"Returns a dictionary in the form of a JSON-RPC notification. Notifications "
+"are one-shot messages which do not expect a response.\n"
+"- [code]method[/code]: Name of the method being called.\n"
+"- [code]params[/code]: An array or dictionary of parameters being passed to "
+"the method."
+msgstr ""
+
+#: doc/classes/JSONRPC.xml
+msgid ""
+"Returns a dictionary in the form of a JSON-RPC request. Requests are sent to "
+"a server with the expectation of a response. The ID field is used for the "
+"server to specify which exact request it is responding to.\n"
+"- [code]method[/code]: Name of the method being called.\n"
+"- [code]params[/code]: An array or dictionary of parameters being passed to "
+"the method.\n"
+"- [code]id[/code]: Uniquely identifies this request. The server is expected "
+"to send a response with the same ID."
+msgstr ""
+
+#: doc/classes/JSONRPC.xml
+msgid ""
+"When a server has received and processed a request, it is expected to send a "
+"response. If you did not want a response then you need to have sent a "
+"Notification instead.\n"
+"- [code]result[/code]: The return value of the function which was called.\n"
+"- [code]id[/code]: The ID of the request this response is targeted to."
+msgstr ""
+
+#: doc/classes/JSONRPC.xml
+msgid ""
+"Creates a response which indicates a previous reply has failed in some way.\n"
+"- [code]code[/code]: The error code corresponding to what kind of error this "
+"is. See the [enum ErrorCode] constants.\n"
+"- [code]message[/code]: A custom message about this error.\n"
+"- [code]id[/code]: The request this error is a response to."
+msgstr ""
+
+#: doc/classes/JSONRPC.xml
+msgid ""
+"Given a Dictionary which takes the form of a JSON-RPC request: unpack the "
+"request and run it. Methods are resolved by looking at the field called "
+"\"method\" and looking for an equivalently named function in the JSONRPC "
+"object. If one is found that method is called.\n"
+"To add new supported methods extend the JSONRPC class and call [method "
+"process_action] on your subclass.\n"
+"[code]action[/code]: The action to be run, as a Dictionary in the form of a "
+"JSON-RPC request or notification."
+msgstr ""
+
+#: doc/classes/JSONRPC.xml
+msgid ""
+"A method call was requested but no function of that name existed in the "
+"JSONRPC subclass."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid "Kinematic body 3D node."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Kinematic bodies are special types of bodies that are meant to be user-"
+"controlled. They are not affected by physics at all; to other types of "
+"bodies, such as a character or a rigid body, these are the same as a static "
+"body. However, they have two main uses:\n"
+"[b]Simulated motion:[/b] When these bodies are moved manually, either from "
+"code or from an [AnimationPlayer] (with [member AnimationPlayer."
+"playback_process_mode] set to \"physics\"), the physics will automatically "
+"compute an estimate of their linear and angular velocity. This makes them "
+"very useful for moving platforms or other AnimationPlayer-controlled objects "
+"(like a door, a bridge that opens, etc).\n"
+"[b]Kinematic characters:[/b] KinematicBody also has an API for moving "
+"objects (the [method move_and_collide] and [method move_and_slide] methods) "
+"while performing collision tests. This makes them really useful to implement "
+"characters that collide against a world, but don't require advanced physics."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "$DOCS_URL/tutorials/physics/kinematic_character_2d.html"
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Returns [code]true[/code] if the specified [code]axis[/code] is locked. See "
+"also [member move_lock_x], [member move_lock_y] and [member move_lock_z]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Returns the floor's collision angle at the last collision point according to "
+"[code]up_direction[/code], which is [code]Vector3.UP[/code] by default. This "
+"value is always positive and only valid after calling [method "
+"move_and_slide] and when [method is_on_floor] returns [code]true[/code]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Returns the surface normal of the floor at the last collision point. Only "
+"valid after calling [method move_and_slide] or [method "
+"move_and_slide_with_snap] and when [method is_on_floor] returns [code]true[/"
+"code]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Returns the linear velocity of the floor at the last collision point. Only "
+"valid after calling [method move_and_slide] or [method "
+"move_and_slide_with_snap] and when [method is_on_floor] returns [code]true[/"
+"code]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Returns a [KinematicCollision], which contains information about the latest "
+"collision that occurred during the last call to [method move_and_slide]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Returns a [KinematicCollision], which contains information about a collision "
+"that occurred during the last call to [method move_and_slide] or [method "
+"move_and_slide_with_snap]. Since the body can collide several times in a "
+"single call to [method move_and_slide], you must specify the index of the "
+"collision in the range 0 to ([method get_slide_count] - 1)."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Returns the number of times the body collided and changed direction during "
+"the last call to [method move_and_slide] or [method "
+"move_and_slide_with_snap]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Returns [code]true[/code] if the body collided with the ceiling on the last "
+"call of [method move_and_slide] or [method move_and_slide_with_snap]. "
+"Otherwise, returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Returns [code]true[/code] if the body collided with the floor on the last "
+"call of [method move_and_slide] or [method move_and_slide_with_snap]. "
+"Otherwise, returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Returns [code]true[/code] if the body collided with a wall on the last call "
+"of [method move_and_slide] or [method move_and_slide_with_snap]. Otherwise, "
+"returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Moves the body along the vector [code]rel_vec[/code]. The body will stop if "
+"it collides. Returns a [KinematicCollision], which contains information "
+"about the collision when stopped, or when touching another body along the "
+"motion.\n"
+"If [code]test_only[/code] is [code]true[/code], the body does not move but "
+"the would-be collision information is given."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Moves the body along a vector. If the body collides with another, it will "
+"slide along the other body rather than stop immediately. If the other body "
+"is a [KinematicBody] or [RigidBody], it will also be affected by the motion "
+"of the other body. You can use this to make moving and rotating platforms, "
+"or to make nodes push other nodes.\n"
+"This method should be used in [method Node._physics_process] (or in a method "
+"called by [method Node._physics_process]), as it uses the physics step's "
+"[code]delta[/code] value automatically in calculations. Otherwise, the "
+"simulation will run at an incorrect speed.\n"
+"[code]linear_velocity[/code] is the velocity vector (typically meters per "
+"second). Unlike in [method move_and_collide], you should [i]not[/i] multiply "
+"it by [code]delta[/code] — the physics engine handles applying the "
+"velocity.\n"
+"[code]up_direction[/code] is the up direction, used to determine what is a "
+"wall and what is a floor or a ceiling. If set to the default value of "
+"[code]Vector3(0, 0, 0)[/code], everything is considered a wall.\n"
+"If [code]stop_on_slope[/code] is [code]true[/code], body will not slide on "
+"slopes when you include gravity in [code]linear_velocity[/code] and the body "
+"is standing still.\n"
+"If the body collides, it will change direction a maximum of "
+"[code]max_slides[/code] times before it stops.\n"
+"[code]floor_max_angle[/code] is the maximum angle (in radians) where a slope "
+"is still considered a floor (or a ceiling), rather than a wall. The default "
+"value equals 45 degrees.\n"
+"If [code]infinite_inertia[/code] is [code]true[/code], body will be able to "
+"push [RigidBody] nodes, but it won't also detect any collisions with them. "
+"If [code]false[/code], it will interact with [RigidBody] nodes like with "
+"[StaticBody].\n"
+"Returns the [code]linear_velocity[/code] vector, rotated and/or scaled if a "
+"slide collision occurred. To get detailed information about collisions that "
+"occurred, use [method get_slide_collision].\n"
+"When the body touches a moving platform, the platform's velocity is "
+"automatically added to the body motion. If a collision occurs due to the "
+"platform's motion, it will always be first in the slide collisions."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Moves the body while keeping it attached to slopes. Similar to [method "
+"move_and_slide].\n"
+"As long as the [code]snap[/code] vector is in contact with the ground, the "
+"body will remain attached to the surface. This means you must disable snap "
+"in order to jump, for example. You can do this by setting [code]snap[/code] "
+"to [code](0, 0, 0)[/code] or by using [method move_and_slide] instead."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Locks or unlocks the specified [code]axis[/code] depending on the value of "
+"[code]lock[/code]. See also [member move_lock_x], [member move_lock_y] and "
+"[member move_lock_z]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Checks for collisions without moving the body. Virtually sets the node's "
+"position, scale and rotation to that of the given [Transform], then tries to "
+"move the body along the vector [code]rel_vec[/code]. Returns [code]true[/"
+"code] if a collision would stop the body from moving along the whole path.\n"
+"Use [method move_and_collide] instead for detecting collision with touching "
+"bodies."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid "Lock the body's X axis movement."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid "Lock the body's Y axis movement."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid "Lock the body's Z axis movement."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Extra margin used for collision recovery in motion functions (see [method "
+"move_and_collide], [method move_and_slide], [method "
+"move_and_slide_with_snap]).\n"
+"If the body is at least this close to another body, it will consider them to "
+"be colliding and will be pushed away before performing the actual motion.\n"
+"A higher value means it's more flexible for detecting collision, which helps "
+"with consistently detecting walls and floors.\n"
+"A lower value forces the collision algorithm to use more exact detection, so "
+"it can be used in cases that specifically require precision, e.g at very low "
+"scale to avoid visible jittering, or for stability with a stack of kinematic "
+"bodies."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"If [code]true[/code], the body's movement will be synchronized to the "
+"physics frame. This is useful when animating movement via [AnimationPlayer], "
+"for example on moving platforms. Do [b]not[/b] use together with [method "
+"move_and_slide] or [method move_and_collide] functions."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Lock the body's X axis movement. Deprecated alias for [member "
+"axis_lock_motion_x]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Lock the body's Y axis movement. Deprecated alias for [member "
+"axis_lock_motion_y]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml
+msgid ""
+"Lock the body's Z axis movement. Deprecated alias for [member "
+"axis_lock_motion_z]."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
+#: doc/classes/KinematicBody2D.xml
+msgid "Kinematic body 2D node."
+msgstr ""
+
+#: doc/classes/KinematicBody2D.xml
+msgid ""
+"Kinematic bodies are special types of bodies that are meant to be user-"
+"controlled. They are not affected by physics at all; to other types of "
+"bodies, such as a character or a rigid body, these are the same as a static "
+"body. However, they have two main uses:\n"
+"[b]Simulated motion:[/b] When these bodies are moved manually, either from "
+"code or from an [AnimationPlayer] (with [member AnimationPlayer."
+"playback_process_mode] set to \"physics\"), the physics will automatically "
+"compute an estimate of their linear and angular velocity. This makes them "
+"very useful for moving platforms or other AnimationPlayer-controlled objects "
+"(like a door, a bridge that opens, etc).\n"
+"[b]Kinematic characters:[/b] KinematicBody2D also has an API for moving "
+"objects (the [method move_and_collide] and [method move_and_slide] methods) "
+"while performing collision tests. This makes them really useful to implement "
+"characters that collide against a world, but don't require advanced physics."
+msgstr ""
+
+#: doc/classes/KinematicBody2D.xml
+msgid "$DOCS_URL/tutorials/physics/using_kinematic_body_2d.html"
+msgstr ""
+
+#: doc/classes/KinematicBody2D.xml
+msgid ""
+"Returns the floor's collision angle at the last collision point according to "
+"[code]up_direction[/code], which is [code]Vector2.UP[/code] by default. This "
+"value is always positive and only valid after calling [method "
+"move_and_slide] and when [method is_on_floor] returns [code]true[/code]."
+msgstr ""
+
+#: doc/classes/KinematicBody2D.xml
+msgid ""
+"Returns a [KinematicCollision2D], which contains information about the "
+"latest collision that occurred during the last call to [method "
+"move_and_slide]."
+msgstr ""
+
+#: doc/classes/KinematicBody2D.xml
+msgid ""
+"Returns a [KinematicCollision2D], which contains information about a "
+"collision that occurred during the last call to [method move_and_slide] or "
+"[method move_and_slide_with_snap]. Since the body can collide several times "
+"in a single call to [method move_and_slide], you must specify the index of "
+"the collision in the range 0 to ([method get_slide_count] - 1).\n"
+"[b]Example usage:[/b]\n"
+"[codeblock]\n"
+"for i in get_slide_count():\n"
+" var collision = get_slide_collision(i)\n"
+" print(\"Collided with: \", collision.collider.name)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/KinematicBody2D.xml
+msgid ""
+"Moves the body along the vector [code]rel_vec[/code]. The body will stop if "
+"it collides. Returns a [KinematicCollision2D], which contains information "
+"about the collision when stopped, or when touching another body along the "
+"motion.\n"
+"If [code]test_only[/code] is [code]true[/code], the body does not move but "
+"the would-be collision information is given."
+msgstr ""
+
+#: doc/classes/KinematicBody2D.xml
+msgid ""
+"Moves the body along a vector. If the body collides with another, it will "
+"slide along the other body rather than stop immediately. If the other body "
+"is a [KinematicBody2D] or [RigidBody2D], it will also be affected by the "
+"motion of the other body. You can use this to make moving and rotating "
+"platforms, or to make nodes push other nodes.\n"
+"This method should be used in [method Node._physics_process] (or in a method "
+"called by [method Node._physics_process]), as it uses the physics step's "
+"[code]delta[/code] value automatically in calculations. Otherwise, the "
+"simulation will run at an incorrect speed.\n"
+"[code]linear_velocity[/code] is the velocity vector in pixels per second. "
+"Unlike in [method move_and_collide], you should [i]not[/i] multiply it by "
+"[code]delta[/code] — the physics engine handles applying the velocity.\n"
+"[code]up_direction[/code] is the up direction, used to determine what is a "
+"wall and what is a floor or a ceiling. If set to the default value of "
+"[code]Vector2(0, 0)[/code], everything is considered a wall. This is useful "
+"for topdown games.\n"
+"If [code]stop_on_slope[/code] is [code]true[/code], body will not slide on "
+"slopes when you include gravity in [code]linear_velocity[/code] and the body "
+"is standing still.\n"
+"If the body collides, it will change direction a maximum of "
+"[code]max_slides[/code] times before it stops.\n"
+"[code]floor_max_angle[/code] is the maximum angle (in radians) where a slope "
+"is still considered a floor (or a ceiling), rather than a wall. The default "
+"value equals 45 degrees.\n"
+"If [code]infinite_inertia[/code] is [code]true[/code], body will be able to "
+"push [RigidBody2D] nodes, but it won't also detect any collisions with them. "
+"If [code]false[/code], it will interact with [RigidBody2D] nodes like with "
+"[StaticBody2D].\n"
+"Returns the [code]linear_velocity[/code] vector, rotated and/or scaled if a "
+"slide collision occurred. To get detailed information about collisions that "
+"occurred, use [method get_slide_collision].\n"
+"When the body touches a moving platform, the platform's velocity is "
+"automatically added to the body motion. If a collision occurs due to the "
+"platform's motion, it will always be first in the slide collisions."
+msgstr ""
+
+#: doc/classes/KinematicBody2D.xml
+msgid ""
+"Moves the body while keeping it attached to slopes. Similar to [method "
+"move_and_slide].\n"
+"As long as the [code]snap[/code] vector is in contact with the ground, the "
+"body will remain attached to the surface. This means you must disable snap "
+"in order to jump, for example. You can do this by setting [code]snap[/code] "
+"to [code](0, 0)[/code] or by using [method move_and_slide] instead."
+msgstr ""
+
+#: doc/classes/KinematicBody2D.xml
+msgid ""
+"Checks for collisions without moving the body. Virtually sets the node's "
+"position, scale and rotation to that of the given [Transform2D], then tries "
+"to move the body along the vector [code]rel_vec[/code]. Returns [code]true[/"
+"code] if a collision would stop the body from moving along the whole path.\n"
+"Use [method move_and_collide] instead for detecting collision with touching "
+"bodies."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml
+msgid "Collision data for [KinematicBody] collisions."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml
+msgid ""
+"Contains collision data for [KinematicBody] collisions. When a "
+"[KinematicBody] is moved using [method KinematicBody.move_and_collide], it "
+"stops if it detects a collision with another body. If a collision is "
+"detected, a KinematicCollision object is returned.\n"
+"This object contains information about the collision, including the "
+"colliding object, the remaining motion, and the collision position. This "
+"information can be used to calculate a collision response."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml
+msgid ""
+"The collision angle according to [code]up_direction[/code], which is "
+"[code]Vector3.UP[/code] by default. This value is always positive."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml doc/classes/KinematicCollision2D.xml
+msgid "The colliding body."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml doc/classes/KinematicCollision2D.xml
+msgid ""
+"The colliding body's unique instance ID. See [method Object.get_instance_id]."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml doc/classes/KinematicCollision2D.xml
+msgid "The colliding body's metadata. See [Object]."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml
+msgid "The colliding body's [RID] used by the [PhysicsServer]."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml doc/classes/KinematicCollision2D.xml
+msgid "The colliding body's shape."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml
+msgid "The colliding shape's index. See [CollisionObject]."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml doc/classes/KinematicCollision2D.xml
+msgid "The colliding object's velocity."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml doc/classes/KinematicCollision2D.xml
+msgid "The moving object's colliding shape."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml doc/classes/KinematicCollision2D.xml
+msgid "The colliding body's shape's normal at the point of collision."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml doc/classes/KinematicCollision2D.xml
+msgid "The point of collision, in global coordinates."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml doc/classes/KinematicCollision2D.xml
+msgid "The moving object's remaining movement vector."
+msgstr ""
+
+#: doc/classes/KinematicCollision.xml doc/classes/KinematicCollision2D.xml
+msgid "The distance the moving object traveled before collision."
+msgstr ""
+
+#: doc/classes/KinematicCollision2D.xml
+msgid "Collision data for [KinematicBody2D] collisions."
+msgstr ""
+
+#: doc/classes/KinematicCollision2D.xml
+msgid ""
+"Contains collision data for [KinematicBody2D] collisions. When a "
+"[KinematicBody2D] is moved using [method KinematicBody2D.move_and_collide], "
+"it stops if it detects a collision with another body. If a collision is "
+"detected, a KinematicCollision2D object is returned.\n"
+"This object contains information about the collision, including the "
+"colliding object, the remaining motion, and the collision position. This "
+"information can be used to calculate a collision response."
+msgstr ""
+
+#: doc/classes/KinematicCollision2D.xml
+msgid ""
+"The collision angle according to [code]up_direction[/code], which is "
+"[code]Vector2.UP[/code] by default. This value is always positive."
+msgstr ""
+
+#: doc/classes/KinematicCollision2D.xml
+msgid "The colliding body's [RID] used by the [Physics2DServer]."
+msgstr ""
+
+#: doc/classes/KinematicCollision2D.xml
+msgid "The colliding shape's index. See [CollisionObject2D]."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"Displays plain text in a line or wrapped inside a rectangle. For formatted "
+"text, use [RichTextLabel]."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"Label displays plain text on the screen. It gives you control over the "
+"horizontal and vertical alignment and can wrap the text inside the node's "
+"bounding rectangle. It doesn't support bold, italics, or other formatting. "
+"For that, use [RichTextLabel] instead.\n"
+"[b]Note:[/b] Contrarily to most other [Control]s, Label's [member Control."
+"mouse_filter] defaults to [constant Control.MOUSE_FILTER_IGNORE] (i.e. it "
+"doesn't react to mouse input events). This implies that a label won't "
+"display any configured [member Control.hint_tooltip], unless you change its "
+"mouse filter.\n"
+"[b]Note:[/b] Unicode characters after [code]0xffff[/code] (such as most "
+"emoji) are [i]not[/i] supported on Windows. They will display as unknown "
+"characters instead. This will be resolved in Godot 4.0."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Returns the amount of lines of text the Label has."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Returns the font size in pixels."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"Returns the total number of printable characters in the text (excluding "
+"spaces and newlines)."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"Returns the number of lines shown. Useful if the [Label]'s height cannot "
+"currently display all lines."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"Controls the text's horizontal align. Supports left, center, right, and "
+"fill, or justify. Set it to one of the [enum Align] constants."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"If [code]true[/code], wraps the text inside the node's bounding rectangle. "
+"If you resize the node, it will change its height automatically to show all "
+"the text."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"If [code]true[/code], the Label only shows the text that fits inside its "
+"bounding rectangle and will clip text horizontally."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"The node ignores the first [code]lines_skipped[/code] lines before it starts "
+"to display text."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Limits the lines of text the node shows on screen."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"Limits the amount of visible characters. If you set [code]percent_visible[/"
+"code] to 0.5, only up to half of the text's characters will display on "
+"screen. Useful to animate the text in a dialog box."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "The text to display on screen."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "If [code]true[/code], all the text displays as UPPERCASE."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"Controls the text's vertical align. Supports top, center, bottom, and fill. "
+"Set it to one of the [enum VAlign] constants."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Restricts the number of characters to display. Set to -1 to disable."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Align rows to the left (default)."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Align rows centered."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Align rows to the right."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Expand row whitespaces to fit the width."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Align the whole text to the top."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Align the whole text to the center."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Align the whole text to the bottom."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Align the whole text by spreading the rows."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Default text [Color] of the [Label]."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "[Color] of the text's shadow effect."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "The tint of [Font]'s outline. See [member DynamicFont.outline_color]."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Vertical space between lines in multiline [Label]."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid ""
+"Boolean value. If set to 1 ([code]true[/code]), the shadow will be displayed "
+"around the whole text as an outline."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "The horizontal offset of the text's shadow."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "The vertical offset of the text's shadow."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "[Font] used for the [Label]'s text."
+msgstr ""
+
+#: doc/classes/Label.xml
+msgid "Background [StyleBox] for the [Label]."
+msgstr ""
+
+#: doc/classes/LargeTexture.xml
+msgid ""
+"[i]Deprecated.[/i] A [Texture] capable of storing many smaller textures with "
+"offsets."
+msgstr ""
+
+#: doc/classes/LargeTexture.xml
+msgid ""
+"[i]Deprecated (will be removed in Godot 4.0).[/i] A [Texture] capable of "
+"storing many smaller textures with offsets.\n"
+"You can dynamically add pieces ([Texture]s) to this [LargeTexture] using "
+"different offsets."
+msgstr ""
+
+#: doc/classes/LargeTexture.xml
+msgid ""
+"Adds [code]texture[/code] to this [LargeTexture], starting on offset "
+"[code]ofs[/code]."
+msgstr ""
+
+#: doc/classes/LargeTexture.xml
+msgid "Clears the [LargeTexture]."
+msgstr ""
+
+#: doc/classes/LargeTexture.xml
+msgid "Returns the number of pieces currently in this [LargeTexture]."
+msgstr ""
+
+#: doc/classes/LargeTexture.xml
+msgid "Returns the offset of the piece with the index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/LargeTexture.xml
+msgid "Returns the [Texture] of the piece with the index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/LargeTexture.xml
+msgid ""
+"Sets the offset of the piece with the index [code]idx[/code] to [code]ofs[/"
+"code]."
+msgstr ""
+
+#: doc/classes/LargeTexture.xml
+msgid ""
+"Sets the [Texture] of the piece with index [code]idx[/code] to "
+"[code]texture[/code]."
+msgstr ""
+
+#: doc/classes/LargeTexture.xml
+msgid "Sets the size of this [LargeTexture]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Provides a base class for different kinds of light nodes."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Light is the [i]abstract[/i] base class for light nodes. As it can't be "
+"instanced, it shouldn't be used directly. Other types of light nodes inherit "
+"from it. Light contains the common variables and parameters used for "
+"lighting."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Returns the value of the specified [enum Light.Param] parameter."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Sets the value of the specified [enum Light.Param] parameter."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"If [code]true[/code], the light only appears in the editor and will not be "
+"visible at runtime."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "The light's bake mode. See [enum BakeMode]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"The light's color. An [i]overbright[/i] color can be used to achieve a "
+"result equivalent to increasing the light's [member light_energy]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "The light will affect objects in the selected layers."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"The light's strength multiplier (this is not a physical unit). For "
+"[OmniLight] and [SpotLight], changing this value will only change the light "
+"color's intensity, not the light's radius."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Secondary multiplier used with indirect light (light bounces). This works on "
+"both [BakedLightmap] and [GIProbe]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"If [code]true[/code], the light's effect is reversed, darkening areas and "
+"casting bright shadows."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"The size of the light in Godot units. Only considered in baked lightmaps and "
+"only if [member light_bake_mode] is set to [constant BAKE_ALL]. Increasing "
+"this value will make the shadows appear blurrier. This can be used to "
+"simulate area lights to an extent."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"The intensity of the specular blob in objects affected by the light. At "
+"[code]0[/code], the light becomes a pure diffuse light. When not baking "
+"emission, this can be used to avoid unrealistic reflections when placing "
+"lights above an emissive surface."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Used to adjust shadow appearance. Too small a value results in self-"
+"shadowing (\"shadow acne\"), while too large a value causes shadows to "
+"separate from casters (\"peter-panning\"). Adjust as needed."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "The color of shadows cast by this light."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Attempts to reduce [member shadow_bias] gap."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "If [code]true[/code], the light will cast shadows."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"If [code]true[/code], reverses the backface culling of the mesh. This can be "
+"useful when you have a flat mesh that has a light behind it. If you need to "
+"cast a shadow on both sides of the mesh, set the mesh to use double-sided "
+"shadows with [constant GeometryInstance.SHADOW_CASTING_SETTING_DOUBLE_SIDED]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Constant for accessing [member light_energy]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Constant for accessing [member light_indirect_energy]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Constant for accessing [member light_size]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Constant for accessing [member light_specular]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Constant for accessing [member OmniLight.omni_range] or [member SpotLight."
+"spot_range]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Constant for accessing [member OmniLight.omni_attenuation] or [member "
+"SpotLight.spot_attenuation]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Constant for accessing [member SpotLight.spot_angle]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Constant for accessing [member SpotLight.spot_angle_attenuation]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Constant for accessing [member shadow_contact]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Constant for accessing [member DirectionalLight."
+"directional_shadow_max_distance]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Constant for accessing [member DirectionalLight.directional_shadow_split_1]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Constant for accessing [member DirectionalLight.directional_shadow_split_2]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Constant for accessing [member DirectionalLight.directional_shadow_split_3]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Constant for accessing [member DirectionalLight."
+"directional_shadow_normal_bias]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Constant for accessing [member shadow_bias]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Constant for accessing [member DirectionalLight."
+"directional_shadow_bias_split_scale]."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Light is ignored when baking.\n"
+"[b]Note:[/b] Hiding a light does [i]not[/i] affect baking."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid "Only indirect lighting will be baked (default)."
+msgstr ""
+
+#: doc/classes/Light.xml
+msgid ""
+"Both direct and indirect light will be baked.\n"
+"[b]Note:[/b] You should hide the light if you don't want it to appear twice "
+"(dynamic and baked)."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "Casts light in a 2D environment."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Casts light in a 2D environment. Light is defined by a (usually grayscale) "
+"texture, a color, an energy value, a mode (see constants), and various other "
+"parameters (range and shadows-related).\n"
+"[b]Note:[/b] Light2D can also be used as a mask."
+msgstr ""
+
+#: doc/classes/Light2D.xml doc/classes/LightOccluder2D.xml
+msgid "$DOCS_URL/tutorials/2d/2d_lights_and_shadows.html"
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "The Light2D's [Color]."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "If [code]true[/code], Light2D will only appear when editing the scene."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "If [code]true[/code], Light2D will emit light."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"The Light2D's energy value. The larger the value, the stronger the light."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "The Light2D's mode. See [enum Mode] constants for values."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "The offset of the Light2D's [code]texture[/code]."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "The height of the Light2D. Used with 2D normal mapping."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"The layer mask. Only objects with a matching mask will be affected by the "
+"Light2D."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "Maximum layer value of objects that are affected by the Light2D."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "Minimum layer value of objects that are affected by the Light2D."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Maximum [code]z[/code] value of objects that are affected by the Light2D."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Minimum [code]z[/code] value of objects that are affected by the Light2D."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "Shadow buffer size."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "[Color] of shadows cast by the Light2D."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "If [code]true[/code], the Light2D will cast shadows."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "Shadow filter type. See [enum ShadowFilter] for possible values."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "Smoothing value for shadows."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "Smooth shadow gradient length."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"The shadow mask. Used with [LightOccluder2D] to cast shadows. Only occluders "
+"with a matching light mask will cast shadows."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "[Texture] used for the Light2D's appearance."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "The [code]texture[/code]'s scale factor."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Adds the value of pixels corresponding to the Light2D to the values of "
+"pixels under it. This is the common behavior of a light."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Subtracts the value of pixels corresponding to the Light2D to the values of "
+"pixels under it, resulting in inversed light effect."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Mix the value of pixels corresponding to the Light2D to the values of pixels "
+"under it by linear interpolation."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"The light texture of the Light2D is used as a mask, hiding or revealing "
+"parts of the screen underneath depending on the value of each pixel of the "
+"light (mask) texture."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid "No filter applies to the shadow map. See [member shadow_filter]."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Percentage closer filtering (3 samples) applies to the shadow map. See "
+"[member shadow_filter]."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Percentage closer filtering (5 samples) applies to the shadow map. See "
+"[member shadow_filter]."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Percentage closer filtering (7 samples) applies to the shadow map. See "
+"[member shadow_filter]."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Percentage closer filtering (9 samples) applies to the shadow map. See "
+"[member shadow_filter]."
+msgstr ""
+
+#: doc/classes/Light2D.xml
+msgid ""
+"Percentage closer filtering (13 samples) applies to the shadow map. See "
+"[member shadow_filter]."
+msgstr ""
+
+#: doc/classes/LightOccluder2D.xml
+msgid "Occludes light cast by a Light2D, casting shadows."
+msgstr ""
+
+#: doc/classes/LightOccluder2D.xml
+msgid ""
+"Occludes light cast by a Light2D, casting shadows. The LightOccluder2D must "
+"be provided with an [OccluderPolygon2D] in order for the shadow to be "
+"computed."
+msgstr ""
+
+#: doc/classes/LightOccluder2D.xml
+msgid ""
+"The LightOccluder2D's light mask. The LightOccluder2D will cast shadows only "
+"from Light2D(s) that have the same light mask(s)."
+msgstr ""
+
+#: doc/classes/LightOccluder2D.xml
+msgid "The [OccluderPolygon2D] used to compute the shadow."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "A 2D line."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"A line through several points in 2D space.\n"
+"[b]Note:[/b] By default, Godot can only draw up to 4,096 polygon points at a "
+"time. To increase this limit, open the Project Settings and increase [member "
+"ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb] and "
+"[member ProjectSettings.rendering/limits/buffers/"
+"canvas_polygon_index_buffer_size_kb]."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"Adds a point at the [code]position[/code]. Appends the point at the end of "
+"the line.\n"
+"If [code]at_position[/code] is given, the point is inserted before the point "
+"number [code]at_position[/code], moving that point (and every point after) "
+"after the inserted point. If [code]at_position[/code] is not given, or is an "
+"illegal value ([code]at_position < 0[/code] or [code]at_position >= [method "
+"get_point_count][/code]), the point will be appended at the end of the point "
+"list."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "Removes all points from the line."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "Returns the Line2D's amount of points."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "Returns point [code]i[/code]'s position."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "Removes the point at index [code]i[/code] from the line."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"Overwrites the position in point [code]i[/code] with the supplied "
+"[code]position[/code]."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"If [code]true[/code], the line's border will be anti-aliased.\n"
+"[b]Note:[/b] Line2D is not accelerated by batching when being anti-aliased."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"Controls the style of the line's first point. Use [enum LineCapMode] "
+"constants."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "The line's color. Will not be used if a gradient is set."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"Controls the style of the line's last point. Use [enum LineCapMode] "
+"constants."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"The gradient is drawn through the whole line from start to finish. The "
+"default color will not be used if a gradient is set."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "The style for the points between the start and the end."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"The points that form the lines. The line is drawn between every point set in "
+"this array. Points are interpreted as local vectors."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"The smoothness of the rounded joints and caps. This is only used if a cap or "
+"joint is set as round."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"The direction difference in radians between vector points. This value is "
+"only used if [member joint_mode] is set to [constant LINE_JOINT_SHARP]."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"The texture used for the line's texture. Uses [code]texture_mode[/code] for "
+"drawing style."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"The style to render the [code]texture[/code] on the line. Use [enum "
+"LineTextureMode] constants."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "The line's width."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"The line's width varies with the curve. The original width is simply "
+"multiply by the value of the Curve."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"The line's joints will be pointy. If [code]sharp_limit[/code] is greater "
+"than the rotation of a joint, it becomes a bevel joint instead."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "The line's joints will be bevelled/chamfered."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "The line's joints will be rounded."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "Don't draw a line cap."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "Draws the line cap as a box."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid "Draws the line cap as a circle."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"Takes the left pixels of the texture and renders it over the whole line."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"Tiles the texture over the line. The texture must be imported with "
+"[b]Repeat[/b] enabled for it to work properly."
+msgstr ""
+
+#: doc/classes/Line2D.xml
+msgid ""
+"Stretches the texture across the line. Import the texture with [b]Repeat[/b] "
+"disabled for best results."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Control that provides single-line string editing."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"LineEdit provides a single-line string editor, used for text fields.\n"
+"It features many built-in shortcuts which will always be available "
+"([code]Ctrl[/code] here maps to [code]Command[/code] on macOS):\n"
+"- Ctrl + C: Copy\n"
+"- Ctrl + X: Cut\n"
+"- Ctrl + V or Ctrl + Y: Paste/\"yank\"\n"
+"- Ctrl + Z: Undo\n"
+"- Ctrl + Shift + Z: Redo\n"
+"- Ctrl + U: Delete text from the cursor position to the beginning of the "
+"line\n"
+"- Ctrl + K: Delete text from the cursor position to the end of the line\n"
+"- Ctrl + A: Select all text\n"
+"- Up/Down arrow: Move the cursor to the beginning/end of the line\n"
+"On macOS, some extra keyboard shortcuts are available:\n"
+"- Ctrl + F: Like the right arrow key, move the cursor one character right\n"
+"- Ctrl + B: Like the left arrow key, move the cursor one character left\n"
+"- Ctrl + P: Like the up arrow key, move the cursor to the previous line\n"
+"- Ctrl + N: Like the down arrow key, move the cursor to the next line\n"
+"- Ctrl + D: Like the Delete key, delete the character on the right side of "
+"cursor\n"
+"- Ctrl + H: Like the Backspace key, delete the character on the left side of "
+"the cursor\n"
+"- Command + Left arrow: Like the Home key, move the cursor to the beginning "
+"of the line\n"
+"- Command + Right arrow: Like the End key, move the cursor to the end of the "
+"line"
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Adds [code]text[/code] after the cursor. If the resulting value is longer "
+"than [member max_length], nothing happens."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Erases the [LineEdit]'s [member text]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Deletes one character at the cursor's current position (equivalent to "
+"pressing the [code]Delete[/code] key)."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Deletes a section of the [member text] going from position "
+"[code]from_column[/code] to [code]to_column[/code]. Both parameters should "
+"be within the text's length."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Clears the current selection."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Returns the [PopupMenu] of this [LineEdit]. By default, this menu is "
+"displayed when right-clicking on the [LineEdit].\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Returns the scroll offset due to [member caret_position], as a number of "
+"characters."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Executes a given action as defined in the [enum MenuItems] enum."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Selects characters inside [LineEdit] between [code]from[/code] and [code]to[/"
+"code]. By default, [code]from[/code] is at the beginning and [code]to[/code] "
+"at the end.\n"
+"[codeblock]\n"
+"text = \"Welcome\"\n"
+"select() # Will select \"Welcome\".\n"
+"select(4) # Will select \"ome\".\n"
+"select(2, 5) # Will select \"lco\".\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Selects the whole [String]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Text alignment as defined in the [enum Align] enum."
+msgstr ""
+
+#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
+msgid "If [code]true[/code], the caret (visual cursor) blinks."
+msgstr ""
+
+#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
+msgid "Duration (in seconds) of a caret's blinking cycle."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"The cursor's position inside the [LineEdit]. When set, the text may scroll "
+"to accommodate it."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"If [code]true[/code], the [LineEdit] will show a clear button if [code]text[/"
+"code] is not empty, which can be used to clear the text quickly."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "If [code]true[/code], the context menu will appear when right-clicked."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"If [code]false[/code], existing text cannot be modified and new text cannot "
+"be added."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"If [code]true[/code], the [LineEdit] width will increase to stay longer than "
+"the [member text]. It will [b]not[/b] compress if the [member text] is "
+"shortened."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Maximum amount of characters that can be entered inside the [LineEdit]. If "
+"[code]0[/code], there is no limit.\n"
+"When a limit is defined, characters that would exceed [member max_length] "
+"are truncated. This happens both for existing [member text] contents when "
+"setting the max length, or for new text inserted in the [LineEdit], "
+"including pasting. If any input text is truncated, the [signal "
+"text_change_rejected] signal is emitted with the truncated substring as "
+"parameter.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"text = \"Hello world\"\n"
+"max_length = 5\n"
+"# `text` becomes \"Hello\".\n"
+"max_length = 10\n"
+"text += \" goodbye\"\n"
+"# `text` becomes \"Hello good\".\n"
+"# `text_change_rejected` is emitted with \"bye\" as parameter.\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Opacity of the [member placeholder_text]. From [code]0[/code] to [code]1[/"
+"code]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Text shown when the [LineEdit] is empty. It is [b]not[/b] the [LineEdit]'s "
+"default value (see [member text])."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Sets the icon that will appear in the right end of the [LineEdit] if there's "
+"no [member text], or always, if [member clear_button_enabled] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"If [code]true[/code], every character is replaced with the secret character "
+"(see [member secret_character])."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"The character to use to mask secret input (defaults to \"*\"). Only a single "
+"character can be used as the secret character."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"If [code]false[/code], it's impossible to select the text using mouse nor "
+"keyboard."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "If [code]false[/code], using shortcuts will be disabled."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"String value of the [LineEdit].\n"
+"[b]Note:[/b] Changing text using this property won't emit the [signal "
+"text_changed] signal."
+msgstr ""
+
+#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], the native virtual keyboard is shown when focused on "
+"platforms that support it."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Emitted when appending text that overflows the [member max_length]. The "
+"appended text is truncated to fit [member max_length], and the part that "
+"couldn't fit is passed as the [code]rejected_substring[/code] argument."
+msgstr ""
+
+#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
+msgid "Emitted when the text changes."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Emitted when the user presses [constant KEY_ENTER] on the [LineEdit]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Aligns the text on the left-hand side of the [LineEdit]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Centers the text in the middle of the [LineEdit]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Aligns the text on the right-hand side of the [LineEdit]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Stretches whitespaces to fit the [LineEdit]'s width."
+msgstr ""
+
+#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
+msgid "Cuts (copies and clears) the selected text."
+msgstr ""
+
+#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
+msgid "Copies the selected text."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Pastes the clipboard text over the selected text (or at the cursor's "
+"position).\n"
+"Non-printable escape characters are automatically stripped from the OS "
+"clipboard via [method String.strip_escapes]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Erases the whole [LineEdit] text."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Selects the whole [LineEdit] text."
+msgstr ""
+
+#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
+msgid "Undoes the previous action."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Reverse the last undo action."
+msgstr ""
+
+#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
+msgid "Represents the size of the [enum MenuItems] enum."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Color used as default tint for the clear button."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Color used for the clear button when it's pressed."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Color of the [LineEdit]'s visual cursor (caret)."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Default font color."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Font color for selected text (inside the selection rectangle)."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Font color when editing is disabled."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Color of the selection rectangle."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Minimum horizontal space for the text (not counting the clear button and "
+"content margins). This value is measured in count of space characters (i.e. "
+"this amount of space characters can be displayed without scrolling)."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Font used for the text."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Texture for the clear button. See [member clear_button_enabled]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Background used when [LineEdit] has GUI focus."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid "Default background for the [LineEdit]."
+msgstr ""
+
+#: doc/classes/LineEdit.xml
+msgid ""
+"Background used when [LineEdit] is in read-only mode ([member editable] is "
+"set to [code]false[/code])."
+msgstr ""
+
+#: doc/classes/LineShape2D.xml
+msgid "Line shape for 2D collisions."
+msgstr ""
+
+#: doc/classes/LineShape2D.xml
+msgid ""
+"Line shape for 2D collisions. It works like a 2D plane and will not allow "
+"any physics body to go to the negative side. Not recommended for rigid "
+"bodies, and usually not recommended for static bodies either because it "
+"forces checks against it on every frame."
+msgstr ""
+
+#: doc/classes/LineShape2D.xml
+msgid "The line's distance from the origin."
+msgstr ""
+
+#: doc/classes/LineShape2D.xml
+msgid "The line's normal."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid "Simple button used to represent a link to some resource."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid ""
+"This kind of button is primarily used when the interaction with the button "
+"causes a context change (like linking to a web page).\n"
+"See also [BaseButton] which contains common properties and methods "
+"associated with this node."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid ""
+"Determines when to show the underline. See [enum UnderlineMode] for options."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid "The LinkButton will always show an underline at the bottom of its text."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid ""
+"The LinkButton will show an underline at the bottom of its text when the "
+"mouse cursor is over it."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid "The LinkButton will never show an underline at the bottom of its text."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid "Default text [Color] of the [LinkButton]."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid ""
+"Text [Color] used when the [LinkButton] is focused. Only replaces the normal "
+"text color of the button. Disabled, hovered, and pressed states take "
+"precedence over this color."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid "Text [Color] used when the [LinkButton] is being hovered."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid "Text [Color] used when the [LinkButton] is being pressed."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid "The vertical space between the baseline of text and the underline."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid "[Font] of the [LinkButton]'s text."
+msgstr ""
+
+#: doc/classes/LinkButton.xml
+msgid ""
+"[StyleBox] used when the [LinkButton] is focused. It is displayed over the "
+"current [StyleBox], so using [StyleBoxEmpty] will just disable the focus "
+"visual effect."
+msgstr ""
+
+#: doc/classes/Listener.xml doc/classes/Listener2D.xml
+msgid "Overrides the location sounds are heard from."
+msgstr ""
+
+#: doc/classes/Listener.xml
+msgid ""
+"Once added to the scene tree and enabled using [method make_current], this "
+"node will override the location sounds are heard from. This can be used to "
+"listen from a location different from the [Camera]."
+msgstr ""
+
+#: doc/classes/Listener.xml
+msgid "Disables the listener to use the current camera's listener instead."
+msgstr ""
+
+#: doc/classes/Listener.xml
+msgid "Returns the listener's global orthonormalized [Transform]."
+msgstr ""
+
+#: doc/classes/Listener.xml
+msgid ""
+"Returns [code]true[/code] if the listener was made current using [method "
+"make_current], [code]false[/code] otherwise.\n"
+"[b]Note:[/b] There may be more than one Listener marked as \"current\" in "
+"the scene tree, but only the one that was made current last will be used."
+msgstr ""
+
+#: doc/classes/Listener.xml
+msgid "Enables the listener. This will override the current camera's listener."
+msgstr ""
+
+#: doc/classes/Listener2D.xml
+msgid ""
+"Once added to the scene tree and enabled using [method make_current], this "
+"node will override the location sounds are heard from. Only one [Listener2D] "
+"can be current. Using [method make_current] will disable the previous "
+"[Listener2D].\n"
+"If there is no active [Listener2D] in the current [Viewport], center of the "
+"screen will be used as a hearing point for the audio. [Listener2D] needs to "
+"be inside [SceneTree] to function."
+msgstr ""
+
+#: doc/classes/Listener2D.xml
+msgid ""
+"Disables the [Listener2D]. If it's not set as current, this method will have "
+"no effect."
+msgstr ""
+
+#: doc/classes/Listener2D.xml
+msgid "Returns [code]true[/code] if this [Listener2D] is currently active."
+msgstr ""
+
+#: doc/classes/Listener2D.xml
+msgid ""
+"Makes the [Listener2D] active, setting it as the hearing point for the "
+"sounds. If there is already another active [Listener2D], it will be "
+"disabled.\n"
+"This method will have no effect if the [Listener2D] is not added to "
+"[SceneTree]."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid "Abstract base class for the game's main loop."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"[MainLoop] is the abstract base class for a Godot project's game loop. It is "
+"inherited by [SceneTree], which is the default game loop implementation used "
+"in Godot projects, though it is also possible to write and use one's own "
+"[MainLoop] subclass instead of the scene tree.\n"
+"Upon the application start, a [MainLoop] implementation must be provided to "
+"the OS; otherwise, the application will exit. This happens automatically "
+"(and a [SceneTree] is created) unless a main [Script] is provided from the "
+"command line (with e.g. [code]godot -s my_loop.gd[/code], which should then "
+"be a [MainLoop] implementation.\n"
+"Here is an example script implementing a simple [MainLoop]:\n"
+"[codeblock]\n"
+"extends MainLoop\n"
+"\n"
+"var time_elapsed = 0\n"
+"var keys_typed = []\n"
+"var quit = false\n"
+"\n"
+"func _initialize():\n"
+" print(\"Initialized:\")\n"
+" print(\" Starting time: %s\" % str(time_elapsed))\n"
+"\n"
+"func _idle(delta):\n"
+" time_elapsed += delta\n"
+" # Return true to end the main loop.\n"
+" return quit\n"
+"\n"
+"func _input_event(event):\n"
+" # Record keys.\n"
+" if event is InputEventKey and event.pressed and !event.echo:\n"
+" keys_typed.append(OS.get_scancode_string(event.scancode))\n"
+" # Quit on Escape press.\n"
+" if event.scancode == KEY_ESCAPE:\n"
+" quit = true\n"
+" # Quit on any mouse click.\n"
+" if event is InputEventMouseButton:\n"
+" quit = true\n"
+"\n"
+"func _finalize():\n"
+" print(\"Finalized:\")\n"
+" print(\" End time: %s\" % str(time_elapsed))\n"
+" print(\" Keys typed: %s\" % var2str(keys_typed))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Called when files are dragged from the OS file manager and dropped in the "
+"game window. The arguments are a list of file paths and the identifier of "
+"the screen where the drag originated."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid "Called before the program exits."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Called when the user performs an action in the system global menu (e.g. the "
+"Mac OS menu bar)."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Called each idle frame with the time since the last idle frame as argument "
+"(in seconds). Equivalent to [method Node._process].\n"
+"If implemented, the method must return a boolean value. [code]true[/code] "
+"ends the main loop, while [code]false[/code] lets it proceed to the next "
+"frame."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid "Called once during initialization."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid "Called whenever an [InputEvent] is received by the main loop."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Deprecated callback, does not do anything. Use [method _input_event] to "
+"parse text input. Will be removed in Godot 4.0."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Called each physics frame with the time since the last physics frame as "
+"argument ([code]delta[/code], in seconds). Equivalent to [method Node."
+"_physics_process].\n"
+"If implemented, the method must return a boolean value. [code]true[/code] "
+"ends the main loop, while [code]false[/code] lets it proceed to the next "
+"frame."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Should not be called manually, override [method _finalize] instead. Will be "
+"removed in Godot 4.0."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Should not be called manually, override [method _idle] instead. Will be "
+"removed in Godot 4.0."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Should not be called manually, override [method _initialize] instead. Will "
+"be removed in Godot 4.0."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Should not be called manually, override [method _input_event] instead. Will "
+"be removed in Godot 4.0."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Should not be called manually, override [method _input_text] instead. Will "
+"be removed in Godot 4.0."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid ""
+"Should not be called manually, override [method _iteration] instead. Will be "
+"removed in Godot 4.0."
+msgstr ""
+
+#: doc/classes/MainLoop.xml
+msgid "Emitted when a user responds to a permission request."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when the mouse enters the game window.\n"
+"Implemented on desktop and web platforms."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when the mouse leaves the game window.\n"
+"Implemented on desktop and web platforms."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when the game window is focused.\n"
+"Implemented on all platforms."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when the game window is unfocused.\n"
+"Implemented on all platforms."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when a quit request is sent (e.g. closing "
+"the window with a \"Close\" button or Alt+F4).\n"
+"Implemented on desktop platforms."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when a go back request is sent (e.g. "
+"pressing the \"Back\" button on Android).\n"
+"Specific to the Android platform."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when an unfocus request is sent (e.g. "
+"another OS window wants to take the focus).\n"
+"No supported platforms currently send this notification."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when the application is exceeding its "
+"allocated memory.\n"
+"Specific to the iOS platform."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received when translations may have changed. Can be triggered "
+"by the user changing the locale. Can be used to respond to language changes, "
+"for example to change the UI strings on the fly. Useful when working with "
+"the built-in translation support, like [method Object.tr]."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when a request for \"About\" information "
+"is sent.\n"
+"Specific to the macOS platform."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from Godot's crash handler when the engine is about to "
+"crash.\n"
+"Implemented on desktop platforms if the crash handler is enabled."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when an update of the Input Method Engine "
+"occurs (e.g. change of IME cursor position or composition string).\n"
+"Specific to the macOS platform."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when the app is resumed.\n"
+"Specific to the Android platform."
+msgstr ""
+
+#: doc/classes/MainLoop.xml doc/classes/Node.xml
+msgid ""
+"Notification received from the OS when the app is paused.\n"
+"Specific to the Android platform."
+msgstr ""
+
+#: doc/classes/MarginContainer.xml
+msgid "Simple margin container."
+msgstr ""
+
+#: doc/classes/MarginContainer.xml
+msgid ""
+"Adds a top, left, bottom, and right margin to all [Control] nodes that are "
+"direct children of the container. To control the [MarginContainer]'s margin, "
+"use the [code]margin_*[/code] theme properties listed below.\n"
+"[b]Note:[/b] Be careful, [Control] margin values are different than the "
+"constant margin values. If you want to change the custom margin values of "
+"the [MarginContainer] by code, you should use the following examples:\n"
+"[codeblock]\n"
+"# This code sample assumes the current script is extending MarginContainer.\n"
+"var margin_value = 100\n"
+"add_constant_override(\"margin_top\", margin_value)\n"
+"add_constant_override(\"margin_left\", margin_value)\n"
+"add_constant_override(\"margin_bottom\", margin_value)\n"
+"add_constant_override(\"margin_right\", margin_value)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/MarginContainer.xml
+msgid ""
+"All direct children of [MarginContainer] will have a bottom margin of "
+"[code]margin_bottom[/code] pixels."
+msgstr ""
+
+#: doc/classes/MarginContainer.xml
+msgid ""
+"All direct children of [MarginContainer] will have a left margin of "
+"[code]margin_left[/code] pixels."
+msgstr ""
+
+#: doc/classes/MarginContainer.xml
+msgid ""
+"All direct children of [MarginContainer] will have a right margin of "
+"[code]margin_right[/code] pixels."
+msgstr ""
+
+#: doc/classes/MarginContainer.xml
+msgid ""
+"All direct children of [MarginContainer] will have a top margin of "
+"[code]margin_top[/code] pixels."
+msgstr ""
+
+#: doc/classes/Marshalls.xml
+msgid "Data transformation (marshalling) and encoding helpers."
+msgstr ""
+
+#: doc/classes/Marshalls.xml
+msgid "Provides data transformation and encoding utility functions."
+msgstr ""
+
+#: doc/classes/Marshalls.xml
+msgid ""
+"Returns a decoded [PoolByteArray] corresponding to the Base64-encoded string "
+"[code]base64_str[/code]."
+msgstr ""
+
+#: doc/classes/Marshalls.xml
+msgid ""
+"Returns a decoded string corresponding to the Base64-encoded string "
+"[code]base64_str[/code]."
+msgstr ""
+
+#: doc/classes/Marshalls.xml
+msgid ""
+"Returns a decoded [Variant] corresponding to the Base64-encoded string "
+"[code]base64_str[/code]. If [code]allow_objects[/code] is [code]true[/code], "
+"decoding objects is allowed.\n"
+"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
+"Do not use this option if the serialized object comes from untrusted sources "
+"to avoid potential security threats such as remote code execution."
+msgstr ""
+
+#: doc/classes/Marshalls.xml
+msgid "Returns a Base64-encoded string of a given [PoolByteArray]."
+msgstr ""
+
+#: doc/classes/Marshalls.xml
+msgid ""
+"Returns a Base64-encoded string of the UTF-8 string [code]utf8_str[/code]."
+msgstr ""
+
+#: doc/classes/Marshalls.xml
+msgid ""
+"Returns a Base64-encoded string of the [Variant] [code]variant[/code]. If "
+"[code]full_objects[/code] is [code]true[/code], encoding objects is allowed "
+"(and can potentially include code)."
+msgstr ""
+
+#: doc/classes/Material.xml
+msgid "Abstract base [Resource] for coloring and shading geometry."
+msgstr ""
+
+#: doc/classes/Material.xml
+msgid ""
+"Material is a base [Resource] used for coloring and shading geometry. All "
+"materials inherit from it and almost all [VisualInstance] derived nodes "
+"carry a Material. A few flags and parameters are shared between all material "
+"types and are configured here."
+msgstr ""
+
+#: doc/classes/Material.xml
+msgid ""
+"Sets the [Material] to be used for the next pass. This renders the object "
+"again using a different material.\n"
+"[b]Note:[/b] This only applies to [SpatialMaterial]s and [ShaderMaterial]s "
+"with type \"Spatial\"."
+msgstr ""
+
+#: doc/classes/Material.xml
+msgid ""
+"Sets the render priority for transparent objects in 3D scenes. Higher "
+"priority objects will be sorted in front of lower priority objects.\n"
+"[b]Note:[/b] This only applies to sorting of transparent objects. This will "
+"not impact how transparent objects are sorted relative to opaque objects. "
+"This is because opaque objects are not sorted, while transparent objects are "
+"sorted from back to front (subject to priority)."
+msgstr ""
+
+#: doc/classes/Material.xml
+msgid "Maximum value for the [member render_priority] parameter."
+msgstr ""
+
+#: doc/classes/Material.xml
+msgid "Minimum value for the [member render_priority] parameter."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "Special button that brings up a [PopupMenu] when clicked."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid ""
+"Special button that brings up a [PopupMenu] when clicked.\n"
+"New items can be created inside this [PopupMenu] using [code]get_popup()."
+"add_item(\"My Item Name\")[/code]. You can also create them directly from "
+"the editor. To do so, select the [MenuButton] node, then in the toolbar at "
+"the top of the 2D editor, click [b]Items[/b] then click [b]Add[/b] in the "
+"popup. You will be able to give each item new properties.\n"
+"See also [BaseButton] which contains common properties and methods "
+"associated with this node."
+msgstr ""
+
+#: doc/classes/MenuButton.xml doc/classes/OptionButton.xml
+msgid ""
+"Returns the [PopupMenu] contained in this button.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid ""
+"If [code]true[/code], shortcuts are disabled and cannot be used to trigger "
+"the button."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid ""
+"If [code]true[/code], when the cursor hovers above another [MenuButton] "
+"within the same parent which also has [code]switch_on_hover[/code] enabled, "
+"it will close the current [MenuButton] and open the other one."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "Emitted when [PopupMenu] of this MenuButton is about to show."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "Default text [Color] of the [MenuButton]."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "Text [Color] used when the [MenuButton] is disabled."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid ""
+"Text [Color] used when the [MenuButton] is focused. Only replaces the normal "
+"text color of the button. Disabled, hovered, and pressed states take "
+"precedence over this color."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "Text [Color] used when the [MenuButton] is being hovered."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "Text [Color] used when the [MenuButton] is being pressed."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "The horizontal space between [MenuButton]'s icon and text."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "[Font] of the [MenuButton]'s text."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "[StyleBox] used when the [MenuButton] is disabled."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid ""
+"[StyleBox] used when the [MenuButton] is focused. It is displayed over the "
+"current [StyleBox], so using [StyleBoxEmpty] will just disable the focus "
+"visual effect."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "[StyleBox] used when the [MenuButton] is being hovered."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "Default [StyleBox] for the [MenuButton]."
+msgstr ""
+
+#: doc/classes/MenuButton.xml
+msgid "[StyleBox] used when the [MenuButton] is being pressed."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "A [Resource] that contains vertex array-based geometry."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Mesh is a type of [Resource] that contains vertex array-based geometry, "
+"divided in [i]surfaces[/i]. Each surface contains a completely separate "
+"array and a material used to draw it. Design wise, a mesh with multiple "
+"surfaces is preferred to a single surface, because objects created in 3D "
+"editing software commonly contain multiple materials."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Calculate a [ConvexPolygonShape] from the mesh.\n"
+"If [code]clean[/code] is [code]true[/code] (default), duplicate and interior "
+"vertices are removed automatically. You can set it to [code]false[/code] to "
+"make the process faster if not needed.\n"
+"If [code]simplify[/code] is [code]true[/code], the geometry can be further "
+"simplified to reduce the amount of vertices. Disabled by default."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Calculate an outline mesh at a defined offset (margin) from the original "
+"mesh.\n"
+"[b]Note:[/b] This method typically returns the vertices in reverse order (e."
+"g. clockwise to counterclockwise)."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Calculate a [ConcavePolygonShape] from the mesh."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Generate a [TriangleMesh] from the mesh."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Returns the smallest [AABB] enclosing this mesh in local space. Not affected "
+"by [code]custom_aabb[/code]. See also [method VisualInstance."
+"get_transformed_aabb].\n"
+"[b]Note:[/b] This is only implemented for [ArrayMesh] and [PrimitiveMesh]."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Returns all the vertices that make up the faces of the mesh. Each three "
+"vertices represent one triangle."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Returns the amount of surfaces that the [Mesh] holds."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Returns the arrays for the vertices, normals, uvs, etc. that make up the "
+"requested surface (see [method ArrayMesh.add_surface_from_arrays])."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Returns the blend shape arrays for the requested surface."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Returns a [Material] in a given surface. Surface is rendered using this "
+"material."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Sets a [Material] for a given surface. Surface will be rendered using this "
+"material."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Sets a hint to be used for lightmap resolution in [BakedLightmap]. Overrides "
+"[member BakedLightmap.default_texels_per_unit]."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Render array as points (one vertex equals one point)."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Render array as lines (every two vertices a line is created)."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Render array as line strip."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Render array as line loop (like line strip, but closed)."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Render array as triangles (every three vertices a triangle is created)."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Render array as triangle strips."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Render array as triangle fans."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Blend shapes are normalized."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Blend shapes are relative to base weight."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Mesh array contains vertices. All meshes require a vertex array so this "
+"should always be present."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Mesh array contains normals."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Mesh array contains tangents."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Mesh array contains colors."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Mesh array contains UVs."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Mesh array contains second UV."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Mesh array contains bones."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Mesh array contains bone weights."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Mesh array uses indices."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Used internally to calculate other [code]ARRAY_COMPRESS_*[/code] enum "
+"values. Do not use."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Flag used to mark a compressed (half float) vertex array."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Flag used to mark a compressed (half float) normal array."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Flag used to mark a compressed (half float) tangent array."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Flag used to mark a compressed (half float) color array."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Flag used to mark a compressed (half float) UV coordinates array."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid ""
+"Flag used to mark a compressed (half float) UV coordinates array for the "
+"second UV coordinates."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Flag used to mark a compressed bone array."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Flag used to mark a compressed (half float) weight array."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Flag used to mark a compressed index array."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Flag used to mark that the array contains 2D vertices."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid "Flag used to mark that the array uses 16-bit bones instead of 8-bit."
+msgstr ""
+
+#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
+msgid ""
+"Flag used to mark that the array uses an octahedral representation of normal "
+"and tangent vectors rather than cartesian."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid ""
+"Used to set flags [constant ARRAY_COMPRESS_VERTEX], [constant "
+"ARRAY_COMPRESS_NORMAL], [constant ARRAY_COMPRESS_TANGENT], [constant "
+"ARRAY_COMPRESS_COLOR], [constant ARRAY_COMPRESS_TEX_UV], [constant "
+"ARRAY_COMPRESS_TEX_UV2], [constant ARRAY_COMPRESS_WEIGHTS], and [constant "
+"ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION] quickly."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Array of vertices."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Array of normals."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Array of tangents as an array of floats, 4 floats per tangent."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Array of colors."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Array of UV coordinates."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Array of second set of UV coordinates."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Array of bone data."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Array of weights."
+msgstr ""
+
+#: doc/classes/Mesh.xml
+msgid "Array of indices."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Helper tool to access and edit [Mesh] data."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid ""
+"MeshDataTool provides access to individual vertices in a [Mesh]. It allows "
+"users to read and edit vertex data of meshes. It also creates an array of "
+"faces and edges.\n"
+"To use MeshDataTool, load a mesh with [method create_from_surface]. When you "
+"are finished editing the data commit the data to a mesh with [method "
+"commit_to_surface].\n"
+"Below is an example of how MeshDataTool may be used.\n"
+"[codeblock]\n"
+"var mesh = ArrayMesh.new()\n"
+"mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, CubeMesh.new()."
+"get_mesh_arrays())\n"
+"var mdt = MeshDataTool.new()\n"
+"mdt.create_from_surface(mesh, 0)\n"
+"for i in range(mdt.get_vertex_count()):\n"
+" var vertex = mdt.get_vertex(i)\n"
+" # In this example we extend the mesh by one unit, which results in "
+"separated faces as it is flat shaded.\n"
+" vertex += mdt.get_vertex_normal(i)\n"
+" # Save your change.\n"
+" mdt.set_vertex(i, vertex)\n"
+"mesh.surface_remove(0)\n"
+"mdt.commit_to_surface(mesh)\n"
+"var mi = MeshInstance.new()\n"
+"mi.mesh = mesh\n"
+"add_child(mi)\n"
+"[/codeblock]\n"
+"See also [ArrayMesh], [ImmediateGeometry] and [SurfaceTool] for procedural "
+"geometry generation.\n"
+"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-"
+"OpenGL/Face-culling]winding order[/url] for front faces of triangle "
+"primitive modes."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Clears all data currently in MeshDataTool."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Adds a new surface to specified [Mesh] with edited data."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid ""
+"Uses specified surface of given [Mesh] to populate data for MeshDataTool.\n"
+"Requires [Mesh] with primitive type [constant Mesh.PRIMITIVE_TRIANGLES]."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the number of edges in this [Mesh]."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns array of faces that touch given edge."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns meta information assigned to given edge."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid ""
+"Returns index of specified vertex connected to given edge.\n"
+"Vertex argument can only be 0 or 1 because edges are comprised of two "
+"vertices."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the number of faces in this [Mesh]."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid ""
+"Returns specified edge associated with given face.\n"
+"Edge argument must 2 or less because a face only has three edges."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the metadata associated with the given face."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Calculates and returns the face normal of the given face."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid ""
+"Returns the specified vertex of the given face.\n"
+"Vertex argument must be 2 or less because faces contain three vertices."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid ""
+"Returns the [Mesh]'s format. Format is an integer made up of [Mesh] format "
+"flags combined together. For example, a mesh containing both vertices and "
+"normals would return a format of [code]3[/code] because [constant ArrayMesh."
+"ARRAY_FORMAT_VERTEX] is [code]1[/code] and [constant ArrayMesh."
+"ARRAY_FORMAT_NORMAL] is [code]2[/code].\n"
+"See [enum ArrayMesh.ArrayFormat] for a list of format flags."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the material assigned to the [Mesh]."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the vertex at given index."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the bones of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the color of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the total number of vertices in [Mesh]."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns an array of edges that share the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns an array of faces that share the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the metadata associated with the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the normal of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the tangent of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the UV of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns the UV2 of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Returns bone weights of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the metadata of the given edge."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the metadata of the given face."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the material to be used by newly-constructed [Mesh]."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the position of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the bones of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the color of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the metadata associated with the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the normal of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the tangent of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the UV of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the UV2 of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshDataTool.xml
+msgid "Sets the bone weights of the given vertex."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid "Node that instances meshes into a scenario."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid ""
+"MeshInstance is a node that takes a [Mesh] resource and adds it to the "
+"current scenario by creating an instance of it. This is the class most often "
+"used to get 3D geometry rendered and can be used to instance a single [Mesh] "
+"in many places. This allows to reuse geometry and save on resources. When a "
+"[Mesh] has to be instanced more than thousands of times at close proximity, "
+"consider using a [MultiMesh] in a [MultiMeshInstance] instead."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid ""
+"This helper creates a [StaticBody] child node with a [ConvexPolygonShape] "
+"collision shape calculated from the mesh geometry. It's mainly used for "
+"testing.\n"
+"If [code]clean[/code] is [code]true[/code] (default), duplicate and interior "
+"vertices are removed automatically. You can set it to [code]false[/code] to "
+"make the process faster if not needed.\n"
+"If [code]simplify[/code] is [code]true[/code], the geometry can be further "
+"simplified to reduce the amount of vertices. Disabled by default."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid ""
+"This helper creates a [MeshInstance] child node with gizmos at every vertex "
+"calculated from the mesh geometry. It's mainly used for testing."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid ""
+"This helper creates a [StaticBody] child node with multiple "
+"[ConvexPolygonShape] collision shapes calculated from the mesh geometry via "
+"convex decomposition. It's mainly used for testing."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid ""
+"This helper creates a [StaticBody] child node with a [ConcavePolygonShape] "
+"collision shape calculated from the mesh geometry. It's mainly used for "
+"testing."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid ""
+"Returns the [Material] that will be used by the [Mesh] when drawing. This "
+"can return the [member GeometryInstance.material_override], the surface "
+"override [Material] defined in this [MeshInstance], or the surface "
+"[Material] defined in the [Mesh]. For example, if [member GeometryInstance."
+"material_override] is used, all surfaces will return the override material."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid "Returns the [Material] for a surface of the [Mesh] resource."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid "Returns the number of surface materials."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid "Sets the [Material] for a surface of the [Mesh] resource."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid "The [Mesh] resource for the instance."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid "[NodePath] to the [Skeleton] associated with the instance."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid "Sets the skin to be used by this instance."
+msgstr ""
+
+#: doc/classes/MeshInstance.xml
+msgid ""
+"If [code]true[/code], normals are transformed when software skinning is "
+"used. Set to [code]false[/code] when normals are not needed for better "
+"performance.\n"
+"See [member ProjectSettings.rendering/quality/skinning/"
+"software_skinning_fallback] for details about how software skinning is "
+"enabled."
+msgstr ""
+
+#: doc/classes/MeshInstance2D.xml
+msgid "Node used for displaying a [Mesh] in 2D."
+msgstr ""
+
+#: doc/classes/MeshInstance2D.xml
+msgid ""
+"Node used for displaying a [Mesh] in 2D. Can be constructed from an existing "
+"[Sprite] via a tool in the editor toolbar. Select \"Sprite\" then \"Convert "
+"to Mesh2D\", select settings in popup and press \"Create Mesh2D\"."
+msgstr ""
+
+#: doc/classes/MeshInstance2D.xml
+msgid "$DOCS_URL/tutorials/2d/2d_meshes.html"
+msgstr ""
+
+#: doc/classes/MeshInstance2D.xml
+msgid "The [Mesh] that will be drawn by the [MeshInstance2D]."
+msgstr ""
+
+#: doc/classes/MeshInstance2D.xml doc/classes/MultiMeshInstance2D.xml
+msgid ""
+"The normal map that will be used if using the default [CanvasItemMaterial].\n"
+"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
+"See [url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
+"a comparison of normal map coordinates expected by popular engines."
+msgstr ""
+
+#: doc/classes/MeshInstance2D.xml doc/classes/MultiMeshInstance2D.xml
+msgid ""
+"The [Texture] that will be used if using the default [CanvasItemMaterial]. "
+"Can be accessed as [code]TEXTURE[/code] in CanvasItem shader."
+msgstr ""
+
+#: doc/classes/MeshInstance2D.xml doc/classes/MultiMeshInstance2D.xml
+msgid "Emitted when the [member texture] is changed."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Library of meshes."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid ""
+"A library of meshes. Contains a list of [Mesh] resources, each with a name "
+"and ID. Each item can also include collision and navigation shapes. This "
+"resource is used in [GridMap]."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Clears the library."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid ""
+"Creates a new item in the library with the given ID.\n"
+"You can get an unused ID from [method get_last_unused_item_id]."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Returns the first item with the given name."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Returns the list of item IDs in use."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Returns the item's mesh."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Returns the transform applied to the item's mesh."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Returns the item's name."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Returns the item's navigation mesh."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Returns the transform applied to the item's navigation mesh."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid ""
+"When running in the editor, returns a generated item preview (a 3D rendering "
+"in isometric perspective). When used in a running project, returns the "
+"manually-defined item preview which can be set using [method "
+"set_item_preview]. Returns an empty [Texture] if no preview was manually set "
+"in a running project."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid ""
+"Returns an item's collision shapes.\n"
+"The array consists of each [Shape] followed by its [Transform]."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Gets an unused ID for a new item."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Removes the item."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Sets the item's mesh."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Sets the transform to apply to the item's mesh."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid ""
+"Sets the item's name.\n"
+"This name is shown in the editor. It can also be used to look up the item "
+"later using [method find_item_by_name]."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Sets the item's navigation mesh."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Sets the transform to apply to the item's navigation mesh."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid "Sets a texture to use as the item's preview icon in the editor."
+msgstr ""
+
+#: doc/classes/MeshLibrary.xml
+msgid ""
+"Sets an item's collision shapes.\n"
+"The array should consist of [Shape] objects, each followed by a [Transform] "
+"that will be applied to it. For shapes that should not have a transform, use "
+"[constant Transform.IDENTITY]."
+msgstr ""
+
+#: doc/classes/MeshTexture.xml
+msgid "Simple texture that uses a mesh to draw itself."
+msgstr ""
+
+#: doc/classes/MeshTexture.xml
+msgid ""
+"Simple texture that uses a mesh to draw itself. It's limited because flags "
+"can't be changed and region drawing is not supported."
+msgstr ""
+
+#: doc/classes/MeshTexture.xml
+msgid "Sets the base texture that the Mesh will use to draw."
+msgstr ""
+
+#: doc/classes/MeshTexture.xml
+msgid "Sets the size of the image, needed for reference."
+msgstr ""
+
+#: doc/classes/MeshTexture.xml
+msgid "Sets the mesh used to draw. It must be a mesh using 2D vertices."
+msgstr ""
+
+#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
+msgid "Generic mobile VR implementation."
+msgstr ""
+
+#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
+msgid ""
+"This is a generic mobile VR implementation where you need to provide details "
+"about the phone and HMD used. It does not rely on any existing framework. "
+"This is the most basic interface we have. For the best effect, you need a "
+"mobile phone with a gyroscope and accelerometer.\n"
+"Note that even though there is no positional tracking, the camera will "
+"assume the headset is at a height of 1.85 meters. You can change this by "
+"setting [member eye_height].\n"
+"You can initialise this interface as follows:\n"
+"[codeblock]\n"
+"var interface = ARVRServer.find_interface(\"Native mobile\")\n"
+"if interface and interface.initialize():\n"
+" get_viewport().arvr = true\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
+msgid ""
+"The distance between the display and the lenses inside of the device in "
+"centimeters."
+msgstr ""
+
+#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
+msgid "The width of the display in centimeters."
+msgstr ""
+
+#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
+msgid ""
+"The height at which the camera is placed in relation to the ground (i.e. "
+"[ARVROrigin] node)."
+msgstr ""
+
+#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
+msgid ""
+"The interocular distance, also known as the interpupillary distance. The "
+"distance between the pupils of the left and right eye."
+msgstr ""
+
+#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
+msgid ""
+"The k1 lens factor is one of the two constants that define the strength of "
+"the lens used and directly influences the lens distortion effect."
+msgstr ""
+
+#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
+msgid "The k2 lens factor, see k1."
+msgstr ""
+
+#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
+msgid ""
+"The oversample setting. Because of the lens distortion we have to render our "
+"buffers at a higher resolution then the screen can natively handle. A value "
+"between 1.5 and 2.0 often provides good results but at the cost of "
+"performance."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Provides high-performance mesh instancing."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"MultiMesh provides low-level mesh instancing. Drawing thousands of "
+"[MeshInstance] nodes can be slow, since each object is submitted to the GPU "
+"then drawn individually.\n"
+"MultiMesh is much faster as it can draw thousands of instances with a single "
+"draw call, resulting in less API overhead.\n"
+"As a drawback, if the instances are too far away from each other, "
+"performance may be reduced as every single instance will always render (they "
+"are spatially indexed as one, for the whole object).\n"
+"Since instances may have any behavior, the AABB used for visibility must be "
+"provided by the user."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml doc/classes/MultiMeshInstance.xml
+msgid ""
+"$DOCS_URL/tutorials/performance/vertex_animation/animating_thousands_of_fish."
+"html"
+msgstr ""
+
+#: doc/classes/MultiMesh.xml doc/classes/MultiMeshInstance.xml
+msgid "$DOCS_URL/tutorials/performance/using_multimesh.html"
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"Returns the visibility axis-aligned bounding box in local space. See also "
+"[method VisualInstance.get_transformed_aabb]."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Gets a specific instance's color."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Returns the custom data that has been set for a specific instance."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Returns the [Transform] of a specific instance."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Returns the [Transform2D] of a specific instance."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"Sets all data related to the instances in one go. This is especially useful "
+"when loading the data from disk or preparing the data from GDNative.\n"
+"All data is packed in one large float array. An array may look like this: "
+"Transform for instance 1, color data for instance 1, custom data for "
+"instance 1, transform for instance 2, color data for instance 2, etc...\n"
+"[Transform] is stored as 12 floats, [Transform2D] is stored as 8 floats, "
+"[code]COLOR_8BIT[/code] / [code]CUSTOM_DATA_8BIT[/code] is stored as 1 float "
+"(4 bytes as is) and [code]COLOR_FLOAT[/code] / [code]CUSTOM_DATA_FLOAT[/"
+"code] is stored as 4 floats."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"Sets the color of a specific instance by [i]multiplying[/i] the mesh's "
+"existing vertex colors.\n"
+"For the color to take effect, ensure that [member color_format] is non-"
+"[code]null[/code] on the [MultiMesh] and [member SpatialMaterial."
+"vertex_color_use_as_albedo] is [code]true[/code] on the material."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"Sets custom data for a specific instance. Although [Color] is used, it is "
+"just a container for 4 floating point numbers. The format of the number can "
+"change depending on the [enum CustomDataFormat] used."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Sets the [Transform] for a specific instance."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Sets the [Transform2D] for a specific instance."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Format of colors in color array that gets passed to shader."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Format of custom data in custom data array that gets passed to shader."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"Number of instances that will get drawn. This clears and (re)sizes the "
+"buffers. By default, all instances are drawn but you can limit this with "
+"[member visible_instance_count]."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Mesh to be drawn."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Format of transform used to transform mesh, either 2D or 3D."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"Limits the number of instances drawn, -1 draws all instances. Changing this "
+"does not change the sizes of the buffers."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Use this when using 2D transforms."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Use this when using 3D transforms."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Use when you are not using per-instance [Color]s."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"Compress [Color] data into 8 bits when passing to shader. This uses less "
+"memory and can be faster, but the [Color] loses precision."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"The [Color] passed into [method set_instance_color] will use 4 floats. Use "
+"this for highest precision [Color]."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid "Use when you are not using per-instance custom data."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"Compress custom_data into 8 bits when passing to shader. This uses less "
+"memory and can be faster, but loses precision and range. Floats packed into "
+"8 bits can only represent values between 0 and 1, numbers outside that range "
+"will be clamped."
+msgstr ""
+
+#: doc/classes/MultiMesh.xml
+msgid ""
+"The [Color] passed into [method set_instance_custom_data] will use 4 floats. "
+"Use this for highest precision."
+msgstr ""
+
+#: doc/classes/MultiMeshInstance.xml
+msgid "Node that instances a [MultiMesh]."
+msgstr ""
+
+#: doc/classes/MultiMeshInstance.xml
+msgid ""
+"[MultiMeshInstance] is a specialized node to instance [GeometryInstance]s "
+"based on a [MultiMesh] resource.\n"
+"This is useful to optimize the rendering of a high amount of instances of a "
+"given mesh (for example trees in a forest or grass strands)."
+msgstr ""
+
+#: doc/classes/MultiMeshInstance.xml
+msgid "$DOCS_URL/tutorials/3d/using_multi_mesh_instance.html"
+msgstr ""
+
+#: doc/classes/MultiMeshInstance.xml
+msgid ""
+"The [MultiMesh] resource that will be used and shared among all instances of "
+"the [MultiMeshInstance]."
+msgstr ""
+
+#: doc/classes/MultiMeshInstance2D.xml
+msgid "Node that instances a [MultiMesh] in 2D."
+msgstr ""
+
+#: doc/classes/MultiMeshInstance2D.xml
+msgid ""
+"[MultiMeshInstance2D] is a specialized node to instance a [MultiMesh] "
+"resource in 2D.\n"
+"Usage is the same as [MultiMeshInstance]."
+msgstr ""
+
+#: doc/classes/MultiMeshInstance2D.xml
+msgid "The [MultiMesh] that will be drawn by the [MultiMeshInstance2D]."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid "High-level multiplayer API."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"This class implements most of the logic behind the high-level multiplayer "
+"API. See also [NetworkedMultiplayerPeer].\n"
+"By default, [SceneTree] has a reference to this class that is used to "
+"provide multiplayer capabilities (i.e. RPC/RSET) across the whole scene.\n"
+"It is possible to override the MultiplayerAPI instance used by specific "
+"Nodes by setting the [member Node.custom_multiplayer] property, effectively "
+"allowing to run both client and server in the same scene.\n"
+"[b]Note:[/b] The high-level multiplayer API protocol is an implementation "
+"detail and isn't meant to be used by non-Godot servers. It may change "
+"without notice."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Clears the current MultiplayerAPI network state (you shouldn't call this "
+"unless you know what you are doing)."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Returns the peer IDs of all connected peers of this MultiplayerAPI's [member "
+"network_peer]."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Returns the unique peer ID of this MultiplayerAPI's [member network_peer]."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Returns the sender's peer ID for the RPC currently being executed.\n"
+"[b]Note:[/b] If not inside an RPC this method will return 0."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml doc/classes/SceneTree.xml
+msgid "Returns [code]true[/code] if there is a [member network_peer] set."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Returns [code]true[/code] if this MultiplayerAPI's [member network_peer] is "
+"in server mode (listening for connections)."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Method used for polling the MultiplayerAPI. You only need to worry about "
+"this if you are using [member Node.custom_multiplayer] override or you set "
+"[member SceneTree.multiplayer_poll] to [code]false[/code]. By default, "
+"[SceneTree] will poll its MultiplayerAPI for you.\n"
+"[b]Note:[/b] This method results in RPCs and RSETs being called, so they "
+"will be executed in the same context of this function (e.g. [code]_process[/"
+"code], [code]physics[/code], [Thread])."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Sends the given raw [code]bytes[/code] to a specific peer identified by "
+"[code]id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer]). "
+"Default ID is [code]0[/code], i.e. broadcast to all peers."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"If [code]true[/code] (or if the [member network_peer] has [member PacketPeer."
+"allow_object_decoding] set to [code]true[/code]), the MultiplayerAPI will "
+"allow encoding and decoding of object during RPCs/RSETs.\n"
+"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
+"Do not use this option if the serialized object comes from untrusted sources "
+"to avoid potential security threats such as remote code execution."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"The peer object to handle the RPC system (effectively enabling networking "
+"when set). Depending on the peer itself, the MultiplayerAPI will become a "
+"network server (check with [method is_network_server]) and will set root "
+"node's network mode to master, or it will become a regular peer with root "
+"node set to puppet. All child nodes are set to inherit the network mode by "
+"default. Handling of networking-related events (connection, disconnection, "
+"new clients) is done by connecting to MultiplayerAPI's signals."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"If [code]true[/code], the MultiplayerAPI's [member network_peer] refuses new "
+"incoming connections."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"The root node to use for RPCs. Instead of an absolute path, a relative path "
+"will be used to find the node upon which the RPC should be executed.\n"
+"This effectively allows to have different branches of the scene tree to be "
+"managed by different MultiplayerAPI, allowing for example to run both client "
+"and server in the same scene."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Emitted when this MultiplayerAPI's [member network_peer] successfully "
+"connected to a server. Only emitted on clients."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Emitted when this MultiplayerAPI's [member network_peer] fails to establish "
+"a connection to a server. Only emitted on clients."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Emitted when this MultiplayerAPI's [member network_peer] connects with a new "
+"peer. ID is the peer ID of the new peer. Clients get notified when other "
+"clients connect to the same server. Upon connecting to a server, a client "
+"also receives this signal for the server (with ID being 1)."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Emitted when this MultiplayerAPI's [member network_peer] disconnects from a "
+"peer. Clients get notified when other clients disconnect from the same "
+"server."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Emitted when this MultiplayerAPI's [member network_peer] receive a "
+"[code]packet[/code] with custom data (see [method send_bytes]). ID is the "
+"peer ID of the peer that sent the packet."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Emitted when this MultiplayerAPI's [member network_peer] disconnects from "
+"server. Only emitted on clients."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Used with [method Node.rpc_config] or [method Node.rset_config] to disable a "
+"method or property for all RPC calls, making it unavailable. Default for all "
+"methods."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Used with [method Node.rpc_config] or [method Node.rset_config] to set a "
+"method to be called or a property to be changed only on the remote end, not "
+"locally. Analogous to the [code]remote[/code] keyword. Calls and property "
+"changes are accepted from all remote peers, no matter if they are node's "
+"master or puppets."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Used with [method Node.rpc_config] or [method Node.rset_config] to set a "
+"method to be called or a property to be changed only on the network master "
+"for this node. Analogous to the [code]master[/code] keyword. Only accepts "
+"calls or property changes from the node's network puppets, see [method Node."
+"set_network_master]."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Used with [method Node.rpc_config] or [method Node.rset_config] to set a "
+"method to be called or a property to be changed only on puppets for this "
+"node. Analogous to the [code]puppet[/code] keyword. Only accepts calls or "
+"property changes from the node's network master, see [method Node."
+"set_network_master]."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"[i]Deprecated.[/i] Use [constant RPC_MODE_PUPPET] instead. Analogous to the "
+"[code]slave[/code] keyword."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Behave like [constant RPC_MODE_REMOTE] but also make the call or property "
+"change locally. Analogous to the [code]remotesync[/code] keyword."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"[i]Deprecated.[/i] Use [constant RPC_MODE_REMOTESYNC] instead. Analogous to "
+"the [code]sync[/code] keyword."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Behave like [constant RPC_MODE_MASTER] but also make the call or property "
+"change locally. Analogous to the [code]mastersync[/code] keyword."
+msgstr ""
+
+#: doc/classes/MultiplayerAPI.xml
+msgid ""
+"Behave like [constant RPC_MODE_PUPPET] but also make the call or property "
+"change locally. Analogous to the [code]puppetsync[/code] keyword."
+msgstr ""
+
+#: doc/classes/Mutex.xml
+msgid "A synchronization mutex (mutual exclusion)."
+msgstr ""
+
+#: doc/classes/Mutex.xml
+msgid ""
+"A synchronization mutex (mutual exclusion). This is used to synchronize "
+"multiple [Thread]s, and is equivalent to a binary [Semaphore]. It guarantees "
+"that only one thread can ever acquire the lock at a time. A mutex can be "
+"used to protect a critical section; however, be careful to avoid deadlocks."
+msgstr ""
+
+#: doc/classes/Mutex.xml doc/classes/Semaphore.xml doc/classes/Thread.xml
+msgid "$DOCS_URL/tutorials/performance/threads/using_multiple_threads.html"
+msgstr ""
+
+#: doc/classes/Mutex.xml
+msgid ""
+"Locks this [Mutex], blocks until it is unlocked by the current owner.\n"
+"[b]Note:[/b] This function returns without blocking if the thread already "
+"has ownership of the mutex."
+msgstr ""
+
+#: doc/classes/Mutex.xml
+msgid ""
+"Tries locking this [Mutex], but does not block. Returns [constant OK] on "
+"success, [constant ERR_BUSY] otherwise.\n"
+"[b]Note:[/b] This function returns [constant OK] if the thread already has "
+"ownership of the mutex."
+msgstr ""
+
+#: doc/classes/Mutex.xml
+msgid ""
+"Unlocks this [Mutex], leaving it to other threads.\n"
+"[b]Note:[/b] If a thread called [method lock] or [method try_lock] multiple "
+"times while already having ownership of the mutex, it must also call [method "
+"unlock] the same number of times in order to unlock it correctly."
+msgstr ""
+
+#: modules/gdnative/doc_classes/NativeScript.xml
+msgid ""
+"Returns the documentation string that was previously set with "
+"[code]godot_nativescript_set_class_documentation[/code]."
+msgstr ""
+
+#: modules/gdnative/doc_classes/NativeScript.xml
+msgid ""
+"Returns the documentation string that was previously set with "
+"[code]godot_nativescript_set_method_documentation[/code]."
+msgstr ""
+
+#: modules/gdnative/doc_classes/NativeScript.xml
+msgid ""
+"Returns the documentation string that was previously set with "
+"[code]godot_nativescript_set_property_documentation[/code]."
+msgstr ""
+
+#: modules/gdnative/doc_classes/NativeScript.xml
+msgid ""
+"Returns the documentation string that was previously set with "
+"[code]godot_nativescript_set_signal_documentation[/code]."
+msgstr ""
+
+#: modules/gdnative/doc_classes/NativeScript.xml
+msgid ""
+"Constructs a new object of the base type with a script of this type already "
+"attached.\n"
+"[b]Note:[/b] Any arguments passed to this function will be ignored and not "
+"passed to the native constructor function. This will change with in a future "
+"API extension."
+msgstr ""
+
+#: doc/classes/Navigation.xml
+msgid "Mesh-based navigation and pathfinding node."
+msgstr ""
+
+#: doc/classes/Navigation.xml
+msgid ""
+"Provides navigation and pathfinding within a collection of "
+"[NavigationMesh]es. By default, these will be automatically collected from "
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
+msgstr ""
+
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
+msgid "https://godotengine.org/asset-library/asset/124"
+msgstr ""
+
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"Returns the navigation point closest to the point given. Points are in local "
+"coordinate space."
+msgstr ""
+
+#: doc/classes/Navigation.xml
+msgid ""
+"Returns the surface normal at the navigation point closest to the point "
+"given. Useful for rotating a navigation agent according to the navigation "
+"mesh it moves on."
+msgstr ""
+
+#: doc/classes/Navigation.xml
+msgid ""
+"Returns the owner of the [NavigationMesh] which contains the navigation "
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
+msgstr ""
+
+#: doc/classes/Navigation.xml
+msgid ""
+"Returns the navigation point closest to the given line segment. When "
+"enabling [code]use_collision[/code], only considers intersection points "
+"between segment and navigation meshes. If multiple intersection points are "
+"found, the one closest to the segment start point is returned."
+msgstr ""
+
+#: doc/classes/Navigation.xml
+msgid ""
+"Returns the path between two given points. Points are in local coordinate "
+"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
+"agent properties associated with each [NavigationMesh] (radius, height, "
+"etc.) are considered in the path calculation, otherwise they are ignored."
+msgstr ""
+
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
+msgstr ""
+
+#: doc/classes/Navigation.xml
+msgid ""
+"Defines which direction is up. By default, this is [code](0, 1, 0)[/code], "
+"which is the world's \"up\" direction."
+msgstr ""
+
+#: doc/classes/Navigation2D.xml
+msgid "2D navigation and pathfinding node."
+msgstr ""
+
+#: doc/classes/Navigation2D.xml
+msgid ""
+"Navigation2D provides navigation and pathfinding within a 2D area, specified "
+"as a collection of [NavigationPolygon] resources. By default, these are "
+"automatically collected from child [NavigationPolygonInstance] nodes."
+msgstr ""
+
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
+msgid "https://godotengine.org/asset-library/asset/117"
+msgstr ""
+
+#: doc/classes/Navigation2D.xml
+msgid ""
+"Returns the owner of the [NavigationPolygon] which contains the navigation "
+"point closest to the point given. This is usually a "
+"[NavigationPolygonInstance]."
+msgstr ""
+
+#: doc/classes/Navigation2D.xml
+msgid ""
+"Returns the path between two given points. Points are in local coordinate "
+"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
+"is smoothed by merging path segments where possible."
+msgstr ""
+
+#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid "A mesh to approximate the walkable areas and obstacles."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"A navigation mesh is a collection of polygons that define which areas of an "
+"environment are traversable to aid agents in pathfinding through complicated "
+"spaces."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml doc/classes/NavigationPolygon.xml
+msgid ""
+"Adds a polygon using the indices of the vertices you get when calling "
+"[method get_vertices]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Clears the array of polygons, but it doesn't clear the array of vertices."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Initializes the navigation mesh by setting the vertices and indices "
+"according to a [Mesh]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Returns whether the specified [code]bit[/code] of the [member geometry/"
+"collision_mask] is set."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml doc/classes/NavigationPolygon.xml
+msgid ""
+"Returns a [PoolIntArray] containing the indices of the vertices of a created "
+"polygon."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid "Returns the number of polygons in the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Returns a [PoolVector3Array] containing all the vertices being used to "
+"create the polygons."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/"
+"code] in the [member geometry/collision_mask].\n"
+"If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/"
+"code] in the [member geometry/collision_mask]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml doc/classes/NavigationPolygon.xml
+msgid ""
+"Sets the vertices that can be then indexed to create polygons with the "
+"[method add_polygon] method."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The minimum floor to ceiling height that will still allow the floor area to "
+"be considered walkable.\n"
+"[b]Note:[/b] While baking, this value will be rounded up to the nearest "
+"multiple of [member cell/height]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The minimum ledge height that is considered to still be traversable.\n"
+"[b]Note:[/b] While baking, this value will be rounded down to the nearest "
+"multiple of [member cell/height]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid "The maximum slope that is considered walkable, in degrees."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The distance to erode/shrink the walkable area of the heightfield away from "
+"obstructions.\n"
+"[b]Note:[/b] While baking, this value will be rounded up to the nearest "
+"multiple of [member cell/size]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid "The Y axis cell size to use for fields."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The sampling distance to use when generating the detail mesh, in cell unit."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The maximum distance the detail mesh surface should deviate from "
+"heightfield, in cell unit."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The maximum distance a simplfied contour's border edges should deviate the "
+"original raw contour."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The maximum allowed length for contour edges along the border of the mesh.\n"
+"[b]Note:[/b] While baking, this value will be rounded up to the nearest "
+"multiple of [member cell/size]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"If [code]true[/code], marks walkable spans as not walkable if the clearance "
+"above the span is less than [member agent/height]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid "If [code]true[/code], marks spans that are ledges as non-walkable."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"If [code]true[/code], marks non-walkable spans as walkable if their maximum "
+"is within [member agent/max_climb] of a walkable neighbor."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The physics layers to scan for static colliders.\n"
+"Only used when [member geometry/parsed_geometry_type] is [constant "
+"PARSED_GEOMETRY_STATIC_COLLIDERS] or [constant PARSED_GEOMETRY_BOTH]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Determines which type of nodes will be parsed as geometry. See [enum "
+"ParsedGeometryType] for possible values."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The source of the geometry used when baking. See [enum SourceGeometryMode] "
+"for possible values."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The name of the group to scan for geometry.\n"
+"Only used when [member geometry/source_geometry_mode] is [constant "
+"SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN] or [constant "
+"SOURCE_GEOMETRY_GROUPS_EXPLICIT]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The maximum number of vertices allowed for polygons generated during the "
+"contour to polygon conversion process."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Any regions with a size smaller than this will be merged with larger regions "
+"if possible.\n"
+"[b]Note:[/b] This value will be squared to calculate the number of cells. "
+"For example, a value of 20 will set the number of cells to 400."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"The minimum size of a region for it to be created.\n"
+"[b]Note:[/b] This value will be squared to calculate the minimum number of "
+"cells allowed to form isolated island areas. For example, a value of 8 will "
+"set the number of cells to 64."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Partitioning algorithm for creating the navigation mesh polys. See [enum "
+"SamplePartitionType] for possible values."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Watershed partitioning. Generally the best choice if you precompute the "
+"navigation mesh, use this if you have large open areas."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Monotone partitioning. Use this if you want fast navigation mesh generation."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Layer partitioning. Good choice to use for tiled navigation mesh with medium "
+"and small sized tiles."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid "Represents the size of the [enum SamplePartitionType] enum."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Parses mesh instances as geometry. This includes [MeshInstance], [CSGShape], "
+"and [GridMap] nodes."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Parses [StaticBody] colliders as geometry. The collider should be in any of "
+"the layers specified by [member geometry/collision_mask]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Both [constant PARSED_GEOMETRY_MESH_INSTANCES] and [constant "
+"PARSED_GEOMETRY_STATIC_COLLIDERS]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid "Represents the size of the [enum ParsedGeometryType] enum."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Scans the child nodes of [NavigationMeshInstance] recursively for geometry."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Scans nodes in a group and their child nodes recursively for geometry. The "
+"group is specified by [member geometry/source_group_name]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid ""
+"Uses nodes in a group for geometry. The group is specified by [member "
+"geometry/source_group_name]."
+msgstr ""
+
+#: doc/classes/NavigationMesh.xml
+msgid "Represents the size of the [enum SourceGeometryMode] enum."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "The [NavigationMesh] resource to use."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"A node that has methods to draw outlines or use indices of vertices to "
+"create navigation polygons."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"There are two ways to create polygons. Either by using the [method "
+"add_outline] method, or using the [method add_polygon] method.\n"
+"Using [method add_outline]:\n"
+"[codeblock]\n"
+"var polygon = NavigationPolygon.new()\n"
+"var outline = PoolVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, "
+"50), Vector2(50, 0)])\n"
+"polygon.add_outline(outline)\n"
+"polygon.make_polygons_from_outlines()\n"
+"$NavigationPolygonInstance.navpoly = polygon\n"
+"[/codeblock]\n"
+"Using [method add_polygon] and indices of the vertices array.\n"
+"[codeblock]\n"
+"var polygon = NavigationPolygon.new()\n"
+"var vertices = PoolVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, "
+"50), Vector2(50, 0)])\n"
+"polygon.set_vertices(vertices)\n"
+"var indices = PoolIntArray([0, 1, 2, 3])\n"
+"polygon.add_polygon(indices)\n"
+"$NavigationPolygonInstance.navpoly = polygon\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"Appends a [PoolVector2Array] that contains the vertices of an outline to the "
+"internal array that contains all the outlines. You have to call [method "
+"make_polygons_from_outlines] in order for this array to be converted to "
+"polygons that the engine will use."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"Adds a [PoolVector2Array] that contains the vertices of an outline to the "
+"internal array that contains all the outlines at a fixed position. You have "
+"to call [method make_polygons_from_outlines] in order for this array to be "
+"converted to polygons that the engine will use."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"Clears the array of the outlines, but it doesn't clear the vertices and the "
+"polygons that were created by them."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"Clears the array of polygons, but it doesn't clear the array of outlines and "
+"vertices."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"Returns a [PoolVector2Array] containing the vertices of an outline that was "
+"created in the editor or by script."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"Returns the number of outlines that were created in the editor or by script."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid "Returns the count of all polygons."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"Returns a [PoolVector2Array] containing all the vertices being used to "
+"create the polygons."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid "Creates polygons from the outlines added in the editor or by script."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"Removes an outline created in the editor or by script. You have to call "
+"[method make_polygons_from_outlines] for the polygons to update."
+msgstr ""
+
+#: doc/classes/NavigationPolygon.xml
+msgid ""
+"Changes an outline created in the editor or by script. You have to call "
+"[method make_polygons_from_outlines] for the polygons to update."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"PacketPeer implementation using the [url=http://enet.bespin.org/index."
+"html]ENet[/url] library."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"A PacketPeer implementation that should be passed to [member SceneTree."
+"network_peer] after being initialized as either a client or server. Events "
+"can then be handled by connecting to [SceneTree] signals.\n"
+"ENet's purpose is to provide a relatively thin, simple and robust network "
+"communication layer on top of UDP (User Datagram Protocol).\n"
+"[b]Note:[/b] ENet only uses UDP, not TCP. When forwarding the server port to "
+"make your server accessible on the public Internet, you only need to forward "
+"the server port in UDP. You can use the [UPNP] class to try to forward the "
+"server port automatically when starting the server."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "$DOCS_URL/tutorials/networking/high_level_multiplayer.html"
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid "http://enet.bespin.org/usergroup0.html"
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Closes the connection. Ignored if no connection is currently established. If "
+"this is a server it tries to notify all clients before forcibly "
+"disconnecting them. If this is a client it simply closes the connection to "
+"the server."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Create client that connects to a server at [code]address[/code] using "
+"specified [code]port[/code]. The given address needs to be either a fully "
+"qualified domain name (e.g. [code]\"www.example.com\"[/code]) or an IP "
+"address in IPv4 or IPv6 format (e.g. [code]\"192.168.1.1\"[/code]). The "
+"[code]port[/code] is the port the server is listening on. The "
+"[code]in_bandwidth[/code] and [code]out_bandwidth[/code] parameters can be "
+"used to limit the incoming and outgoing bandwidth to the given number of "
+"bytes per second. The default of 0 means unlimited bandwidth. Note that ENet "
+"will strategically drop packets on specific sides of a connection between "
+"peers to ensure the peer's bandwidth is not overwhelmed. The bandwidth "
+"parameters also determine the window size of a connection which limits the "
+"amount of reliable packets that may be in transit at any given time. Returns "
+"[constant OK] if a client was created, [constant ERR_ALREADY_IN_USE] if this "
+"NetworkedMultiplayerENet instance already has an open connection (in which "
+"case you need to call [method close_connection] first) or [constant "
+"ERR_CANT_CREATE] if the client could not be created. If [code]client_port[/"
+"code] is specified, the client will also listen to the given port; this is "
+"useful for some NAT traversal techniques."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Create server that listens to connections via [code]port[/code]. The port "
+"needs to be an available, unused port between 0 and 65535. Note that ports "
+"below 1024 are privileged and may require elevated permissions depending on "
+"the platform. To change the interface the server listens on, use [method "
+"set_bind_ip]. The default IP is the wildcard [code]\"*\"[/code], which "
+"listens on all available interfaces. [code]max_clients[/code] is the maximum "
+"number of clients that are allowed at once, any number up to 4095 may be "
+"used, although the achievable number of simultaneous clients may be far "
+"lower and depends on the application. For additional details on the "
+"bandwidth parameters, see [method create_client]. Returns [constant OK] if a "
+"server was created, [constant ERR_ALREADY_IN_USE] if this "
+"NetworkedMultiplayerENet instance already has an open connection (in which "
+"case you need to call [method close_connection] first) or [constant "
+"ERR_CANT_CREATE] if the server could not be created."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Disconnect the given peer. If \"now\" is set to [code]true[/code], the "
+"connection will be closed immediately without flushing queued messages."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Returns the channel of the last packet fetched via [method PacketPeer."
+"get_packet]."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Returns the channel of the next packet that will be retrieved via [method "
+"PacketPeer.get_packet]."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid "Returns the IP address of the given peer."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid "Returns the remote port of the given peer."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"The IP used when creating a server. This is set to the wildcard [code]\"*\"[/"
+"code] by default, which binds to all available interfaces. The given IP "
+"needs to be in IPv4 or IPv6 address format, for example: "
+"[code]\"192.168.1.1\"[/code]."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Configure the [X509Certificate] to use when [member use_dtls] is [code]true[/"
+"code]. For servers, you must also setup the [CryptoKey] via [method "
+"set_dtls_key]."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Configure the [CryptoKey] to use when [member use_dtls] is [code]true[/"
+"code]. Remember to also call [method set_dtls_certificate] to setup your "
+"[X509Certificate]."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Sets the timeout parameters for a peer.The timeout parameters control how "
+"and when a peer will timeout from a failure to acknowledge reliable traffic. "
+"Timeout values are expressed in milliseconds.\n"
+"The [code]timeout_limit[/code] is a factor that, multiplied by a value based "
+"on the average round trip time, will determine the timeout limit for a "
+"reliable packet. When that limit is reached, the timeout will be doubled, "
+"and the peer will be disconnected if that limit has reached "
+"[code]timeout_min[/code]. The [code]timeout_max[/code] parameter, on the "
+"other hand, defines a fixed timeout for which any packet must be "
+"acknowledged or the peer will be dropped."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Enforce ordered packets when using [constant NetworkedMultiplayerPeer."
+"TRANSFER_MODE_UNRELIABLE] (thus behaving similarly to [constant "
+"NetworkedMultiplayerPeer.TRANSFER_MODE_UNRELIABLE_ORDERED]). This is the "
+"only way to use ordering with the RPC system."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"The number of channels to be used by ENet. Channels are used to separate "
+"different kinds of data. In reliable or ordered mode, for example, the "
+"packet delivery order is ensured on a per-channel basis. This is done to "
+"combat latency and reduces ordering restrictions on packets. The delivery "
+"status of a packet in one channel won't stall the delivery of other packets "
+"in another channel."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"The compression method used for network packets. These have different "
+"tradeoffs of compression speed versus bandwidth, you may need to test which "
+"one works best for your use case if you use compression at all.\n"
+"[b]Note:[/b] Most games' network design involve sending many small packets "
+"frequently (smaller than 4 KB each). If in doubt, it is recommended to keep "
+"the default compression algorithm as it works best on these small packets.\n"
+"[b]Note:[/b] [member compression_mode] must be set to the same value on both "
+"the server and all its clients. Clients will fail to connect if the [member "
+"compression_mode] set on the client differs from the one set on the server. "
+"Prior to Godot 3.4, the default [member compression_mode] was [constant "
+"COMPRESS_NONE]. Nonetheless, mixing engine versions between clients and "
+"server is not recommended and not officially supported."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"The hostname used for DTLS verification, to be compared against the \"CN\" "
+"value in the certificate provided by the server.\n"
+"When set to an empty string, the [code]address[/code] parameter passed to "
+"[method create_client] is used instead."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Enable or disable certificate verification when [member use_dtls] "
+"[code]true[/code]."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Enable or disable the server feature that notifies clients of other peers' "
+"connection/disconnection, and relays messages between them. When this option "
+"is [code]false[/code], clients won't be automatically notified of other "
+"peers and won't be able to send them packets through the server."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"Set the default channel to be used to transfer data. By default, this value "
+"is [code]-1[/code] which means that ENet will only use 2 channels: one for "
+"reliable packets, and one for unreliable packets. The channel [code]0[/code] "
+"is reserved and cannot be used. Setting this member to any value between "
+"[code]0[/code] and [member channel_count] (excluded) will force ENet to use "
+"that channel for sending data. See [member channel_count] for more "
+"information about ENet channels."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"When enabled, the client or server created by this peer, will use "
+"[PacketPeerDTLS] instead of raw UDP sockets for communicating with the "
+"remote peer. This will make the communication encrypted with DTLS at the "
+"cost of higher resource usage and potentially larger packet size.\n"
+"[b]Note:[/b] When creating a DTLS server, make sure you setup the key/"
+"certificate pair via [method set_dtls_key] and [method "
+"set_dtls_certificate]. For DTLS clients, have a look at the [member "
+"dtls_verify] option, and configure the certificate accordingly via [method "
+"set_dtls_certificate]."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"No compression. This uses the most bandwidth, but has the upside of "
+"requiring the fewest CPU resources. This option may also be used to make "
+"network debugging using tools like Wireshark easier."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"ENet's built-in range encoding. Works well on small packets, but is not the "
+"most efficient algorithm on packets larger than 4 KB."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"[url=http://fastlz.org/]FastLZ[/url] compression. This option uses less CPU "
+"resources compared to [constant COMPRESS_ZLIB], at the expense of using more "
+"bandwidth."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid ""
+"[url=https://www.zlib.net/]Zlib[/url] compression. This option uses less "
+"bandwidth compared to [constant COMPRESS_FASTLZ], at the expense of using "
+"more CPU resources. Note that this algorithm is not very efficient on "
+"packets smaller than 4 KB. Therefore, it's recommended to use other "
+"compression algorithms in most cases."
+msgstr ""
+
+#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+msgid "[url=https://facebook.github.io/zstd/]Zstandard[/url] compression."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "A high-level network interface to simplify multiplayer interactions."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid ""
+"Manages the connection to network peers. Assigns unique IDs to each client "
+"connected to the server. See also [MultiplayerAPI].\n"
+"[b]Note:[/b] The high-level multiplayer API protocol is an implementation "
+"detail and isn't meant to be used by non-Godot servers. It may change "
+"without notice."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "https://godotengine.org/asset-library/asset/537"
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid ""
+"Returns the current state of the connection. See [enum ConnectionStatus]."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid ""
+"Returns the ID of the [NetworkedMultiplayerPeer] who sent the most recent "
+"packet."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "Returns the ID of this [NetworkedMultiplayerPeer]."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "Waits up to 1 second to receive a new network event."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid ""
+"Sets the peer to which packets will be sent.\n"
+"The [code]id[/code] can be one of: [constant TARGET_PEER_BROADCAST] to send "
+"to all connected peers, [constant TARGET_PEER_SERVER] to send to the peer "
+"acting as server, a valid peer ID to send to that specific peer, a negative "
+"peer ID to send to all peers except that one. By default, the target peer is "
+"[constant TARGET_PEER_BROADCAST]."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid ""
+"If [code]true[/code], this [NetworkedMultiplayerPeer] refuses new "
+"connections."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid ""
+"The manner in which to send packets to the [code]target_peer[/code]. See "
+"[enum TransferMode]."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "Emitted when a connection attempt fails."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "Emitted when a connection attempt succeeds."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "Emitted by the server when a client connects."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "Emitted by the server when a client disconnects."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "Emitted by clients when the server disconnects."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid ""
+"Packets are not acknowledged, no resend attempts are made for lost packets. "
+"Packets may arrive in any order. Potentially faster than [constant "
+"TRANSFER_MODE_UNRELIABLE_ORDERED]. Use for non-critical data, and always "
+"consider whether the order matters."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid ""
+"Packets are not acknowledged, no resend attempts are made for lost packets. "
+"Packets are received in the order they were sent in. Potentially faster than "
+"[constant TRANSFER_MODE_RELIABLE]. Use for non-critical data or data that "
+"would be outdated if received late due to resend attempt(s) anyway, for "
+"example movement and positional data."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid ""
+"Packets must be received and resend attempts should be made until the "
+"packets are acknowledged. Packets must be received in the order they were "
+"sent in. Most reliable transfer mode, but potentially the slowest due to the "
+"overhead. Use for critical data that must be transmitted and arrive in "
+"order, for example an ability being triggered or a chat message. Consider "
+"carefully if the information really is critical, and use sparingly."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "The ongoing connection disconnected."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "A connection attempt is ongoing."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "The connection attempt succeeded."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "Packets are sent to the server and then redistributed to other peers."
+msgstr ""
+
+#: doc/classes/NetworkedMultiplayerPeer.xml
+msgid "Packets are sent to the server alone."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"Scalable texture-based frame that tiles the texture's centers and sides, but "
+"keeps the corners' original size. Perfect for panels and dialog boxes."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"Also known as 9-slice panels, NinePatchRect produces clean panels of any "
+"size, based on a small texture. To do so, it splits the texture in a 3×3 "
+"grid. When you scale the node, it tiles the texture's sides horizontally or "
+"vertically, the center on both axes but it doesn't scale or tile the corners."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"Returns the size of the margin identified by the given [enum Margin] "
+"constant."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"Sets the size of the margin identified by the given [enum Margin] constant "
+"to [code]value[/code] in pixels."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"The stretch mode to use for horizontal stretching/tiling. See [enum "
+"NinePatchRect.AxisStretchMode] for possible values."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"The stretch mode to use for vertical stretching/tiling. See [enum "
+"NinePatchRect.AxisStretchMode] for possible values."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"If [code]true[/code], draw the panel's center. Else, only draw the 9-slice's "
+"borders."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"The height of the 9-slice's bottom row. A margin of 16 means the 9-slice's "
+"bottom corners and side will have a height of 16 pixels. You can set all 4 "
+"margin values individually to create panels with non-uniform borders."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"The width of the 9-slice's left column. A margin of 16 means the 9-slice's "
+"left corners and side will have a width of 16 pixels. You can set all 4 "
+"margin values individually to create panels with non-uniform borders."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"The width of the 9-slice's right column. A margin of 16 means the 9-slice's "
+"right corners and side will have a width of 16 pixels. You can set all 4 "
+"margin values individually to create panels with non-uniform borders."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"The height of the 9-slice's top row. A margin of 16 means the 9-slice's top "
+"corners and side will have a height of 16 pixels. You can set all 4 margin "
+"values individually to create panels with non-uniform borders."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"Rectangular region of the texture to sample from. If you're working with an "
+"atlas, use this property to define the area the 9-slice should use. All "
+"other properties are relative to this one. If the rect is empty, "
+"NinePatchRect will use the whole texture."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid "The node's texture resource."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid "Emitted when the node's texture changes."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"Stretches the center texture across the NinePatchRect. This may cause the "
+"texture to be distorted."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"Repeats the center texture across the NinePatchRect. This won't cause any "
+"visible distortion. The texture must be seamless for this to work without "
+"displaying artifacts between edges.\n"
+"[b]Note:[/b] Only supported when using the GLES3 renderer. When using the "
+"GLES2 renderer, this will behave like [constant AXIS_STRETCH_MODE_STRETCH]."
+msgstr ""
+
+#: doc/classes/NinePatchRect.xml
+msgid ""
+"Repeats the center texture across the NinePatchRect, but will also stretch "
+"the texture to make sure each tile is visible in full. This may cause the "
+"texture to be distorted, but less than [constant AXIS_STRETCH_MODE_STRETCH]. "
+"The texture must be seamless for this to work without displaying artifacts "
+"between edges.\n"
+"[b]Note:[/b] Only supported when using the GLES3 renderer. When using the "
+"GLES2 renderer, this will behave like [constant AXIS_STRETCH_MODE_STRETCH]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Base class for all [i]scene[/i] objects."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Nodes are Godot's building blocks. They can be assigned as the child of "
+"another node, resulting in a tree arrangement. A given node can contain any "
+"number of nodes as children with the requirement that all siblings (direct "
+"children of a node) should have unique names.\n"
+"A tree of nodes is called a [i]scene[/i]. Scenes can be saved to the disk "
+"and then instanced into other scenes. This allows for very high flexibility "
+"in the architecture and data model of Godot projects.\n"
+"[b]Scene tree:[/b] The [SceneTree] contains the active tree of nodes. When a "
+"node is added to the scene tree, it receives the [constant "
+"NOTIFICATION_ENTER_TREE] notification and its [method _enter_tree] callback "
+"is triggered. Child nodes are always added [i]after[/i] their parent node, i."
+"e. the [method _enter_tree] callback of a parent node will be triggered "
+"before its child's.\n"
+"Once all nodes have been added in the scene tree, they receive the [constant "
+"NOTIFICATION_READY] notification and their respective [method _ready] "
+"callbacks are triggered. For groups of nodes, the [method _ready] callback "
+"is called in reverse order, starting with the children and moving up to the "
+"parent nodes.\n"
+"This means that when adding a node to the scene tree, the following order "
+"will be used for the callbacks: [method _enter_tree] of the parent, [method "
+"_enter_tree] of the children, [method _ready] of the children and finally "
+"[method _ready] of the parent (recursively for the entire scene tree).\n"
+"[b]Processing:[/b] Nodes can override the \"process\" state, so that they "
+"receive a callback on each frame requesting them to process (do something). "
+"Normal processing (callback [method _process], toggled with [method "
+"set_process]) happens as fast as possible and is dependent on the frame "
+"rate, so the processing time [i]delta[/i] (in seconds) is passed as an "
+"argument. Physics processing (callback [method _physics_process], toggled "
+"with [method set_physics_process]) happens a fixed number of times per "
+"second (60 by default) and is useful for code related to the physics "
+"engine.\n"
+"Nodes can also process input events. When present, the [method _input] "
+"function will be called for each input that the program receives. In many "
+"cases, this can be overkill (unless used for simple projects), and the "
+"[method _unhandled_input] function might be preferred; it is called when the "
+"input event was not handled by anyone else (typically, GUI [Control] nodes), "
+"ensuring that the node only receives the events that were meant for it.\n"
+"To keep track of the scene hierarchy (especially when instancing scenes into "
+"other scenes), an \"owner\" can be set for the node with the [member owner] "
+"property. This keeps track of who instanced what. This is mostly useful when "
+"writing editors and tools, though.\n"
+"Finally, when a node is freed with [method Object.free] or [method "
+"queue_free], it will also free all its children.\n"
+"[b]Groups:[/b] Nodes can be added to as many groups as you want to be easy "
+"to manage, you could create groups like \"enemies\" or \"collectables\" for "
+"example, depending on your game. See [method add_to_group], [method "
+"is_in_group] and [method remove_from_group]. You can then retrieve all nodes "
+"in these groups, iterate them and even call methods on groups via the "
+"methods on [SceneTree].\n"
+"[b]Networking with nodes:[/b] After connecting to a server (or making one, "
+"see [NetworkedMultiplayerENet]), it is possible to use the built-in RPC "
+"(remote procedure call) system to communicate over the network. By calling "
+"[method rpc] with a method name, it will be called locally and in all "
+"connected peers (peers = clients and the server that accepts connections). "
+"To identify which node receives the RPC call, Godot will use its [NodePath] "
+"(make sure node names are the same on all peers). Also, take a look at the "
+"high-level networking tutorial and corresponding demos."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "$DOCS_URL/getting_started/step_by_step/nodes_and_scenes.html"
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "https://github.com/godotengine/godot-demo-projects/"
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Called when the node enters the [SceneTree] (e.g. upon instancing, scene "
+"changing, or after calling [method add_child] in a script). If the node has "
+"children, its [method _enter_tree] callback will be called first, and then "
+"that of the children.\n"
+"Corresponds to the [constant NOTIFICATION_ENTER_TREE] notification in "
+"[method Object._notification]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Called when the node is about to leave the [SceneTree] (e.g. upon freeing, "
+"scene changing, or after calling [method remove_child] in a script). If the "
+"node has children, its [method _exit_tree] callback will be called last, "
+"after all its children have left the tree.\n"
+"Corresponds to the [constant NOTIFICATION_EXIT_TREE] notification in [method "
+"Object._notification] and signal [signal tree_exiting]. To get notified when "
+"the node has already left the active tree, connect to the [signal "
+"tree_exited]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"The string returned from this method is displayed as a warning in the Scene "
+"Dock if the script that overrides it is a [code]tool[/code] script.\n"
+"Returning an empty string produces no warning.\n"
+"Call [method update_configuration_warning] when the warning needs to be "
+"updated for this node."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Called when there is an input event. The input event propagates up through "
+"the node tree until a node consumes it.\n"
+"It is only called if input processing is enabled, which is done "
+"automatically if this method is overridden, and can be toggled with [method "
+"set_process_input].\n"
+"To consume the input event and stop it propagating further to other nodes, "
+"[method SceneTree.set_input_as_handled] can be called.\n"
+"For gameplay input, [method _unhandled_input] and [method "
+"_unhandled_key_input] are usually a better fit as they allow the GUI to "
+"intercept the events first.\n"
+"[b]Note:[/b] This method is only called if the node is present in the scene "
+"tree (i.e. if it's not orphan)."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Called during the physics processing step of the main loop. Physics "
+"processing means that the frame rate is synced to the physics, i.e. the "
+"[code]delta[/code] variable should be constant. [code]delta[/code] is in "
+"seconds.\n"
+"It is only called if physics processing is enabled, which is done "
+"automatically if this method is overridden, and can be toggled with [method "
+"set_physics_process].\n"
+"Corresponds to the [constant NOTIFICATION_PHYSICS_PROCESS] notification in "
+"[method Object._notification].\n"
+"[b]Note:[/b] This method is only called if the node is present in the scene "
+"tree (i.e. if it's not orphan)."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Called during the processing step of the main loop. Processing happens at "
+"every frame and as fast as possible, so the [code]delta[/code] time since "
+"the previous frame is not constant. [code]delta[/code] is in seconds.\n"
+"It is only called if processing is enabled, which is done automatically if "
+"this method is overridden, and can be toggled with [method set_process].\n"
+"Corresponds to the [constant NOTIFICATION_PROCESS] notification in [method "
+"Object._notification].\n"
+"[b]Note:[/b] This method is only called if the node is present in the scene "
+"tree (i.e. if it's not orphan)."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Called when the node is \"ready\", i.e. when both the node and its children "
+"have entered the scene tree. If the node has children, their [method _ready] "
+"callbacks get triggered first, and the parent node will receive the ready "
+"notification afterwards.\n"
+"Corresponds to the [constant NOTIFICATION_READY] notification in [method "
+"Object._notification]. See also the [code]onready[/code] keyword for "
+"variables.\n"
+"Usually used for initialization. For even earlier initialization, [method "
+"Object._init] may be used. See also [method _enter_tree].\n"
+"[b]Note:[/b] [method _ready] may be called only once for each node. After "
+"removing a node from the scene tree and adding again, [code]_ready[/code] "
+"will not be called for the second time. This can be bypassed with requesting "
+"another call with [method request_ready], which may be called anywhere "
+"before adding the node again."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Called when an [InputEvent] hasn't been consumed by [method _input] or any "
+"GUI. The input event propagates up through the node tree until a node "
+"consumes it.\n"
+"It is only called if unhandled input processing is enabled, which is done "
+"automatically if this method is overridden, and can be toggled with [method "
+"set_process_unhandled_input].\n"
+"To consume the input event and stop it propagating further to other nodes, "
+"[method SceneTree.set_input_as_handled] can be called.\n"
+"For gameplay input, this and [method _unhandled_key_input] are usually a "
+"better fit than [method _input] as they allow the GUI to intercept the "
+"events first.\n"
+"[b]Note:[/b] This method is only called if the node is present in the scene "
+"tree (i.e. if it's not orphan)."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Called when an [InputEventKey] hasn't been consumed by [method _input] or "
+"any GUI. The input event propagates up through the node tree until a node "
+"consumes it.\n"
+"It is only called if unhandled key input processing is enabled, which is "
+"done automatically if this method is overridden, and can be toggled with "
+"[method set_process_unhandled_key_input].\n"
+"To consume the input event and stop it propagating further to other nodes, "
+"[method SceneTree.set_input_as_handled] can be called.\n"
+"For gameplay input, this and [method _unhandled_input] are usually a better "
+"fit than [method _input] as they allow the GUI to intercept the events "
+"first.\n"
+"[b]Note:[/b] This method is only called if the node is present in the scene "
+"tree (i.e. if it's not orphan)."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Adds a child node. Nodes can have any number of children, but every child "
+"must have a unique name. Child nodes are automatically deleted when the "
+"parent node is deleted, so an entire scene can be removed by deleting its "
+"topmost node.\n"
+"If [code]legible_unique_name[/code] is [code]true[/code], the child node "
+"will have a human-readable name based on the name of the node being "
+"instanced instead of its type.\n"
+"[b]Note:[/b] If the child node already has a parent, the function will fail. "
+"Use [method remove_child] first to remove the node from its current parent. "
+"For example:\n"
+"[codeblock]\n"
+"if child_node.get_parent():\n"
+" child_node.get_parent().remove_child(child_node)\n"
+"add_child(child_node)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] If you want a child to be persisted to a [PackedScene], you "
+"must set [member owner] in addition to calling [method add_child]. This is "
+"typically relevant for [url=https://godot.readthedocs.io/en/3.2/tutorials/"
+"misc/running_code_in_the_editor.html]tool scripts[/url] and [url=https://"
+"godot.readthedocs.io/en/latest/tutorials/plugins/editor/index.html]editor "
+"plugins[/url]. If [method add_child] is called without setting [member "
+"owner], the newly added [Node] will not be visible in the scene tree, though "
+"it will be visible in the 2D/3D view."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Adds [code]child_node[/code] as a child. The child is placed below the given "
+"[code]node[/code] in the list of children.\n"
+"If [code]legible_unique_name[/code] is [code]true[/code], the child node "
+"will have a human-readable name based on the name of the node being "
+"instanced instead of its type."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Adds the node to a group. Groups are helpers to name and organize a subset "
+"of nodes, for example \"enemies\" or \"collectables\". A node can be in any "
+"number of groups. Nodes can be assigned a group at any time, but will not be "
+"added until they are inside the scene tree (see [method is_inside_tree]). "
+"See notes in the description, and the group methods in [SceneTree].\n"
+"The [code]persistent[/code] option is used when packing node to "
+"[PackedScene] and saving to file. Non-persistent groups aren't stored.\n"
+"[b]Note:[/b] For performance reasons, the order of node groups is [i]not[/i] "
+"guaranteed. The order of node groups should not be relied upon as it can "
+"vary across project runs."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if the node can process while the scene tree is "
+"paused (see [member pause_mode]). Always returns [code]true[/code] if the "
+"scene tree is not paused, and [code]false[/code] if the node is not in the "
+"tree."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Duplicates the node, returning a new node.\n"
+"You can fine-tune the behavior using the [code]flags[/code] (see [enum "
+"DuplicateFlags]).\n"
+"[b]Note:[/b] It will not work properly if the node contains a script with "
+"constructor arguments (i.e. needs to supply arguments to [method Object."
+"_init] method). In that case, the node will be duplicated without a script."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Finds a descendant of this node whose name matches [code]mask[/code] as in "
+"[method String.match] (i.e. case-sensitive, but [code]\"*\"[/code] matches "
+"zero or more characters and [code]\"?\"[/code] matches any single character "
+"except [code]\".\"[/code]). Returns [code]null[/code] if no matching [Node] "
+"is found.\n"
+"[b]Note:[/b] It does not match against the full path, just against "
+"individual node names.\n"
+"If [code]owned[/code] is [code]true[/code], this method only finds nodes "
+"whose owner is this node. This is especially important for scenes "
+"instantiated through a script, because those scenes don't have an owner.\n"
+"[b]Note:[/b] As this method walks through all the descendants of the node, "
+"it is the slowest way to get a reference to another node. Whenever possible, "
+"consider using [method get_node] instead. To avoid using [method find_node] "
+"too often, consider caching the node reference into a variable."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Finds the first parent of the current node whose name matches [code]mask[/"
+"code] as in [method String.match] (i.e. case-sensitive, but [code]\"*\"[/"
+"code] matches zero or more characters and [code]\"?\"[/code] matches any "
+"single character except [code]\".\"[/code]).\n"
+"[b]Note:[/b] It does not match against the full path, just against "
+"individual node names.\n"
+"[b]Note:[/b] As this method walks upwards in the scene tree, it can be slow "
+"in large, deeply nested scene trees. Whenever possible, consider using "
+"[method get_node] instead. To avoid using [method find_parent] too often, "
+"consider caching the node reference into a variable."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns a child node by its index (see [method get_child_count]). This "
+"method is often used for iterating all children of a node.\n"
+"To access a child node via its name, use [method get_node]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Returns the number of child nodes."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Returns an array of references to node's children."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns an array listing the groups that the node is a member of.\n"
+"[b]Note:[/b] For performance reasons, the order of node groups is [i]not[/i] "
+"guaranteed. The order of node groups should not be relied upon as it can "
+"vary across project runs.\n"
+"[b]Note:[/b] The engine uses some group names internally (all starting with "
+"an underscore). To avoid conflicts with internal groups, do not add custom "
+"groups whose name starts with an underscore. To exclude internal groups "
+"while looping over [method get_groups], use the following snippet:\n"
+"[codeblock]\n"
+"# Stores the node's non-internal groups only (as an array of Strings).\n"
+"var non_internal_groups = []\n"
+"for group in get_groups():\n"
+" if not group.begins_with(\"_\"):\n"
+" non_internal_groups.push_back(group)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns the node's index, i.e. its position among the siblings of its parent."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns the peer ID of the network master for this node. See [method "
+"set_network_master]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Fetches a node. The [NodePath] can be either a relative path (from the "
+"current node) or an absolute path (in the scene tree) to a node. If the path "
+"does not exist, [code]null[/code] is returned and an error is logged. "
+"Attempts to access methods on the return value will result in an \"Attempt "
+"to call <method> on a null instance.\" error.\n"
+"[b]Note:[/b] Fetching absolute paths only works when the node is inside the "
+"scene tree (see [method is_inside_tree]).\n"
+"[b]Example:[/b] Assume your current node is Character and the following "
+"tree:\n"
+"[codeblock]\n"
+"/root\n"
+"/root/Character\n"
+"/root/Character/Sword\n"
+"/root/Character/Backpack/Dagger\n"
+"/root/MyGame\n"
+"/root/Swamp/Alligator\n"
+"/root/Swamp/Mosquito\n"
+"/root/Swamp/Goblin\n"
+"[/codeblock]\n"
+"Possible paths are:\n"
+"[codeblock]\n"
+"get_node(\"Sword\")\n"
+"get_node(\"Backpack/Dagger\")\n"
+"get_node(\"../Swamp/Alligator\")\n"
+"get_node(\"/root/MyGame\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Fetches a node and one of its resources as specified by the [NodePath]'s "
+"subname (e.g. [code]Area2D/CollisionShape2D:shape[/code]). If several nested "
+"resources are specified in the [NodePath], the last one will be fetched.\n"
+"The return value is an array of size 3: the first index points to the [Node] "
+"(or [code]null[/code] if not found), the second index points to the "
+"[Resource] (or [code]null[/code] if not found), and the third index is the "
+"remaining [NodePath], if any.\n"
+"For example, assuming that [code]Area2D/CollisionShape2D[/code] is a valid "
+"node and that its [code]shape[/code] property has been assigned a "
+"[RectangleShape2D] resource, one could have this kind of output:\n"
+"[codeblock]\n"
+"print(get_node_and_resource(\"Area2D/CollisionShape2D\")) # "
+"[[CollisionShape2D:1161], Null, ]\n"
+"print(get_node_and_resource(\"Area2D/CollisionShape2D:shape\")) # "
+"[[CollisionShape2D:1161], [RectangleShape2D:1156], ]\n"
+"print(get_node_and_resource(\"Area2D/CollisionShape2D:shape:extents\")) # "
+"[[CollisionShape2D:1161], [RectangleShape2D:1156], :extents]\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Similar to [method get_node], but does not log an error if [code]path[/code] "
+"does not point to a valid [Node]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns the parent node of the current node, or [code]null[/code] if the "
+"node lacks a parent."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns the absolute path of the current node. This only works if the "
+"current node is inside the scene tree (see [method is_inside_tree])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns the relative [NodePath] from this node to the specified [code]node[/"
+"code]. Both nodes must be in the same scene or the function will fail."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns the time elapsed (in seconds) since the last physics-bound frame "
+"(see [method _physics_process]). This is always a constant value in physics "
+"processing unless the frames per second is changed via [member Engine."
+"iterations_per_second]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns the node's order in the scene tree branch. For example, if called on "
+"the first child node the position is [code]0[/code]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns the time elapsed (in seconds) since the last process callback. This "
+"value may vary from frame to frame."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if this is an instance load placeholder. See "
+"[InstancePlaceholder]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Returns the [SceneTree] that contains this node."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Returns the node's [Viewport]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if the node that the [NodePath] points to exists."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if the [NodePath] points to a valid node and its "
+"subname points to a valid resource, e.g. [code]Area2D/CollisionShape2D:"
+"shape[/code]. Properties with a non-[Resource] type (e.g. nodes or primitive "
+"math types) are not considered resources."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if the given node is a direct or indirect child of "
+"the current node."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if the node is folded (collapsed) in the Scene "
+"dock."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if the given node occurs later in the scene "
+"hierarchy than the current node."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if this node is in the specified group. See notes "
+"in the description, and the group methods in [SceneTree]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if this node is currently inside a [SceneTree]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if the local system is the master of this node."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if physics processing is enabled (see [method "
+"set_physics_process])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if internal physics processing is enabled (see "
+"[method set_physics_process_internal])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if processing is enabled (see [method "
+"set_process])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if the node is processing input (see [method "
+"set_process_input])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if internal processing is enabled (see [method "
+"set_process_internal])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if the node is processing unhandled input (see "
+"[method set_process_unhandled_input])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Returns [code]true[/code] if the node is processing unhandled key input (see "
+"[method set_process_unhandled_key_input])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Moves a child node to a different position (order) among the other children. "
+"Since calls, signals, etc are performed by tree order, changing the order of "
+"children nodes may be useful."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Prints all stray nodes (nodes outside the [SceneTree]). Used for debugging. "
+"Works only in debug builds."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Prints the tree to stdout. Used mainly for debugging purposes. This version "
+"displays the path relative to the current node, and is good for copy/pasting "
+"into the [method get_node] function.\n"
+"[b]Example output:[/b]\n"
+"[codeblock]\n"
+"TheGame\n"
+"TheGame/Menu\n"
+"TheGame/Menu/Label\n"
+"TheGame/Menu/Camera2D\n"
+"TheGame/SplashScreen\n"
+"TheGame/SplashScreen/Camera2D\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Similar to [method print_tree], this prints the tree to stdout. This version "
+"displays a more graphical representation similar to what is displayed in the "
+"scene inspector. It is useful for inspecting larger trees.\n"
+"[b]Example output:[/b]\n"
+"[codeblock]\n"
+" â”–â•´TheGame\n"
+" â” â•´Menu\n"
+" ┃ ┠╴Label\n"
+" ┃ ┖╴Camera2D\n"
+" â”–â•´SplashScreen\n"
+" â”–â•´Camera2D\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Calls the given method (if present) with the arguments given in [code]args[/"
+"code] on this node and recursively on all its children. If the "
+"[code]parent_first[/code] argument is [code]true[/code], the method will be "
+"called on the current node first, then on all its children. If "
+"[code]parent_first[/code] is [code]false[/code], the children will be called "
+"first."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Notifies the current node and all its children recursively by calling "
+"[method Object.notification] on all of them."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Queues a node for deletion at the end of the current frame. When deleted, "
+"all of its child nodes will be deleted as well. This method ensures it's "
+"safe to delete the node, contrary to [method Object.free]. Use [method "
+"Object.is_queued_for_deletion] to check whether a node will be deleted at "
+"the end of the frame.\n"
+"[b]Important:[/b] If you have a variable pointing to a node, it will [i]not[/"
+"i] be assigned to [code]null[/code] once the node is freed. Instead, it will "
+"point to a [i]previously freed instance[/i] and you should validate it with "
+"[method @GDScript.is_instance_valid] before attempting to call its methods "
+"or access its properties."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Moves this node to the bottom of parent node's children hierarchy. This is "
+"often useful in GUIs ([Control] nodes), because their order of drawing "
+"depends on their order in the tree. The top Node is drawn first, then any "
+"siblings below the top Node in the hierarchy are successively drawn on top "
+"of it. After using [code]raise[/code], a Control will be drawn on top of its "
+"siblings."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Removes a node and sets all its children as children of the parent node (if "
+"it exists). All event subscriptions that pass by the removed node will be "
+"unsubscribed."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Removes a child node. The node is NOT deleted and must be deleted manually.\n"
+"[b]Note:[/b] This function may set the [member owner] of the removed Node "
+"(or its descendants) to be [code]null[/code], if that [member owner] is no "
+"longer a parent or ancestor."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Removes a node from a group. See notes in the description, and the group "
+"methods in [SceneTree]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Replaces a node in a scene by the given one. Subscriptions that pass through "
+"this node will be lost.\n"
+"[b]Note:[/b] The given node will become the new parent of any child nodes "
+"that the replaced node had.\n"
+"[b]Note:[/b] The replaced node is not automatically freed, so you either "
+"need to keep it in a variable for later use or free it using [method Object."
+"free]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Requests that [code]_ready[/code] be called again. Note that the method "
+"won't be called immediately, but is scheduled for when the node is added to "
+"the scene tree again (see [method _ready]). [code]_ready[/code] is called "
+"only for the node which requested it, which means that you need to request "
+"ready for each child if you want them to call [code]_ready[/code] too (in "
+"which case, [code]_ready[/code] will be called in the same order as it would "
+"normally)."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Sends a remote procedure call request for the given [code]method[/code] to "
+"peers on the network (and locally), optionally sending all additional "
+"arguments as arguments to the method called by the RPC. The call request "
+"will only be received by nodes with the same [NodePath], including the exact "
+"same node name. Behaviour depends on the RPC configuration for the given "
+"method, see [method rpc_config]. Methods are not exposed to RPCs by default. "
+"See also [method rset] and [method rset_config] for properties. Returns an "
+"empty [Variant].\n"
+"[b]Note:[/b] You can only safely use RPCs on clients after you received the "
+"[code]connected_to_server[/code] signal from the [SceneTree]. You also need "
+"to keep track of the connection state, either by the [SceneTree] signals "
+"like [code]server_disconnected[/code] or by checking [code]SceneTree."
+"network_peer.get_connection_status() == CONNECTION_CONNECTED[/code]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Changes the RPC mode for the given [code]method[/code] to the given "
+"[code]mode[/code]. See [enum MultiplayerAPI.RPCMode]. An alternative is "
+"annotating methods and properties with the corresponding keywords "
+"([code]remote[/code], [code]master[/code], [code]puppet[/code], "
+"[code]remotesync[/code], [code]mastersync[/code], [code]puppetsync[/code]). "
+"By default, methods are not exposed to networking (and RPCs). See also "
+"[method rset] and [method rset_config] for properties."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] "
+"(see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty "
+"[Variant]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Sends a [method rpc] using an unreliable protocol. Returns an empty "
+"[Variant]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] "
+"using an unreliable protocol (see [method NetworkedMultiplayerPeer."
+"set_target_peer]). Returns an empty [Variant]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Remotely changes a property's value on other peers (and locally). Behaviour "
+"depends on the RPC configuration for the given property, see [method "
+"rset_config]. See also [method rpc] for RPCs for methods, most information "
+"applies to this method as well."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Changes the RPC mode for the given [code]property[/code] to the given "
+"[code]mode[/code]. See [enum MultiplayerAPI.RPCMode]. An alternative is "
+"annotating methods and properties with the corresponding keywords "
+"([code]remote[/code], [code]master[/code], [code]puppet[/code], "
+"[code]remotesync[/code], [code]mastersync[/code], [code]puppetsync[/code]). "
+"By default, properties are not exposed to networking (and RPCs). See also "
+"[method rpc] and [method rpc_config] for methods."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Remotely changes the property's value on a specific peer identified by "
+"[code]peer_id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Remotely changes the property's value on other peers (and locally) using an "
+"unreliable protocol."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Remotely changes property's value on a specific peer identified by "
+"[code]peer_id[/code] using an unreliable protocol (see [method "
+"NetworkedMultiplayerPeer.set_target_peer])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Sets the folded state of the node in the Scene dock."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Sets the node's network master to the peer with the given peer ID. The "
+"network master is the peer that has authority over the node on the network. "
+"Useful in conjunction with the [code]master[/code] and [code]puppet[/code] "
+"keywords. Inherited from the parent node by default, which ultimately "
+"defaults to peer ID 1 (the server). If [code]recursive[/code], the given "
+"peer is recursively set as the master for all children of this node."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Enables or disables physics (i.e. fixed framerate) processing. When a node "
+"is being processed, it will receive a [constant "
+"NOTIFICATION_PHYSICS_PROCESS] at a fixed (usually 60 FPS, see [member Engine."
+"iterations_per_second] to change) interval (and the [method "
+"_physics_process] callback will be called if exists). Enabled automatically "
+"if [method _physics_process] is overridden. Any calls to this before [method "
+"_ready] will be ignored."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Enables or disables internal physics for this node. Internal physics "
+"processing happens in isolation from the normal [method _physics_process] "
+"calls and is used by some nodes internally to guarantee proper functioning "
+"even if the node is paused or physics processing is disabled for scripting "
+"([method set_physics_process]). Only useful for advanced uses to manipulate "
+"built-in nodes' behavior.\n"
+"[b]Warning:[/b] Built-in Nodes rely on the internal processing for their own "
+"logic, so changing this value from your code may lead to unexpected "
+"behavior. Script access to this internal logic is provided for specific "
+"advanced uses, but is unsafe and not supported."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Enables or disables processing. When a node is being processed, it will "
+"receive a [constant NOTIFICATION_PROCESS] on every drawn frame (and the "
+"[method _process] callback will be called if exists). Enabled automatically "
+"if [method _process] is overridden. Any calls to this before [method _ready] "
+"will be ignored."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Enables or disables input processing. This is not required for GUI controls! "
+"Enabled automatically if [method _input] is overridden. Any calls to this "
+"before [method _ready] will be ignored."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Enables or disabled internal processing for this node. Internal processing "
+"happens in isolation from the normal [method _process] calls and is used by "
+"some nodes internally to guarantee proper functioning even if the node is "
+"paused or processing is disabled for scripting ([method set_process]). Only "
+"useful for advanced uses to manipulate built-in nodes' behavior.\n"
+"[b]Warning:[/b] Built-in Nodes rely on the internal processing for their own "
+"logic, so changing this value from your code may lead to unexpected "
+"behavior. Script access to this internal logic is provided for specific "
+"advanced uses, but is unsafe and not supported."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Enables unhandled input processing. This is not required for GUI controls! "
+"It enables the node to receive all input that was not previously handled "
+"(usually by a [Control]). Enabled automatically if [method _unhandled_input] "
+"is overridden. Any calls to this before [method _ready] will be ignored."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Enables unhandled key input processing. Enabled automatically if [method "
+"_unhandled_key_input] is overridden. Any calls to this before [method "
+"_ready] will be ignored."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Sets whether this is an instance load placeholder. See [InstancePlaceholder]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Updates the warning displayed for this node in the Scene Dock.\n"
+"Use [method _get_configuration_warning] to setup the warning message to "
+"display."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"The override to the default [MultiplayerAPI]. Set to [code]null[/code] to "
+"use the default [SceneTree] one."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"If a scene is instantiated from a file, its topmost node contains the "
+"absolute file path from which it was loaded in [member filename] (e.g. "
+"[code]res://levels/1.tscn[/code]). Otherwise, [member filename] is set to an "
+"empty string."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"The [MultiplayerAPI] instance associated with this node. Either the [member "
+"custom_multiplayer], or the default SceneTree one (if inside tree)."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"The name of the node. This name is unique among the siblings (other child "
+"nodes from the same parent). When set to an existing name, the node will be "
+"automatically renamed.\n"
+"[b]Note:[/b] Auto-generated names might include the [code]@[/code] "
+"character, which is reserved for unique names when using [method add_child]. "
+"When setting the name manually, any [code]@[/code] will be removed."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"The node owner. A node can have any other node as owner (as long as it is a "
+"valid parent, grandparent, etc. ascending in the tree). When saving a node "
+"(using [PackedScene]), all the nodes it owns will be saved with it. This "
+"allows for the creation of complex [SceneTree]s, with instancing and "
+"subinstancing."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Pause mode. How the node will behave if the [SceneTree] is paused."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"The node's priority in the execution order of the enabled processing "
+"callbacks (i.e. [constant NOTIFICATION_PROCESS], [constant "
+"NOTIFICATION_PHYSICS_PROCESS] and their internal counterparts). Nodes whose "
+"process priority value is [i]lower[/i] will have their processing callbacks "
+"executed first."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Emitted when the node is ready."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Emitted when the node is renamed."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Emitted when the node enters the tree."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Emitted after the node exits the tree and is no longer active."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Emitted when the node is still active but about to exit the tree. This is "
+"the right place for de-initialization (or a \"destructor\", if you will)."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Notification received when the node enters a [SceneTree]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Notification received when the node is about to exit a [SceneTree]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Notification received when the node is moved in the parent."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Notification received when the node is ready. See [method _ready]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Notification received when the node is paused."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Notification received when the node is unpaused."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Notification received every frame when the physics process flag is set (see "
+"[method set_physics_process])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Notification received every frame when the process flag is set (see [method "
+"set_process])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Notification received when a node is set as a child of another node.\n"
+"[b]Note:[/b] This doesn't mean that a node entered the [SceneTree]."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Notification received when a node is unparented (parent removed it from the "
+"list of children)."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Notification received when the node is instanced."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Notification received when a drag begins."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Notification received when a drag ends."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Notification received when the node's [NodePath] changed."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Notification received every frame when the internal process flag is set (see "
+"[method set_process_internal])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Notification received every frame when the internal physics process flag is "
+"set (see [method set_physics_process_internal])."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Notification received when the node is ready, just before [constant "
+"NOTIFICATION_READY] is received. Unlike the latter, it's sent every time the "
+"node enters tree, instead of only once."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Inherits pause mode from the node's parent. For the root node, it is "
+"equivalent to [constant PAUSE_MODE_STOP]. Default."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Stops processing when the [SceneTree] is paused."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Continue to process regardless of the [SceneTree] pause state."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Duplicate the node's signals."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Duplicate the node's groups."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid "Duplicate the node's scripts."
+msgstr ""
+
+#: doc/classes/Node.xml
+msgid ""
+"Duplicate using instancing.\n"
+"An instance stays linked to the original so when the original changes, the "
+"instance changes too."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"A 2D game object, inherited by all 2D-related nodes. Has a position, "
+"rotation, scale, and Z index."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"A 2D game object, with a transform (position, rotation, and scale). All 2D "
+"nodes, including physics objects and sprites, inherit from Node2D. Use "
+"Node2D as a parent node to move, scale and rotate children in a 2D project. "
+"Also gives control of the node's render order."
+msgstr ""
+
+#: doc/classes/Node2D.xml doc/classes/Vector2.xml
+msgid "https://github.com/godotengine/godot-demo-projects/tree/master/2d"
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Multiplies the current scale by the [code]ratio[/code] vector."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"Returns the angle between the node and the [code]point[/code] in radians.\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"node2d_get_angle_to.png]Illustration of the returned angle.[/url]"
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Returns the [Transform2D] relative to this node's parent."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Adds the [code]offset[/code] vector to the node's global position."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"Rotates the node so it points towards the [code]point[/code], which is "
+"expected to use global coordinates."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"Applies a local translation on the node's X axis based on the [method Node."
+"_process]'s [code]delta[/code]. If [code]scaled[/code] is [code]false[/"
+"code], normalizes the movement."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"Applies a local translation on the node's Y axis based on the [method Node."
+"_process]'s [code]delta[/code]. If [code]scaled[/code] is [code]false[/"
+"code], normalizes the movement."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"Applies a rotation to the node, in radians, starting from its current "
+"rotation."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"Transforms the provided local position into a position in global coordinate "
+"space. The input is expected to be local relative to the [Node2D] it is "
+"called on. e.g. Applying this method to the positions of child nodes will "
+"correctly transform their positions into the global coordinate space, but "
+"applying it to a node's own position will give an incorrect result, as it "
+"will incorporate the node's own transformation into its global position."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"Transforms the provided global position into a position in local coordinate "
+"space. The output will be local relative to the [Node2D] it is called on. e."
+"g. It is appropriate for determining the positions of child nodes, but it is "
+"not appropriate for determining its own position relative to its parent."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"Translates the node by the given [code]offset[/code] in local coordinates."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Global position."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Global rotation in radians."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Global rotation in degrees."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Global scale."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Global [Transform2D]."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Position, relative to the node's parent."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Rotation in radians, relative to the node's parent."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Rotation in degrees, relative to the node's parent."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "The node's scale. Unscaled value: [code](1, 1)[/code]."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid "Local [Transform2D]."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"If [code]true[/code], the node's Z index is relative to its parent's Z "
+"index. If this node's Z index is 2 and its parent's effective Z index is 3, "
+"then this node's effective Z index will be 2 + 3 = 5."
+msgstr ""
+
+#: doc/classes/Node2D.xml
+msgid ""
+"Z index. Controls the order in which the nodes render. A node with a higher "
+"Z index will display in front of others. Must be between [constant "
+"VisualServer.CANVAS_ITEM_Z_MIN] and [constant VisualServer."
+"CANVAS_ITEM_Z_MAX] (inclusive)."
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid "Pre-parsed scene tree path."
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid ""
+"A pre-parsed relative or absolute path in a scene tree, for use with [method "
+"Node.get_node] and similar functions. It can reference a node, a resource "
+"within a node, or a property of a node or resource. For instance, "
+"[code]\"Path2D/PathFollow2D/Sprite:texture:size\"[/code] would refer to the "
+"[code]size[/code] property of the [code]texture[/code] resource on the node "
+"named [code]\"Sprite\"[/code] which is a child of the other named nodes in "
+"the path.\n"
+"You will usually just pass a string to [method Node.get_node] and it will be "
+"automatically converted, but you may occasionally want to parse a path ahead "
+"of time with [NodePath] or the literal syntax [code]@\"path\"[/code]. "
+"Exporting a [NodePath] variable will give you a node selection widget in the "
+"properties panel of the editor, which can often be useful.\n"
+"A [NodePath] is composed of a list of slash-separated node names (like a "
+"filesystem path) and an optional colon-separated list of \"subnames\" which "
+"can be resources or properties.\n"
+"Some examples of NodePaths include the following:\n"
+"[codeblock]\n"
+"# No leading slash means it is relative to the current node.\n"
+"@\"A\" # Immediate child A\n"
+"@\"A/B\" # A's child B\n"
+"@\".\" # The current node.\n"
+"@\"..\" # The parent node.\n"
+"@\"../C\" # A sibling node C.\n"
+"# A leading slash means it is absolute from the SceneTree.\n"
+"@\"/root\" # Equivalent to get_tree().get_root().\n"
+"@\"/root/Main\" # If your main scene's root node were named \"Main\".\n"
+"@\"/root/MyAutoload\" # If you have an autoloaded node or scene.\n"
+"[/codeblock]\n"
+"[b]Note:[/b] In the editor, [NodePath] properties are automatically updated "
+"when moving, renaming or deleting a node in the scene tree, but they are "
+"never updated at runtime."
+msgstr ""
+
+#: doc/classes/NodePath.xml doc/classes/PackedScene.xml doc/classes/Panel.xml
+#: doc/classes/PanelContainer.xml doc/classes/TileMap.xml
+#: doc/classes/TileSet.xml
+msgid "https://godotengine.org/asset-library/asset/520"
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid ""
+"Creates a NodePath from a string, e.g. [code]\"Path2D/PathFollow2D/Sprite:"
+"texture:size\"[/code]. A path is absolute if it starts with a slash. "
+"Absolute paths are only valid in the global scene tree, not within "
+"individual scenes. In a relative path, [code]\".\"[/code] and [code]\"..\"[/"
+"code] indicate the current node and its parent.\n"
+"The \"subnames\" optionally included after the path to the target node can "
+"point to resources or properties, and can also be nested.\n"
+"Examples of valid NodePaths (assuming that those nodes exist and have the "
+"referenced resources or properties):\n"
+"[codeblock]\n"
+"# Points to the Sprite node\n"
+"\"Path2D/PathFollow2D/Sprite\"\n"
+"# Points to the Sprite node and its \"texture\" resource.\n"
+"# get_node() would retrieve \"Sprite\", while get_node_and_resource()\n"
+"# would retrieve both the Sprite node and the \"texture\" resource.\n"
+"\"Path2D/PathFollow2D/Sprite:texture\"\n"
+"# Points to the Sprite node and its \"position\" property.\n"
+"\"Path2D/PathFollow2D/Sprite:position\"\n"
+"# Points to the Sprite node and the \"x\" component of its \"position\" "
+"property.\n"
+"\"Path2D/PathFollow2D/Sprite:position:x\"\n"
+"# Absolute path (from \"root\")\n"
+"\"/root/Level/Path2D\"\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid ""
+"Returns a node path with a colon character ([code]:[/code]) prepended, "
+"transforming it to a pure property path with no node name (defaults to "
+"resolving from the current node).\n"
+"[codeblock]\n"
+"# This will be parsed as a node path to the \"x\" property in the \"position"
+"\" node\n"
+"var node_path = NodePath(\"position:x\")\n"
+"# This will be parsed as a node path to the \"x\" component of the \"position"
+"\" property in the current node\n"
+"var property_path = node_path.get_as_property_path()\n"
+"print(property_path) # :position:x\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid ""
+"Returns all subnames concatenated with a colon character ([code]:[/code]) as "
+"separator, i.e. the right side of the first colon in a node path.\n"
+"[codeblock]\n"
+"var nodepath = NodePath(\"Path2D/PathFollow2D/Sprite:texture:load_path\")\n"
+"print(nodepath.get_concatenated_subnames()) # texture:load_path\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid ""
+"Gets the node name indicated by [code]idx[/code] (0 to [method "
+"get_name_count]).\n"
+"[codeblock]\n"
+"var node_path = NodePath(\"Path2D/PathFollow2D/Sprite\")\n"
+"print(node_path.get_name(0)) # Path2D\n"
+"print(node_path.get_name(1)) # PathFollow2D\n"
+"print(node_path.get_name(2)) # Sprite\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid ""
+"Gets the number of node names which make up the path. Subnames (see [method "
+"get_subname_count]) are not included.\n"
+"For example, [code]\"Path2D/PathFollow2D/Sprite\"[/code] has 3 names."
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid ""
+"Gets the resource or property name indicated by [code]idx[/code] (0 to "
+"[method get_subname_count]).\n"
+"[codeblock]\n"
+"var node_path = NodePath(\"Path2D/PathFollow2D/Sprite:texture:load_path\")\n"
+"print(node_path.get_subname(0)) # texture\n"
+"print(node_path.get_subname(1)) # load_path\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid ""
+"Gets the number of resource or property names (\"subnames\") in the path. "
+"Each subname is listed after a colon character ([code]:[/code]) in the node "
+"path.\n"
+"For example, [code]\"Path2D/PathFollow2D/Sprite:texture:load_path\"[/code] "
+"has 2 subnames."
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid ""
+"Returns [code]true[/code] if the node path is absolute (as opposed to "
+"relative), which means that it starts with a slash character ([code]/[/"
+"code]). Absolute node paths can be used to access the root node ([code]\"/"
+"root\"[/code]) or autoloads (e.g. [code]\"/global\"[/code] if a \"global\" "
+"autoload was registered)."
+msgstr ""
+
+#: doc/classes/NodePath.xml
+msgid "Returns [code]true[/code] if the node path is empty."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/NoiseTexture.xml
+msgid "[OpenSimplexNoise] filled texture."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/NoiseTexture.xml
+msgid ""
+"Uses an [OpenSimplexNoise] to fill the texture data. You can specify the "
+"texture size but keep in mind that larger textures will take longer to "
+"generate and seamless noise only works with square sized textures.\n"
+"NoiseTexture can also generate normalmap textures.\n"
+"The class uses [Thread]s to generate the texture data internally, so [method "
+"Texture.get_data] may return [code]null[/code] if the generation process has "
+"not completed yet. In that case, you need to wait for the texture to be "
+"generated before accessing the data:\n"
+"[codeblock]\n"
+"var texture = preload(\"res://noise.tres\")\n"
+"yield(texture, \"changed\")\n"
+"var image = texture.get_data()\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/opensimplex/doc_classes/NoiseTexture.xml
+msgid ""
+"If [code]true[/code], the resulting texture contains a normal map created "
+"from the original noise interpreted as a bump map."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/NoiseTexture.xml
+msgid ""
+"Strength of the bump maps used in this texture. A higher value will make the "
+"bump maps appear larger while a lower value will make them appear softer."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/NoiseTexture.xml
+msgid "Height of the generated texture."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/NoiseTexture.xml
+msgid "The [OpenSimplexNoise] instance used to generate the noise."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/NoiseTexture.xml
+msgid ""
+"An offset used to specify the noise space coordinate of the top left corner "
+"of the generated noise. This value is ignored if [member seamless] is "
+"enabled."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/NoiseTexture.xml
+msgid ""
+"Whether the texture can be tiled without visible seams or not. Seamless "
+"textures take longer to generate.\n"
+"[b]Note:[/b] Seamless noise has a lower contrast compared to non-seamless "
+"noise. This is due to the way noise uses higher dimensions for generating "
+"seamless noise."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/NoiseTexture.xml
+msgid "Width of the generated texture."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Base class for all non-built-in types."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Every class which is not a built-in type inherits from this class.\n"
+"You can construct Objects from scripting languages, using [code]Object.new()"
+"[/code] in GDScript, [code]new Object[/code] in C#, or the \"Construct Object"
+"\" node in VisualScript.\n"
+"Objects do not manage memory. If a class inherits from Object, you will have "
+"to delete instances of it manually. To do so, call the [method free] method "
+"from your script or delete the instance from C++.\n"
+"Some classes that extend Object add memory management. This is the case of "
+"[Reference], which counts references and deletes itself automatically when "
+"no longer referenced. [Node], another fundamental type, deletes all its "
+"children when freed from memory.\n"
+"Objects export properties, which are mainly useful for storage and editing, "
+"but not really so much in programming. Properties are exported in [method "
+"_get_property_list] and handled in [method _get] and [method _set]. However, "
+"scripting languages and C++ have simpler means to export them.\n"
+"Property membership can be tested directly in GDScript using [code]in[/"
+"code]:\n"
+"[codeblock]\n"
+"var n = Node2D.new()\n"
+"print(\"position\" in n) # Prints \"True\".\n"
+"print(\"other_property\" in n) # Prints \"False\".\n"
+"[/codeblock]\n"
+"The [code]in[/code] operator will evaluate to [code]true[/code] as long as "
+"the key exists, even if the value is [code]null[/code].\n"
+"Objects also receive notifications. Notifications are a simple way to notify "
+"the object about different events, so they can all be handled together. See "
+"[method _notification].\n"
+"[b]Note:[/b] Unlike references to a [Reference], references to an Object "
+"stored in a variable can become invalid without warning. Therefore, it's "
+"recommended to use [Reference] for data classes instead of [Object].\n"
+"[b]Note:[/b] Due to a bug, you can't create a \"plain\" Object using "
+"[code]Object.new()[/code]. Instead, use [code]ClassDB.instance(\"Object\")[/"
+"code]. This bug only applies to Object itself, not any of its descendents "
+"like [Reference]."
+msgstr ""
+
+#: doc/classes/Object.xml doc/classes/Reference.xml doc/classes/Resource.xml
+msgid "$DOCS_URL/tutorials/best_practices/node_alternatives.html"
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"$DOCS_URL/tutorials/scripting/gdscript/gdscript_exports.html#advanced-exports"
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Virtual method which can be overridden to customize the return value of "
+"[method get].\n"
+"Returns the given property. Returns [code]null[/code] if the [code]property[/"
+"code] does not exist."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Virtual method which can be overridden to customize the return value of "
+"[method get_property_list].\n"
+"Returns the object's property list as an [Array] of dictionaries.\n"
+"Each property's [Dictionary] must contain at least [code]name: String[/code] "
+"and [code]type: int[/code] (see [enum Variant.Type]) entries. Optionally, it "
+"can also include [code]hint: int[/code] (see [enum PropertyHint]), "
+"[code]hint_string: String[/code], and [code]usage: int[/code] (see [enum "
+"PropertyUsageFlags])."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Called when the object is initialized."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Called whenever the object receives a notification, which is identified in "
+"[code]what[/code] by a constant. The base [Object] has two constants "
+"[constant NOTIFICATION_POSTINITIALIZE] and [constant "
+"NOTIFICATION_PREDELETE], but subclasses such as [Node] define a lot more "
+"notifications which are also received by this method."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Virtual method which can be overridden to customize the return value of "
+"[method set].\n"
+"Sets a property. Returns [code]true[/code] if the [code]property[/code] "
+"exists."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Virtual method which can be overridden to customize the return value of "
+"[method to_string], and thus the object's representation where it is "
+"converted to a string, e.g. with [code]print(obj)[/code].\n"
+"Returns a [String] representing the object. If not overridden, defaults to "
+"[code]\"[ClassName:RID]\"[/code]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Adds a user-defined [code]signal[/code]. Arguments are optional, but can be "
+"added as an [Array] of dictionaries, each containing [code]name: String[/"
+"code] and [code]type: int[/code] (see [enum Variant.Type]) entries."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Calls the [code]method[/code] on the object and returns the result. This "
+"method supports a variable number of arguments, so parameters are passed as "
+"a comma separated list. Example:\n"
+"[codeblock]\n"
+"call(\"set\", \"position\", Vector2(42.0, 0.0))\n"
+"[/codeblock]\n"
+"[b]Note:[/b] In C#, the method name must be specified as snake_case if it is "
+"defined by a built-in Godot node. This doesn't apply to user-defined methods "
+"where you should use the same convention as in the C# source (typically "
+"PascalCase)."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Calls the [code]method[/code] on the object during idle time. This method "
+"supports a variable number of arguments, so parameters are passed as a comma "
+"separated list. Example:\n"
+"[codeblock]\n"
+"call_deferred(\"set\", \"position\", Vector2(42.0, 0.0))\n"
+"[/codeblock]\n"
+"[b]Note:[/b] In C#, the method name must be specified as snake_case if it is "
+"defined by a built-in Godot node. This doesn't apply to user-defined methods "
+"where you should use the same convention as in the C# source (typically "
+"PascalCase)."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Calls the [code]method[/code] on the object and returns the result. "
+"Contrarily to [method call], this method does not support a variable number "
+"of arguments but expects all parameters to be via a single [Array].\n"
+"[codeblock]\n"
+"callv(\"set\", [ \"position\", Vector2(42.0, 0.0) ])\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns [code]true[/code] if the object can translate strings. See [method "
+"set_message_translation] and [method tr]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Connects a [code]signal[/code] to a [code]method[/code] on a [code]target[/"
+"code] object. Pass optional [code]binds[/code] to the call as an [Array] of "
+"parameters. These parameters will be passed to the method after any "
+"parameter used in the call to [method emit_signal]. Use [code]flags[/code] "
+"to set deferred or one-shot connections. See [enum ConnectFlags] constants.\n"
+"A [code]signal[/code] can only be connected once to a [code]method[/code]. "
+"It will throw an error if already connected, unless the signal was connected "
+"with [constant CONNECT_REFERENCE_COUNTED]. To avoid this, first, use [method "
+"is_connected] to check for existing connections.\n"
+"If the [code]target[/code] is destroyed in the game's lifecycle, the "
+"connection will be lost.\n"
+"Examples:\n"
+"[codeblock]\n"
+"connect(\"pressed\", self, \"_on_Button_pressed\") # BaseButton signal\n"
+"connect(\"text_entered\", self, \"_on_LineEdit_text_entered\") # LineEdit "
+"signal\n"
+"connect(\"hit\", self, \"_on_Player_hit\", [ weapon_type, damage ]) # User-"
+"defined signal\n"
+"[/codeblock]\n"
+"An example of the relationship between [code]binds[/code] passed to [method "
+"connect] and parameters used when calling [method emit_signal]:\n"
+"[codeblock]\n"
+"connect(\"hit\", self, \"_on_Player_hit\", [ weapon_type, damage ]) # "
+"weapon_type and damage are passed last\n"
+"emit_signal(\"hit\", \"Dark lord\", 5) # \"Dark lord\" and 5 are passed "
+"first\n"
+"func _on_Player_hit(hit_by, level, weapon_type, damage):\n"
+" print(\"Hit by %s (lvl %d) with weapon %s for %d damage\" % [hit_by, "
+"level, weapon_type, damage])\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Disconnects a [code]signal[/code] from a [code]method[/code] on the given "
+"[code]target[/code].\n"
+"If you try to disconnect a connection that does not exist, the method will "
+"throw an error. Use [method is_connected] to ensure that the connection "
+"exists."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Emits the given [code]signal[/code]. The signal must exist, so it should be "
+"a built-in signal of this class or one of its parent classes, or a user-"
+"defined signal. This method supports a variable number of arguments, so "
+"parameters are passed as a comma separated list. Example:\n"
+"[codeblock]\n"
+"emit_signal(\"hit\", weapon_type, damage)\n"
+"emit_signal(\"game_over\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Deletes the object from memory immediately. For [Node]s, you may want to use "
+"[method Node.queue_free] to queue the node for safe deletion at the end of "
+"the current frame.\n"
+"[b]Important:[/b] If you have a variable pointing to an object, it will "
+"[i]not[/i] be assigned to [code]null[/code] once the object is freed. "
+"Instead, it will point to a [i]previously freed instance[/i] and you should "
+"validate it with [method @GDScript.is_instance_valid] before attempting to "
+"call its methods or access its properties."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns the [Variant] value of the given [code]property[/code]. If the "
+"[code]property[/code] doesn't exist, this will return [code]null[/code].\n"
+"[b]Note:[/b] In C#, the property name must be specified as snake_case if it "
+"is defined by a built-in Godot node. This doesn't apply to user-defined "
+"properties where you should use the same convention as in the C# source "
+"(typically PascalCase)."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns the object's class as a [String]. See also [method is_class].\n"
+"[b]Note:[/b] [method get_class] does not take [code]class_name[/code] "
+"declarations into account. If the object has a [code]class_name[/code] "
+"defined, the base class name will be returned instead."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns an [Array] of dictionaries with information about signals that are "
+"connected to the object.\n"
+"Each [Dictionary] contains three String entries:\n"
+"- [code]source[/code] is a reference to the signal emitter.\n"
+"- [code]signal_name[/code] is the name of the connected signal.\n"
+"- [code]method_name[/code] is the name of the method to which the signal is "
+"connected."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Gets the object's property indexed by the given [NodePath]. The node path "
+"should be relative to the current object and can use the colon character "
+"([code]:[/code]) to access nested properties. Examples: [code]\"position:x"
+"\"[/code] or [code]\"material:next_pass:blend_mode\"[/code].\n"
+"[b]Note:[/b] Even though the method takes [NodePath] argument, it doesn't "
+"support actual paths to [Node]s in the scene tree, only colon-separated sub-"
+"property paths. For the purpose of nodes, use [method Node."
+"get_node_and_resource] instead."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns the object's unique instance ID.\n"
+"This ID can be saved in [EncodedObjectAsID], and can be used to retrieve the "
+"object instance with [method @GDScript.instance_from_id]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Returns the object's metadata entry for the given [code]name[/code]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Returns the object's metadata as a [PoolStringArray]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Returns the object's methods and their signatures as an [Array]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns the object's property list as an [Array] of dictionaries.\n"
+"Each property's [Dictionary] contain at least [code]name: String[/code] and "
+"[code]type: int[/code] (see [enum Variant.Type]) entries. Optionally, it can "
+"also include [code]hint: int[/code] (see [enum PropertyHint]), "
+"[code]hint_string: String[/code], and [code]usage: int[/code] (see [enum "
+"PropertyUsageFlags])."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns the object's [Script] instance, or [code]null[/code] if none is "
+"assigned."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Returns an [Array] of connections for the given [code]signal[/code]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Returns the list of signals as an [Array] of dictionaries."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns [code]true[/code] if a metadata entry is found with the given "
+"[code]name[/code]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns [code]true[/code] if the object contains the given [code]method[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Returns [code]true[/code] if the given [code]signal[/code] exists."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns [code]true[/code] if the given user-defined [code]signal[/code] "
+"exists. Only signals added using [method add_user_signal] are taken into "
+"account."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Returns [code]true[/code] if signal emission blocking is enabled."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns [code]true[/code] if the object inherits from the given [code]class[/"
+"code]. See also [method get_class].\n"
+"[b]Note:[/b] [method is_class] does not take [code]class_name[/code] "
+"declarations into account. If the object has a [code]class_name[/code] "
+"defined, [method is_class] will return [code]false[/code] for that name."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns [code]true[/code] if a connection exists for a given [code]signal[/"
+"code], [code]target[/code], and [code]method[/code]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns [code]true[/code] if the [method Node.queue_free] method was called "
+"for the object."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Send a given notification to the object, which will also trigger a call to "
+"the [method _notification] method of all classes that the object inherits "
+"from.\n"
+"If [code]reversed[/code] is [code]true[/code], [method _notification] is "
+"called first on the object's own class, and then up to its successive parent "
+"classes. If [code]reversed[/code] is [code]false[/code], [method "
+"_notification] is called first on the highest ancestor ([Object] itself), "
+"and then down to its successive inheriting classes."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Notify the editor that the property list has changed, so that editor plugins "
+"can take the new values into account. Does nothing on export builds."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Removes a given entry from the object's metadata. See also [method set_meta]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Assigns a new value to the given property. If the [code]property[/code] does "
+"not exist, nothing will happen.\n"
+"[b]Note:[/b] In C#, the property name must be specified as snake_case if it "
+"is defined by a built-in Godot node. This doesn't apply to user-defined "
+"properties where you should use the same convention as in the C# source "
+"(typically PascalCase)."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "If set to [code]true[/code], signal emission is blocked."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Assigns a new value to the given property, after the current frame's physics "
+"step. This is equivalent to calling [method set] via [method call_deferred], "
+"i.e. [code]call_deferred(\"set\", property, value)[/code].\n"
+"[b]Note:[/b] In C#, the property name must be specified as snake_case if it "
+"is defined by a built-in Godot node. This doesn't apply to user-defined "
+"properties where you should use the same convention as in the C# source "
+"(typically PascalCase)."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Assigns a new value to the property identified by the [NodePath]. The node "
+"path should be relative to the current object and can use the colon "
+"character ([code]:[/code]) to access nested properties. Example:\n"
+"[codeblock]\n"
+"set_indexed(\"position\", Vector2(42, 0))\n"
+"set_indexed(\"position:y\", -10)\n"
+"print(position) # (42, -10)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Defines whether the object can translate strings (with calls to [method "
+"tr]). Enabled by default."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Adds, changes or removes a given entry in the object's metadata. Metadata "
+"are serialized and can take any [Variant] value.\n"
+"To remove a given entry from the object's metadata, use [method "
+"remove_meta]. Metadata is also removed if its value is set to [code]null[/"
+"code]. This means you can also use [code]set_meta(\"name\", null)[/code] to "
+"remove metadata for [code]\"name\"[/code]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Assigns a script to the object. Each object can have a single script "
+"assigned to it, which are used to extend its functionality.\n"
+"If the object already had a script, the previous script instance will be "
+"freed and its variables and state will be lost. The new script's [method "
+"_init] method will be called."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Returns a [String] representing the object. If not overridden, defaults to "
+"[code]\"[ClassName:RID]\"[/code].\n"
+"Override the method [method _to_string] to customize the [String] "
+"representation."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Translates a message using translation catalogs configured in the Project "
+"Settings.\n"
+"Only works if message translation is enabled (which it is by default), "
+"otherwise it returns the [code]message[/code] unchanged. See [method "
+"set_message_translation]."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Emitted whenever the object's script is changed."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Called right when the object is initialized. Not available in script."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Called before the object is about to be deleted."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Connects a signal in deferred mode. This way, signal emissions are stored in "
+"a queue, then set on idle time."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "Persisting connections are saved when the object is serialized to file."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid "One-shot connections disconnect themselves after emission."
+msgstr ""
+
+#: doc/classes/Object.xml
+msgid ""
+"Connect a signal as reference-counted. This means that a given signal can be "
+"connected several times to the same target, and will only be fully "
+"disconnected once no references are left."
+msgstr ""
+
+#: doc/classes/Occluder.xml
+msgid "Allows [OccluderShape]s to be used for occlusion culling."
+msgstr ""
+
+#: doc/classes/Occluder.xml
+msgid ""
+"[Occluder]s that are placed within your scene will automatically cull "
+"objects that are hidden from view by the occluder. This can increase "
+"performance by decreasing the amount of objects drawn.\n"
+"[Occluder]s are totally dynamic, you can move them as you wish. This means "
+"you can for example, place occluders on a moving spaceship, and have it "
+"occlude objects as it flies past.\n"
+"You can place a large number of [Occluder]s within a scene. As it would be "
+"counterproductive to cull against hundreds of occluders, the system will "
+"automatically choose a selection of these for active use during any given "
+"frame, based a screen space metric. Larger occluders are favored, as well as "
+"those close to the camera. Note that a small occluder close to the camera "
+"may be a better occluder in terms of screen space than a large occluder far "
+"in the distance.\n"
+"The type of occlusion primitive is determined by the [OccluderShape] that "
+"you add to the [Occluder]. Some [OccluderShape]s may allow more than one "
+"primitive in a single, node, for greater efficiency.\n"
+"Although [Occluder]s work in general use, they also become even more "
+"powerful when used in conjunction with the portal system. Occluders are "
+"placed in rooms (based on their origin), and can block portals (and thus "
+"entire rooms) as well as objects from rendering."
+msgstr ""
+
+#: doc/classes/OccluderPolygon2D.xml
+msgid "Defines a 2D polygon for LightOccluder2D."
+msgstr ""
+
+#: doc/classes/OccluderPolygon2D.xml
+msgid ""
+"Editor facility that helps you draw a 2D polygon used as resource for "
+"[LightOccluder2D]."
+msgstr ""
+
+#: doc/classes/OccluderPolygon2D.xml
+msgid ""
+"If [code]true[/code], closes the polygon. A closed OccluderPolygon2D "
+"occludes the light coming from any direction. An opened OccluderPolygon2D "
+"occludes the light only at its outline's direction."
+msgstr ""
+
+#: doc/classes/OccluderPolygon2D.xml
+msgid "The culling mode to use."
+msgstr ""
+
+#: doc/classes/OccluderPolygon2D.xml
+msgid ""
+"A [Vector2] array with the index for polygon's vertices positions.\n"
+"[b]Note:[/b] The returned value is a copy of the underlying array, rather "
+"than a reference."
+msgstr ""
+
+#: doc/classes/OccluderPolygon2D.xml
+msgid "Culling is disabled. See [member cull_mode]."
+msgstr ""
+
+#: doc/classes/OccluderPolygon2D.xml
+msgid ""
+"Culling is performed in the clockwise direction. See [member cull_mode]."
+msgstr ""
+
+#: doc/classes/OccluderPolygon2D.xml
+msgid ""
+"Culling is performed in the counterclockwise direction. See [member "
+"cull_mode]."
+msgstr ""
+
+#: doc/classes/OccluderShape.xml
+msgid ""
+"Base class for shapes used for occlusion culling by the [Occluder] node."
+msgstr ""
+
+#: doc/classes/OccluderShape.xml
+msgid "[Occluder]s can use any primitive shape derived from [OccluderShape]."
+msgstr ""
+
+#: doc/classes/OccluderShapeSphere.xml
+msgid "Spherical occlusion primitive for use with the [Occluder] node."
+msgstr ""
+
+#: doc/classes/OccluderShapeSphere.xml
+msgid ""
+"[OccluderShape]s are resources used by [Occluder] nodes, allowing geometric "
+"occlusion culling.\n"
+"This shape can include multiple spheres. These can be created and deleted "
+"either in the Editor inspector or by calling [code]set_spheres[/code]. The "
+"sphere positions can be set by dragging the handle in the Editor viewport. "
+"The radius can be set with the smaller handle."
+msgstr ""
+
+#: doc/classes/OccluderShapeSphere.xml
+msgid "Sets an individual sphere's position."
+msgstr ""
+
+#: doc/classes/OccluderShapeSphere.xml
+msgid "Sets an individual sphere's radius."
+msgstr ""
+
+#: doc/classes/OccluderShapeSphere.xml
+msgid ""
+"The sphere data can be accessed as an array of [Plane]s. The position of "
+"each sphere is stored in the [code]normal[/code], and the radius is stored "
+"in the [code]d[/code] value of the plane."
+msgstr ""
+
+#: doc/classes/OmniLight.xml
+msgid "Omnidirectional light, such as a light bulb or a candle."
+msgstr ""
+
+#: doc/classes/OmniLight.xml
+msgid ""
+"An Omnidirectional light is a type of [Light] that emits light in all "
+"directions. The light is attenuated by distance and this attenuation can be "
+"configured by changing its energy, radius, and attenuation parameters.\n"
+"[b]Note:[/b] By default, only 32 OmniLights may affect a single mesh "
+"[i]resource[/i] at once. Consider splitting your level into several meshes "
+"to decrease the likelihood that more than 32 lights will affect the same "
+"mesh resource. Splitting the level mesh will also improve frustum culling "
+"effectiveness, leading to greater performance. If you need to use more "
+"lights per mesh, you can increase [member ProjectSettings.rendering/limits/"
+"rendering/max_lights_per_object] at the cost of shader compilation times."
+msgstr ""
+
+#: doc/classes/OmniLight.xml
+msgid ""
+"The light's attenuation (drop-off) curve. A number of presets are available "
+"in the [b]Inspector[/b] by right-clicking the curve."
+msgstr ""
+
+#: doc/classes/OmniLight.xml
+msgid ""
+"The light's radius. Note that the effectively lit area may appear to be "
+"smaller depending on the [member omni_attenuation] in use. No matter the "
+"[member omni_attenuation] in use, the light will never reach anything "
+"outside this radius."
+msgstr ""
+
+#: doc/classes/OmniLight.xml
+msgid "See [enum ShadowDetail]."
+msgstr ""
+
+#: doc/classes/OmniLight.xml
+msgid "See [enum ShadowMode]."
+msgstr ""
+
+#: doc/classes/OmniLight.xml
+msgid ""
+"Shadows are rendered to a dual-paraboloid texture. Faster than [constant "
+"SHADOW_CUBE], but lower-quality."
+msgstr ""
+
+#: doc/classes/OmniLight.xml
+msgid ""
+"Shadows are rendered to a cubemap. Slower than [constant "
+"SHADOW_DUAL_PARABOLOID], but higher-quality."
+msgstr ""
+
+#: doc/classes/OmniLight.xml
+msgid "Use more detail vertically when computing the shadow."
+msgstr ""
+
+#: doc/classes/OmniLight.xml
+msgid "Use more detail horizontally when computing the shadow."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid "Noise generator based on Open Simplex."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid ""
+"This resource allows you to configure and sample a fractal noise space. Here "
+"is a brief usage example that configures an OpenSimplexNoise and gets "
+"samples at various positions and dimensions:\n"
+"[codeblock]\n"
+"var noise = OpenSimplexNoise.new()\n"
+"\n"
+"# Configure\n"
+"noise.seed = randi()\n"
+"noise.octaves = 4\n"
+"noise.period = 20.0\n"
+"noise.persistence = 0.8\n"
+"\n"
+"# Sample\n"
+"print(\"Values:\")\n"
+"print(noise.get_noise_2d(1.0, 1.0))\n"
+"print(noise.get_noise_3d(0.5, 3.0, 15.0))\n"
+"print(noise.get_noise_4d(0.5, 1.9, 4.7, 0.0))\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid ""
+"Generate a noise image in [constant Image.FORMAT_L8] format with the "
+"requested [code]width[/code] and [code]height[/code], based on the current "
+"noise parameters. If [code]noise_offset[/code] is specified, then the offset "
+"value is used as the coordinates of the top-left corner of the generated "
+"noise."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid ""
+"Returns the 1D noise value [code][-1,1][/code] at the given x-coordinate.\n"
+"[b]Note:[/b] This method actually returns the 2D noise value [code][-1,1][/"
+"code] with fixed y-coordinate value 0.0."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid "Returns the 2D noise value [code][-1,1][/code] at the given position."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid "Returns the 3D noise value [code][-1,1][/code] at the given position."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid "Returns the 4D noise value [code][-1,1][/code] at the given position."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid ""
+"Generate a tileable noise image in [constant Image.FORMAT_L8] format, based "
+"on the current noise parameters. Generated seamless images are always square "
+"([code]size[/code] × [code]size[/code]).\n"
+"[b]Note:[/b] Seamless noise has a lower contrast compared to non-seamless "
+"noise. This is due to the way noise uses higher dimensions for generating "
+"seamless noise."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid "Difference in period between [member octaves]."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid ""
+"Number of OpenSimplex noise layers that are sampled to get the fractal "
+"noise. Higher values result in more detailed noise but take more time to "
+"generate.\n"
+"[b]Note:[/b] The maximum allowed value is 9."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid ""
+"Period of the base octave. A lower period results in a higher-frequency "
+"noise (more value changes across the same distance)."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid ""
+"Contribution factor of the different octaves. A [code]persistence[/code] "
+"value of 1 means all the octaves have the same contribution, a value of 0.5 "
+"means each octave contributes half as much as the previous one."
+msgstr ""
+
+#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+msgid ""
+"Seed used to generate random values, different seeds will generate different "
+"noise maps."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Button control that provides selectable options when pressed."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"OptionButton is a type button that provides a selectable list of items when "
+"pressed. The item selected becomes the \"current\" item and is displayed as "
+"the button text.\n"
+"See also [BaseButton] which contains common properties and methods "
+"associated with this node."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Adds an item, with a [code]texture[/code] icon, text [code]label[/code] and "
+"(optionally) [code]id[/code]. If no [code]id[/code] is passed, the item "
+"index will be used as the item's ID. New items are appended at the end."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Adds an item, with text [code]label[/code] and (optionally) [code]id[/code]. "
+"If no [code]id[/code] is passed, the item index will be used as the item's "
+"ID. New items are appended at the end."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Adds a separator to the list of items. Separators help to group items. "
+"Separator also takes up an index and is appended at the end."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Clears all the items in the [OptionButton]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Returns the amount of items in the OptionButton, including separators."
+msgstr ""
+
+#: doc/classes/OptionButton.xml doc/classes/PopupMenu.xml
+msgid "Returns the icon of the item at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Returns the ID of the item at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Returns the index of the item with the given [code]id[/code]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Retrieves the metadata of an item. Metadata may be any type and can be used "
+"to store extra information about an item, such as an external string ID."
+msgstr ""
+
+#: doc/classes/OptionButton.xml doc/classes/PopupMenu.xml
+msgid "Returns the text of the item at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Returns the ID of the selected item, or [code]0[/code] if no item is "
+"selected."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Gets the metadata of the selected item. Metadata for items can be set using "
+"[method set_item_metadata]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Returns [code]true[/code] if the item at index [code]idx[/code] is disabled."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Removes the item at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Selects an item by index and makes it the current item. This will work even "
+"if the item is disabled."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Sets whether the item at index [code]idx[/code] is disabled.\n"
+"Disabled items are drawn differently in the dropdown and are not selectable "
+"by the user. If the current selected item is set as disabled, it will remain "
+"selected."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Sets the icon of the item at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Sets the ID of the item at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Sets the metadata of an item. Metadata may be of any type and can be used to "
+"store extra information about an item, such as an external string ID."
+msgstr ""
+
+#: doc/classes/OptionButton.xml doc/classes/PopupMenu.xml
+msgid "Sets the text of the item at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"The index of the currently selected item, or [code]-1[/code] if no item is "
+"selected."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Emitted when the user navigates to an item using the [code]ui_up[/code] or "
+"[code]ui_down[/code] actions. The index of the item selected is passed as "
+"argument."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Emitted when the current item has been changed by the user. The index of the "
+"item selected is passed as argument."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Default text [Color] of the [OptionButton]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Text [Color] used when the [OptionButton] is disabled."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"Text [Color] used when the [OptionButton] is focused. Only replaces the "
+"normal text color of the button. Disabled, hovered, and pressed states take "
+"precedence over this color."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Text [Color] used when the [OptionButton] is being hovered."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Text [Color] used when the [OptionButton] is being pressed."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"The horizontal space between the arrow icon and the right edge of the button."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "The horizontal space between [OptionButton]'s icon and text."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "[Font] of the [OptionButton]'s text."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "The arrow icon to be drawn on the right end of the button."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "[StyleBox] used when the [OptionButton] is disabled."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid ""
+"[StyleBox] used when the [OptionButton] is focused. It is displayed over the "
+"current [StyleBox], so using [StyleBoxEmpty] will just disable the focus "
+"visual effect."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "[StyleBox] used when the [OptionButton] is being hovered."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "Default [StyleBox] for the [OptionButton]."
+msgstr ""
+
+#: doc/classes/OptionButton.xml
+msgid "[StyleBox] used when the [OptionButton] is being pressed."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Operating System functions."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Operating System functions. OS wraps the most common functionality to "
+"communicate with the host operating system, such as the clipboard, video "
+"driver, date and time, timers, environment variables, execution of binaries, "
+"command line, etc."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Displays a modal dialog box using the host OS' facilities. Execution is "
+"blocked until the dialog is closed."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns [code]true[/code] if the host OS allows drawing."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the current host platform is using multiple "
+"threads."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Centers the window on the screen if in windowed mode."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Shuts down system MIDI driver.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Crashes the engine (or the editor if called within a [code]tool[/code] "
+"script). This should [i]only[/i] be used for testing the system's crash "
+"handler, not for any other purpose. For general error reporting, use (in "
+"order of preference) [method @GDScript.assert], [method @GDScript."
+"push_error] or [method alert]. See also [method kill]."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Delays execution of the current thread by [code]msec[/code] milliseconds. "
+"[code]msec[/code] must be greater than or equal to [code]0[/code]. "
+"Otherwise, [method delay_msec] will do nothing and will print an error "
+"message.\n"
+"[b]Note:[/b] [method delay_msec] is a [i]blocking[/i] way to delay code "
+"execution. To delay code execution in a non-blocking way, see [method "
+"SceneTree.create_timer]. Yielding with [method SceneTree.create_timer] will "
+"delay the execution of code placed below the [code]yield[/code] without "
+"affecting the rest of the project (or editor, for [EditorPlugin]s and "
+"[EditorScript]s).\n"
+"[b]Note:[/b] When [method delay_msec] is called on the main thread, it will "
+"freeze the project and will prevent it from redrawing and registering input "
+"until the delay has passed. When using [method delay_msec] as part of an "
+"[EditorPlugin] or [EditorScript], it will freeze the editor but won't freeze "
+"the project if it is currently running (since the project is an independent "
+"child process)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Delays execution of the current thread by [code]usec[/code] microseconds. "
+"[code]usec[/code] must be greater than or equal to [code]0[/code]. "
+"Otherwise, [method delay_usec] will do nothing and will print an error "
+"message.\n"
+"[b]Note:[/b] [method delay_usec] is a [i]blocking[/i] way to delay code "
+"execution. To delay code execution in a non-blocking way, see [method "
+"SceneTree.create_timer]. Yielding with [method SceneTree.create_timer] will "
+"delay the execution of code placed below the [code]yield[/code] without "
+"affecting the rest of the project (or editor, for [EditorPlugin]s and "
+"[EditorScript]s).\n"
+"[b]Note:[/b] When [method delay_usec] is called on the main thread, it will "
+"freeze the project and will prevent it from redrawing and registering input "
+"until the delay has passed. When using [method delay_usec] as part of an "
+"[EditorPlugin] or [EditorScript], it will freeze the editor but won't freeze "
+"the project if it is currently running (since the project is an independent "
+"child process)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Dumps the memory allocation ringlist to a file (only works in debug).\n"
+"Entry format per line: \"Address - Size - Description\"."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Dumps all used resources to file (only works in debug).\n"
+"Entry format per line: \"Resource Type : Resource Location\".\n"
+"At the end of the file is a statistic of all used Resource Types."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Execute the file at the given path with the arguments passed as an array of "
+"strings. Platform path resolution will take place. The resolved file must "
+"exist and be executable.\n"
+"The arguments are used in the given order and separated by a space, so "
+"[code]OS.execute(\"ping\", [\"-w\", \"3\", \"godotengine.org\"], false)[/"
+"code] will resolve to [code]ping -w 3 godotengine.org[/code] in the system's "
+"shell.\n"
+"This method has slightly different behavior based on whether the "
+"[code]blocking[/code] mode is enabled.\n"
+"If [code]blocking[/code] is [code]true[/code], the Godot thread will pause "
+"its execution while waiting for the process to terminate. The shell output "
+"of the process will be written to the [code]output[/code] array as a single "
+"string. When the process terminates, the Godot thread will resume "
+"execution.\n"
+"If [code]blocking[/code] is [code]false[/code], the Godot thread will "
+"continue while the new process runs. It is not possible to retrieve the "
+"shell output in non-blocking mode, so [code]output[/code] will be empty.\n"
+"The return value also depends on the blocking mode. When blocking, the "
+"method will return an exit code of the process. When non-blocking, the "
+"method returns a process ID, which you can use to monitor the process (and "
+"potentially terminate it with [method kill]). If the process forking (non-"
+"blocking) or opening (blocking) fails, the method will return [code]-1[/"
+"code] or another exit code.\n"
+"Example of blocking mode and retrieving the shell output:\n"
+"[codeblock]\n"
+"var output = []\n"
+"var exit_code = OS.execute(\"ls\", [\"-l\", \"/tmp\"], true, output)\n"
+"[/codeblock]\n"
+"Example of non-blocking mode, running another instance of the project and "
+"storing its process ID:\n"
+"[codeblock]\n"
+"var pid = OS.execute(OS.get_executable_path(), [], false)\n"
+"[/codeblock]\n"
+"If you wish to access a shell built-in or perform a composite command, a "
+"platform-specific shell can be invoked. For example:\n"
+"[codeblock]\n"
+"OS.execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], true, output)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and "
+"Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the scancode of the given string (e.g. \"Escape\")."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the total number of available audio drivers."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the audio driver name for the given index."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the [i]global[/i] cache data directory according to the operating "
+"system's standards. On desktop platforms, this path can be overridden by "
+"setting the [code]XDG_CACHE_HOME[/code] environment variable before starting "
+"the project. See [url=$DOCS_URL/tutorials/io/data_paths.html]File paths in "
+"Godot projects[/url] in the documentation for more information. See also "
+"[method get_config_dir] and [method get_data_dir].\n"
+"Not to be confused with [method get_user_data_dir], which returns the "
+"[i]project-specific[/i] user data path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the command-line arguments passed to the engine.\n"
+"Command-line arguments can be written in any form, including both [code]--"
+"key value[/code] and [code]--key=value[/code] forms so they can be properly "
+"parsed, as long as custom command-line arguments do not conflict with engine "
+"arguments.\n"
+"You can also incorporate environment variables using the [method "
+"get_environment] method.\n"
+"You can set [member ProjectSettings.editor/main_run_args] to define command-"
+"line arguments to be passed by the editor when running the project.\n"
+"Here's a minimal example on how to parse command-line arguments into a "
+"dictionary using the [code]--key=value[/code] form for arguments:\n"
+"[codeblock]\n"
+"var arguments = {}\n"
+"for argument in OS.get_cmdline_args():\n"
+" if argument.find(\"=\") > -1:\n"
+" var key_value = argument.split(\"=\")\n"
+" arguments[key_value[0].lstrip(\"--\")] = key_value[1]\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the [i]global[/i] user configuration directory according to the "
+"operating system's standards. On desktop platforms, this path can be "
+"overridden by setting the [code]XDG_CONFIG_HOME[/code] environment variable "
+"before starting the project. See [url=$DOCS_URL/tutorials/io/data_paths."
+"html]File paths in Godot projects[/url] in the documentation for more "
+"information. See also [method get_cache_dir] and [method get_data_dir].\n"
+"Not to be confused with [method get_user_data_dir], which returns the "
+"[i]project-specific[/i] user data path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns an array of MIDI device names.\n"
+"The returned array will be empty if the system MIDI driver has not "
+"previously been initialised with [method open_midi_inputs].\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the currently used video driver, using one of the values from [enum "
+"VideoDriver]."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the [i]global[/i] user data directory according to the operating "
+"system's standards. On desktop platforms, this path can be overridden by "
+"setting the [code]XDG_DATA_HOME[/code] environment variable before starting "
+"the project. See [url=$DOCS_URL/tutorials/io/data_paths.html]File paths in "
+"Godot projects[/url] in the documentation for more information. See also "
+"[method get_cache_dir] and [method get_config_dir].\n"
+"Not to be confused with [method get_user_data_dir], which returns the "
+"[i]project-specific[/i] user data path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Deprecated, use [method Time.get_date_dict_from_system] instead.\n"
+"Returns current date as a dictionary of keys: [code]year[/code], "
+"[code]month[/code], [code]day[/code], [code]weekday[/code], [code]dst[/code] "
+"(Daylight Savings Time)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Deprecated, use [method Time.get_datetime_dict_from_system] instead.\n"
+"Returns current datetime as a dictionary of keys: [code]year[/code], "
+"[code]month[/code], [code]day[/code], [code]weekday[/code], [code]dst[/code] "
+"(Daylight Savings Time), [code]hour[/code], [code]minute[/code], "
+"[code]second[/code]."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Deprecated, use [method Time.get_datetime_dict_from_unix_time] instead.\n"
+"Gets a dictionary of time values corresponding to the given UNIX epoch time "
+"(in seconds).\n"
+"The returned Dictionary's values will be the same as [method get_datetime], "
+"with the exception of Daylight Savings Time as it cannot be determined from "
+"the epoch."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the total amount of dynamic memory used (only works in debug)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the value of an environment variable. Returns an empty string if the "
+"environment variable doesn't exist.\n"
+"[b]Note:[/b] Double-check the casing of [code]variable[/code]. Environment "
+"variable names are case-sensitive on all platforms except Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the path to the current engine executable."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"With this function, you can get the list of dangerous permissions that have "
+"been granted to the Android application.\n"
+"[b]Note:[/b] This method is implemented on Android."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the IME cursor position (the currently-edited portion of the string) "
+"relative to the characters in the composition string.\n"
+"[constant MainLoop.NOTIFICATION_OS_IME_UPDATE] is sent to the application to "
+"notify it of changes to the IME cursor position.\n"
+"[b]Note:[/b] This method is implemented on macOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the IME intermediate composition string.\n"
+"[constant MainLoop.NOTIFICATION_OS_IME_UPDATE] is sent to the application to "
+"notify it of changes to the IME composition string.\n"
+"[b]Note:[/b] This method is implemented on macOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the current latin keyboard variant as a String.\n"
+"Possible return values are: [code]\"QWERTY\"[/code], [code]\"AZERTY\"[/"
+"code], [code]\"QZERTY\"[/code], [code]\"DVORAK\"[/code], [code]\"NEO\"[/"
+"code], [code]\"COLEMAK\"[/code] or [code]\"ERROR\"[/code].\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows. Returns "
+"[code]\"QWERTY\"[/code] on unsupported platforms."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the host OS locale as a string of the form "
+"[code]language_Script_COUNTRY_VARIANT@extra[/code]. If you want only the "
+"language code and not the fully specified locale from the OS, you can use "
+"[method get_locale_language].\n"
+"[code]language[/code] - 2 or 3-letter [url=https://en.wikipedia.org/wiki/"
+"List_of_ISO_639-1_codes]language code[/url], in lower case.\n"
+"[code]Script[/code] - optional, 4-letter [url=https://en.wikipedia.org/wiki/"
+"ISO_15924]script code[/url], in title case.\n"
+"[code]COUNTRY[/code] - optional, 2 or 3-letter [url=https://en.wikipedia.org/"
+"wiki/ISO_3166-1]country code[/url], in upper case.\n"
+"[code]VARIANT[/code] - optional, language variant, region and sort order. "
+"Variant can have any number of underscored keywords.\n"
+"[code]extra[/code] - optional, semicolon separated list of additional key "
+"words. Currency, calendar, sort order and numbering system information."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the host OS locale's 2 or 3-letter [url=https://en.wikipedia.org/"
+"wiki/List_of_ISO_639-1_codes]language code[/url] as a string which should be "
+"consistent on all platforms. This is equivalent to extracting the "
+"[code]language[/code] part of the [method get_locale] string.\n"
+"This can be used to narrow down fully specified locale strings to only the "
+"\"common\" language code, when you don't need the additional information "
+"about country code or variants. For example, for a French Canadian user with "
+"[code]fr_CA[/code] locale, this would return [code]fr[/code]."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the ID of the main thread. See [method get_thread_caller_id].\n"
+"[b]Note:[/b] Thread IDs are not deterministic and may be reused across "
+"application restarts."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the model name of the current device.\n"
+"[b]Note:[/b] This method is implemented on Android and iOS. Returns "
+"[code]\"GenericDevice\"[/code] on unsupported platforms."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the name of the host OS. Possible values are: [code]\"Android\"[/"
+"code], [code]\"iOS\"[/code], [code]\"HTML5\"[/code], [code]\"OSX\"[/code], "
+"[code]\"Server\"[/code], [code]\"Windows\"[/code], [code]\"UWP\"[/code], "
+"[code]\"X11\"[/code]."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns internal structure pointers for use in GDNative plugins.\n"
+"[b]Note:[/b] This method is implemented on Linux and Windows (other OSs will "
+"soon be supported)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the amount of battery left in the device as a percentage. Returns "
+"[code]-1[/code] if power state is unknown.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns an estimate of the time left in seconds before the device runs out "
+"of battery. Returns [code]-1[/code] if power state is unknown.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the current state of the device regarding battery and power. See "
+"[enum PowerState] constants.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the project's process ID.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and "
+"Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the number of threads available on the host machine."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the window size including decorations like window borders."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the given scancode as a string (e.g. Return values: [code]\"Escape"
+"\"[/code], [code]\"Shift+Escape\"[/code]).\n"
+"See also [member InputEventKey.scancode] and [method InputEventKey."
+"get_scancode_with_modifiers]."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the number of displays attached to the host machine."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the dots per inch density of the specified screen. If [code]screen[/"
+"code] is [code]-1[/code] (the default value), the current screen will be "
+"used.\n"
+"[b]Note:[/b] On macOS, returned value is inaccurate if fractional display "
+"scaling mode is used.\n"
+"[b]Note:[/b] On Android devices, the actual screen densities are grouped "
+"into six generalized densities:\n"
+"[codeblock]\n"
+" ldpi - 120 dpi\n"
+" mdpi - 160 dpi\n"
+" hdpi - 240 dpi\n"
+" xhdpi - 320 dpi\n"
+" xxhdpi - 480 dpi\n"
+"xxxhdpi - 640 dpi\n"
+"[/codeblock]\n"
+"[b]Note:[/b] This method is implemented on Android, Linux, macOS and "
+"Windows. Returns [code]72[/code] on unsupported platforms."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Return the greatest scale factor of all screens.\n"
+"[b]Note:[/b] On macOS returned value is [code]2.0[/code] if there is at "
+"least one hiDPI (Retina) screen in the system, and [code]1.0[/code] in all "
+"other cases.\n"
+"[b]Note:[/b] This method is implemented on macOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the position of the specified screen by index. If [code]screen[/"
+"code] is [code]-1[/code] (the default value), the current screen will be "
+"used."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Return the scale factor of the specified screen by index. If [code]screen[/"
+"code] is [code]-1[/code] (the default value), the current screen will be "
+"used.\n"
+"[b]Note:[/b] On macOS returned value is [code]2.0[/code] for hiDPI (Retina) "
+"screen, and [code]1.0[/code] for all other cases.\n"
+"[b]Note:[/b] This method is implemented on macOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the dimensions in pixels of the specified screen. If [code]screen[/"
+"code] is [code]-1[/code] (the default value), the current screen will be "
+"used."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the amount of time in milliseconds it took for the boot logo to "
+"appear."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the maximum amount of static memory used (only works in debug)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the actual path to commonly used folders across different platforms. "
+"Available locations are specified in [enum SystemDir].\n"
+"[b]Note:[/b] This method is implemented on Android, Linux, macOS and "
+"Windows.\n"
+"[b]Note:[/b] Shared storage is implemented on Android and allows to "
+"differentiate between app specific and shared directories. Shared "
+"directories have additional restrictions on Android."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the epoch time of the operating system in milliseconds."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the epoch time of the operating system in seconds."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the total number of available tablet drivers.\n"
+"[b]Note:[/b] This method is implemented on Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the tablet driver name for the given index.\n"
+"[b]Note:[/b] This method is implemented on Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the ID of the current thread. This can be used in logs to ease "
+"debugging of multi-threaded applications.\n"
+"[b]Note:[/b] Thread IDs are not deterministic and may be reused across "
+"application restarts."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Deprecated, use [method Time.get_ticks_msec] instead.\n"
+"Returns the amount of time passed in milliseconds since the engine started."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Deprecated, use [method Time.get_ticks_usec] instead.\n"
+"Returns the amount of time passed in microseconds since the engine started."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Deprecated, use [method Time.get_time_dict_from_system] instead.\n"
+"Returns current time as a dictionary of keys: hour, minute, second."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the current time zone as a dictionary with the keys: bias and name."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns a string that is unique to the device.\n"
+"[b]Note:[/b] This string may change without notice if the user reinstalls/"
+"upgrades their operating system or changes their hardware. This means it "
+"should generally not be used to encrypt persistent data as the data saved "
+"before an unexpected ID change would become inaccessible. The returned "
+"string may also be falsified using external programs, so do not rely on the "
+"string returned by [method get_unique_id] for security purposes.\n"
+"[b]Note:[/b] Returns an empty string on HTML5 and UWP, as this method isn't "
+"implemented on those platforms yet."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the current UNIX epoch timestamp in seconds.\n"
+"[b]Important:[/b] This is the system clock that the user can manually set. "
+"[b]Never use[/b] this method for precise time calculation since its results "
+"are also subject to automatic adjustments by the operating system. [b]Always "
+"use[/b] [method get_ticks_usec] or [method get_ticks_msec] for precise time "
+"calculation instead, since they are guaranteed to be monotonic (i.e. never "
+"decrease)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Gets an epoch time value from a dictionary of time values.\n"
+"[code]datetime[/code] must be populated with the following keys: [code]year[/"
+"code], [code]month[/code], [code]day[/code], [code]hour[/code], "
+"[code]minute[/code], [code]second[/code].\n"
+"If the dictionary is empty [code]0[/code] is returned. If some keys are "
+"omitted, they default to the equivalent values for the UNIX epoch timestamp "
+"0 (1970-01-01 at 00:00:00 UTC).\n"
+"You can pass the output from [method get_datetime_from_unix_time] directly "
+"into this function. Daylight Savings Time ([code]dst[/code]), if present, is "
+"ignored."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the absolute directory path where user data is written ([code]user://"
+"[/code]).\n"
+"On Linux, this is [code]~/.local/share/godot/app_userdata/[project_name][/"
+"code], or [code]~/.local/share/[custom_name][/code] if "
+"[code]use_custom_user_dir[/code] is set.\n"
+"On macOS, this is [code]~/Library/Application Support/Godot/app_userdata/"
+"[project_name][/code], or [code]~/Library/Application Support/[custom_name][/"
+"code] if [code]use_custom_user_dir[/code] is set.\n"
+"On Windows, this is [code]%APPDATA%\\Godot\\app_userdata\\[project_name][/"
+"code], or [code]%APPDATA%\\[custom_name][/code] if "
+"[code]use_custom_user_dir[/code] is set. [code]%APPDATA%[/code] expands to "
+"[code]%USERPROFILE%\\AppData\\Roaming[/code].\n"
+"If the project name is empty, [code]user://[/code] falls back to [code]res://"
+"[/code].\n"
+"Not to be confused with [method get_data_dir], which returns the [i]global[/"
+"i] (non-project-specific) user data directory."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Returns the number of video drivers supported on the current platform."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the name of the video driver matching the given [code]driver[/code] "
+"index. This index is a value from [enum VideoDriver], and you can use "
+"[method get_current_video_driver] to get the current backend's index."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the on-screen keyboard's height in pixels. Returns 0 if there is no "
+"keyboard or if it is currently hidden."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns unobscured area of the window where interactive controls should be "
+"rendered."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Add a new item with text \"label\" to global menu. Use \"_dock\" menu to add "
+"item to the macOS dock icon menu.\n"
+"[b]Note:[/b] This method is implemented on macOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Add a separator between items. Separators also occupy an index.\n"
+"[b]Note:[/b] This method is implemented on macOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Clear the global menu, in effect removing all items.\n"
+"[b]Note:[/b] This method is implemented on macOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Removes the item at index \"idx\" from the global menu. Note that the "
+"indexes of items after the removed item are going to be shifted by one.\n"
+"[b]Note:[/b] This method is implemented on macOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the environment variable with the name "
+"[code]variable[/code] exists.\n"
+"[b]Note:[/b] Double-check the casing of [code]variable[/code]. Environment "
+"variable names are case-sensitive on all platforms except Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the feature for the given feature tag is "
+"supported in the currently running instance, depending on the platform, "
+"build etc. Can be used to check whether you're currently running a debug "
+"build, on a certain platform or arch, etc. Refer to the [url=$DOCS_URL/"
+"tutorials/export/feature_tags.html]Feature Tags[/url] documentation for more "
+"details.\n"
+"[b]Note:[/b] Tag names are case-sensitive."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the device has a touchscreen or emulates one."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the platform has a virtual keyboard, "
+"[code]false[/code] otherwise."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Hides the virtual keyboard if it is shown, does nothing otherwise."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the Godot binary used to run the project is a "
+"[i]debug[/i] export template, or when running in the editor.\n"
+"Returns [code]false[/code] if the Godot binary used to run the project is a "
+"[i]release[/i] export template.\n"
+"To check whether the Godot binary used to run the project is an export "
+"template (debug or release), use [code]OS.has_feature(\"standalone\")[/code] "
+"instead."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the [b]OK[/b] button should appear on the left "
+"and [b]Cancel[/b] on the right."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the input scancode corresponds to a Unicode "
+"character."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the engine was executed with [code]-v[/code] "
+"(verbose stdout)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"If [code]true[/code], the [code]user://[/code] file system is persistent, so "
+"that its state is the same after a player quits and starts the game again. "
+"Relevant to the HTML5 platform, where this persistence may be unavailable."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the window should always be on top of other "
+"windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if the window is currently focused.\n"
+"[b]Note:[/b] Only implemented on desktop platforms. On other platforms, it "
+"will always return [code]true[/code]."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns active keyboard layout index.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the number of keyboard layouts.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the ISO-639/BCP-47 language code of the keyboard layout at position "
+"[code]index[/code].\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns the localized name of the keyboard layout at position [code]index[/"
+"code].\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Sets active keyboard layout.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Kill (terminate) the process identified by the given process ID ([code]pid[/"
+"code]), e.g. the one returned by [method execute] in non-blocking mode. See "
+"also [method crash].\n"
+"[b]Note:[/b] This method can also be used to kill processes that were not "
+"spawned by the game.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and "
+"Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Moves the window to the front.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Returns [code]true[/code] if native video is playing.\n"
+"[b]Note:[/b] This method is only implemented on iOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Pauses native video playback.\n"
+"[b]Note:[/b] This method is only implemented on iOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Plays native video from the specified path, at the given volume and with "
+"audio and subtitle tracks.\n"
+"[b]Note:[/b] This method is only implemented on iOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Stops native video playback.\n"
+"[b]Note:[/b] This method is implemented on iOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Resumes native video playback.\n"
+"[b]Note:[/b] This method is implemented on iOS."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Initialises the singleton for the system MIDI driver.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Shows all resources in the game. Optionally, the list can be written to a "
+"file by specifying a file path in [code]tofile[/code]."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Shows the list of loaded textures sorted by size in memory."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Shows the number of resources loaded by the game of the given types."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Shows all resources currently used by the game."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Request the user attention to the window. It'll flash the taskbar button on "
+"Windows or bounce the dock icon on OSX.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"At the moment this function is only used by [code]AudioDriverOpenSL[/code] "
+"to request permission for [code]RECORD_AUDIO[/code] on Android."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"With this function, you can request dangerous permissions since normal "
+"permissions are automatically granted at install time in Android "
+"applications.\n"
+"[b]Note:[/b] This method is implemented on Android."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Sets the value of the environment variable [code]variable[/code] to "
+"[code]value[/code]. The environment variable will be set for the Godot "
+"process and any process executed with [method execute] after running [method "
+"set_environment]. The environment variable will [i]not[/i] persist to "
+"processes run after the Godot process was terminated.\n"
+"[b]Note:[/b] Double-check the casing of [code]variable[/code]. Environment "
+"variable names are case-sensitive on all platforms except Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Sets the game's icon using an [Image] resource.\n"
+"The same image is used for window caption, taskbar/dock and window selection "
+"dialog. Image is scaled as needed.\n"
+"[b]Note:[/b] This method is implemented on HTML5, Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Sets whether IME input mode should be enabled.\n"
+"If active IME handles key events before the application and creates an "
+"composition string and suggestion list.\n"
+"Application can retrieve the composition status by using [method "
+"get_ime_selection] and [method get_ime_text] functions.\n"
+"Completed composition string is committed when input is finished.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Sets position of IME suggestion list popup (in window coordinates).\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Sets the game's icon using a multi-size platform-specific icon file ([code]*."
+"ico[/code] on Windows and [code]*.icns[/code] on macOS).\n"
+"Appropriate size sub-icons are used for window caption, taskbar/dock and "
+"window selection dialog.\n"
+"[b]Note:[/b] This method is implemented on macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Sets the name of the current thread."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Enables backup saves if [code]enabled[/code] is [code]true[/code]."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Sets whether the window should always be on top.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Sets a polygonal region of the window which accepts mouse events. Mouse "
+"events outside the region will be passed through.\n"
+"Passing an empty array will disable passthrough support (all mouse events "
+"will be intercepted by the window, which is the default behavior).\n"
+"[codeblock]\n"
+"# Set region, using Path2D node.\n"
+"OS.set_window_mouse_passthrough($Path2D.curve.get_baked_points())\n"
+"\n"
+"# Set region, using Polygon2D node.\n"
+"OS.set_window_mouse_passthrough($Polygon2D.polygon)\n"
+"\n"
+"# Reset region to default.\n"
+"OS.set_window_mouse_passthrough([])\n"
+"[/codeblock]\n"
+"[b]Note:[/b] On Windows, the portion of a window that lies outside the "
+"region is not drawn, while on Linux and macOS it is.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Sets the window title to the specified string.\n"
+"[b]Note:[/b] This should be used sporadically. Don't set this every frame, "
+"as that will negatively affect performance on some window managers.\n"
+"[b]Note:[/b] This method is implemented on HTML5, Linux, macOS and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Requests the OS to open a resource with the most appropriate program. For "
+"example:\n"
+"- [code]OS.shell_open(\"C:\\\\Users\\name\\Downloads\")[/code] on Windows "
+"opens the file explorer at the user's Downloads folder.\n"
+"- [code]OS.shell_open(\"https://godotengine.org\")[/code] opens the default "
+"web browser on the official Godot website.\n"
+"- [code]OS.shell_open(\"mailto:example@example.com\")[/code] opens the "
+"default email client with the \"To\" field set to [code]example@example.com[/"
+"code]. See [url=https://blog.escapecreative.com/customizing-mailto-"
+"links/]Customizing [code]mailto:[/code] Links[/url] for a list of fields "
+"that can be added.\n"
+"Use [method ProjectSettings.globalize_path] to convert a [code]res://[/code] "
+"or [code]user://[/code] path into a system path for use with this method.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, HTML5, Linux, macOS "
+"and Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Shows the virtual keyboard if the platform has one.\n"
+"The [code]existing_text[/code] parameter is useful for implementing your own "
+"[LineEdit] or [TextEdit], as it tells the virtual keyboard what text has "
+"already been typed (the virtual keyboard uses it for auto-correct and "
+"predictions).\n"
+"The [code]multiline[/code] parameter needs to be set to [code]true[/code] to "
+"be able to enter multiple lines of text, as in [TextEdit].\n"
+"[b]Note:[/b] This method is implemented on Android, iOS and UWP."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "The clipboard from the host OS. Might be unavailable on some platforms."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "The current screen index (starting from 0)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"If [code]true[/code], the engine filters the time delta measured between "
+"each frame, and attempts to compensate for random variation. This will only "
+"operate on systems where V-Sync is active."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"The exit code passed to the OS when the main loop exits. By convention, an "
+"exit code of [code]0[/code] indicates success whereas a non-zero exit code "
+"indicates an error. For portability reasons, the exit code should be set "
+"between 0 and 125 (inclusive).\n"
+"[b]Note:[/b] This value will be ignored if using [method SceneTree.quit] "
+"with an [code]exit_code[/code] argument passed."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"If [code]true[/code], the engine tries to keep the screen on while the game "
+"is running. Useful on mobile."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"If [code]true[/code], the engine optimizes for low processor usage by only "
+"refreshing the screen if needed. Can improve battery consumption on mobile."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"The amount of sleeping between frames when the low-processor usage mode is "
+"enabled (in microseconds). Higher values will result in lower CPU usage."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"The maximum size of the window (without counting window manager "
+"decorations). Does not affect fullscreen mode. Set to [code](0, 0)[/code] to "
+"reset to the system default value."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"The minimum size of the window in pixels (without counting window manager "
+"decorations). Does not affect fullscreen mode. Set to [code](0, 0)[/code] to "
+"reset to the system's default value.\n"
+"[b]Note:[/b] By default, the project window has a minimum size of "
+"[code]Vector2(64, 64)[/code]. This prevents issues that can arise when the "
+"window is resized to a near-zero size."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "The current screen orientation."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "The current tablet driver in use."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "If [code]true[/code], vertical synchronization (Vsync) is enabled."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"If [code]true[/code] and [code]vsync_enabled[/code] is true, the operating "
+"system's window compositor will be used for vsync when the compositor is "
+"enabled and the game is in windowed mode.\n"
+"[b]Note:[/b] This option is experimental and meant to alleviate stutter "
+"experienced by some users. However, some users have experienced a Vsync "
+"framerate halving (e.g. from 60 FPS to 30 FPS) when using it.\n"
+"[b]Note:[/b] This property is only implemented on Windows."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"If [code]true[/code], removes the window frame.\n"
+"[b]Note:[/b] Setting [code]window_borderless[/code] to [code]false[/code] "
+"disables per-pixel transparency."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "If [code]true[/code], the window is fullscreen."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "If [code]true[/code], the window is maximized."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "If [code]true[/code], the window is minimized."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"If [code]true[/code], the window background is transparent and the window "
+"frame is removed.\n"
+"Use [code]get_tree().get_root().set_transparent_background(true)[/code] to "
+"disable main viewport background rendering.\n"
+"[b]Note:[/b] This property has no effect if [member ProjectSettings.display/"
+"window/per_pixel_transparency/allowed] setting is disabled.\n"
+"[b]Note:[/b] This property is implemented on HTML5, Linux, macOS, Windows, "
+"and Android. It can't be changed at runtime for Android. Use [member "
+"ProjectSettings.display/window/per_pixel_transparency/enabled] to set it at "
+"startup instead."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"The window position relative to the screen, the origin is the top left "
+"corner, +Y axis goes to the bottom and +X axis goes to the right."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "If [code]true[/code], the window is resizable by the user."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "The size of the window (without counting window manager decorations)."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"The GLES2 rendering backend. It uses OpenGL ES 2.0 on mobile devices, OpenGL "
+"2.1 on desktop platforms and WebGL 1.0 on the web."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"The GLES3 rendering backend. It uses OpenGL ES 3.0 on mobile devices, OpenGL "
+"3.3 on desktop platforms and WebGL 2.0 on the web."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Sunday."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Monday."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Tuesday."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Wednesday."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Thursday."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Friday."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Saturday."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "January."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "February."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "March."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "April."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "May."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "June."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "July."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "August."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "September."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "October."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "November."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "December."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Application handle:\n"
+"- Windows: [code]HINSTANCE[/code] of the application\n"
+"- MacOS: [code]NSApplication*[/code] of the application (not yet "
+"implemented)\n"
+"- Android: [code]JNIEnv*[/code] of the application (not yet implemented)"
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Display handle:\n"
+"- Linux: [code]X11::Display*[/code] for the display"
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Window handle:\n"
+"- Windows: [code]HWND[/code] of the main window\n"
+"- Linux: [code]X11::Window*[/code] of the main window\n"
+"- MacOS: [code]NSWindow*[/code] of the main window (not yet implemented)\n"
+"- Android: [code]jObject[/code] the main android activity (not yet "
+"implemented)"
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"Window view:\n"
+"- Windows: [code]HDC[/code] of the main window drawing context\n"
+"- MacOS: [code]NSView*[/code] of the main windows view (not yet implemented)"
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid ""
+"OpenGL Context:\n"
+"- Windows: [code]HGLRC[/code]\n"
+"- Linux: [code]X11::GLXContext[/code]\n"
+"- MacOS: [code]NSOpenGLContext*[/code] (not yet implemented)"
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Landscape screen orientation."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Portrait screen orientation."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Reverse landscape screen orientation."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Reverse portrait screen orientation."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Uses landscape or reverse landscape based on the hardware sensor."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Uses portrait or reverse portrait based on the hardware sensor."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Uses most suitable orientation based on the hardware sensor."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Desktop directory path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "DCIM (Digital Camera Images) directory path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Documents directory path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Downloads directory path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Movies directory path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Music directory path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Pictures directory path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Ringtones directory path."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Unknown powerstate."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Unplugged, running on battery."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Plugged in, no battery available."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Plugged in, battery charging."
+msgstr ""
+
+#: doc/classes/OS.xml
+msgid "Plugged in, battery fully charged."
+msgstr ""
+
+#: doc/classes/PackedDataContainerRef.xml
+msgid "Reference version of [PackedDataContainer]."
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid "An abstraction of a serialized scene."
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid ""
+"A simplified interface to a scene file. Provides access to operations and "
+"checks that can be performed on the scene resource itself.\n"
+"Can be used to save a node to a file. When saving, the node as well as all "
+"the nodes it owns get saved (see [code]owner[/code] property on [Node]).\n"
+"[b]Note:[/b] The node doesn't need to own itself.\n"
+"[b]Example of loading a saved scene:[/b]\n"
+"[codeblock]\n"
+"# Use `load()` instead of `preload()` if the path isn't known at compile-"
+"time.\n"
+"var scene = preload(\"res://scene.tscn\").instance()\n"
+"# Add the node as a child of the node the script is attached to.\n"
+"add_child(scene)\n"
+"[/codeblock]\n"
+"[b]Example of saving a node with different owners:[/b] The following example "
+"creates 3 objects: [code]Node2D[/code] ([code]node[/code]), "
+"[code]RigidBody2D[/code] ([code]rigid[/code]) and [code]CollisionObject2D[/"
+"code] ([code]collision[/code]). [code]collision[/code] is a child of "
+"[code]rigid[/code] which is a child of [code]node[/code]. Only [code]rigid[/"
+"code] is owned by [code]node[/code] and [code]pack[/code] will therefore "
+"only save those two nodes, but not [code]collision[/code].\n"
+"[codeblock]\n"
+"# Create the objects.\n"
+"var node = Node2D.new()\n"
+"var rigid = RigidBody2D.new()\n"
+"var collision = CollisionShape2D.new()\n"
+"\n"
+"# Create the object hierarchy.\n"
+"rigid.add_child(collision)\n"
+"node.add_child(rigid)\n"
+"\n"
+"# Change owner of `rigid`, but not of `collision`.\n"
+"rigid.owner = node\n"
+"\n"
+"var scene = PackedScene.new()\n"
+"# Only `node` and `rigid` are now packed.\n"
+"var result = scene.pack(node)\n"
+"if result == OK:\n"
+" var error = ResourceSaver.save(\"res://path/name.scn\", scene) # Or "
+"\"user://...\"\n"
+" if error != OK:\n"
+" push_error(\"An error occurred while saving the scene to disk.\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid "Returns [code]true[/code] if the scene file has nodes."
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid ""
+"Returns the [code]SceneState[/code] representing the scene file contents."
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid ""
+"Instantiates the scene's node hierarchy. Triggers child scene "
+"instantiation(s). Triggers a [constant Node.NOTIFICATION_INSTANCED] "
+"notification on the root node."
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid ""
+"Pack will ignore any sub-nodes not owned by given node. See [member Node."
+"owner]."
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid ""
+"A dictionary representation of the scene contents.\n"
+"Available keys include \"rnames\" and \"variants\" for resources, "
+"\"node_count\", \"nodes\", \"node_paths\" for nodes, \"editable_instances\" "
+"for base scene children overrides, \"conn_count\" and \"conns\" for signal "
+"connections, and \"version\" for the format style of the PackedScene."
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid "If passed to [method instance], blocks edits to the scene state."
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid ""
+"If passed to [method instance], provides local scene resources to the local "
+"scene.\n"
+"[b]Note:[/b] Only available in editor builds."
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid ""
+"If passed to [method instance], provides local scene resources to the local "
+"scene. Only the main scene should receive the main edit state.\n"
+"[b]Note:[/b] Only available in editor builds."
+msgstr ""
+
+#: doc/classes/PackedScene.xml
+msgid ""
+"It's similar to [constant GEN_EDIT_STATE_MAIN], but for the case where the "
+"scene is being instantiated to be the base of another one.\n"
+"[b]Note:[/b] Only available in editor builds."
+msgstr ""
+
+#: doc/classes/PacketPeer.xml
+msgid "Abstraction and base class for packet-based protocols."
+msgstr ""
+
+#: doc/classes/PacketPeer.xml
+msgid ""
+"PacketPeer is an abstraction and base class for packet-based protocols (such "
+"as UDP). It provides an API for sending and receiving packets both as raw "
+"data or variables. This makes it easy to transfer data over a protocol, "
+"without having to encode data as low-level bytes or having to worry about "
+"network ordering."
+msgstr ""
+
+#: doc/classes/PacketPeer.xml
+msgid "Returns the number of packets currently available in the ring-buffer."
+msgstr ""
+
+#: doc/classes/PacketPeer.xml
+msgid "Gets a raw packet."
+msgstr ""
+
+#: doc/classes/PacketPeer.xml
+msgid ""
+"Returns the error state of the last packet received (via [method get_packet] "
+"and [method get_var])."
+msgstr ""
+
+#: doc/classes/PacketPeer.xml
+msgid ""
+"Gets a Variant. If [code]allow_objects[/code] (or [member "
+"allow_object_decoding]) is [code]true[/code], decoding objects is allowed.\n"
+"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
+"Do not use this option if the serialized object comes from untrusted sources "
+"to avoid potential security threats such as remote code execution."
+msgstr ""
+
+#: doc/classes/PacketPeer.xml
+msgid "Sends a raw packet."
+msgstr ""
+
+#: doc/classes/PacketPeer.xml
+msgid ""
+"Sends a [Variant] as a packet. If [code]full_objects[/code] (or [member "
+"allow_object_decoding]) is [code]true[/code], encoding objects is allowed "
+"(and can potentially include code)."
+msgstr ""
+
+#: doc/classes/PacketPeer.xml
+msgid ""
+"[i]Deprecated.[/i] Use [code]get_var[/code] and [code]put_var[/code] "
+"parameters instead.\n"
+"If [code]true[/code], the PacketPeer will allow encoding and decoding of "
+"object via [method get_var] and [method put_var].\n"
+"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
+"Do not use this option if the serialized object comes from untrusted sources "
+"to avoid potential security threats such as remote code execution."
+msgstr ""
+
+#: doc/classes/PacketPeer.xml
+msgid ""
+"Maximum buffer size allowed when encoding [Variant]s. Raise this value to "
+"support heavier memory allocations.\n"
+"The [method put_var] method allocates memory on the stack, and the buffer "
+"used will grow automatically to the closest power of two to match the size "
+"of the [Variant]. If the [Variant] is bigger than "
+"[code]encode_buffer_max_size[/code], the method will error out with "
+"[constant ERR_OUT_OF_MEMORY]."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml
+msgid "DTLS packet peer."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml
+msgid ""
+"This class represents a DTLS peer connection. It can be used to connect to a "
+"DTLS server, and is returned by [method DTLSServer.take_connection].\n"
+"[b]Warning:[/b] SSL/TLS certificate revocation and certificate pinning are "
+"currently not supported. Revoked certificates are accepted as long as they "
+"are otherwise valid. If this is a concern, you may want to use automatically "
+"managed certificates with a short validity period."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml
+msgid ""
+"Connects a [code]peer[/code] beginning the DTLS handshake using the "
+"underlying [PacketPeerUDP] which must be connected (see [method "
+"PacketPeerUDP.connect_to_host]). If [code]validate_certs[/code] is "
+"[code]true[/code], [PacketPeerDTLS] will validate that the certificate "
+"presented by the remote peer and match it with the [code]for_hostname[/code] "
+"argument. You can specify a custom [X509Certificate] to use for validation "
+"via the [code]valid_certificate[/code] argument."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml
+msgid "Disconnects this peer, terminating the DTLS session."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml doc/classes/StreamPeerSSL.xml
+msgid "Returns the status of the connection. See [enum Status] for values."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml
+msgid ""
+"Poll the connection to check for incoming packets. Call this frequently to "
+"update the status and keep the connection working."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml
+msgid "A status representing a [PacketPeerDTLS] that is disconnected."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml
+msgid ""
+"A status representing a [PacketPeerDTLS] that is currently performing the "
+"handshake with a remote peer."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml
+msgid ""
+"A status representing a [PacketPeerDTLS] that is connected to a remote peer."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml
+msgid "A status representing a [PacketPeerDTLS] in a generic error state."
+msgstr ""
+
+#: doc/classes/PacketPeerDTLS.xml
+msgid ""
+"An error status that shows a mismatch in the DTLS certificate domain "
+"presented by the host and the domain requested for validation."
+msgstr ""
+
+#: doc/classes/PacketPeerStream.xml
+msgid "Wrapper to use a PacketPeer over a StreamPeer."
+msgstr ""
+
+#: doc/classes/PacketPeerStream.xml
+msgid ""
+"PacketStreamPeer provides a wrapper for working using packets over a stream. "
+"This allows for using packet based code with StreamPeers. PacketPeerStream "
+"implements a custom protocol over the StreamPeer, so the user should not "
+"read or write to the wrapped StreamPeer directly."
+msgstr ""
+
+#: doc/classes/PacketPeerStream.xml
+msgid "The wrapped [StreamPeer] object."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid "UDP packet peer."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"UDP packet peer. Can be used to send raw UDP packets as well as [Variant]s."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid "Closes the UDP socket the [PacketPeerUDP] is currently listening on."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"Calling this method connects this UDP peer to the given [code]host[/code]/"
+"[code]port[/code] pair. UDP is in reality connectionless, so this option "
+"only means that incoming packets from different addresses are automatically "
+"discarded, and that outgoing packets are always sent to the connected "
+"address (future calls to [method set_dest_address] are not allowed). This "
+"method does not send any data to the remote peer, to do that, use [method "
+"PacketPeer.put_var] or [method PacketPeer.put_packet] as usual. See also "
+"[UDPServer].\n"
+"[b]Note:[/b] Connecting to the remote peer does not help to protect from "
+"malicious attacks like IP spoofing, etc. Think about using an encryption "
+"technique like SSL or DTLS if you feel like your application is transferring "
+"sensitive information."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"Returns the IP of the remote peer that sent the last packet(that was "
+"received with [method PacketPeer.get_packet] or [method PacketPeer.get_var])."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"Returns the port of the remote peer that sent the last packet(that was "
+"received with [method PacketPeer.get_packet] or [method PacketPeer.get_var])."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"Returns [code]true[/code] if the UDP socket is open and has been connected "
+"to a remote address. See [method connect_to_host]."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid "Returns whether this [PacketPeerUDP] is listening."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"Joins the multicast group specified by [code]multicast_address[/code] using "
+"the interface identified by [code]interface_name[/code].\n"
+"You can join the same multicast group with multiple interfaces. Use [method "
+"IP.get_local_interfaces] to know which are available.\n"
+"[b]Note:[/b] Some Android devices might require the "
+"[code]CHANGE_WIFI_MULTICAST_STATE[/code] permission for multicast to work."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"Removes the interface identified by [code]interface_name[/code] from the "
+"multicast group specified by [code]multicast_address[/code]."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"Makes this [PacketPeerUDP] listen on the [code]port[/code] binding to "
+"[code]bind_address[/code] with a buffer size [code]recv_buf_size[/code].\n"
+"If [code]bind_address[/code] is set to [code]\"*\"[/code] (default), the "
+"peer will listen on all available addresses (both IPv4 and IPv6).\n"
+"If [code]bind_address[/code] is set to [code]\"0.0.0.0\"[/code] (for IPv4) "
+"or [code]\"::\"[/code] (for IPv6), the peer will listen on all available "
+"addresses matching that IP type.\n"
+"If [code]bind_address[/code] is set to any valid address (e.g. "
+"[code]\"192.168.1.101\"[/code], [code]\"::1\"[/code], etc), the peer will "
+"only listen on the interface with that addresses (or fail if no interface "
+"with the given address exists)."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"Enable or disable sending of broadcast packets (e.g. "
+"[code]set_dest_address(\"255.255.255.255\", 4343)[/code]. This option is "
+"disabled by default.\n"
+"[b]Note:[/b] Some Android devices might require the "
+"[code]CHANGE_WIFI_MULTICAST_STATE[/code] permission and this option to be "
+"enabled to receive broadcast packets too."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"Sets the destination address and port for sending packets and variables. A "
+"hostname will be resolved using DNS if needed.\n"
+"[b]Note:[/b] [method set_broadcast_enabled] must be enabled before sending "
+"packets to a broadcast address (e.g. [code]255.255.255.255[/code])."
+msgstr ""
+
+#: doc/classes/PacketPeerUDP.xml
+msgid ""
+"Waits for a packet to arrive on the listening port. See [method listen].\n"
+"[b]Note:[/b] [method wait] can't be interrupted once it has been called. "
+"This can be worked around by allowing the other party to send a specific "
+"\"death pill\" packet like this:\n"
+"[codeblock]\n"
+"# Server\n"
+"socket.set_dest_address(\"127.0.0.1\", 789)\n"
+"socket.put_packet(\"Time to stop\".to_ascii())\n"
+"\n"
+"# Client\n"
+"while socket.wait() == OK:\n"
+" var data = socket.get_packet().get_string_from_ascii()\n"
+" if data == \"Time to stop\":\n"
+" return\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Panel.xml
+msgid "Provides an opaque background for [Control] children."
+msgstr ""
+
+#: doc/classes/Panel.xml
+msgid ""
+"Panel is a [Control] that displays an opaque background. It's commonly used "
+"as a parent and container for other types of [Control] nodes."
+msgstr ""
+
+#: doc/classes/Panel.xml
+msgid "https://godotengine.org/asset-library/asset/516"
+msgstr ""
+
+#: doc/classes/Panel.xml doc/classes/Skeleton.xml doc/classes/SkeletonIK.xml
+msgid "https://godotengine.org/asset-library/asset/523"
+msgstr ""
+
+#: doc/classes/Panel.xml
+msgid "The style of this [Panel]."
+msgstr ""
+
+#: doc/classes/PanelContainer.xml
+msgid "Panel container type."
+msgstr ""
+
+#: doc/classes/PanelContainer.xml
+msgid ""
+"Panel container type. This container fits controls inside of the delimited "
+"area of a stylebox. It's useful for giving controls an outline."
+msgstr ""
+
+#: doc/classes/PanelContainer.xml
+msgid "The style of [PanelContainer]'s background."
+msgstr ""
+
+#: doc/classes/PanoramaSky.xml
+msgid "A type of [Sky] used to draw a background texture."
+msgstr ""
+
+#: doc/classes/PanoramaSky.xml
+msgid ""
+"A resource referenced in an [Environment] that is used to draw a background. "
+"The Panorama sky functions similar to skyboxes in other engines, except it "
+"uses an equirectangular sky map instead of a cube map.\n"
+"Using an HDR panorama is strongly recommended for accurate, high-quality "
+"reflections. Godot supports the Radiance HDR ([code].hdr[/code]) and OpenEXR "
+"([code].exr[/code]) image formats for this purpose.\n"
+"You can use [url=https://danilw.github.io/GLSL-howto/cubemap_to_panorama_js/"
+"cubemap_to_panorama.html]this tool[/url] to convert a cube map to an "
+"equirectangular sky map."
+msgstr ""
+
+#: doc/classes/PanoramaSky.xml
+msgid "[Texture] to be applied to the PanoramaSky."
+msgstr ""
+
+#: doc/classes/ParallaxBackground.xml
+msgid "A node used to create a parallax scrolling background."
+msgstr ""
+
+#: doc/classes/ParallaxBackground.xml
+msgid ""
+"A ParallaxBackground uses one or more [ParallaxLayer] child nodes to create "
+"a parallax effect. Each [ParallaxLayer] can move at a different speed using "
+"[member ParallaxLayer.motion_offset]. This creates an illusion of depth in a "
+"2D game. If not used with a [Camera2D], you must manually calculate the "
+"[member scroll_offset]."
+msgstr ""
+
+#: doc/classes/ParallaxBackground.xml
+msgid "The base position offset for all [ParallaxLayer] children."
+msgstr ""
+
+#: doc/classes/ParallaxBackground.xml
+msgid "The base motion scale for all [ParallaxLayer] children."
+msgstr ""
+
+#: doc/classes/ParallaxBackground.xml
+msgid ""
+"If [code]true[/code], elements in [ParallaxLayer] child aren't affected by "
+"the zoom level of the camera."
+msgstr ""
+
+#: doc/classes/ParallaxBackground.xml
+msgid ""
+"Top-left limits for scrolling to begin. If the camera is outside of this "
+"limit, the background will stop scrolling. Must be lower than [member "
+"scroll_limit_end] to work."
+msgstr ""
+
+#: doc/classes/ParallaxBackground.xml
+msgid ""
+"Bottom-right limits for scrolling to end. If the camera is outside of this "
+"limit, the background will stop scrolling. Must be higher than [member "
+"scroll_limit_begin] to work."
+msgstr ""
+
+#: doc/classes/ParallaxBackground.xml
+msgid ""
+"The ParallaxBackground's scroll value. Calculated automatically when using a "
+"[Camera2D], but can be used to manually manage scrolling when no camera is "
+"present."
+msgstr ""
+
+#: doc/classes/ParallaxLayer.xml
+msgid "A parallax scrolling layer to be used with [ParallaxBackground]."
+msgstr ""
+
+#: doc/classes/ParallaxLayer.xml
+msgid ""
+"A ParallaxLayer must be the child of a [ParallaxBackground] node. Each "
+"ParallaxLayer can be set to move at different speeds relative to the camera "
+"movement or the [member ParallaxBackground.scroll_offset] value.\n"
+"This node's children will be affected by its scroll offset.\n"
+"[b]Note:[/b] Any changes to this node's position and scale made after it "
+"enters the scene will be ignored."
+msgstr ""
+
+#: doc/classes/ParallaxLayer.xml
+msgid ""
+"The ParallaxLayer's [Texture] mirroring. Useful for creating an infinite "
+"scrolling background. If an axis is set to [code]0[/code], the [Texture] "
+"will not be mirrored."
+msgstr ""
+
+#: doc/classes/ParallaxLayer.xml
+msgid ""
+"The ParallaxLayer's offset relative to the parent ParallaxBackground's "
+"[member ParallaxBackground.scroll_offset]."
+msgstr ""
+
+#: doc/classes/ParallaxLayer.xml
+msgid ""
+"Multiplies the ParallaxLayer's motion. If an axis is set to [code]0[/code], "
+"it will not scroll."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "GPU-based 3D particle emitter."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid ""
+"3D particle node used to create a variety of particle systems and effects. "
+"[Particles] features an emitter that generates some number of particles at a "
+"given rate.\n"
+"Use the [code]process_material[/code] property to add a [ParticlesMaterial] "
+"to configure particle appearance and behavior. Alternatively, you can add a "
+"[ShaderMaterial] which will be applied to all particles.\n"
+"[b]Note:[/b] [Particles] only work when using the GLES3 renderer. If using "
+"the GLES2 renderer, use [CPUParticles] instead. You can convert [Particles] "
+"to [CPUParticles] by selecting the node, clicking the [b]Particles[/b] menu "
+"at the top of the 3D editor viewport then choosing [b]Convert to "
+"CPUParticles[/b].\n"
+"[b]Note:[/b] After working on a Particles node, remember to update its "
+"[member visibility_aabb] by selecting it, clicking the [b]Particles[/b] menu "
+"at the top of the 3D editor viewport then choose [b]Generate Visibility "
+"AABB[/b]. Otherwise, particles may suddenly disappear depending on the "
+"camera position and angle."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid ""
+"$DOCS_URL/tutorials/performance/vertex_animation/"
+"controlling_thousands_of_fish.html"
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid ""
+"Returns the axis-aligned bounding box that contains all the particles that "
+"are active in the current frame."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "Returns the [Mesh] that is drawn at index [code]pass[/code]."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "Restarts the particle emission, clearing existing particles."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "Sets the [Mesh] that is drawn at index [code]pass[/code]."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "[Mesh] that is drawn for the first draw pass."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "[Mesh] that is drawn for the second draw pass."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "[Mesh] that is drawn for the third draw pass."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "[Mesh] that is drawn for the fourth draw pass."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "The number of draw passes when rendering particles."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid ""
+"Time ratio between each emission. If [code]0[/code], particles are emitted "
+"continuously. If [code]1[/code], all particles are emitted simultaneously."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid ""
+"If [code]true[/code], only [code]amount[/code] particles will be emitted."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid ""
+"Amount of time to preprocess the particles before animation starts. Lets you "
+"start the animation some time after particles have started emitting."
+msgstr ""
+
+#: doc/classes/Particles.xml doc/classes/Particles2D.xml
+msgid ""
+"[Material] for processing particles. Can be a [ParticlesMaterial] or a "
+"[ShaderMaterial]."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "Emission randomness ratio."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid ""
+"Speed scaling ratio. A value of [code]0[/code] can be used to pause the "
+"particles."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid ""
+"The [AABB] that determines the node's region which needs to be visible on "
+"screen for the particle system to be active.\n"
+"Grow the box if particles suddenly appear/disappear when the node enters/"
+"exits the screen. The [AABB] can be grown via code or with the [b]Particles "
+"→ Generate AABB[/b] editor tool.\n"
+"[b]Note:[/b] If the [ParticlesMaterial] in use is configured to cast "
+"shadows, you may want to enlarge this AABB to ensure the shadow is updated "
+"when particles are off-screen."
+msgstr ""
+
+#: doc/classes/Particles.xml
+msgid "Maximum number of draw passes supported."
+msgstr ""
+
+#: doc/classes/Particles2D.xml
+msgid "GPU-based 2D particle emitter."
+msgstr ""
+
+#: doc/classes/Particles2D.xml
+msgid ""
+"2D particle node used to create a variety of particle systems and effects. "
+"[Particles2D] features an emitter that generates some number of particles at "
+"a given rate.\n"
+"Use the [code]process_material[/code] property to add a [ParticlesMaterial] "
+"to configure particle appearance and behavior. Alternatively, you can add a "
+"[ShaderMaterial] which will be applied to all particles.\n"
+"[b]Note:[/b] [Particles2D] only work when using the GLES3 renderer. If using "
+"the GLES2 renderer, use [CPUParticles2D] instead. You can convert "
+"[Particles2D] to [CPUParticles2D] by selecting the node, clicking the "
+"[b]Particles[/b] menu at the top of the 2D editor viewport then choosing "
+"[b]Convert to CPUParticles2D[/b].\n"
+"[b]Note:[/b] After working on a Particles node, remember to update its "
+"[member visibility_rect] by selecting it, clicking the [b]Particles[/b] menu "
+"at the top of the 2D editor viewport then choose [b]Generate Visibility "
+"Rect[/b]. Otherwise, particles may suddenly disappear depending on the "
+"camera position and angle.\n"
+"[b]Note:[/b] Unlike [CPUParticles2D], [Particles2D] currently ignore the "
+"texture region defined in [AtlasTexture]s."
+msgstr ""
+
+#: doc/classes/Particles2D.xml
+msgid "Returns a rectangle containing the positions of all existing particles."
+msgstr ""
+
+#: doc/classes/Particles2D.xml
+msgid "Restarts all the existing particles."
+msgstr ""
+
+#: doc/classes/Particles2D.xml
+msgid ""
+"The [Rect2] that determines the node's region which needs to be visible on "
+"screen for the particle system to be active.\n"
+"Grow the rect if particles suddenly appear/disappear when the node enters/"
+"exits the screen. The [Rect2] can be grown via code or with the [b]Particles "
+"→ Generate Visibility Rect[/b] editor tool."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Particle properties for [Particles] and [Particles2D] nodes."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"ParticlesMaterial defines particle properties and behavior. It is used in "
+"the [code]process_material[/code] of [Particles] and [Particles2D] emitter "
+"nodes.\n"
+"Some of this material's properties are applied to each particle when "
+"emitted, while others can have a [CurveTexture] applied to vary values over "
+"the lifetime of the particle.\n"
+"When a randomness ratio is applied to a property it is used to scale that "
+"property by a random amount. The random ratio is used to interpolate between "
+"[code]1.0[/code] and a random number less than one, the result is multiplied "
+"by the property to obtain the randomized property. For example a random "
+"ratio of [code]0.4[/code] would scale the original property between "
+"[code]0.4-1.0[/code] of its original value."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Returns [code]true[/code] if the specified flag is enabled."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Returns the randomness ratio associated with the specified parameter."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Returns the [Texture] used by the specified parameter."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"If [code]true[/code], enables the specified flag. See [enum Flags] for "
+"options."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Sets the specified [enum Parameter]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Sets the randomness ratio for the specified [enum Parameter]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Sets the [Texture] for the specified [enum Parameter]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Initial rotation applied to each particle, in degrees.\n"
+"[b]Note:[/b] Only applied when [member flag_disable_z] or [member "
+"flag_rotate_y] are [code]true[/code] or the [SpatialMaterial] being used to "
+"draw the particle is using [constant SpatialMaterial.BILLBOARD_PARTICLES]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Each particle's rotation will be animated along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Initial angular velocity applied to each particle in [i]degrees[/i] per "
+"second. Sets the speed of rotation of the particle.\n"
+"[b]Note:[/b] Only applied when [member flag_disable_z] or [member "
+"flag_rotate_y] are [code]true[/code] or the [SpatialMaterial] being used to "
+"draw the particle is using [constant SpatialMaterial.BILLBOARD_PARTICLES]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Each particle's angular velocity will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Each particle's animation offset will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Each particle's animation speed will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Each particle's initial color. If the [Particles2D]'s [code]texture[/code] "
+"is defined, it will be multiplied by this color. To have particle display "
+"color in a [SpatialMaterial] make sure to set [member SpatialMaterial."
+"vertex_color_use_as_albedo] to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Damping will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"The box's extents if [code]emission_shape[/code] is set to [constant "
+"EMISSION_SHAPE_BOX]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Particle color will be modulated by color determined by sampling this "
+"texture at the same point as the [member emission_point_texture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Particle velocity and rotation will be set by sampling this texture at the "
+"same point as the [member emission_point_texture]. Used only in [constant "
+"EMISSION_SHAPE_DIRECTED_POINTS]. Can be created automatically from mesh or "
+"node by selecting \"Create Emission Points from Mesh/Node\" under the "
+"\"Particles\" tool in the toolbar."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"The number of emission points if [code]emission_shape[/code] is set to "
+"[constant EMISSION_SHAPE_POINTS] or [constant "
+"EMISSION_SHAPE_DIRECTED_POINTS]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Particles will be emitted at positions determined by sampling this texture "
+"at a random position. Used with [constant EMISSION_SHAPE_POINTS] and "
+"[constant EMISSION_SHAPE_DIRECTED_POINTS]. Can be created automatically from "
+"mesh or node by selecting \"Create Emission Points from Mesh/Node\" under "
+"the \"Particles\" tool in the toolbar."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"The axis of the ring when using the emitter [constant EMISSION_SHAPE_RING]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"The height of the ring when using the emitter [constant EMISSION_SHAPE_RING]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"The inner radius of the ring when using the emitter [constant "
+"EMISSION_SHAPE_RING]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"The radius of the ring when using the emitter [constant EMISSION_SHAPE_RING]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Particles will be emitted inside this region. Use [enum EmissionShape] "
+"constants for values."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"The sphere's radius if [code]emission_shape[/code] is set to [constant "
+"EMISSION_SHAPE_SPHERE]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Amount of [member spread] along the Y axis."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Each particle's hue will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Each particle's linear acceleration will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Orbital velocity applied to each particle. Makes the particles circle around "
+"origin. Specified in number of full rotations around origin per second.\n"
+"[b]Note:[/b] Only available when [member flag_disable_z] is [code]true[/"
+"code]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Each particle's orbital velocity will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Each particle's radial acceleration will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Each particle's scale will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Each particle's tangential acceleration will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Trail particles' color will vary along this [GradientTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Emitter will emit [code]amount[/code] divided by [code]trail_divisor[/code] "
+"particles. The remaining particles will be used as trail(s)."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Trail particles' size will vary along this [CurveTexture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set initial velocity properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set angular velocity properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set orbital velocity properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set linear acceleration properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set radial acceleration properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set tangential acceleration properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set damping properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set angle properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set scale properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set hue variation properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set animation speed properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Use with [method set_param], [method set_param_randomness], and [method "
+"set_param_texture] to set animation offset properties."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Use with [method set_flag] to set [member flag_align_y]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Use with [method set_flag] to set [member flag_rotate_y]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid "Use with [method set_flag] to set [member flag_disable_z]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Particles will be emitted at a position determined by sampling a random "
+"point on the [member emission_point_texture]. Particle color will be "
+"modulated by [member emission_color_texture]."
+msgstr ""
+
+#: doc/classes/ParticlesMaterial.xml
+msgid ""
+"Particles will be emitted at a position determined by sampling a random "
+"point on the [member emission_point_texture]. Particle velocity and rotation "
+"will be set based on [member emission_normal_texture]. Particle color will "
+"be modulated by [member emission_color_texture]."
+msgstr ""
+
+#: doc/classes/Path.xml
+msgid "Contains a [Curve3D] path for [PathFollow] nodes to follow."
+msgstr ""
+
+#: doc/classes/Path.xml
+msgid ""
+"Can have [PathFollow] child nodes moving along the [Curve3D]. See "
+"[PathFollow] for more information on the usage.\n"
+"Note that the path is considered as relative to the moved nodes (children of "
+"[PathFollow]). As such, the curve should usually start with a zero vector "
+"[code](0, 0, 0)[/code]."
+msgstr ""
+
+#: doc/classes/Path.xml
+msgid "A [Curve3D] describing the path."
+msgstr ""
+
+#: doc/classes/Path.xml
+msgid "Emitted when the [member curve] changes."
+msgstr ""
+
+#: doc/classes/Path2D.xml
+msgid "Contains a [Curve2D] path for [PathFollow2D] nodes to follow."
+msgstr ""
+
+#: doc/classes/Path2D.xml
+msgid ""
+"Can have [PathFollow2D] child nodes moving along the [Curve2D]. See "
+"[PathFollow2D] for more information on usage.\n"
+"[b]Note:[/b] The path is considered as relative to the moved nodes (children "
+"of [PathFollow2D]). As such, the curve should usually start with a zero "
+"vector ([code](0, 0)[/code])."
+msgstr ""
+
+#: doc/classes/Path2D.xml
+msgid "A [Curve2D] describing the path."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid "Point sampler for a [Path]."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid ""
+"This node takes its parent [Path], and returns the coordinates of a point "
+"within it, given a distance from the first vertex.\n"
+"It is useful for making other nodes follow a path, without coding the "
+"movement pattern. For that, the nodes must be children of this node. The "
+"descendant nodes will then move accordingly when setting an offset in this "
+"node."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid ""
+"If [code]true[/code], the position between two cached points is interpolated "
+"cubically, and linearly otherwise.\n"
+"The points along the [Curve3D] of the [Path] are precomputed before use, for "
+"faster calculations. The point at the requested offset is then calculated "
+"interpolating between two adjacent cached points. This may present a problem "
+"if the curve makes sharp turns, as the cached points may not follow the "
+"curve closely enough.\n"
+"There are two answers to this problem: either increase the number of cached "
+"points and increase memory consumption, or make a cubic interpolation "
+"between two points at the cost of (slightly) slower calculations."
+msgstr ""
+
+#: doc/classes/PathFollow.xml doc/classes/PathFollow2D.xml
+msgid "The node's offset along the curve."
+msgstr ""
+
+#: doc/classes/PathFollow.xml doc/classes/PathFollow2D.xml
+msgid ""
+"If [code]true[/code], any offset outside the path's length will wrap around, "
+"instead of stopping at the ends. Use it for cyclic paths."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid ""
+"The distance from the first vertex, measured in 3D units along the path. "
+"This sets this node's position to a point within the path."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid ""
+"Allows or forbids rotation on one or more axes, depending on the [enum "
+"RotationMode] constants being used."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid ""
+"The distance from the first vertex, considering 0.0 as the first vertex and "
+"1.0 as the last. This is just another way of expressing the offset within "
+"the path, as the offset supplied is multiplied internally by the path's "
+"length."
+msgstr ""
+
+#: doc/classes/PathFollow.xml doc/classes/PathFollow2D.xml
+msgid "The node's offset perpendicular to the curve."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid "Forbids the PathFollow to rotate."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid "Allows the PathFollow to rotate in the Y axis only."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid "Allows the PathFollow to rotate in both the X, and Y axes."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid "Allows the PathFollow to rotate in any axis."
+msgstr ""
+
+#: doc/classes/PathFollow.xml
+msgid ""
+"Uses the up vector information in a [Curve3D] to enforce orientation. This "
+"rotation mode requires the [Path]'s [member Curve3D.up_vector_enabled] "
+"property to be set to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/PathFollow2D.xml
+msgid "Point sampler for a [Path2D]."
+msgstr ""
+
+#: doc/classes/PathFollow2D.xml
+msgid ""
+"This node takes its parent [Path2D], and returns the coordinates of a point "
+"within it, given a distance from the first vertex.\n"
+"It is useful for making other nodes follow a path, without coding the "
+"movement pattern. For that, the nodes must be children of this node. The "
+"descendant nodes will then move accordingly when setting an offset in this "
+"node."
+msgstr ""
+
+#: doc/classes/PathFollow2D.xml
+msgid ""
+"If [code]true[/code], the position between two cached points is interpolated "
+"cubically, and linearly otherwise.\n"
+"The points along the [Curve2D] of the [Path2D] are precomputed before use, "
+"for faster calculations. The point at the requested offset is then "
+"calculated interpolating between two adjacent cached points. This may "
+"present a problem if the curve makes sharp turns, as the cached points may "
+"not follow the curve closely enough.\n"
+"There are two answers to this problem: either increase the number of cached "
+"points and increase memory consumption, or make a cubic interpolation "
+"between two points at the cost of (slightly) slower calculations."
+msgstr ""
+
+#: doc/classes/PathFollow2D.xml
+msgid ""
+"How far to look ahead of the curve to calculate the tangent if the node is "
+"rotating. E.g. shorter lookaheads will lead to faster rotations."
+msgstr ""
+
+#: doc/classes/PathFollow2D.xml
+msgid "The distance along the path in pixels."
+msgstr ""
+
+#: doc/classes/PathFollow2D.xml
+msgid ""
+"If [code]true[/code], this node rotates to follow the path, making its "
+"descendants rotate."
+msgstr ""
+
+#: doc/classes/PathFollow2D.xml
+msgid ""
+"The distance along the path as a number in the range 0.0 (for the first "
+"vertex) to 1.0 (for the last). This is just another way of expressing the "
+"offset within the path, as the offset supplied is multiplied internally by "
+"the path's length."
+msgstr ""
+
+#: doc/classes/PCKPacker.xml
+msgid "Creates packages that can be loaded into a running project."
+msgstr ""
+
+#: doc/classes/PCKPacker.xml
+msgid ""
+"The [PCKPacker] is used to create packages that can be loaded into a running "
+"project using [method ProjectSettings.load_resource_pack].\n"
+"[codeblock]\n"
+"var packer = PCKPacker.new()\n"
+"packer.pck_start(\"test.pck\")\n"
+"packer.add_file(\"res://text.txt\", \"text.txt\")\n"
+"packer.flush()\n"
+"[/codeblock]\n"
+"The above [PCKPacker] creates package [code]test.pck[/code], then adds a "
+"file named [code]text.txt[/code] at the root of the package."
+msgstr ""
+
+#: doc/classes/PCKPacker.xml
+msgid ""
+"Adds the [code]source_path[/code] file to the current PCK package at the "
+"[code]pck_path[/code] internal path (should start with [code]res://[/code])."
+msgstr ""
+
+#: doc/classes/PCKPacker.xml
+msgid ""
+"Writes the files specified using all [method add_file] calls since the last "
+"flush. If [code]verbose[/code] is [code]true[/code], a list of files added "
+"will be printed to the console for easier debugging."
+msgstr ""
+
+#: doc/classes/PCKPacker.xml
+msgid ""
+"Creates a new PCK file with the name [code]pck_name[/code]. The [code].pck[/"
+"code] file extension isn't added automatically, so it should be part of "
+"[code]pck_name[/code] (even though it's not required)."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Exposes performance-related data."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid ""
+"This class provides access to a number of different monitors related to "
+"performance, such as memory usage, draw calls, and FPS. These are the same "
+"as the values displayed in the [b]Monitor[/b] tab in the editor's "
+"[b]Debugger[/b] panel. By using the [method get_monitor] method of this "
+"class, you can access this data from your code.\n"
+"[b]Note:[/b] A few of these monitors are only available in debug mode and "
+"will always return 0 when used in a release build.\n"
+"[b]Note:[/b] Many of these monitors are not updated in real-time, so there "
+"may be a short delay between changes."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid ""
+"Returns the value of one of the available monitors. You should provide one "
+"of the [enum Monitor] constants as the argument, like this:\n"
+"[codeblock]\n"
+"print(Performance.get_monitor(Performance.TIME_FPS)) # Prints the FPS to the "
+"console\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Number of frames per second."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Time it took to complete one frame, in seconds."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Time it took to complete one physics frame, in seconds."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid ""
+"Static memory currently used, in bytes. Not available in release builds."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid ""
+"Dynamic memory currently used, in bytes. Not available in release builds."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Available static memory. Not available in release builds."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Available dynamic memory. Not available in release builds."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid ""
+"Largest amount of memory the message queue buffer has used, in bytes. The "
+"message queue is used for deferred functions calls and notifications."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Number of objects currently instanced (including nodes)."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Number of resources currently used."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid ""
+"Number of nodes currently instanced in the scene tree. This also includes "
+"the root node."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid ""
+"Number of orphan nodes, i.e. nodes which are not parented to a node of the "
+"scene tree."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "3D objects drawn per frame."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Vertices drawn per frame. 3D only."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Material changes per frame. 3D only."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Shader changes per frame. 3D only."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Render surface changes per frame. 3D only."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Draw calls per frame. 3D only."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Items or joined items drawn per frame."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Draw calls per frame."
+msgstr ""
+
+#: doc/classes/Performance.xml doc/classes/VisualServer.xml
+msgid ""
+"The amount of video memory used, i.e. texture and vertex memory combined."
+msgstr ""
+
+#: doc/classes/Performance.xml doc/classes/VisualServer.xml
+msgid "The amount of texture memory used."
+msgstr ""
+
+#: doc/classes/Performance.xml doc/classes/VisualServer.xml
+msgid "The amount of vertex memory used."
+msgstr ""
+
+#: doc/classes/Performance.xml doc/classes/VisualServer.xml
+msgid ""
+"Unimplemented in the GLES2 and GLES3 rendering backends, always returns 0."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Number of active [RigidBody2D] nodes in the game."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Number of collision pairs in the 2D physics engine."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Number of islands in the 2D physics engine."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Number of active [RigidBody] and [VehicleBody] nodes in the game."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Number of collision pairs in the 3D physics engine."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Number of islands in the 3D physics engine."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Output latency of the [AudioServer]."
+msgstr ""
+
+#: doc/classes/Performance.xml
+msgid "Represents the size of the [enum Monitor] enum."
+msgstr ""
+
+#: doc/classes/PHashTranslation.xml
+msgid "Optimized translation."
+msgstr ""
+
+#: doc/classes/PHashTranslation.xml
+msgid ""
+"Optimized translation. Uses real-time compressed translations, which results "
+"in very small dictionaries."
+msgstr ""
+
+#: doc/classes/PHashTranslation.xml
+msgid ""
+"Generates and sets an optimized translation from the given [Translation] "
+"resource."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+msgid "Direct access object to a physics body in the [Physics2DServer]."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+msgid ""
+"Provides direct access to a physics body in the [Physics2DServer], allowing "
+"safe changes to physics properties. This object is passed via the direct "
+"state callback of rigid/character bodies, and is intended for changing the "
+"direct state of that body. See [method RigidBody2D._integrate_forces]."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/Physics2DDirectSpaceState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+#: doc/classes/PhysicsDirectSpaceState.xml doc/classes/RayCast.xml
+#: doc/classes/RayCast2D.xml doc/classes/World.xml doc/classes/World2D.xml
+msgid "$DOCS_URL/tutorials/physics/ray-casting.html"
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml doc/classes/RigidBody2D.xml
+msgid "Adds a constant directional force without affecting rotation."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml doc/classes/RigidBody2D.xml
+msgid ""
+"Adds a positioned force to the body. Both the force and the offset from the "
+"body origin are in global coordinates."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml doc/classes/RigidBody2D.xml
+msgid "Adds a constant rotational force."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml doc/classes/RigidBody2D.xml
+msgid "Applies a directional impulse without affecting rotation."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+msgid ""
+"Applies a positioned impulse to the body. An impulse is time-independent! "
+"Applying an impulse every frame would result in a framerate-dependent force. "
+"For this reason, it should only be used when simulating one-time impacts "
+"(use the \"_force\" functions otherwise). The offset uses the rotation of "
+"the global coordinate system, but is centered at the object's origin."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml doc/classes/RigidBody2D.xml
+msgid "Applies a rotational impulse to the body."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Returns the collider's [RID]."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Returns the collider's object id."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+msgid ""
+"Returns the collider object. This depends on how it was created (will return "
+"a scene node if such was used to create it)."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Returns the contact position in the collider."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Returns the collider's shape index."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+msgid ""
+"Returns the collided shape's metadata. This metadata is different from "
+"[method Object.get_meta], and is set with [method Physics2DServer."
+"shape_set_data]."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Returns the linear velocity vector at the collider's contact point."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+msgid ""
+"Returns the number of contacts this body has with other bodies.\n"
+"[b]Note:[/b] By default, this returns 0 unless bodies are configured to "
+"monitor contacts. See [member RigidBody2D.contact_monitor]."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Returns the local normal at the contact point."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Returns the local position of the contact point."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Returns the local shape index of the collision."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Returns the current state of the space, useful for queries."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid ""
+"Returns the body's velocity at the given relative position, including both "
+"translation and rotation."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Calls the built-in force integration code."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml doc/classes/RigidBody2D.xml
+msgid "The body's rotational velocity in [i]radians[/i] per second."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "The inverse of the inertia of the body."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "The inverse of the mass of the body."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+msgid "The body's linear velocity in pixels per second."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "If [code]true[/code], this body is currently sleeping (not active)."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "The timestep (delta) used for the simulation."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid ""
+"The rate at which the body stops rotating, if there are not any other forces "
+"moving it."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "The total gravity vector being currently applied to this body."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid ""
+"The rate at which the body stops moving, if there are not any other forces "
+"moving it."
+msgstr ""
+
+#: doc/classes/Physics2DDirectBodyState.xml
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "The body's transformation matrix."
+msgstr ""
+
+#: doc/classes/Physics2DDirectSpaceState.xml
+msgid "Direct access object to a space in the [Physics2DServer]."
+msgstr ""
+
+#: doc/classes/Physics2DDirectSpaceState.xml
+msgid ""
+"Direct access object to a space in the [Physics2DServer]. It's used mainly "
+"to do queries against objects and areas residing in a given space."
+msgstr ""
+
+#: doc/classes/Physics2DDirectSpaceState.xml
+msgid ""
+"Checks how far a [Shape2D] can move without colliding. All the parameters "
+"for the query, including the shape and the motion, are supplied through a "
+"[Physics2DShapeQueryParameters] object.\n"
+"Returns an array with the safe and unsafe proportions (between 0 and 1) of "
+"the motion. The safe proportion is the maximum fraction of the motion that "
+"can be made without a collision. The unsafe proportion is the minimum "
+"fraction of the distance that must be moved for a collision. If no collision "
+"is detected a result of [code][1.0, 1.0][/code] will be returned.\n"
+"[b]Note:[/b] Any [Shape2D]s that the shape is already colliding with e.g. "
+"inside of, will be ignored. Use [method collide_shape] to determine the "
+"[Shape2D]s that the shape is already colliding with."
+msgstr ""
+
+#: doc/classes/Physics2DDirectSpaceState.xml
+msgid ""
+"Checks the intersections of a shape, given through a "
+"[Physics2DShapeQueryParameters] object, against the space. The resulting "
+"array contains a list of points where the shape intersects another. Like "
+"with [method intersect_shape], the number of returned results can be limited "
+"to save processing time."
+msgstr ""
+
+#: doc/classes/Physics2DDirectSpaceState.xml
+msgid ""
+"Checks the intersections of a shape, given through a "
+"[Physics2DShapeQueryParameters] object, against the space. If it collides "
+"with more than one shape, the nearest one is selected. If the shape did not "
+"intersect anything, then an empty dictionary is returned instead.\n"
+"[b]Note:[/b] This method does not take into account the [code]motion[/code] "
+"property of the object. The returned object is a dictionary containing the "
+"following fields:\n"
+"[code]collider_id[/code]: The colliding object's ID.\n"
+"[code]linear_velocity[/code]: The colliding object's velocity [Vector2]. If "
+"the object is an [Area2D], the result is [code](0, 0)[/code].\n"
+"[code]metadata[/code]: The intersecting shape's metadata. This metadata is "
+"different from [method Object.get_meta], and is set with [method "
+"Physics2DServer.shape_set_data].\n"
+"[code]normal[/code]: The object's surface normal at the intersection point.\n"
+"[code]point[/code]: The intersection point.\n"
+"[code]rid[/code]: The intersecting object's [RID].\n"
+"[code]shape[/code]: The shape index of the colliding shape."
+msgstr ""
+
+#: doc/classes/Physics2DDirectSpaceState.xml
+msgid ""
+"Checks whether a point is inside any solid shape. The shapes the point is "
+"inside of are returned in an array containing dictionaries with the "
+"following fields:\n"
+"[code]collider[/code]: The colliding object.\n"
+"[code]collider_id[/code]: The colliding object's ID.\n"
+"[code]metadata[/code]: The intersecting shape's metadata. This metadata is "
+"different from [method Object.get_meta], and is set with [method "
+"Physics2DServer.shape_set_data].\n"
+"[code]rid[/code]: The intersecting object's [RID].\n"
+"[code]shape[/code]: The shape index of the colliding shape.\n"
+"The number of intersections can be limited with the [code]max_results[/code] "
+"parameter, to reduce the processing time.\n"
+"Additionally, the method can take an [code]exclude[/code] array of objects "
+"or [RID]s that are to be excluded from collisions, a [code]collision_mask[/"
+"code] bitmask representing the physics layers to check in, or booleans to "
+"determine if the ray should collide with [PhysicsBody2D]s or [Area2D]s, "
+"respectively.\n"
+"[b]Note:[/b] [ConcavePolygonShape2D]s and [CollisionPolygon2D]s in "
+"[code]Segments[/code] build mode are not solid shapes. Therefore, they will "
+"not be detected."
+msgstr ""
+
+#: doc/classes/Physics2DDirectSpaceState.xml
+msgid ""
+"Checks whether a point is inside any solid shape, in a specific canvas layer "
+"given by [code]canvas_instance_id[/code]. The shapes the point is inside of "
+"are returned in an array containing dictionaries with the following fields:\n"
+"[code]collider[/code]: The colliding object.\n"
+"[code]collider_id[/code]: The colliding object's ID.\n"
+"[code]metadata[/code]: The intersecting shape's metadata. This metadata is "
+"different from [method Object.get_meta], and is set with [method "
+"Physics2DServer.shape_set_data].\n"
+"[code]rid[/code]: The intersecting object's [RID].\n"
+"[code]shape[/code]: The shape index of the colliding shape.\n"
+"The number of intersections can be limited with the [code]max_results[/code] "
+"parameter, to reduce the processing time.\n"
+"Additionally, the method can take an [code]exclude[/code] array of objects "
+"or [RID]s that are to be excluded from collisions, a [code]collision_mask[/"
+"code] bitmask representing the physics layers to check in, or booleans to "
+"determine if the ray should collide with [PhysicsBody2D]s or [Area2D]s, "
+"respectively.\n"
+"[b]Note:[/b] [ConcavePolygonShape2D]s and [CollisionPolygon2D]s in "
+"[code]Segments[/code] build mode are not solid shapes. Therefore, they will "
+"not be detected."
+msgstr ""
+
+#: doc/classes/Physics2DDirectSpaceState.xml
+msgid ""
+"Intersects a ray in a given space. The returned object is a dictionary with "
+"the following fields:\n"
+"[code]collider[/code]: The colliding object.\n"
+"[code]collider_id[/code]: The colliding object's ID.\n"
+"[code]metadata[/code]: The intersecting shape's metadata. This metadata is "
+"different from [method Object.get_meta], and is set with [method "
+"Physics2DServer.shape_set_data].\n"
+"[code]normal[/code]: The object's surface normal at the intersection point.\n"
+"[code]position[/code]: The intersection point.\n"
+"[code]rid[/code]: The intersecting object's [RID].\n"
+"[code]shape[/code]: The shape index of the colliding shape.\n"
+"If the ray did not intersect anything, then an empty dictionary is returned "
+"instead.\n"
+"Additionally, the method can take an [code]exclude[/code] array of objects "
+"or [RID]s that are to be excluded from collisions, a [code]collision_mask[/"
+"code] bitmask representing the physics layers to check in, or booleans to "
+"determine if the ray should collide with [PhysicsBody2D]s or [Area2D]s, "
+"respectively."
+msgstr ""
+
+#: doc/classes/Physics2DDirectSpaceState.xml
+msgid ""
+"Checks the intersections of a shape, given through a "
+"[Physics2DShapeQueryParameters] object, against the space. The intersected "
+"shapes are returned in an array containing dictionaries with the following "
+"fields:\n"
+"[code]collider[/code]: The colliding object.\n"
+"[code]collider_id[/code]: The colliding object's ID.\n"
+"[code]metadata[/code]: The intersecting shape's metadata. This metadata is "
+"different from [method Object.get_meta], and is set with [method "
+"Physics2DServer.shape_set_data].\n"
+"[code]rid[/code]: The intersecting object's [RID].\n"
+"[code]shape[/code]: The shape index of the colliding shape.\n"
+"The number of intersections can be limited with the [code]max_results[/code] "
+"parameter, to reduce the processing time."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Server interface for low-level 2D physics access."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Physics2DServer is the server responsible for all 2D physics. It can create "
+"many kinds of physics objects, but does not insert them on the node tree."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Adds a shape to the area, along with a transform matrix. Shapes are usually "
+"referenced by their index, so you should track which shape has a given index."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Assigns the area to a descendant of [Object], so it can exist in the node "
+"tree."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Removes all shapes from an area. It does not delete the shapes, so they can "
+"be reassigned later."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Creates an [Area2D]. After creating an [Area2D] with this method, assign it "
+"to a space using [method area_set_space] to use the created [Area2D] in the "
+"physics world."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Gets the instance ID of the object the area is assigned to."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Returns an area parameter value. See [enum AreaParameter] for a list of "
+"available parameters."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the [RID] of the nth shape of an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the number of shapes assigned to an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the transform matrix of a shape within an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the space assigned to the area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the space override mode for the area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the transform matrix for an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Removes a shape from an area. It does not delete the shape, so it can be "
+"reassigned later."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Assigns the area to one or many physics layers."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Sets which physics layers the area will monitor."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Sets the function to call when any body/area enters or exits the area. This "
+"callback will be called for any object interacting with the area, and takes "
+"five parameters:\n"
+"1: [constant AREA_BODY_ADDED] or [constant AREA_BODY_REMOVED], depending on "
+"whether the object entered or exited the area.\n"
+"2: [RID] of the object that entered/exited the area.\n"
+"3: Instance ID of the object that entered/exited the area.\n"
+"4: The shape index of the object that entered/exited the area.\n"
+"5: The shape index of the area where the object entered/exited."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets the value for an area parameter. See [enum AreaParameter] for a list of "
+"available parameters."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Substitutes a given area shape by another. The old shape is selected by its "
+"index, the new one by its [RID]."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Disables a given shape in an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Sets the transform matrix for an area shape."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Assigns a space to the area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets the space override mode for the area. See [enum AreaSpaceOverrideMode] "
+"for a list of available modes."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Sets the transform matrix for an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Adds a body to the list of bodies exempt from collisions."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Adds a positioned force to the applied force and torque. As with [method "
+"body_apply_impulse], both the force and the offset from the body origin are "
+"in global coordinates. A force differs from an impulse in that, while the "
+"two are forces, the impulse clears itself after being applied."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Adds a shape to the body, along with a transform matrix. Shapes are usually "
+"referenced by their index, so you should track which shape has a given index."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Adds a positioned impulse to the applied force and torque. Both the force "
+"and the offset from the body origin are in global coordinates."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Removes all shapes from a body."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Creates a physics body."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the physics layer or layers a body belongs to."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the physics layer or layers a body can collide with."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Returns the continuous collision detection mode."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Returns the [Physics2DDirectBodyState] of the body. Returns [code]null[/"
+"code] if the body is destroyed or removed from the physics space."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Returns the maximum contacts that can be reported. See [method "
+"body_set_max_contacts_reported]."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the body mode."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Returns the value of a body parameter. See [enum BodyParameter] for a list "
+"of available parameters."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the [RID] of the nth shape of a body."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the number of shapes assigned to a body."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Returns the metadata of a shape of a body."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the transform matrix of a body shape."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the [RID] of the space assigned to a body."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns a body state."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Returns whether a body uses a callback function to calculate its own physics "
+"(see [method body_set_force_integration_callback])."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Removes a body from the list of bodies exempt from collisions."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Removes a shape from a body. The shape is not deleted, so it can be reused "
+"afterwards."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+#: doc/classes/RigidBody.xml
+msgid ""
+"Sets an axis velocity. The velocity in the given vector axis will be set as "
+"the given vector length. This is useful for jumping behavior."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Sets the physics layer or layers a body belongs to."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Sets the physics layer or layers a body can collide with."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets the continuous collision detection mode using one of the [enum CCDMode] "
+"constants.\n"
+"Continuous collision detection tries to predict where a moving body will "
+"collide, instead of moving it and correcting its movement if it collided."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Sets the function used to calculate physics for an object, if that object "
+"allows it (see [method body_set_omit_force_integration])."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Sets the maximum contacts to report. Bodies can keep a log of the contacts "
+"with other bodies, this is enabled by setting the maximum amount of contacts "
+"reported to a number greater than 0."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Sets the body mode using one of the [enum BodyMode] constants."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Sets whether a body uses a callback function to calculate its own physics "
+"(see [method body_set_force_integration_callback])."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets a body parameter. See [enum BodyParameter] for a list of available "
+"parameters."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Substitutes a given body shape by another. The old shape is selected by its "
+"index, the new one by its [RID]."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Enables one way collision on body if [code]enable[/code] is [code]true[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Disables shape in body if [code]disable[/code] is [code]true[/code]."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets metadata of a shape within a body. This metadata is different from "
+"[method Object.set_meta], and can be retrieved on shape queries."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Sets the transform matrix for a body shape."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Assigns a space to the body (see [method space_create])."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets a body state using one of the [enum BodyState] constants.\n"
+"Note that the method doesn't take effect immediately. The state will change "
+"on the next physics frame."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Returns [code]true[/code] if a collision would result from moving in the "
+"given direction from a given point in space. Margin increases the size of "
+"the shapes involved in the collision detection. [Physics2DTestMotionResult] "
+"can be passed to return additional information in."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Creates a damped spring joint between two bodies. If not specified, the "
+"second body is assumed to be the joint itself."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Returns the value of a damped spring joint parameter."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets a damped spring joint parameter. See [enum DampedStringParam] for a "
+"list of available parameters."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Destroys any of the objects created by Physics2DServer. If the [RID] passed "
+"is not one of the objects that can be created by Physics2DServer, an error "
+"will be sent to the console."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Returns information about the current state of the 2D physics engine. See "
+"[enum ProcessInfo] for a list of available states."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Creates a groove joint between two bodies. If not specified, the bodies are "
+"assumed to be the joint itself."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Returns the value of a joint parameter."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Returns a joint's type (see [enum JointType])."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets a joint parameter. See [enum JointParam] for a list of available "
+"parameters."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Creates a pin joint between two bodies. If not specified, the second body is "
+"assumed to be the joint itself."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Activates or deactivates the 2D physics engine."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets the amount of iterations for calculating velocities of colliding "
+"bodies. The greater the amount of iterations, the more accurate the "
+"collisions will be. However, a greater amount of iterations requires more "
+"CPU power, which can decrease performance. The default value is [code]8[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the shape data."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Returns a shape's type (see [enum ShapeType])."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Sets the shape data that defines its shape and size. The data to be passed "
+"depends on the kind of shape created [method shape_get_type]."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Creates a space. A space is a collection of parameters for the physics "
+"engine that can be assigned to an area or a body. It can be assigned to an "
+"area with [method area_set_space], or to a body with [method body_set_space]."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Returns the state of a space, a [Physics2DDirectSpaceState]. This object can "
+"be used to make collision/intersection queries."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns the value of a space parameter."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Returns whether the space is active."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Marks a space as active. It will not have an effect, unless it is assigned "
+"to an area or body."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets the value for a space parameter. See [enum SpaceParameter] for a list "
+"of available parameters."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant to set/get the maximum distance a pair of bodies has to move before "
+"their collision status has to be recalculated."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant to set/get the maximum distance a shape can be from another before "
+"they are considered separated."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant to set/get the maximum distance a shape can penetrate another shape "
+"before it is considered a collision."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant to set/get the threshold linear velocity of activity. A body marked "
+"as potentially inactive for both linear and angular velocity will be put to "
+"sleep after the time given."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant to set/get the threshold angular velocity of activity. A body "
+"marked as potentially inactive for both linear and angular velocity will be "
+"put to sleep after the time given."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant to set/get the maximum time of activity. A body marked as "
+"potentially inactive for both linear and angular velocity will be put to "
+"sleep after this time."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant to set/get the default solver bias for all physics constraints. A "
+"solver bias is a factor controlling how much two objects \"rebound\", after "
+"violating a constraint, to avoid leaving them in that state because of "
+"numerical imprecision."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"This is the constant for creating line shapes. A line shape is an infinite "
+"line with an origin point, and a normal. Thus, it can be used for front/"
+"behind checks."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"This is the constant for creating segment shapes. A segment shape is a line "
+"from a point A to a point B. It can be checked for intersections."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"This is the constant for creating circle shapes. A circle shape only has a "
+"radius. It can be used for intersections and inside/outside checks."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"This is the constant for creating rectangle shapes. A rectangle shape is "
+"defined by a width and a height. It can be used for intersections and inside/"
+"outside checks."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"This is the constant for creating capsule shapes. A capsule shape is defined "
+"by a radius and a length. It can be used for intersections and inside/"
+"outside checks."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"This is the constant for creating convex polygon shapes. A polygon is "
+"defined by a list of points. It can be used for intersections and inside/"
+"outside checks. Unlike the [member CollisionPolygon2D.polygon] property, "
+"polygons modified with [method shape_set_data] do not verify that the points "
+"supplied form is a convex polygon."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"This is the constant for creating concave polygon shapes. A polygon is "
+"defined by a list of points. It can be used for intersections checks, but "
+"not for inside/outside checks."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"This constant is used internally by the engine. Any attempt to create this "
+"kind of shape results in an error."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get gravity strength in an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get gravity vector/center in an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant to set/get whether the gravity vector of an area is a direction, or "
+"a center point."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant to set/get the falloff factor for point gravity of an area. The "
+"greater this value is, the faster the strength of gravity decreases with the "
+"square of distance."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"This constant was used to set/get the falloff factor for point gravity. It "
+"has been superseded by [constant AREA_PARAM_GRAVITY_DISTANCE_SCALE]."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get the linear dampening factor of an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get the angular dampening factor of an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get the priority (order of processing) of an area."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"This area does not affect gravity/damp. These are generally areas that exist "
+"only to detect collisions, and objects entering or exiting them."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"This area adds its gravity/damp values to whatever has been calculated so "
+"far. This way, many overlapping areas can combine their physics to make "
+"interesting effects."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"This area adds its gravity/damp values to whatever has been calculated so "
+"far. Then stops taking into account the rest of the areas, even the default "
+"one."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"This area replaces any gravity/damp, even the default one, and stops taking "
+"into account the rest of the areas."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"This area replaces any gravity/damp calculated so far, but keeps calculating "
+"the rest of the areas, down to the default one."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant for static bodies."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant for kinematic bodies."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant for rigid bodies."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant for rigid bodies in character mode. In this mode, a body can not "
+"rotate, and only its linear velocity is affected by physics."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get a body's bounce factor."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get a body's friction."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get a body's mass."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Constant to set/get a body's inertia."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get a body's gravity multiplier."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get a body's linear dampening factor."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get a body's angular dampening factor."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Represents the size of the [enum BodyParameter] enum."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get the current transform matrix of the body."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get the current linear velocity of the body."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get the current angular velocity of the body."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to sleep/wake up a body, or to get whether it is sleeping."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to set/get whether the body can sleep."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Constant to create pin joints."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Constant to create groove joints."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid "Constant to create damped spring joints."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets the resting length of the spring joint. The joint will always try to go "
+"to back this length when pulled apart."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets the stiffness of the spring joint. The joint applies a force equal to "
+"the stiffness times the distance from its resting length."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Sets the damping ratio of the spring joint. A value of 0 indicates an "
+"undamped spring, while 1 causes the system to reach equilibrium as fast as "
+"possible (critical damping)."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Disables continuous collision detection. This is the fastest way to detect "
+"body collisions, but can miss small, fast-moving objects."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Enables continuous collision detection by raycasting. It is faster than "
+"shapecasting, but less precise."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml
+msgid ""
+"Enables continuous collision detection by shapecasting. It is the slowest "
+"CCD method, and the most precise."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The value of the first parameter and area callback function receives, when "
+"an object enters one of its shapes."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"The value of the first parameter and area callback function receives, when "
+"an object exits one of its shapes."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to get the number of objects that are not sleeping."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid "Constant to get the number of possible collisions."
+msgstr ""
+
+#: doc/classes/Physics2DServer.xml doc/classes/PhysicsServer.xml
+msgid ""
+"Constant to get the number of space regions where a collision could occur."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+msgid "Parameters to be sent to a 2D shape physics query."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+msgid ""
+"This class contains the shape and other parameters for 2D intersection/"
+"collision queries."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+msgid ""
+"Sets the [Shape2D] that will be used for collision/intersection queries."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+msgid "If [code]true[/code], the query will take [Area2D]s into account."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+msgid ""
+"If [code]true[/code], the query will take [PhysicsBody2D]s into account."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+#: doc/classes/PhysicsShapeQueryParameters.xml
+msgid ""
+"The physics layer(s) the query will take into account (as a bitmask). See "
+"[url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-"
+"and-masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+#: doc/classes/PhysicsShapeQueryParameters.xml
+msgid ""
+"The list of objects or object [RID]s that will be excluded from collisions."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+#: doc/classes/PhysicsShapeQueryParameters.xml
+msgid "The collision margin for the shape."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+msgid "The motion of the shape being queried for."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+#: doc/classes/PhysicsShapeQueryParameters.xml
+msgid "The queried shape's [RID]. See also [method set_shape]."
+msgstr ""
+
+#: doc/classes/Physics2DShapeQueryParameters.xml
+#: doc/classes/PhysicsShapeQueryParameters.xml
+msgid "The queried shape's transform matrix."
+msgstr ""
+
+#: doc/classes/PhysicsBody.xml
+msgid "Base class for all objects affected by physics in 3D space."
+msgstr ""
+
+#: doc/classes/PhysicsBody.xml
+msgid ""
+"PhysicsBody is an abstract base class for implementing a physics body. All "
+"*Body types inherit from it."
+msgstr ""
+
+#: doc/classes/PhysicsBody.xml doc/classes/PhysicsBody2D.xml
+#: doc/classes/SoftBody.xml
+msgid "Adds a body to the list of bodies that this body can't collide with."
+msgstr ""
+
+#: doc/classes/PhysicsBody.xml doc/classes/PhysicsBody2D.xml
+#: doc/classes/SoftBody.xml
+msgid ""
+"Returns an array of nodes that were added as collision exceptions for this "
+"body."
+msgstr ""
+
+#: doc/classes/PhysicsBody.xml doc/classes/PhysicsBody2D.xml
+#: doc/classes/SoftBody.xml
+msgid ""
+"Removes a body from the list of bodies that this body can't collide with."
+msgstr ""
+
+#: doc/classes/PhysicsBody2D.xml
+msgid "Base class for all objects affected by physics in 2D space."
+msgstr ""
+
+#: doc/classes/PhysicsBody2D.xml
+msgid ""
+"PhysicsBody2D is an abstract base class for implementing a physics body. All "
+"*Body2D types inherit from it."
+msgstr ""
+
+#: doc/classes/PhysicsBody2D.xml
+msgid ""
+"Both collision_layer and collision_mask. Returns collision_layer when "
+"accessed. Updates collision_layer and collision_mask when modified."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Direct access object to a physics body in the [PhysicsServer]."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid ""
+"Provides direct access to a physics body in the [PhysicsServer], allowing "
+"safe changes to physics properties. This object is passed via the direct "
+"state callback of rigid/character bodies, and is intended for changing the "
+"direct state of that body. See [method RigidBody._integrate_forces]."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid ""
+"Adds a constant directional force without affecting rotation.\n"
+"This is equivalent to [code]add_force(force, Vector3(0,0,0))[/code]."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Adds a constant rotational force without affecting position."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid ""
+"Applies a single directional impulse without affecting rotation.\n"
+"This is equivalent to [code]apply_impulse(Vector3(0, 0, 0), impulse)[/code]."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid ""
+"Applies a positioned impulse to the body. An impulse is time-independent! "
+"Applying an impulse every frame would result in a framerate-dependent force. "
+"For this reason it should only be used when simulating one-time impacts. The "
+"position uses the rotation of the global coordinate system, but is centered "
+"at the object's origin."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid ""
+"Apply a torque impulse (which will be affected by the body mass and shape). "
+"This will rotate the body around the vector [code]j[/code] passed as "
+"parameter."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Returns the collider object."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid ""
+"Returns the number of contacts this body has with other bodies.\n"
+"[b]Note:[/b] By default, this returns 0 unless bodies are configured to "
+"monitor contacts. See [member RigidBody.contact_monitor]."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "Impulse created by the contact. Only implemented for Bullet physics."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml doc/classes/RigidBody.xml
+msgid ""
+"The body's rotational velocity in axis-angle format. The magnitude of the "
+"vector is the rotation rate in [i]radians[/i] per second."
+msgstr ""
+
+#: doc/classes/PhysicsDirectBodyState.xml
+msgid "The body's linear velocity in units per second."
+msgstr ""
+
+#: doc/classes/PhysicsDirectSpaceState.xml
+msgid "Direct access object to a space in the [PhysicsServer]."
+msgstr ""
+
+#: doc/classes/PhysicsDirectSpaceState.xml
+msgid ""
+"Direct access object to a space in the [PhysicsServer]. It's used mainly to "
+"do queries against objects and areas residing in a given space."
+msgstr ""
+
+#: doc/classes/PhysicsDirectSpaceState.xml
+msgid ""
+"Checks how far a [Shape] can move without colliding. All the parameters for "
+"the query, including the shape, are supplied through a "
+"[PhysicsShapeQueryParameters] object.\n"
+"Returns an array with the safe and unsafe proportions (between 0 and 1) of "
+"the motion. The safe proportion is the maximum fraction of the motion that "
+"can be made without a collision. The unsafe proportion is the minimum "
+"fraction of the distance that must be moved for a collision. If no collision "
+"is detected a result of [code][1.0, 1.0][/code] will be returned.\n"
+"[b]Note:[/b] Any [Shape]s that the shape is already colliding with e.g. "
+"inside of, will be ignored. Use [method collide_shape] to determine the "
+"[Shape]s that the shape is already colliding with."
+msgstr ""
+
+#: doc/classes/PhysicsDirectSpaceState.xml
+msgid ""
+"Checks the intersections of a shape, given through a "
+"[PhysicsShapeQueryParameters] object, against the space. The resulting array "
+"contains a list of points where the shape intersects another. Like with "
+"[method intersect_shape], the number of returned results can be limited to "
+"save processing time."
+msgstr ""
+
+#: doc/classes/PhysicsDirectSpaceState.xml
+msgid ""
+"Checks the intersections of a shape, given through a "
+"[PhysicsShapeQueryParameters] object, against the space. If it collides with "
+"more than one shape, the nearest one is selected. The returned object is a "
+"dictionary containing the following fields:\n"
+"[code]collider_id[/code]: The colliding object's ID.\n"
+"[code]linear_velocity[/code]: The colliding object's velocity [Vector3]. If "
+"the object is an [Area], the result is [code](0, 0, 0)[/code].\n"
+"[code]normal[/code]: The object's surface normal at the intersection point.\n"
+"[code]point[/code]: The intersection point.\n"
+"[code]rid[/code]: The intersecting object's [RID].\n"
+"[code]shape[/code]: The shape index of the colliding shape.\n"
+"If the shape did not intersect anything, then an empty dictionary is "
+"returned instead."
+msgstr ""
+
+#: doc/classes/PhysicsDirectSpaceState.xml
+msgid ""
+"Checks whether a point is inside any solid shape. The shapes the point is "
+"inside of are returned in an array containing dictionaries with the "
+"following fields:\n"
+"[code]collider[/code]: The colliding object.\n"
+"[code]collider_id[/code]: The colliding object's ID.\n"
+"[code]rid[/code]: The intersecting object's [RID].\n"
+"[code]shape[/code]: The shape index of the colliding shape.\n"
+"The number of intersections can be limited with the [code]max_results[/code] "
+"parameter, to reduce the processing time.\n"
+"Additionally, the method can take an [code]exclude[/code] array of objects "
+"or [RID]s that are to be excluded from collisions, a [code]collision_mask[/"
+"code] bitmask representing the physics layers to check in, or booleans to "
+"determine if the ray should collide with [PhysicsBody]s or [Area]s, "
+"respectively."
+msgstr ""
+
+#: doc/classes/PhysicsDirectSpaceState.xml
+msgid ""
+"Intersects a ray in a given space. The returned object is a dictionary with "
+"the following fields:\n"
+"[code]collider[/code]: The colliding object.\n"
+"[code]collider_id[/code]: The colliding object's ID.\n"
+"[code]normal[/code]: The object's surface normal at the intersection point.\n"
+"[code]position[/code]: The intersection point.\n"
+"[code]rid[/code]: The intersecting object's [RID].\n"
+"[code]shape[/code]: The shape index of the colliding shape.\n"
+"If the ray did not intersect anything, then an empty dictionary is returned "
+"instead.\n"
+"Additionally, the method can take an [code]exclude[/code] array of objects "
+"or [RID]s that are to be excluded from collisions, a [code]collision_mask[/"
+"code] bitmask representing the physics layers to check in, or booleans to "
+"determine if the ray should collide with [PhysicsBody]s or [Area]s, "
+"respectively."
+msgstr ""
+
+#: doc/classes/PhysicsDirectSpaceState.xml
+msgid ""
+"Checks the intersections of a shape, given through a "
+"[PhysicsShapeQueryParameters] object, against the space. The intersected "
+"shapes are returned in an array containing dictionaries with the following "
+"fields:\n"
+"[code]collider[/code]: The colliding object.\n"
+"[code]collider_id[/code]: The colliding object's ID.\n"
+"[code]rid[/code]: The intersecting object's [RID].\n"
+"[code]shape[/code]: The shape index of the colliding shape.\n"
+"The number of intersections can be limited with the [code]max_results[/code] "
+"parameter, to reduce the processing time."
+msgstr ""
+
+#: doc/classes/PhysicsMaterial.xml
+msgid "A material for physics properties."
+msgstr ""
+
+#: doc/classes/PhysicsMaterial.xml
+msgid ""
+"Provides a means of modifying the collision properties of a [PhysicsBody]."
+msgstr ""
+
+#: doc/classes/PhysicsMaterial.xml
+msgid ""
+"If [code]true[/code], subtracts the bounciness from the colliding object's "
+"bounciness instead of adding it."
+msgstr ""
+
+#: doc/classes/PhysicsMaterial.xml
+msgid ""
+"The body's bounciness. Values range from [code]0[/code] (no bounce) to "
+"[code]1[/code] (full bounciness)."
+msgstr ""
+
+#: doc/classes/PhysicsMaterial.xml
+msgid ""
+"The body's friction. Values range from [code]0[/code] (frictionless) to "
+"[code]1[/code] (maximum friction)."
+msgstr ""
+
+#: doc/classes/PhysicsMaterial.xml
+msgid ""
+"If [code]true[/code], the physics engine will use the friction of the object "
+"marked as \"rough\" when two objects collide. If [code]false[/code], the "
+"physics engine will use the lowest friction of all colliding objects "
+"instead. If [code]true[/code] for both colliding objects, the physics engine "
+"will use the highest friction."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Server interface for low-level physics access."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"PhysicsServer is the server responsible for all 3D physics. It can create "
+"many kinds of physics objects, but does not insert them on the node tree."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Creates an [Area]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Returns an area parameter value. A list of available parameters is on the "
+"[enum AreaParameter] constants."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "If [code]true[/code], area collides with rays."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Sets the value for an area parameter. A list of available parameters is on "
+"the [enum AreaParameter] constants."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Sets object pickable with rays."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Sets the space override mode for the area. The modes are described in the "
+"[enum AreaSpaceOverrideMode] constants."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Gives the body a push at a [code]position[/code] in the direction of the "
+"[code]impulse[/code]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Gives the body a push to rotate it."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Creates a physics body. The first parameter can be any value from [enum "
+"BodyMode] constants, for the type of body created. Additionally, the body "
+"can be created in sleeping state to save processing time."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Returns the [PhysicsDirectBodyState] of the body. Returns [code]null[/code] "
+"if the body is destroyed or removed from the physics space."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Returns the value of a body parameter. A list of available parameters is on "
+"the [enum BodyParameter] constants."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"If [code]true[/code], the continuous collision detection mode is enabled."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "If [code]true[/code], the body can be detected by rays."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Removes a body from the list of bodies exempt from collisions.\n"
+"Continuous collision detection tries to predict where a moving body will "
+"collide, instead of moving it and correcting its movement if it collided."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"If [code]true[/code], the continuous collision detection mode is enabled.\n"
+"Continuous collision detection tries to predict where a moving body will "
+"collide, instead of moving it and correcting its movement if it collided."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Sets the body mode, from one of the [enum BodyMode] constants."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Sets a body parameter. A list of available parameters is on the [enum "
+"BodyParameter] constants."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Sets the body pickable with rays if [code]enabled[/code] is set."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Sets a body state (see [enum BodyState] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Returns [code]true[/code] if a collision would result from moving in the "
+"given direction from a given point in space. [PhysicsTestMotionResult] can "
+"be passed to return additional information in."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Gets a cone_twist_joint parameter (see [enum ConeTwistJointParam] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Sets a cone_twist_joint parameter (see [enum ConeTwistJointParam] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Destroys any of the objects created by PhysicsServer. If the [RID] passed is "
+"not one of the objects that can be created by PhysicsServer, an error will "
+"be sent to the console."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Gets a generic_6_DOF_joint flag (see [enum G6DOFJointAxisFlag] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Gets a generic_6_DOF_joint parameter (see [enum G6DOFJointAxisParam] "
+"constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Sets a generic_6_DOF_joint flag (see [enum G6DOFJointAxisFlag] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Sets a generic_6_DOF_joint parameter (see [enum G6DOFJointAxisParam] "
+"constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Returns an Info defined by the [enum ProcessInfo] input given."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Gets a hinge_joint flag (see [enum HingeJointFlag] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Gets a hinge_joint parameter (see [enum HingeJointParam])."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Sets a hinge_joint flag (see [enum HingeJointFlag] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Sets a hinge_joint parameter (see [enum HingeJointParam] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Creates a [ConeTwistJoint]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Creates a [Generic6DOFJoint]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Creates a [HingeJoint]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Creates a [PinJoint]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Creates a [SliderJoint]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Gets the priority value of the Joint."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Returns the type of the Joint."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Sets the priority value of the Joint."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Returns position of the joint in the local space of body a of the joint."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Returns position of the joint in the local space of body b of the joint."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Gets a pin_joint parameter (see [enum PinJointParam] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Sets position of the joint in the local space of body a of the joint."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Sets position of the joint in the local space of body b of the joint."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Sets a pin_joint parameter (see [enum PinJointParam] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Activates or deactivates the 3D physics engine."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Sets the amount of iterations for calculating velocities of colliding "
+"bodies. The greater the amount of iterations, the more accurate the "
+"collisions will be. However, a greater amount of iterations requires more "
+"CPU power, which can decrease performance. The default value is [code]8[/"
+"code].\n"
+"[b]Note:[/b] Only has an effect when using the GodotPhysics engine, not the "
+"default Bullet physics engine."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Creates a shape of a type from [enum ShapeType]. Does not assign it to a "
+"body or an area. To do so, you must use [method area_set_shape] or [method "
+"body_set_shape]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Returns the type of shape (see [enum ShapeType] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Gets a slider_joint parameter (see [enum SliderJointParam] constants)."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Returns the state of a space, a [PhysicsDirectSpaceState]. This object can "
+"be used to make collision/intersection queries."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"Sets the value for a space parameter. A list of available parameters is on "
+"the [enum SpaceParameter] constants."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Joint] is a [PinJoint]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Joint] is a [HingeJoint]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Joint] is a [SliderJoint]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Joint] is a [ConeTwistJoint]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Joint] is a [Generic6DOFJoint]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"The strength with which the pinned objects try to stay in positional "
+"relation to each other.\n"
+"The higher, the stronger."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"The strength with which the pinned objects try to stay in velocity relation "
+"to each other.\n"
+"The higher, the stronger."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"If above 0, this value is the maximum value for an impulse that this Joint "
+"puts on its ends."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The maximum rotation across the Hinge."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The minimum rotation across the Hinge."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "If [code]true[/code], the Hinge has a maximum and a minimum rotation."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "If [code]true[/code], a motor turns the Hinge."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid ""
+"The maximum difference between the pivot points on their X axis before "
+"damping happens."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid ""
+"The minimum difference between the pivot points on their X axis before "
+"damping happens."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid ""
+"A factor applied to the movement across the slider axis once the limits get "
+"surpassed. The lower, the slower the movement."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid ""
+"The amount of restitution once the limits are surpassed. The lower, the more "
+"velocityenergy gets lost."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "The amount of damping once the slider limits are surpassed."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid ""
+"A factor applied to the movement across the slider axis as long as the "
+"slider is in the limits. The lower, the slower the movement."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "The amount of restitution inside the slider limits."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "The amount of damping inside the slider limits."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "A factor applied to the movement across axes orthogonal to the slider."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid ""
+"The amount of restitution when movement is across axes orthogonal to the "
+"slider."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid ""
+"The amount of damping when movement is across axes orthogonal to the slider."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "The upper limit of rotation in the slider."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "The lower limit of rotation in the slider."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "A factor applied to the all rotation once the limit is surpassed."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "The amount of restitution of the rotation when the limit is surpassed."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "The amount of damping of the rotation when the limit is surpassed."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "A factor that gets applied to the all rotation in the limits."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "The amount of restitution of the rotation in the limits."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid "The amount of damping of the rotation in the limits."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"A factor that gets applied to the all rotation across axes orthogonal to the "
+"slider."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid ""
+"The amount of restitution of the rotation across axes orthogonal to the "
+"slider."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml doc/classes/SliderJoint.xml
+msgid ""
+"The amount of damping of the rotation across axes orthogonal to the slider."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "Represents the size of the [enum SliderJointParam] enum."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"The ease with which the Joint twists, if it's too low, it takes more force "
+"to twist the joint."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"A factor that gets applied to the movement across the axes. The lower, the "
+"slower the movement."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"The amount of restitution on the axes movement. The lower, the more velocity-"
+"energy gets lost."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The velocity that the joint's linear motor will attempt to reach."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"The maximum force that the linear motor can apply while trying to reach the "
+"target velocity."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "A factor that gets multiplied onto all rotations across the axes."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"When correcting the crossing of limits in rotation across the axes, this "
+"error tolerance factor defines how much the correction gets slowed down. The "
+"lower, the slower."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "If set, linear motion is possible within the given limits."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "If set, rotational motion is possible."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "If set, there is a rotational motor across these axes."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid ""
+"If set, there is a linear motor on this axis that targets a specific "
+"velocity."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Shape] is a [PlaneShape]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Shape] is a [RayShape]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Shape] is a [SphereShape]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Shape] is a [BoxShape]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Shape] is a [CapsuleShape]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Shape] is a [CylinderShape]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Shape] is a [ConvexPolygonShape]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Shape] is a [ConcavePolygonShape]."
+msgstr ""
+
+#: doc/classes/PhysicsServer.xml
+msgid "The [Shape] is a [HeightMapShape]."
+msgstr ""
+
+#: doc/classes/PhysicsShapeQueryParameters.xml
+msgid "Parameters to be sent to a 3D shape physics query."
+msgstr ""
+
+#: doc/classes/PhysicsShapeQueryParameters.xml
+msgid ""
+"This class contains the shape and other parameters for 3D intersection/"
+"collision queries."
+msgstr ""
+
+#: doc/classes/PhysicsShapeQueryParameters.xml
+msgid "Sets the [Shape] that will be used for collision/intersection queries."
+msgstr ""
+
+#: doc/classes/PhysicsShapeQueryParameters.xml
+msgid "If [code]true[/code], the query will take [Area]s into account."
+msgstr ""
+
+#: doc/classes/PhysicsShapeQueryParameters.xml
+msgid "If [code]true[/code], the query will take [PhysicsBody]s into account."
+msgstr ""
+
+#: doc/classes/PinJoint.xml
+msgid "Pin joint for 3D PhysicsBodies."
+msgstr ""
+
+#: doc/classes/PinJoint.xml
+msgid ""
+"Pin joint for 3D rigid bodies. It pins 2 bodies (rigid or static) together. "
+"See also [Generic6DOFJoint]."
+msgstr ""
+
+#: doc/classes/PinJoint.xml
+msgid ""
+"The force with which the pinned objects stay in positional relation to each "
+"other. The higher, the stronger."
+msgstr ""
+
+#: doc/classes/PinJoint.xml
+msgid ""
+"The force with which the pinned objects stay in velocity relation to each "
+"other. The higher, the stronger."
+msgstr ""
+
+#: doc/classes/PinJoint.xml
+msgid ""
+"If above 0, this value is the maximum value for an impulse that this Joint "
+"produces."
+msgstr ""
+
+#: doc/classes/PinJoint2D.xml
+msgid "Pin Joint for 2D shapes."
+msgstr ""
+
+#: doc/classes/PinJoint2D.xml
+msgid ""
+"Pin Joint for 2D rigid bodies. It pins two bodies (rigid or static) together."
+msgstr ""
+
+#: doc/classes/PinJoint2D.xml
+msgid ""
+"The higher this value, the more the bond to the pinned partner can flex."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "Plane in hessian form."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Plane represents a normalized plane equation. Basically, \"normal\" is the "
+"normal of the plane (a,b,c normalized), and \"d\" is the distance from the "
+"origin to the plane (in the direction of \"normal\"). \"Over\" or \"Above\" "
+"the plane is considered the side of the plane towards where the normal is "
+"pointing."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Creates a plane from the four parameters. The three components of the "
+"resulting plane's [member normal] are [code]a[/code], [code]b[/code] and "
+"[code]c[/code], and the plane has a distance of [code]d[/code] from the "
+"origin."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "Creates a plane from the three points, given in clockwise order."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "Creates a plane from the normal and the plane's distance to the origin."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "Returns the center of the plane."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Returns the shortest distance from the plane to the position [code]point[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Returns the center of the plane.\n"
+"This method is deprecated, please use [method center] instead."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Returns [code]true[/code] if [code]point[/code] is inside the plane. "
+"Comparison uses a custom minimum [code]epsilon[/code] threshold."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Returns the intersection point of the three planes [code]b[/code], [code]c[/"
+"code] and this plane. If no intersection is found, [code]null[/code] is "
+"returned."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Returns the intersection point of a ray consisting of the position "
+"[code]from[/code] and the direction normal [code]dir[/code] with this plane. "
+"If no intersection is found, [code]null[/code] is returned."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Returns the intersection point of a segment from position [code]begin[/code] "
+"to position [code]end[/code] with this plane. If no intersection is found, "
+"[code]null[/code] is returned."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Returns [code]true[/code] if this plane and [code]plane[/code] are "
+"approximately equal, by running [method @GDScript.is_equal_approx] on each "
+"component."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Returns [code]true[/code] if [code]point[/code] is located above the plane."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "Returns a copy of the plane, normalized."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"Returns the orthogonal projection of [code]point[/code] into a point in the "
+"plane."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"The distance from the origin to the plane, in the direction of [member "
+"normal]. This value is typically non-negative.\n"
+"In the scalar equation of the plane [code]ax + by + cz = d[/code], this is "
+"[code]d[/code], while the [code](a, b, c)[/code] coordinates are represented "
+"by the [member normal] property."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid ""
+"The normal of the plane, which must be normalized.\n"
+"In the scalar equation of the plane [code]ax + by + cz = d[/code], this is "
+"the vector [code](a, b, c)[/code], where [code]d[/code] is the [member d] "
+"property."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "The X component of the plane's [member normal] vector."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "The Y component of the plane's [member normal] vector."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "The Z component of the plane's [member normal] vector."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "A plane that extends in the Y and Z axes (normal vector points +X)."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "A plane that extends in the X and Z axes (normal vector points +Y)."
+msgstr ""
+
+#: doc/classes/Plane.xml
+msgid "A plane that extends in the X and Y axes (normal vector points +Z)."
+msgstr ""
+
+#: doc/classes/PlaneMesh.xml
+msgid "Class representing a planar [PrimitiveMesh]."
+msgstr ""
+
+#: doc/classes/PlaneMesh.xml
+msgid ""
+"Class representing a planar [PrimitiveMesh]. This flat mesh does not have a "
+"thickness. By default, this mesh is aligned on the X and Z axes; this "
+"default rotation isn't suited for use with billboarded materials. For "
+"billboarded materials, use [QuadMesh] instead.\n"
+"[b]Note:[/b] When using a large textured [PlaneMesh] (e.g. as a floor), you "
+"may stumble upon UV jittering issues depending on the camera angle. To solve "
+"this, increase [member subdivide_depth] and [member subdivide_width] until "
+"you no longer notice UV jittering."
+msgstr ""
+
+#: doc/classes/PlaneMesh.xml
+msgid "Offset from the origin of the generated plane. Useful for particles."
+msgstr ""
+
+#: doc/classes/PlaneMesh.xml
+msgid "Size of the generated plane."
+msgstr ""
+
+#: doc/classes/PlaneMesh.xml
+msgid "Number of subdivision along the Z axis."
+msgstr ""
+
+#: doc/classes/PlaneMesh.xml
+msgid "Number of subdivision along the X axis."
+msgstr ""
+
+#: doc/classes/PlaneShape.xml
+msgid "Infinite plane shape for 3D collisions."
+msgstr ""
+
+#: doc/classes/PlaneShape.xml
+msgid ""
+"An infinite plane shape for 3D collisions. Note that the [Plane]'s normal "
+"matters; anything \"below\" the plane will collide with it. If the "
+"[PlaneShape] is used in a [PhysicsBody], it will cause colliding objects "
+"placed \"below\" it to teleport \"above\" the plane."
+msgstr ""
+
+#: doc/classes/PlaneShape.xml
+msgid "The [Plane] used by the [PlaneShape] for collision."
+msgstr ""
+
+#: doc/classes/PointMesh.xml
+msgid "Mesh with a single Point primitive."
+msgstr ""
+
+#: doc/classes/PointMesh.xml
+msgid ""
+"The PointMesh is made from a single point. Instead of relying on triangles, "
+"points are rendered as a single rectangle on the screen with a constant "
+"size. They are intended to be used with Particle systems, but can be used as "
+"a cheap way to render constant size billboarded sprites (for example in a "
+"point cloud).\n"
+"PointMeshes, must be used with a material that has a point size. Point size "
+"can be accessed in a shader with [code]POINT_SIZE[/code], or in a "
+"[SpatialMaterial] by setting [member SpatialMaterial.flags_use_point_size] "
+"and the variable [member SpatialMaterial.params_point_size].\n"
+"When using PointMeshes, properties that normally alter vertices will be "
+"ignored, including billboard mode, grow, and cull face."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "A 2D polygon."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"A Polygon2D is defined by a set of points. Each point is connected to the "
+"next, with the final point being connected to the first, resulting in a "
+"closed polygon. Polygon2Ds can be filled with color (solid or gradient) or "
+"filled with a given texture.\n"
+"[b]Note:[/b] By default, Godot can only draw up to 4,096 polygon points at a "
+"time. To increase this limit, open the Project Settings and increase [member "
+"ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb] and "
+"[member ProjectSettings.rendering/limits/buffers/"
+"canvas_polygon_index_buffer_size_kb]."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"Adds a bone with the specified [code]path[/code] and [code]weights[/code]."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "Removes all bones from this [Polygon2D]."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "Removes the specified bone from this [Polygon2D]."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "Returns the number of bones in this [Polygon2D]."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "Returns the path to the node associated with the specified bone."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "Returns the height values of the specified bone."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "Sets the path to the node associated with the specified bone."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "Sets the weight values for the specified bone."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "If [code]true[/code], polygon edges will be anti-aliased."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"The polygon's fill color. If [code]texture[/code] is defined, it will be "
+"multiplied by this color. It will also be the default color for vertices not "
+"set in [code]vertex_colors[/code]."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"Added padding applied to the bounding box when using [code]invert[/code]. "
+"Setting this value too small may result in a \"Bad Polygon\" error."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"If [code]true[/code], polygon will be inverted, containing the area outside "
+"the defined points and extending to the [code]invert_border[/code]."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "The offset applied to each vertex."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"The polygon's list of vertices. The final point will be connected to the "
+"first.\n"
+"[b]Note:[/b] This returns a copy of the [PoolVector2Array] rather than a "
+"reference."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"The polygon's fill texture. Use [code]uv[/code] to set texture coordinates."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"Amount to offset the polygon's [code]texture[/code]. If [code](0, 0)[/code] "
+"the texture's origin (its top-left corner) will be placed at the polygon's "
+"[code]position[/code]."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "The texture's rotation in radians."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid "The texture's rotation in degrees."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"Amount to multiply the [code]uv[/code] coordinates when using a "
+"[code]texture[/code]. Larger values make the texture smaller, and vice versa."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"Texture coordinates for each vertex of the polygon. There should be one "
+"[code]uv[/code] per polygon vertex. If there are fewer, undefined vertices "
+"will use [code](0, 0)[/code]."
+msgstr ""
+
+#: doc/classes/Polygon2D.xml
+msgid ""
+"Color for each vertex. Colors are interpolated between vertices, resulting "
+"in smooth gradients. There should be one per polygon vertex. If there are "
+"fewer, undefined vertices will use [code]color[/code]."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid "A pooled [Array] of bytes."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid ""
+"An [Array] specifically designed to hold bytes. Optimized for memory usage, "
+"does not fragment the memory.\n"
+"[b]Note:[/b] This type is passed by value and not by reference."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid ""
+"Constructs a new [PoolByteArray]. Optionally, you can pass in a generic "
+"[Array] that will be converted."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid "Appends a [PoolByteArray] at the end of this array."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid ""
+"Returns a new [PoolByteArray] with the data compressed. Set the compression "
+"mode using one of [enum File.CompressionMode]'s constants."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid ""
+"Returns a new [PoolByteArray] with the data decompressed. Set "
+"[code]buffer_size[/code] to the size of the uncompressed data. Set the "
+"compression mode using one of [enum File.CompressionMode]'s constants."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid ""
+"Returns a new [PoolByteArray] with the data decompressed. Set the "
+"compression mode using one of [enum File.CompressionMode]'s constants. "
+"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
+"This method is potentially slower than [code]decompress[/code], as it may "
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
+"\n"
+"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
+"for a small compressed payload to decompress to a potentially very large "
+"output. To guard against this, you may provide a maximum size this function "
+"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
+"will allow for unbounded output. If any positive value is passed, and the "
+"decompression exceeds that amount in bytes, then an error will be returned."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid ""
+"Returns a copy of the array's contents as [String]. Fast alternative to "
+"[method get_string_from_utf8] if the content is ASCII-only. Unlike the UTF-8 "
+"function this function maps every byte to a character in the array. "
+"Multibyte sequences will not be interpreted correctly. For parsing user "
+"input always use [method get_string_from_utf8]."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid ""
+"Returns a copy of the array's contents as [String]. Slower than [method "
+"get_string_from_ascii] but supports UTF-8 encoded data. Use this function if "
+"you are unsure about the source of the data. For user input this function "
+"should always be preferred."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid ""
+"Returns a hexadecimal representation of this array as a [String].\n"
+"[codeblock]\n"
+"var array = PoolByteArray([11, 46, 255])\n"
+"print(array.hex_encode()) # Prints: 0b2eff\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
+msgid ""
+"Inserts a new element at a given position in the array. The position must be "
+"valid, or at the end of the array ([code]idx == size()[/code])."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml doc/classes/PoolRealArray.xml
+msgid "Appends an element at the end of the array."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
+#: doc/classes/PoolIntArray.xml doc/classes/PoolRealArray.xml
+#: doc/classes/PoolStringArray.xml doc/classes/PoolVector2Array.xml
+#: doc/classes/PoolVector3Array.xml
+msgid "Removes an element from the array by index."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml
+msgid ""
+"Sets the size of the array. If the array is grown, reserves elements at the "
+"end of the array. If the array is shrunk, truncates the array to the new "
+"size.\n"
+"[b]Note:[/b] Added elements are not automatically initialized to 0 and will "
+"contain garbage, i.e. indeterminate values."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid "Changes the byte at the given index."
+msgstr ""
+
+#: doc/classes/PoolByteArray.xml
+msgid ""
+"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
+"new [PoolByteArray]. Any negative index is considered to be from the end of "
+"the array."
+msgstr ""
+
+#: doc/classes/PoolColorArray.xml
+msgid "A pooled [Array] of [Color]."
+msgstr ""
+
+#: doc/classes/PoolColorArray.xml
+msgid ""
+"An [Array] specifically designed to hold [Color]. Optimized for memory "
+"usage, does not fragment the memory.\n"
+"[b]Note:[/b] This type is passed by value and not by reference."
+msgstr ""
+
+#: doc/classes/PoolColorArray.xml
+msgid ""
+"Constructs a new [PoolColorArray]. Optionally, you can pass in a generic "
+"[Array] that will be converted."
+msgstr ""
+
+#: doc/classes/PoolColorArray.xml
+msgid "Appends a [PoolColorArray] at the end of this array."
+msgstr ""
+
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+msgid "Appends a value to the array."
+msgstr ""
+
+#: doc/classes/PoolColorArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
+msgid ""
+"Sets the size of the array. If the array is grown, reserves elements at the "
+"end of the array. If the array is shrunk, truncates the array to the new "
+"size."
+msgstr ""
+
+#: doc/classes/PoolColorArray.xml
+msgid "Changes the [Color] at the given index."
+msgstr ""
+
+#: doc/classes/PoolIntArray.xml
+msgid "A pooled [Array] of integers ([int])."
+msgstr ""
+
+#: doc/classes/PoolIntArray.xml
+msgid ""
+"An [Array] specifically designed to hold integer values ([int]). Optimized "
+"for memory usage, does not fragment the memory.\n"
+"[b]Note:[/b] This type is passed by value and not by reference.\n"
+"[b]Note:[/b] This type is limited to signed 32-bit integers, which means it "
+"can only take values in the interval [code][-2^31, 2^31 - 1][/code], i.e. "
+"[code][-2147483648, 2147483647][/code]. Exceeding those bounds will wrap "
+"around. In comparison, [int] uses signed 64-bit integers which can hold much "
+"larger values."
+msgstr ""
+
+#: doc/classes/PoolIntArray.xml
+msgid ""
+"Constructs a new [PoolIntArray]. Optionally, you can pass in a generic "
+"[Array] that will be converted."
+msgstr ""
+
+#: doc/classes/PoolIntArray.xml
+msgid "Appends a [PoolIntArray] at the end of this array."
+msgstr ""
+
+#: doc/classes/PoolIntArray.xml
+msgid ""
+"Inserts a new int at a given position in the array. The position must be "
+"valid, or at the end of the array ([code]idx == size()[/code])."
+msgstr ""
+
+#: doc/classes/PoolIntArray.xml
+msgid "Changes the int at the given index."
+msgstr ""
+
+#: doc/classes/PoolRealArray.xml
+msgid "A pooled [Array] of reals ([float])."
+msgstr ""
+
+#: doc/classes/PoolRealArray.xml
+msgid ""
+"An [Array] specifically designed to hold floating-point values. Optimized "
+"for memory usage, does not fragment the memory.\n"
+"[b]Note:[/b] This type is passed by value and not by reference.\n"
+"[b]Note:[/b] Unlike primitive [float]s which are 64-bit, numbers stored in "
+"[PoolRealArray] are 32-bit floats. This means values stored in "
+"[PoolRealArray] have lower precision compared to primitive [float]s. If you "
+"need to store 64-bit floats in an array, use a generic [Array] with [float] "
+"elements as these will still be 64-bit. However, using a generic [Array] to "
+"store [float]s will use roughly 6 times more memory compared to a "
+"[PoolRealArray]."
+msgstr ""
+
+#: doc/classes/PoolRealArray.xml
+msgid ""
+"Constructs a new [PoolRealArray]. Optionally, you can pass in a generic "
+"[Array] that will be converted."
+msgstr ""
+
+#: doc/classes/PoolRealArray.xml
+msgid "Appends a [PoolRealArray] at the end of this array."
+msgstr ""
+
+#: doc/classes/PoolRealArray.xml
+msgid "Changes the float at the given index."
+msgstr ""
+
+#: doc/classes/PoolStringArray.xml
+msgid "A pooled [Array] of [String]."
+msgstr ""
+
+#: doc/classes/PoolStringArray.xml
+msgid ""
+"An [Array] specifically designed to hold [String]s. Optimized for memory "
+"usage, does not fragment the memory.\n"
+"[b]Note:[/b] This type is passed by value and not by reference."
+msgstr ""
+
+#: doc/classes/PoolStringArray.xml
+msgid ""
+"Constructs a new [PoolStringArray]. Optionally, you can pass in a generic "
+"[Array] that will be converted."
+msgstr ""
+
+#: doc/classes/PoolStringArray.xml
+msgid "Appends a [PoolStringArray] at the end of this array."
+msgstr ""
+
+#: doc/classes/PoolStringArray.xml
+msgid ""
+"Returns a [String] with each element of the array joined with the given "
+"[code]delimiter[/code]."
+msgstr ""
+
+#: doc/classes/PoolStringArray.xml
+msgid "Appends a string element at end of the array."
+msgstr ""
+
+#: doc/classes/PoolStringArray.xml
+msgid "Changes the [String] at the given index."
+msgstr ""
+
+#: doc/classes/PoolVector2Array.xml
+msgid "A pooled [Array] of [Vector2]."
+msgstr ""
+
+#: doc/classes/PoolVector2Array.xml
+msgid ""
+"An [Array] specifically designed to hold [Vector2]. Optimized for memory "
+"usage, does not fragment the memory.\n"
+"[b]Note:[/b] This type is passed by value and not by reference."
+msgstr ""
+
+#: doc/classes/PoolVector2Array.xml doc/classes/TileMap.xml
+#: doc/classes/TileSet.xml
+msgid "https://godotengine.org/asset-library/asset/519"
+msgstr ""
+
+#: doc/classes/PoolVector2Array.xml
+msgid ""
+"Constructs a new [PoolVector2Array]. Optionally, you can pass in a generic "
+"[Array] that will be converted."
+msgstr ""
+
+#: doc/classes/PoolVector2Array.xml
+msgid "Appends a [PoolVector2Array] at the end of this array."
+msgstr ""
+
+#: doc/classes/PoolVector2Array.xml
+msgid "Inserts a [Vector2] at the end."
+msgstr ""
+
+#: doc/classes/PoolVector2Array.xml
+msgid "Changes the [Vector2] at the given index."
+msgstr ""
+
+#: doc/classes/PoolVector3Array.xml
+msgid "A pooled [Array] of [Vector3]."
+msgstr ""
+
+#: doc/classes/PoolVector3Array.xml
+msgid ""
+"An [Array] specifically designed to hold [Vector3]. Optimized for memory "
+"usage, does not fragment the memory.\n"
+"[b]Note:[/b] This type is passed by value and not by reference."
+msgstr ""
+
+#: doc/classes/PoolVector3Array.xml
+msgid ""
+"Constructs a new [PoolVector3Array]. Optionally, you can pass in a generic "
+"[Array] that will be converted."
+msgstr ""
+
+#: doc/classes/PoolVector3Array.xml
+msgid "Appends a [PoolVector3Array] at the end of this array."
+msgstr ""
+
+#: doc/classes/PoolVector3Array.xml
+msgid "Inserts a [Vector3] at the end."
+msgstr ""
+
+#: doc/classes/PoolVector3Array.xml
+msgid "Changes the [Vector3] at the given index."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid "Base container control for popups and dialogs."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid ""
+"Popup is a base [Control] used to show dialogs and popups. It's a subwindow "
+"and modal by default (see [Control]) and has helpers for custom popup "
+"behavior. All popup methods ensure correct placement within the viewport."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid "Popup (show the control in modal form)."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid ""
+"Popup (show the control in modal form) in the center of the screen relative "
+"to its current canvas transform, at the current size, or at a size "
+"determined by [code]size[/code]."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid ""
+"Popup (show the control in modal form) in the center of the screen relative "
+"to the current canvas transform, clamping the size to [code]size[/code], "
+"then ensuring the popup is no larger than the viewport size multiplied by "
+"[code]fallback_ratio[/code]."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid ""
+"Popup (show the control in modal form) in the center of the screen relative "
+"to the current canvas transform, ensuring the size is never smaller than "
+"[code]minsize[/code]."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid ""
+"Popup (show the control in modal form) in the center of the screen relative "
+"to the current canvas transform, scaled at a ratio of size of the screen."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid "Shrink popup to keep to the minimum size of content."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid ""
+"If [code]true[/code], the popup will not be hidden when a click event occurs "
+"outside of it, or when it receives the [code]ui_cancel[/code] action event.\n"
+"[b]Note:[/b] Enabling this property doesn't affect the Close or Cancel "
+"buttons' behavior in dialogs that inherit from this class. As a workaround, "
+"you can use [method WindowDialog.get_close_button] or [method "
+"ConfirmationDialog.get_cancel] and hide the buttons in question by setting "
+"their [member CanvasItem.visible] property to [code]false[/code]."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid ""
+"Emitted when a popup is about to be shown. This is often used in [PopupMenu] "
+"to clear the list of options then create a new one according to the current "
+"context."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid "Emitted when a popup is hidden."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid "Notification sent right after the popup is shown."
+msgstr ""
+
+#: doc/classes/Popup.xml
+msgid "Notification sent right after the popup is hidden."
+msgstr ""
+
+#: doc/classes/PopupDialog.xml
+msgid "Base class for popup dialogs."
+msgstr ""
+
+#: doc/classes/PopupDialog.xml
+msgid ""
+"PopupDialog is a base class for popup dialogs, along with [WindowDialog]."
+msgstr ""
+
+#: doc/classes/PopupDialog.xml
+msgid "Sets a custom [StyleBox] for the panel of the [PopupDialog]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "PopupMenu displays a list of options."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"[PopupMenu] is a [Control] that displays a list of options. They are popular "
+"in toolbars or context menus."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a new checkable item with text [code]label[/code].\n"
+"An [code]id[/code] can optionally be provided, as well as an accelerator "
+"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
+"from the index. If no [code]accel[/code] is provided then the default "
+"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
+"more info on accelerators.\n"
+"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
+"built-in checking behavior and must be checked/unchecked manually. See "
+"[method set_item_checked] for more info on how to control it."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a new checkable item and assigns the specified [ShortCut] to it. Sets "
+"the label of the checkbox to the [ShortCut]'s name.\n"
+"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
+"provided, one will be created from the index.\n"
+"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
+"built-in checking behavior and must be checked/unchecked manually. See "
+"[method set_item_checked] for more info on how to control it."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a new checkable item with text [code]label[/code] and icon "
+"[code]texture[/code].\n"
+"An [code]id[/code] can optionally be provided, as well as an accelerator "
+"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
+"from the index. If no [code]accel[/code] is provided then the default "
+"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
+"more info on accelerators.\n"
+"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
+"built-in checking behavior and must be checked/unchecked manually. See "
+"[method set_item_checked] for more info on how to control it."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a new checkable item and assigns the specified [ShortCut] and icon "
+"[code]texture[/code] to it. Sets the label of the checkbox to the "
+"[ShortCut]'s name.\n"
+"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
+"provided, one will be created from the index.\n"
+"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
+"built-in checking behavior and must be checked/unchecked manually. See "
+"[method set_item_checked] for more info on how to control it."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a new item with text [code]label[/code] and icon [code]texture[/code].\n"
+"An [code]id[/code] can optionally be provided, as well as an accelerator "
+"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
+"from the index. If no [code]accel[/code] is provided then the default "
+"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
+"more info on accelerators."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Same as [method add_icon_check_item], but uses a radio check button."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Same as [method add_icon_check_shortcut], but uses a radio check button."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a new item and assigns the specified [ShortCut] and icon [code]texture[/"
+"code] to it. Sets the label of the checkbox to the [ShortCut]'s name.\n"
+"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
+"provided, one will be created from the index."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a new item with text [code]label[/code].\n"
+"An [code]id[/code] can optionally be provided, as well as an accelerator "
+"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
+"from the index. If no [code]accel[/code] is provided then the default "
+"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
+"more info on accelerators."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a new multistate item with text [code]label[/code].\n"
+"Contrarily to normal binary items, multistate items can have more than two "
+"states, as defined by [code]max_states[/code]. Each press or activate of the "
+"item will increase the state by one. The default value is defined by "
+"[code]default_state[/code].\n"
+"An [code]id[/code] can optionally be provided, as well as an accelerator "
+"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
+"from the index. If no [code]accel[/code] is provided then the default "
+"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
+"more info on accelerators."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a new radio check button with text [code]label[/code].\n"
+"An [code]id[/code] can optionally be provided, as well as an accelerator "
+"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
+"from the index. If no [code]accel[/code] is provided then the default "
+"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
+"more info on accelerators.\n"
+"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
+"built-in checking behavior and must be checked/unchecked manually. See "
+"[method set_item_checked] for more info on how to control it."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a new radio check button and assigns a [ShortCut] to it. Sets the label "
+"of the checkbox to the [ShortCut]'s name.\n"
+"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
+"provided, one will be created from the index.\n"
+"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
+"built-in checking behavior and must be checked/unchecked manually. See "
+"[method set_item_checked] for more info on how to control it."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a separator between items. Separators also occupy an index, which you "
+"can set by using the [code]id[/code] parameter.\n"
+"A [code]label[/code] can optionally be provided, which will appear at the "
+"center of the separator."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds a [ShortCut].\n"
+"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
+"provided, one will be created from the index."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Adds an item that will act as a submenu of the parent [PopupMenu] node when "
+"clicked. The [code]submenu[/code] argument is the name of the child "
+"[PopupMenu] node that will be shown when the item is clicked.\n"
+"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
+"provided, one will be created from the index."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Removes all items from the [PopupMenu]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns the index of the currently focused item. Returns [code]-1[/code] if "
+"no item is focused."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns the accelerator of the item at index [code]idx[/code]. Accelerators "
+"are special combinations of keys that activate the item, no matter which "
+"control is focused."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Returns the number of items in the [PopupMenu]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns the id of the item at index [code]idx[/code]. [code]id[/code] can be "
+"manually assigned, while index can not."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns the index of the item containing the specified [code]id[/code]. "
+"Index is automatically assigned to each item by the engine. Index can not be "
+"set manually."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns the metadata of the specified item, which might be of any type. You "
+"can set it with [method set_item_metadata], which provides a simple way of "
+"assigning context data to items."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns the [ShortCut] associated with the specified [code]idx[/code] item."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns the submenu name of the item at index [code]idx[/code]. See [method "
+"add_submenu_item] for more info on how to add a submenu."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns the tooltip associated with the specified index index [code]idx[/"
+"code]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns [code]true[/code] if the popup will be hidden when the window loses "
+"focus or not."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns [code]true[/code] if the item at index [code]idx[/code] is checkable "
+"in some way, i.e. if it has a checkbox or radio button.\n"
+"[b]Note:[/b] Checkable items just display a checkmark or radio button, but "
+"don't have any built-in checking behavior and must be checked/unchecked "
+"manually."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns [code]true[/code] if the item at index [code]idx[/code] is checked."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns [code]true[/code] if the item at index [code]idx[/code] is disabled. "
+"When it is disabled it can't be selected, or its action invoked.\n"
+"See [method set_item_disabled] for more info on how to disable an item."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns [code]true[/code] if the item at index [code]idx[/code] has radio "
+"button-style checkability.\n"
+"[b]Note:[/b] This is purely cosmetic; you must add the logic for checking/"
+"unchecking items in radio groups."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Returns [code]true[/code] if the item is a separator. If it is, it will be "
+"displayed as a line. See [method add_separator] for more info on how to add "
+"a separator."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Returns [code]true[/code] if the specified item's shortcut is disabled."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Removes the item at index [code]idx[/code] from the menu.\n"
+"[b]Note:[/b] The indices of items after the removed item will be shifted by "
+"one."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Hides the [PopupMenu] when the window loses focus."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Sets the accelerator of the item at index [code]idx[/code]. Accelerators are "
+"special combinations of keys that activate the item, no matter which control "
+"is focused."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Sets whether the item at index [code]idx[/code] has a checkbox. If "
+"[code]false[/code], sets the type of the item to plain text.\n"
+"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
+"built-in checking behavior and must be checked/unchecked manually."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Sets the type of the item at the specified index [code]idx[/code] to radio "
+"button. If [code]false[/code], sets the type of the item to plain text."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Mark the item at index [code]idx[/code] as a separator, which means that it "
+"would be displayed as a line. If [code]false[/code], sets the type of the "
+"item to plain text."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Sets the checkstate status of the item at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Enables/disables the item at index [code]idx[/code]. When it is disabled, it "
+"can't be selected and its action can't be invoked."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Replaces the [Texture] icon of the specified [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Sets the [code]id[/code] of the item at index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Sets the metadata of an item, which may be of any type. You can later get it "
+"with [method get_item_metadata], which provides a simple way of assigning "
+"context data to items."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Sets the state of a multistate item. See [method add_multistate_item] for "
+"details."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Sets a [ShortCut] for the specified item [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Disables the [ShortCut] of the specified index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Sets the submenu of the item at index [code]idx[/code]. The submenu is the "
+"name of a child [PopupMenu] node that would be shown when the item is "
+"clicked."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Sets the [String] tooltip of the item at the specified index [code]idx[/"
+"code]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Toggles the check state of the item of the specified index [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Cycle to the next state of a multistate item. See [method "
+"add_multistate_item] for details."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "If [code]true[/code], allows navigating [PopupMenu] with letter keys."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"If [code]true[/code], hides the [PopupMenu] when a checkbox or radio button "
+"is selected."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "If [code]true[/code], hides the [PopupMenu] when an item is selected."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"If [code]true[/code], hides the [PopupMenu] when a state item is selected."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Sets the delay time in seconds for the submenu item to popup on mouse "
+"hovering. If the popup menu is added as a child of another (acting as a "
+"submenu), it will inherit the delay time of the parent menu item."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Emitted when user navigated to an item of some [code]id[/code] using "
+"[code]ui_up[/code] or [code]ui_down[/code] action."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Emitted when an item of some [code]id[/code] is pressed or its accelerator "
+"is activated."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"Emitted when an item of some [code]index[/code] is pressed or its "
+"accelerator is activated."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "The default text [Color] for menu items' names."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"The text [Color] used for shortcuts and accelerators that show next to the "
+"menu item name when defined. See [method get_item_accelerator] for more info "
+"on accelerators."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[Color] used for disabled menu items' text."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[Color] used for the hovered text."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[Color] used for labeled separators' text. See [method add_separator]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"The horizontal space between the item's name and the shortcut text/submenu "
+"arrow."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "The vertical space between each menu item."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[Font] used for the menu items."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[Texture] icon for the checked checkbox items."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[Texture] icon for the checked radio button items."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[Texture] icon for the unchecked radio button items."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[Texture] icon for the submenu arrow."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[Texture] icon for the unchecked checkbox items."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[StyleBox] displayed when the [PopupMenu] item is hovered."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"[StyleBox] for the left side of labeled separator. See [method "
+"add_separator]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid ""
+"[StyleBox] for the right side of labeled separator. See [method "
+"add_separator]."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "Default [StyleBox] of the [PopupMenu] items."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[StyleBox] used when the [PopupMenu] item is disabled."
+msgstr ""
+
+#: doc/classes/PopupMenu.xml
+msgid "[StyleBox] used for the separators. See [method add_separator]."
+msgstr ""
+
+#: doc/classes/PopupPanel.xml
+msgid "Class for displaying popups with a panel background."
+msgstr ""
+
+#: doc/classes/PopupPanel.xml
+msgid ""
+"Class for displaying popups with a panel background. In some cases it might "
+"be simpler to use than [Popup], since it provides a configurable background. "
+"If you are making windows, better check [WindowDialog]."
+msgstr ""
+
+#: doc/classes/PopupPanel.xml
+msgid "The background panel style of this [PopupPanel]."
+msgstr ""
+
+#: doc/classes/Portal.xml
+msgid "Portal nodes are used to enable visibility between [Room]s."
+msgstr ""
+
+#: doc/classes/Portal.xml
+msgid ""
+"[Portal]s are a special type of [MeshInstance] that allow the portal culling "
+"system to 'see' from one room to the next. They often correspond to doors "
+"and windows in level geometry. By only allowing [Camera]s to see through "
+"portals, this allows the system to cull out all the objects in rooms that "
+"cannot be seen through portals. This is a form of [b]occlusion culling[/b], "
+"and can greatly increase performance.\n"
+"There are some limitations to the form of portals:\n"
+"They must be single sided convex polygons, and usually you would orientate "
+"their front faces [b]outward[/b] from the [Room] they are placed in. The "
+"vertices should be positioned on a single plane (although their positioning "
+"does not have to be perfect).\n"
+"There is no need to place an opposite portal in an adjacent room, links are "
+"made two-way automatically."
+msgstr ""
+
+#: doc/classes/Portal.xml doc/classes/Room.xml
+msgid "Sets individual points. Primarily for use by the editor."
+msgstr ""
+
+#: doc/classes/Portal.xml
+msgid ""
+"This is a shortcut for setting the linked [Room] in the name of the [Portal] "
+"(the name is used during conversion)."
+msgstr ""
+
+#: doc/classes/Portal.xml
+msgid ""
+"The points defining the shape of the [Portal] polygon (which should be "
+"convex).\n"
+"These are defined in 2D, with [code]0,0[/code] being the origin of the "
+"[Portal] node's [member Spatial.global_transform].\n"
+"[b]Note:[/b] These raw points are sanitized for winding order internally."
+msgstr ""
+
+#: doc/classes/Portal.xml
+msgid ""
+"Visibility through [Portal]s can be turned on and off at runtime - this is "
+"useful for having closable doors."
+msgstr ""
+
+#: doc/classes/Portal.xml
+msgid ""
+"Some objects are so big that they may be present in more than one [Room] "
+"('sprawling'). As we often don't want objects that *just* breach the edges "
+"to be assigned to neighbouring rooms, you can assign an extra margin through "
+"the [Portal] to allow objects to breach without sprawling."
+msgstr ""
+
+#: doc/classes/Portal.xml
+msgid ""
+"Portals default to being two way - see through in both directions, however "
+"you can make them one way, visible from the source room only."
+msgstr ""
+
+#: doc/classes/Portal.xml
+msgid ""
+"In most cases you will want to use the default [Portal] margin in your "
+"portals (this is set in the [RoomManager]).\n"
+"If you want to override this default, set this value to [code]false[/code], "
+"and the local [member portal_margin] will take effect."
+msgstr ""
+
+#: doc/classes/Position2D.xml
+msgid "Generic 2D position hint for editing."
+msgstr ""
+
+#: doc/classes/Position2D.xml
+msgid ""
+"Generic 2D position hint for editing. It's just like a plain [Node2D], but "
+"it displays as a cross in the 2D editor at all times. You can set cross' "
+"visual size by using the gizmo in the 2D editor while the node is selected."
+msgstr ""
+
+#: doc/classes/Position3D.xml
+msgid "Generic 3D position hint for editing."
+msgstr ""
+
+#: doc/classes/Position3D.xml
+msgid ""
+"Generic 3D position hint for editing. It's just like a plain [Spatial], but "
+"it displays as a cross in the 3D editor at all times."
+msgstr ""
+
+#: doc/classes/PrimitiveMesh.xml
+msgid ""
+"Base class for all primitive meshes. Handles applying a [Material] to a "
+"primitive mesh."
+msgstr ""
+
+#: doc/classes/PrimitiveMesh.xml
+msgid ""
+"Base class for all primitive meshes. Handles applying a [Material] to a "
+"primitive mesh. Examples include [CapsuleMesh], [CubeMesh], [CylinderMesh], "
+"[PlaneMesh], [PrismMesh], [QuadMesh], and [SphereMesh]."
+msgstr ""
+
+#: doc/classes/PrimitiveMesh.xml
+msgid ""
+"Returns mesh arrays used to constitute surface of [Mesh]. The result can be "
+"passed to [method ArrayMesh.add_surface_from_arrays] to create a new "
+"surface. For example:\n"
+"[codeblock]\n"
+"var c := CylinderMesh.new()\n"
+"var arr_mesh := ArrayMesh.new()\n"
+"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c."
+"get_mesh_arrays())\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/PrimitiveMesh.xml
+msgid ""
+"If set, the order of the vertices in each triangle are reversed resulting in "
+"the backside of the mesh being drawn.\n"
+"This gives the same result as using [constant SpatialMaterial.CULL_BACK] in "
+"[member SpatialMaterial.params_cull_mode]."
+msgstr ""
+
+#: doc/classes/PrimitiveMesh.xml
+msgid "The current [Material] of the primitive mesh."
+msgstr ""
+
+#: doc/classes/PrismMesh.xml
+msgid "Class representing a prism-shaped [PrimitiveMesh]."
+msgstr ""
+
+#: doc/classes/PrismMesh.xml
+msgid ""
+"Displacement of the upper edge along the X axis. 0.0 positions edge straight "
+"above the bottom-left edge."
+msgstr ""
+
+#: doc/classes/PrismMesh.xml
+msgid "Size of the prism."
+msgstr ""
+
+#: doc/classes/PrismMesh.xml
+msgid "Number of added edge loops along the Z axis."
+msgstr ""
+
+#: doc/classes/PrismMesh.xml
+msgid "Number of added edge loops along the Y axis."
+msgstr ""
+
+#: doc/classes/PrismMesh.xml
+msgid "Number of added edge loops along the X axis."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid ""
+"Type of [Sky] that is generated procedurally based on user input parameters."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid ""
+"ProceduralSky provides a way to create an effective background quickly by "
+"defining procedural parameters for the sun, the sky and the ground. The sky "
+"and ground are very similar, they are defined by a color at the horizon, "
+"another color, and finally an easing curve to interpolate between these two "
+"colors. Similarly, the sun is described by a position in the sky, a color, "
+"and an easing curve. However, the sun also defines a minimum and maximum "
+"angle, these two values define at what distance the easing curve begins and "
+"ends from the sun, and thus end up defining the size of the sun in the sky.\n"
+"The ProceduralSky is updated on the CPU after the parameters change. It is "
+"stored in a texture and then displayed as a background in the scene. This "
+"makes it relatively unsuitable for real-time updates during gameplay. "
+"However, with a small enough texture size, it can still be updated "
+"relatively frequently, as it is updated on a background thread when multi-"
+"threading is available."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Color of the ground at the bottom."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid ""
+"How quickly the [member ground_horizon_color] fades into the [member "
+"ground_bottom_color]."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Amount of energy contribution from the ground."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Color of the ground at the horizon."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid ""
+"How quickly the [member sky_horizon_color] fades into the [member "
+"sky_top_color]."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Amount of energy contribution from the sky."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Color of the sky at the horizon."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Color of the sky at the top."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Distance from center of sun where it fades out completely."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Distance from sun where it goes from solid to starting to fade."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "The sun's color."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid ""
+"How quickly the sun fades away between [member sun_angle_min] and [member "
+"sun_angle_max]."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Amount of energy contribution from the sun."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "The sun's height using polar coordinates."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "The direction of the sun using polar coordinates."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid ""
+"Size of [Texture] that the ProceduralSky will generate. The size is set "
+"using [enum TextureSize]."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Sky texture will be 256x128."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Sky texture will be 512x256."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Sky texture will be 1024x512. This is the default size."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Sky texture will be 2048x1024."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Sky texture will be 4096x2048."
+msgstr ""
+
+#: doc/classes/ProceduralSky.xml
+msgid "Represents the size of the [enum TextureSize] enum."
+msgstr ""
+
+#: doc/classes/ProgressBar.xml
+msgid "General-purpose progress bar."
+msgstr ""
+
+#: doc/classes/ProgressBar.xml
+msgid "General-purpose progress bar. Shows fill percentage from right to left."
+msgstr ""
+
+#: doc/classes/ProgressBar.xml
+msgid "If [code]true[/code], the fill percentage is displayed on the bar."
+msgstr ""
+
+#: doc/classes/ProgressBar.xml
+msgid "The color of the text."
+msgstr ""
+
+#: doc/classes/ProgressBar.xml
+msgid "The color of the text's shadow."
+msgstr ""
+
+#: doc/classes/ProgressBar.xml
+msgid ""
+"Font used to draw the fill percentage if [member percent_visible] is "
+"[code]true[/code]."
+msgstr ""
+
+#: doc/classes/ProgressBar.xml
+msgid "The style of the background."
+msgstr ""
+
+#: doc/classes/ProgressBar.xml
+msgid "The style of the progress (i.e. the part that fills the bar)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Contains global variables accessible from everywhere."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Contains global variables accessible from everywhere. Use [method "
+"get_setting], [method set_setting] or [method has_setting] to access them. "
+"Variables stored in [code]project.godot[/code] are also loaded into "
+"ProjectSettings, making this object very useful for reading custom game "
+"configuration options.\n"
+"When naming a Project Settings property, use the full path to the setting "
+"including the category. For example, [code]\"application/config/name\"[/"
+"code] for the project name. Category and property names can be viewed in the "
+"Project Settings dialog.\n"
+"[b]Feature tags:[/b] Project settings can be overridden for specific "
+"platforms and configurations (debug, release, ...) using [url=$DOCS_URL/"
+"tutorials/export/feature_tags.html]feature tags[/url].\n"
+"[b]Overriding:[/b] Any project setting can be overridden by creating a file "
+"named [code]override.cfg[/code] in the project's root directory. This can "
+"also be used in exported projects by placing this file in the same directory "
+"as the project binary. Overriding will still take the base project "
+"settings' [url=$DOCS_URL/tutorials/export/feature_tags.html]feature tags[/"
+"url] in account. Therefore, make sure to [i]also[/i] override the setting "
+"with the desired feature tags if you want them to override base project "
+"settings on all platforms and configurations."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Adds a custom property info to a property. The dictionary must contain:\n"
+"- [code]name[/code]: [String] (the property's name)\n"
+"- [code]type[/code]: [int] (see [enum Variant.Type])\n"
+"- optionally [code]hint[/code]: [int] (see [enum PropertyHint]) and "
+"[code]hint_string[/code]: [String]\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"ProjectSettings.set(\"category/property_name\", 0)\n"
+"\n"
+"var property_info = {\n"
+" \"name\": \"category/property_name\",\n"
+" \"type\": TYPE_INT,\n"
+" \"hint\": PROPERTY_HINT_ENUM,\n"
+" \"hint_string\": \"one,two,three\"\n"
+"}\n"
+"\n"
+"ProjectSettings.add_property_info(property_info)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Clears the whole configuration (not recommended, may break things)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Returns the order of a configuration value (influences when saved to the "
+"config file)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Returns the value of a setting.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"print(ProjectSettings.get_setting(\"application/config/name\"))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Returns the absolute, native OS path corresponding to the localized "
+"[code]path[/code] (starting with [code]res://[/code] or [code]user://[/"
+"code]). The returned path will vary depending on the operating system and "
+"user preferences. See [url=$DOCS_URL/tutorials/io/data_paths.html]File paths "
+"in Godot projects[/url] to see what those paths convert to. See also [method "
+"localize_path].\n"
+"[b]Note:[/b] [method globalize_path] with [code]res://[/code] will not work "
+"in an exported project. Instead, prepend the executable's base directory to "
+"the path when running from an exported project:\n"
+"[codeblock]\n"
+"var path = \"\"\n"
+"if OS.has_feature(\"editor\"):\n"
+" # Running from an editor binary.\n"
+" # `path` will contain the absolute path to `hello.txt` located in the "
+"project root.\n"
+" path = ProjectSettings.globalize_path(\"res://hello.txt\")\n"
+"else:\n"
+" # Running from an exported project.\n"
+" # `path` will contain the absolute path to `hello.txt` next to the "
+"executable.\n"
+" # This is *not* identical to using `ProjectSettings.globalize_path()` "
+"with a `res://` path,\n"
+" # but is close enough in spirit.\n"
+" path = OS.get_executable_path().get_base_dir().plus_file(\"hello.txt\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Returns [code]true[/code] if a configuration value is present."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Loads the contents of the .pck or .zip file specified by [code]pack[/code] "
+"into the resource filesystem ([code]res://[/code]). Returns [code]true[/"
+"code] on success.\n"
+"[b]Note:[/b] If a file from [code]pack[/code] shares the same path as a file "
+"already in the resource filesystem, any attempts to load that file will use "
+"the file from [code]pack[/code] unless [code]replace_files[/code] is set to "
+"[code]false[/code].\n"
+"[b]Note:[/b] The optional [code]offset[/code] parameter can be used to "
+"specify the offset in bytes to the start of the resource pack. This is only "
+"supported for .pck files."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Returns the localized path (starting with [code]res://[/code]) corresponding "
+"to the absolute, native OS [code]path[/code]. See also [method "
+"globalize_path]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Returns [code]true[/code] if the specified property exists and its initial "
+"value differs from the current value."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Returns the specified property's initial value. Returns [code]null[/code] if "
+"the property does not exist."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Saves the configuration to the [code]project.godot[/code] file.\n"
+"[b]Note:[/b] This method is intended to be used by editor plugins, as "
+"modified [ProjectSettings] can't be loaded back in the running app. If you "
+"want to change project settings in exported projects, use [method "
+"save_custom] to save [code]override.cfg[/code] file."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Saves the configuration to a custom file. The file extension must be [code]."
+"godot[/code] (to save in text-based [ConfigFile] format) or [code].binary[/"
+"code] (to save in binary format). You can also save [code]override.cfg[/"
+"code] file, which is also text, but can be used in exported projects unlike "
+"other formats."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets the specified property's initial value. This is the value the property "
+"reverts to."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets the order of a configuration value (influences when saved to the config "
+"file)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets the value of a setting.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"ProjectSettings.set_setting(\"application/config/name\", \"Example\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Comma-separated list of custom Android modules (which must have been built "
+"in the Android export templates) using their Java package path, e.g. "
+"[code]\"org/godotengine/godot/MyCustomSingleton,com/example/foo/"
+"FrenchFriesFactory\"[/code].\n"
+"[b]Note:[/b] Since Godot 3.2.2, the [code]org/godotengine/godot/"
+"GodotPaymentV3[/code] module was deprecated and replaced by the "
+"[code]GodotPayment[/code] plugin which should be enabled in the Android "
+"export preset under [code]Plugins[/code] section. The singleton to access in "
+"code was also renamed to [code]GodotPayment[/code]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Background color for the boot splash."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], scale the boot splash image to the full window size "
+"(preserving the aspect ratio) when the engine starts. If [code]false[/code], "
+"the engine will leave it at the default pixel size."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Path to an image used as the boot splash. If left empty, the default Godot "
+"Engine splash will be displayed instead.\n"
+"[b]Note:[/b] Only effective if [member application/boot_splash/show_image] "
+"is [code]true[/code]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], displays the image specified in [member application/"
+"boot_splash/image] when the engine starts. If [code]false[/code], only "
+"displays the plain color specified in [member application/boot_splash/"
+"bg_color]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], applies linear filtering when scaling the image "
+"(recommended for high-resolution artwork). If [code]false[/code], uses "
+"nearest-neighbor interpolation (recommended for pixel art)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"This user directory is used for storing persistent data ([code]user://[/"
+"code] filesystem). If left empty, [code]user://[/code] resolves to a project-"
+"specific folder in Godot's own configuration folder (see [method OS."
+"get_user_data_dir]). If a custom directory name is defined, this name will "
+"be used instead and appended to the system-specific user data directory "
+"(same parent folder as the Godot configuration folder documented in [method "
+"OS.get_user_data_dir]).\n"
+"The [member application/config/use_custom_user_dir] setting must be enabled "
+"for this to take effect."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The project's description, displayed as a tooltip in the Project Manager "
+"when hovering the project."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Icon used for the project, set when project loads. Exporters will also use "
+"this icon when possible."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Icon set in [code].icns[/code] format used on macOS to set the game's icon. "
+"This is done automatically on start by calling [method OS.set_native_icon]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The project's name. It is used both by the Project Manager and by exporters. "
+"The project name can be translated by translating its value in localization "
+"files. The window title will be set to match the project name automatically "
+"on startup.\n"
+"[b]Note:[/b] Changing this value will also change the user data folder's "
+"path if [member application/config/use_custom_user_dir] is [code]false[/"
+"code]. After renaming the project, you will no longer be able to access "
+"existing data in [code]user://[/code] unless you rename the old folder to "
+"match the new project name. See [url=$DOCS_URL/tutorials/io/data_paths."
+"html]Data paths[/url] in the documentation for more information."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Specifies a file to override project settings. For example: [code]user://"
+"custom_settings.cfg[/code]. See \"Overriding\" in the [ProjectSettings] "
+"class description at the top for more information.\n"
+"[b]Note:[/b] Regardless of this setting's value, [code]res://override.cfg[/"
+"code] will still be read to override the project settings."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], the project will save user data to its own user "
+"directory (see [member application/config/custom_user_dir_name]). This "
+"setting is only effective on desktop platforms. A name must be set in the "
+"[member application/config/custom_user_dir_name] setting for this to take "
+"effect. If [code]false[/code], the project will save user data to [code](OS "
+"user data directory)/Godot/app_userdata/(project name)[/code]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], the project will use a hidden directory ([code]."
+"import[/code]) for storing project-specific data (metadata, shader cache, "
+"etc.).\n"
+"If [code]false[/code], a non-hidden directory ([code]import[/code]) will be "
+"used instead.\n"
+"[b]Note:[/b] Restart the application after changing this setting.\n"
+"[b]Note:[/b] Changing this value can help on platforms or with third-party "
+"tools where hidden directory patterns are disallowed. Only modify this "
+"setting if you know that your environment requires it, as changing the "
+"default can impact compatibility with some external tools or plugins which "
+"expect the default [code].import[/code] folder."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Icon set in [code].ico[/code] format used on Windows to set the game's icon. "
+"This is done automatically on start by calling [method OS.set_native_icon]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Time samples for frame deltas are subject to random variation introduced by "
+"the platform, even when frames are displayed at regular intervals thanks to "
+"V-Sync. This can lead to jitter. Delta smoothing can often give a better "
+"result by filtering the input deltas to correct for minor fluctuations from "
+"the refresh rate.\n"
+"[b]Note:[/b] Delta smoothing is only attempted when [member display/window/"
+"vsync/use_vsync] is switched on, as it does not work well without V-Sync.\n"
+"It may take several seconds at a stable frame rate before the smoothing is "
+"initially activated. It will only be active on machines where performance is "
+"adequate to render frames at the refresh rate."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"[b]Experimental.[/b] Shifts the measurement of delta time for each frame to "
+"just after the drawing has taken place. This may lead to more consistent "
+"deltas and a reduction in frame stutters."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], disables printing to standard error. If [code]true[/"
+"code], this also hides error and warning messages printed by [method "
+"@GDScript.push_error] and [method @GDScript.push_warning]. See also [member "
+"application/run/disable_stdout].\n"
+"Changes to this setting will only be applied upon restarting the application."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], disables printing to standard output. This is "
+"equivalent to starting the editor or project with the [code]--quiet[/code] "
+"command line argument. See also [member application/run/disable_stderr].\n"
+"Changes to this setting will only be applied upon restarting the application."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], flushes the standard output stream every time a line "
+"is printed. This affects both terminal logging and file logging.\n"
+"When running a project, this setting must be enabled if you want logs to be "
+"collected by service managers such as systemd/journalctl. This setting is "
+"disabled by default on release builds, since flushing on every printed line "
+"will negatively affect performance if lots of lines are printed in a rapid "
+"succession. Also, if this setting is enabled, logged files will still be "
+"written successfully if the application crashes or is otherwise killed by "
+"the user (without being closed \"normally\").\n"
+"[b]Note:[/b] Regardless of this setting, the standard error stream "
+"([code]stderr[/code]) is always flushed when a line is printed to it.\n"
+"Changes to this setting will only be applied upon restarting the application."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Debug build override for [member application/run/flush_stdout_on_print], as "
+"performance is less important during debugging.\n"
+"Changes to this setting will only be applied upon restarting the application."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Forces a delay between frames in the main loop (in milliseconds). This may "
+"be useful if you plan to disable vertical synchronization."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables low-processor usage mode. This setting only "
+"works on desktop platforms. The screen is not redrawn if nothing changes "
+"visually. This is meant for writing applications and editors, but is pretty "
+"useless (and can hurt performance) in most games."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Amount of sleeping between frames when the low-processor usage mode is "
+"enabled (in microseconds). Higher values will result in lower CPU usage."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Path to the main scene file that will be loaded when the project runs."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Audio buses will disable automatically when sound goes below a given dB "
+"threshold for a given time. This saves CPU as effects assigned to that bus "
+"will no longer do any processing."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [AudioBusLayout] resource file to use in the project, unless "
+"overridden by the scene."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Specifies the audio driver to use. This setting is platform-dependent as "
+"each platform supports different audio drivers. If left empty, the default "
+"audio driver will be used."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], microphone input will be allowed. This requires "
+"appropriate permissions to be set when exporting to Android or iOS."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The mixing rate used for audio (in Hz). In general, it's better to not touch "
+"this and leave it to the host operating system."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Safer override for [member audio/mix_rate] in the Web platform. Here "
+"[code]0[/code] means \"let the browser choose\" (since some browsers do not "
+"like forcing the mix rate)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Specifies the preferred output latency in milliseconds for audio. Lower "
+"values will result in lower audio latency at the cost of increased CPU "
+"usage. Low values may result in audible cracking on slower hardware.\n"
+"Audio output latency may be constrained by the host operating system and "
+"audio hardware drivers. If the host can not provide the specified audio "
+"output latency then Godot will attempt to use the nearest latency allowed by "
+"the host. As such you should always use [method AudioServer."
+"get_output_latency] to determine the actual audio output latency.\n"
+"[b]Note:[/b] This setting is ignored on Windows."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Safer override for [member audio/output_latency] in the Web platform, to "
+"avoid audio issues especially on mobile devices."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Setting to hardcode audio delay when playing video. Best to leave this "
+"untouched unless you know what you are doing."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default compression level for gzip. Affects compressed scenes and "
+"resources. Higher levels result in smaller files at the cost of compression "
+"speed. Decompression speed is mostly unaffected by the compression level. "
+"[code]-1[/code] uses the default gzip compression level, which is identical "
+"to [code]6[/code] but could change in the future due to underlying zlib "
+"updates."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default compression level for Zlib. Affects compressed scenes and "
+"resources. Higher levels result in smaller files at the cost of compression "
+"speed. Decompression speed is mostly unaffected by the compression level. "
+"[code]-1[/code] uses the default gzip compression level, which is identical "
+"to [code]6[/code] but could change in the future due to underlying zlib "
+"updates."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default compression level for Zstandard. Affects compressed scenes and "
+"resources. Higher levels result in smaller files at the cost of compression "
+"speed. Decompression speed is mostly unaffected by the compression level."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Enables [url=https://github.com/facebook/zstd/releases/tag/v1.3.2]long-"
+"distance matching[/url] in Zstandard."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Largest size limit (in power of 2) allowed when compressing using long-"
+"distance matching with Zstandard. Higher values can result in better "
+"compression, but will require more memory when compressing and decompressing."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], displays getters and setters in autocompletion results "
+"in the script editor. This setting is meant to be used when porting old "
+"projects (Godot 2), as using member variables is the preferred style from "
+"Godot 3 onwards."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when a constant is used as a function."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when deprecated keywords such as "
+"[code]slave[/code] are used."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables specific GDScript warnings (see [code]debug/"
+"gdscript/warnings/*[/code] settings). If [code]false[/code], disables all "
+"GDScript warnings."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], scripts in the [code]res://addons[/code] folder will "
+"not generate warnings."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when a function is declared with the "
+"same name as a constant."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when a function is declared with the "
+"same name as a variable. This will turn into an error in a future version "
+"when first-class functions become supported in GDScript."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when a function assigned to a "
+"variable may yield and return a function state instead of a value."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when using a function as if it was a "
+"property."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when a ternary operator may emit "
+"values with incompatible types."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when dividing an integer by another "
+"integer (the decimal part will be discarded)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when passing a floating-point value "
+"to a function that expects an integer (it will be converted and lose "
+"precision)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when using a property as if it was a "
+"function."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when calling a function without using "
+"its return value (by assigning it to a variable or using it as a function "
+"argument). Such return values are sometimes used to denote possible errors "
+"using the [enum Error] enum."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when defining a local or subclass "
+"member variable that would shadow a variable at an upper level (such as a "
+"member variable)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when calling an expression that has "
+"no effect on the surrounding code, such as writing [code]2 + 2[/code] as a "
+"statement."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when calling a ternary expression "
+"that has no effect on the surrounding code, such as writing [code]42 if "
+"active else 0[/code] as a statement."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], all warnings will be reported as if they were errors."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when using a variable that wasn't "
+"previously assigned."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when assigning a variable using an "
+"assignment operator like [code]+=[/code] if the variable wasn't previously "
+"assigned."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when unreachable code is detected "
+"(such as after a [code]return[/code] statement that will always be executed)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when using an expression whose type "
+"may not be compatible with the function parameter expected."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "If [code]true[/code], enables warnings when performing an unsafe cast."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when calling a method whose presence "
+"is not guaranteed at compile-time in the class."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when accessing a property whose "
+"presence is not guaranteed at compile-time in the class."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when a function parameter is unused."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when a member variable is unused."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "If [code]true[/code], enables warnings when a signal is unused."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "If [code]true[/code], enables warnings when a local variable is unused."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when a variable is declared with the "
+"same name as a function. This will turn into an error in a future version "
+"when first-class functions become supported in GDScript."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables warnings when assigning the result of a "
+"function that returns [code]void[/code] to a variable."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Message to be displayed before the backtrace when the engine crashes."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Maximum number of frames per second allowed. The actual number of frames per "
+"second may still be below this value if the game is lagging. See also "
+"[member physics/common/physics_fps].\n"
+"If [member display/window/vsync/use_vsync] is enabled, it takes precedence "
+"and the forced FPS number cannot exceed the monitor's refresh rate.\n"
+"This setting is therefore mostly relevant for lowering the maximum FPS below "
+"VSync, e.g. to perform non-real-time rendering of static frames, or test the "
+"project under lag conditions.\n"
+"[b]Note:[/b] This property is only read when the project starts. To change "
+"the rendering FPS cap at runtime, set [member Engine.target_fps] instead."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum call stack allowed for debugging GDScript."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum amount of functions per frame allowed when profiling."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Print frames per second to standard output every second."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Print more information to standard output when running. It displays "
+"information such as memory leaks, which scenes and resources are being "
+"loaded, etc."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum call stack in visual scripting, to avoid infinite recursion."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Color of the contact points between collision shapes, visible when \"Visible "
+"Collision Shapes\" is enabled in the Debug menu."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets whether 2D physics will display collision outlines in game when "
+"\"Visible Collision Shapes\" is enabled in the Debug menu."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Maximum number of contact points between collision shapes to display when "
+"\"Visible Collision Shapes\" is enabled in the Debug menu."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Color of the collision shapes, visible when \"Visible Collision Shapes\" is "
+"enabled in the Debug menu."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Color of the disabled navigation geometry, visible when \"Visible Navigation"
+"\" is enabled in the Debug menu."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Color of the navigation geometry, visible when \"Visible Navigation\" is "
+"enabled in the Debug menu."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Custom image for the mouse cursor (limited to 256×256)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Hotspot for the custom mouse cursor image."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Position offset for tooltips, relative to the mouse cursor's hotspot."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], allows HiDPI display on Windows, macOS, and the HTML5 "
+"platform. This setting has no effect on desktop Linux, as DPI-awareness "
+"fallbacks are not supported there."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], keeps the screen on (even in case of inactivity), so "
+"the screensaver does not take over. Works on desktop and mobile platforms."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default screen orientation to use on mobile devices.\n"
+"[b]Note:[/b] When set to a portrait orientation, this project setting does "
+"not flip the project resolution's width and height automatically. Instead, "
+"you have to set [member display/window/size/width] and [member display/"
+"window/size/height] accordingly."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], the home indicator is hidden automatically. This only "
+"affects iOS devices without a physical home button."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], allows per-pixel transparency for the window "
+"background. This affects performance, so leave it on [code]false[/code] "
+"unless you need it.\n"
+"See [member OS.window_per_pixel_transparency_enabled] for more details.\n"
+"[b]Note:[/b] This feature is implemented on HTML5, Linux, macOS, Windows, "
+"and Android."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets the window background to transparent when it starts.\n"
+"See [member OS.window_per_pixel_transparency_enabled] for more details.\n"
+"[b]Note:[/b] This feature is implemented on HTML5, Linux, macOS, Windows, "
+"and Android."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Forces the main window to be always on top.\n"
+"[b]Note:[/b] This setting is ignored on iOS, Android, and HTML5."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Forces the main window to be borderless.\n"
+"[b]Note:[/b] This setting is ignored on iOS, Android, and HTML5."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets the main window to full screen when the project starts. Note that this "
+"is not [i]exclusive[/i] fullscreen. On Windows and Linux, a borderless "
+"window is used to emulate fullscreen. On macOS, a new desktop is used to "
+"display the running project.\n"
+"Regardless of the platform, enabling fullscreen will change the window size "
+"to match the monitor's size. Therefore, make sure your project supports [url="
+"$DOCS_URL/tutorials/rendering/multiple_resolutions.html]multiple "
+"resolutions[/url] when enabling fullscreen mode.\n"
+"[b]Note:[/b] This setting is ignored on iOS, Android, and HTML5."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets the game's main viewport height. On desktop platforms, this is the "
+"default window size. Stretch mode settings also use this as a reference when "
+"enabled."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Allows the window to be resizable by default.\n"
+"[b]Note:[/b] This setting is ignored on iOS and Android."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If greater than zero, overrides the window height when running the game. "
+"Useful for testing stretch modes."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If greater than zero, overrides the window width when running the game. "
+"Useful for testing stretch modes."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets the game's main viewport width. On desktop platforms, this is the "
+"default window size. Stretch mode settings also use this as a reference when "
+"enabled."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Specifies the tablet driver to use. If left empty, the default driver will "
+"be used."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables vertical synchronization. This eliminates "
+"tearing that may appear in moving scenes, at the cost of higher input "
+"latency and stuttering at lower framerates. If [code]false[/code], vertical "
+"synchronization will be disabled, however, many platforms will enforce it "
+"regardless (such as mobile platforms and HTML5)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]Use Vsync[/code] is enabled and this setting is [code]true[/code], "
+"enables vertical synchronization via the operating system's window "
+"compositor when in windowed mode and the compositor is enabled. This will "
+"prevent stutter in certain situations. (Windows only.)\n"
+"[b]Note:[/b] This option is experimental and meant to alleviate stutter "
+"experienced by some users. However, some users have experienced a Vsync "
+"framerate halving (e.g. from 60 FPS to 30 FPS) when using it."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The command-line arguments to append to Godot's own command line when "
+"running the project. This doesn't affect the editor itself.\n"
+"It is possible to make another executable run Godot by using the "
+"[code]%command%[/code] placeholder. The placeholder will be replaced with "
+"Godot's own command line. Program-specific arguments should be placed "
+"[i]before[/i] the placeholder, whereas Godot-specific arguments should be "
+"placed [i]after[/i] the placeholder.\n"
+"For example, this can be used to force the project to run on the dedicated "
+"GPU in a NVIDIA Optimus system on Linux:\n"
+"[codeblock]\n"
+"prime-run %command%\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Search path for project-specific script templates. Godot will search for "
+"script templates both in the editor-specific path and in this project-"
+"specific path."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Text-based file extensions to include in the script editor's \"Find in Files"
+"\" feature. You can add e.g. [code]tscn[/code] if you wish to also parse "
+"your scene files, especially if you use built-in scripts which are "
+"serialized in the scene files."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default value for [member ScrollContainer.scroll_deadzone], which will be "
+"used for all [ScrollContainer]s unless overridden."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], swaps OK and Cancel buttons in dialogs on Windows and "
+"UWP to follow interface conventions."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Path to a custom [Theme] resource file to use for the project ([code]theme[/"
+"code] or generic [code]tres[/code]/[code]res[/code] extension)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Path to a custom [Font] resource to use as default for all GUI elements of "
+"the project."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "If [code]true[/code], makes sure the theme used works with HiDPI."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Timer setting for incremental search in [Tree], [ItemList], etc. controls "
+"(in milliseconds)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Timer for detecting idle in [TextEdit] (in seconds)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Default delay for tooltips (in seconds)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to confirm a focused button, menu or list item, "
+"or validate input.\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to discard a modal or pending input.\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to move down in the UI.\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to go to the end position of a [Control] (e.g. "
+"last item in an [ItemList] or a [Tree]), matching the behavior of [constant "
+"KEY_END] on typical desktop UI systems.\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to focus the next [Control] in the scene. The "
+"focus behavior can be configured via [member Control.focus_next].\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to focus the previous [Control] in the scene. The "
+"focus behavior can be configured via [member Control.focus_previous].\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to go to the start position of a [Control] (e.g. "
+"first item in an [ItemList] or a [Tree]), matching the behavior of [constant "
+"KEY_HOME] on typical desktop UI systems.\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to move left in the UI.\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to go down a page in a [Control] (e.g. in an "
+"[ItemList] or a [Tree]), matching the behavior of [constant KEY_PAGEDOWN] on "
+"typical desktop UI systems.\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to go up a page in a [Control] (e.g. in an "
+"[ItemList] or a [Tree]), matching the behavior of [constant KEY_PAGEUP] on "
+"typical desktop UI systems.\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to move right in the UI.\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to select an item in a [Control] (e.g. in an "
+"[ItemList] or a [Tree]).\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default [InputEventAction] to move up in the UI.\n"
+"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
+"necessary for the internal logic of several [Control]s. The events assigned "
+"to the action can however be modified."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], key/touch/joystick events will be flushed just before "
+"every idle and physics frame.\n"
+"If [code]false[/code], such events will be flushed only once per idle frame, "
+"between iterations of the engine.\n"
+"Enabling this can greatly improve the responsiveness to input, specially in "
+"devices that need to run multiple physics frames per visible (idle) frame, "
+"because they can't run at the target frame rate.\n"
+"[b]Note:[/b] Currently implemented only in Android."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], sends mouse input events when tapping or swiping on "
+"the touchscreen."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], sends touch input events when clicking or dragging the "
+"mouse."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Default delay for touch events. This only affects iOS devices."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 1."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 10."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 11."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 12."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 13."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 14."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 15."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 16."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 17."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 18."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 19."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 2."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 20."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 21."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 22."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 23."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 24."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 25."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 26."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 27."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 28."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 29."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 3."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 30."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 31."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 32."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 4."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 5."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 6."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 7."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 8."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D physics layer 9."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 1."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 10."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 11."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 12."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 13."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 14."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 15."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 16."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 17."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 18."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 19."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 2."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 20."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 3."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 4."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 5."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 6."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 7."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 8."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 2D render layer 9."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 1."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 10."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 11."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 12."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 13."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 14."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 15."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 16."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 17."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 18."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 19."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 2."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 20."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 21."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 22."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 23."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 24."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 25."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 26."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 27."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 28."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 29."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 3."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 30."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 31."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 32."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 4."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 5."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 6."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 7."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 8."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D physics layer 9."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 1."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 10."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 11."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 12."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 13."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 14"
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 15."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 16."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 17."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 18."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 19."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 2."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 20."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 3."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 4."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 5."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 6."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 7."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 8."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Optional name for the 3D render layer 9."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The locale to fall back to if a translation isn't available in a given "
+"language. If left empty, [code]en[/code] (English) will be used."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If non-empty, this locale will be used when running the project from the "
+"editor."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "If [code]true[/code], logs all output to files."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Desktop override for [member logging/file_logging/enable_file_logging], as "
+"log files are not readily accessible on mobile/Web platforms."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Path to logs within the project. Using an [code]user://[/code] path is "
+"recommended."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Specifies the maximum amount of log files allowed (used for rotation)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Godot uses a message queue to defer some function calls. If you run out of "
+"space on it (you will see an error), you can increase the size here."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"This is used by servers when used in multi-threading mode (servers and "
+"visual). RIDs are preallocated to avoid stalling the server requesting them "
+"on threads. If servers get stalled too often when loading resources in a "
+"thread, increase this number."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The policy to use for unhandled Mono (C#) exceptions. The default "
+"\"Terminate Application\" exits the project as soon as an unhandled "
+"exception is thrown. \"Log Error\" logs an error message to the console "
+"instead, and will not interrupt the project execution when an unhandled "
+"exception is thrown.\n"
+"[b]Note:[/b] The unhandled exception policy is always set to \"Log Error\" "
+"in the editor, which also includes C# [code]tool[/code] scripts running "
+"within the editor as well as editor plugin code."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Maximum amount of characters allowed to send as output from the debugger. "
+"Over this value, content is dropped. This helps not to stall the debugger "
+"connection."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Maximum number of errors allowed to be sent as output from the debugger. "
+"Over this value, content is dropped. This helps not to stall the debugger "
+"connection."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Maximum amount of messages allowed to send as output from the debugger. Over "
+"this value, content is dropped. This helps not to stall the debugger "
+"connection."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Maximum number of warnings allowed to be sent as output from the debugger. "
+"Over this value, content is dropped. This helps not to stall the debugger "
+"connection."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default size of packet peer stream for deserializing Godot data (in bytes, "
+"specified as a power of two). The default value [code]16[/code] is equal to "
+"65,536 bytes. Over this size, data is dropped."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Timeout (in seconds) for connection attempts using TCP."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum size (in kiB) for the [WebRTCDataChannel] input buffer."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum size (in kiB) for the [WebSocketClient] input buffer."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum number of concurrent input packets for [WebSocketClient]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum size (in kiB) for the [WebSocketClient] output buffer."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum number of concurrent output packets for [WebSocketClient]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum size (in kiB) for the [WebSocketServer] input buffer."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum number of concurrent input packets for [WebSocketServer]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum size (in kiB) for the [WebSocketServer] output buffer."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Maximum number of concurrent output packets for [WebSocketServer]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Amount of read ahead used by remote filesystem. Higher values decrease the "
+"effects of latency at the cost of higher bandwidth usage."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Page size used by remote filesystem (in bytes)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The CA certificates bundle to use for SSL connections. If this is set to a "
+"non-empty value, this will [i]override[/i] Godot's default [url=https://"
+"github.com/godotengine/godot/blob/master/thirdparty/certs/ca-certificates."
+"crt]Mozilla certificate bundle[/url]. If left empty, the default certificate "
+"bundle will be used.\n"
+"If in doubt, leave this setting empty."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"When creating node names automatically, set the type of casing in this "
+"project. This is mostly an editor setting."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"What to use to separate node name from number. This is mostly an editor "
+"setting."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Size of the hash table used for the broad-phase 2D hash grid algorithm.\n"
+"[b]Note:[/b] Not used if [member ProjectSettings.physics/2d/use_bvh] is "
+"enabled."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Additional expansion applied to object bounds in the 2D physics bounding "
+"volume hierarchy. This can reduce BVH processing at the cost of a slightly "
+"coarser broadphase, which can stress the physics more in some situations.\n"
+"The default value will work well in most situations. A value of 0.0 will "
+"turn this optimization off, and larger values may work better for larger, "
+"faster moving objects.\n"
+"[b]Note:[/b] Used only if [member ProjectSettings.physics/2d/use_bvh] is "
+"enabled."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Cell size used for the broad-phase 2D hash grid algorithm (in pixels).\n"
+"[b]Note:[/b] Not used if [member ProjectSettings.physics/2d/use_bvh] is "
+"enabled."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default angular damp in 2D.\n"
+"[b]Note:[/b] Good values are in the range [code]0[/code] to [code]1[/code]. "
+"At value [code]0[/code] objects will keep moving with the same velocity. "
+"Values greater than [code]1[/code] will aim to reduce the velocity to "
+"[code]0[/code] in less than a second e.g. a value of [code]2[/code] will aim "
+"to reduce the velocity to [code]0[/code] in half a second. A value equal to "
+"or greater than the physics frame rate ([member ProjectSettings.physics/"
+"common/physics_fps], [code]60[/code] by default) will bring the object to a "
+"stop in one iteration."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default gravity strength in 2D (in pixels per second squared).\n"
+"[b]Note:[/b] This property is only read when the project starts. To change "
+"the default gravity at runtime, use the following code sample:\n"
+"[codeblock]\n"
+"# Set the default gravity strength to 98.\n"
+"Physics2DServer.area_set_param(get_viewport().find_world_2d().get_space(), "
+"Physics2DServer.AREA_PARAM_GRAVITY, 98)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default gravity direction in 2D.\n"
+"[b]Note:[/b] This property is only read when the project starts. To change "
+"the default gravity vector at runtime, use the following code sample:\n"
+"[codeblock]\n"
+"# Set the default gravity direction to `Vector2(0, 1)`.\n"
+"Physics2DServer.area_set_param(get_viewport().find_world_2d().get_space(), "
+"Physics2DServer.AREA_PARAM_GRAVITY_VECTOR, Vector2(0, 1))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default linear damp in 2D.\n"
+"[b]Note:[/b] Good values are in the range [code]0[/code] to [code]1[/code]. "
+"At value [code]0[/code] objects will keep moving with the same velocity. "
+"Values greater than [code]1[/code] will aim to reduce the velocity to "
+"[code]0[/code] in less than a second e.g. a value of [code]2[/code] will aim "
+"to reduce the velocity to [code]0[/code] in half a second. A value equal to "
+"or greater than the physics frame rate ([member ProjectSettings.physics/"
+"common/physics_fps], [code]60[/code] by default) will bring the object to a "
+"stop in one iteration."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Threshold defining the surface size that constitutes a large object with "
+"regard to cells in the broad-phase 2D hash grid algorithm.\n"
+"[b]Note:[/b] Not used if [member ProjectSettings.physics/2d/use_bvh] is "
+"enabled."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets which physics engine to use for 2D physics.\n"
+"\"DEFAULT\" and \"GodotPhysics\" are the same, as there is currently no "
+"alternative 2D physics server implemented."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Threshold angular velocity under which a 2D physics body will be considered "
+"inactive. See [constant Physics2DServer."
+"SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Threshold linear velocity under which a 2D physics body will be considered "
+"inactive. See [constant Physics2DServer."
+"SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets whether physics is run on the main thread or a separate one. Running "
+"the server on a thread increases performance, but restricts API access to "
+"only physics process.\n"
+"[b]Warning:[/b] As of Godot 3.2, there are mixed reports about the use of a "
+"Multi-Threaded thread model for physics. Be sure to assess whether it does "
+"give you extra performance and no regressions when using it."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Time (in seconds) of inactivity before which a 2D physics body will put to "
+"sleep. See [constant Physics2DServer.SPACE_PARAM_BODY_TIME_TO_SLEEP]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Enables the use of bounding volume hierarchy instead of hash grid for 2D "
+"physics spatial partitioning. This may give better performance."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets whether the 3D physics world will be created with support for "
+"[SoftBody] physics. Only applies to the Bullet physics engine."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default angular damp in 3D.\n"
+"[b]Note:[/b] Good values are in the range [code]0[/code] to [code]1[/code]. "
+"At value [code]0[/code] objects will keep moving with the same velocity. "
+"Values greater than [code]1[/code] will aim to reduce the velocity to "
+"[code]0[/code] in less than a second e.g. a value of [code]2[/code] will aim "
+"to reduce the velocity to [code]0[/code] in half a second. A value equal to "
+"or greater than the physics frame rate ([member ProjectSettings.physics/"
+"common/physics_fps], [code]60[/code] by default) will bring the object to a "
+"stop in one iteration."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default gravity strength in 3D (in meters per second squared).\n"
+"[b]Note:[/b] This property is only read when the project starts. To change "
+"the default gravity at runtime, use the following code sample:\n"
+"[codeblock]\n"
+"# Set the default gravity strength to 9.8.\n"
+"PhysicsServer.area_set_param(get_viewport().find_world().get_space(), "
+"PhysicsServer.AREA_PARAM_GRAVITY, 9.8)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default gravity direction in 3D.\n"
+"[b]Note:[/b] This property is only read when the project starts. To change "
+"the default gravity vector at runtime, use the following code sample:\n"
+"[codeblock]\n"
+"# Set the default gravity direction to `Vector3(0, -1, 0)`.\n"
+"PhysicsServer.area_set_param(get_viewport().find_world().get_space(), "
+"PhysicsServer.AREA_PARAM_GRAVITY_VECTOR, Vector3(0, -1, 0))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default linear damp in 3D.\n"
+"[b]Note:[/b] Good values are in the range [code]0[/code] to [code]1[/code]. "
+"At value [code]0[/code] objects will keep moving with the same velocity. "
+"Values greater than [code]1[/code] will aim to reduce the velocity to "
+"[code]0[/code] in less than a second e.g. a value of [code]2[/code] will aim "
+"to reduce the velocity to [code]0[/code] in half a second. A value equal to "
+"or greater than the physics frame rate ([member ProjectSettings.physics/"
+"common/physics_fps], [code]60[/code] by default) will bring the object to a "
+"stop in one iteration."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Additional expansion applied to object bounds in the 3D physics bounding "
+"volume hierarchy. This can reduce BVH processing at the cost of a slightly "
+"coarser broadphase, which can stress the physics more in some situations.\n"
+"The default value will work well in most situations. A value of 0.0 will "
+"turn this optimization off, and larger values may work better for larger, "
+"faster moving objects.\n"
+"[b]Note:[/b] Used only if [member ProjectSettings.physics/3d/godot_physics/"
+"use_bvh] is enabled."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Enables the use of bounding volume hierarchy instead of octree for 3D "
+"physics spatial partitioning. This may give better performance."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets which physics engine to use for 3D physics.\n"
+"\"DEFAULT\" is currently the [url=https://bulletphysics.org]Bullet[/url] "
+"physics engine. The \"GodotPhysics\" engine is still supported as an "
+"alternative."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Enables [member Viewport.physics_object_picking] on the root viewport."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If enabled, 2D and 3D physics picking behaves this way in relation to "
+"pause:\n"
+"- When pause is started, every collision object that is hovered or captured "
+"(3D only) is released from that condition, getting the relevant mouse-exit "
+"callback, unless its pause mode makes it immune to pause.\n"
+"- During pause, picking only considers collision objects immune to pause, "
+"sending input events and enter/exit callbacks to them as expected.\n"
+"If disabled, the legacy behavior is used, which consists in queuing the "
+"picking input events during pause (so nodes won't get them) and flushing "
+"that queue on resume, against the state of the 2D/3D world at that point."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The number of fixed iterations per second. This controls how often physics "
+"simulation and [method Node._physics_process] methods are run. See also "
+"[member debug/settings/fps/force_fps].\n"
+"[b]Note:[/b] This property is only read when the project starts. To change "
+"the physics FPS at runtime, set [member Engine.iterations_per_second] "
+"instead.\n"
+"[b]Note:[/b] Only 8 physics ticks may be simulated per rendered frame at "
+"most. If more than 8 physics ticks have to be simulated per rendered frame "
+"to keep up with rendering, the game will appear to slow down (even if "
+"[code]delta[/code] is used consistently in physics calculations). Therefore, "
+"it is recommended not to increase [member physics/common/physics_fps] above "
+"240. Otherwise, the game will slow down when the rendering framerate goes "
+"below 30 FPS."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Controls how much physics ticks are synchronized with real time. For 0 or "
+"less, the ticks are synchronized. Such values are recommended for network "
+"games, where clock synchronization matters. Higher values cause higher "
+"deviation of in-game clock and real clock, but allows smoothing out "
+"framerate jitters. The default value of 0.5 should be fine for most; values "
+"above 2 could cause the game to react to dropped frames with a noticeable "
+"delay and are not recommended.\n"
+"[b]Note:[/b] For best results, when using a custom physics interpolation "
+"solution, the physics jitter fix should be disabled by setting [member "
+"physics/common/physics_jitter_fix] to [code]0[/code].\n"
+"[b]Note:[/b] This property is only read when the project starts. To change "
+"the physics FPS at runtime, set [member Engine.physics_jitter_fix] instead."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"[b]Experimental.[/b] Calls [code]glBufferData[/code] with NULL data prior to "
+"uploading batching data. This may not be necessary but can be used for "
+"safety.\n"
+"[b]Note:[/b] Use with care. You are advised to leave this as default for "
+"exports. A non-default setting that works better on your machine may "
+"adversely affect performance for end users."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"[b]Experimental.[/b] If set to on, uses the [code]GL_STREAM_DRAW[/code] flag "
+"for batching buffer uploads. If off, uses the [code]GL_DYNAMIC_DRAW[/code] "
+"flag.\n"
+"[b]Note:[/b] Use with care. You are advised to leave this as default for "
+"exports. A non-default setting that works better on your machine may "
+"adversely affect performance for end users."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"[b]Experimental.[/b] If set to on, this applies buffer orphaning - "
+"[code]glBufferData[/code] is called with NULL data and the full buffer size "
+"prior to uploading new data. This can be important to avoid stalling on some "
+"hardware.\n"
+"[b]Note:[/b] Use with care. You are advised to leave this as default for "
+"exports. A non-default setting that works better on your machine may "
+"adversely affect performance for end users."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"[b]Experimental.[/b] If set to on, uses the [code]GL_STREAM_DRAW[/code] flag "
+"for legacy buffer uploads. If off, uses the [code]GL_DYNAMIC_DRAW[/code] "
+"flag.\n"
+"[b]Note:[/b] Use with care. You are advised to leave this as default for "
+"exports. A non-default setting that works better on your machine may "
+"adversely affect performance for end users."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Choose between fixed mode where corner scalings are preserved matching the "
+"artwork, and scaling mode.\n"
+"Not available in GLES3 when [member rendering/batching/options/use_batching] "
+"is off."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Some NVIDIA GPU drivers have a bug which produces flickering issues for the "
+"[code]draw_rect[/code] method, especially as used in [TileMap]. Refer to "
+"[url=https://github.com/godotengine/godot/issues/9913]GitHub issue 9913[/"
+"url] for details.\n"
+"If [code]true[/code], this option enables a \"safe\" code path for such "
+"NVIDIA GPUs at the cost of performance. This option affects GLES2 and GLES3 "
+"rendering, but only on desktop platforms."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], performs 2D skinning on the CPU rather than the GPU. "
+"This provides greater compatibility with a wide range of hardware, and also "
+"may be faster in some circumstances.\n"
+"Currently only available when [member rendering/batching/options/"
+"use_batching] is active.\n"
+"[b]Note:[/b] Antialiased software skinned polys are not supported, and will "
+"be rendered without antialiasing.\n"
+"[b]Note:[/b] Custom shaders that use the [code]VERTEX[/code] built-in "
+"operate with [code]VERTEX[/code] position [i]after[/i] skinning, whereas "
+"with hardware skinning, [code]VERTEX[/code] is the position [i]before[/i] "
+"skinning."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], forces snapping of vertices to pixels in 2D rendering. "
+"May help in some pixel art styles.\n"
+"This snapping is performed on the GPU in the vertex shader.\n"
+"Consider using the project setting [member rendering/batching/precision/"
+"uv_contract] to prevent artifacts."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"When batching is on, this regularly prints a frame diagnosis log. Note that "
+"this will degrade performance."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"[b]Experimental.[/b] For regression testing against the old renderer. If "
+"this is switched on, and [code]use_batching[/code] is set, the renderer will "
+"swap alternately between using the old renderer, and the batched renderer, "
+"on each frame. This makes it easy to identify visual differences. "
+"Performance will be degraded."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lights have the potential to prevent joining items, and break many of the "
+"performance benefits of batching. This setting enables some complex logic to "
+"allow joining items if their lighting is similar, and overlap tests pass. "
+"This can significantly improve performance in some games. Set to 0 to switch "
+"off. With large values the cost of overlap tests may lead to diminishing "
+"returns."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets the proportion of the total screen area (in pixels) that must be saved "
+"by a scissor operation in order to activate light scissoring. This can "
+"prevent parts of items being rendered outside the light area. Lower values "
+"scissor more aggressively. A value of 1 scissors none of the items, a value "
+"of 0 scissors every item. The power of 4 of the value is used, in order to "
+"emphasize the lower range, and multiplied by the total screen area in pixels "
+"to give the threshold. This can reduce fill rate requirements in scenes with "
+"a lot of lighting."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Enabling this setting uses the legacy method to draw batches containing only "
+"one rect. The legacy method is faster (approx twice as fast), but can cause "
+"flicker on some systems. In order to directly compare performance with the "
+"non-batching renderer you can set this to true, but it is recommended to "
+"turn this off unless you can guarantee your target hardware will work with "
+"this method."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Turns 2D batching on and off. Batching increases performance by reducing the "
+"amount of graphics API drawcalls."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Switches on 2D batching within the editor."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Size of buffer reserved for batched vertices. Larger size enables larger "
+"batches, but there are diminishing returns for the memory used. This should "
+"only have a minor effect on performance."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Including color in the vertex format has a cost, however, not including "
+"color prevents batching across color changes. This threshold determines the "
+"ratio of [code]number of vertex color changes / total number of vertices[/"
+"code] above which vertices will be translated to colored format. A value of "
+"0 will always use colored vertices, 1 will never use colored vertices."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"In certain circumstances, the batcher can reorder items in order to better "
+"join them. This may result in better performance. An overlap test is needed "
+"however for each item lookahead, so there is a trade off, with diminishing "
+"returns. If you are getting no benefit, setting this to 0 will switch it off."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets the number of commands to lookahead to determine whether to batch "
+"render items. A value of 1 can join items consisting of single commands, 0 "
+"turns off joining. Higher values are in theory more likely to join, however "
+"this has diminishing returns and has a runtime cost so a small value is "
+"recommended."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"On some platforms (especially mobile), precision issues in shaders can lead "
+"to reading 1 texel outside of bounds, particularly where rects are scaled. "
+"This can particularly lead to border artifacts around tiles in tilemaps.\n"
+"This adjustment corrects for this by making a small contraction to the UV "
+"coordinates used. Note that this can result in a slight squashing of border "
+"texels."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The amount of UV contraction. This figure is divided by 1000000, and is a "
+"proportion of the total texture dimensions, where the width and height are "
+"both ranged from 0.0 to 1.0.\n"
+"Use the default unless correcting for a problem on particular hardware."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Amount of light samples taken when using [constant BakedLightmap."
+"BAKE_QUALITY_HIGH]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Amount of light samples taken when using [constant BakedLightmap."
+"BAKE_QUALITY_LOW]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Amount of light samples taken when using [constant BakedLightmap."
+"BAKE_QUALITY_MEDIUM]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Amount of light samples taken when using [constant BakedLightmap."
+"BAKE_QUALITY_ULTRA]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Default background clear color. Overridable per [Viewport] using its "
+"[Environment]. See [member Environment.background_mode] and [member "
+"Environment.background_color] in particular. To change this default color "
+"programmatically, use [method VisualServer.set_default_clear_color]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"[Environment] that will be used as a fallback environment in case a scene "
+"does not specify its own environment. The default environment is loaded in "
+"at scene load time regardless of whether you have set an environment or not. "
+"If you do not rely on the fallback environment, it is best to delete "
+"[code]default_env.tres[/code], or to specify a different default environment "
+"here."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The use of half-float vertex compression may be producing rendering errors "
+"on some platforms (especially iOS). These have been seen particularly in "
+"particles. Disabling half-float may resolve these problems."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"iOS specific override for [member rendering/gles2/compatibility/"
+"disable_half_float], due to poor support for half-float vertex compression "
+"on many devices."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code] and available on the target Android device, enables "
+"high floating point precision for all shader computations in GLES2.\n"
+"[b]Warning:[/b] High floating point precision can be extremely slow on older "
+"devices and is often not available at all. Use with caution."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], every time an asynchronous shader compilation or an "
+"asynchronous shader reconstruction from cache starts or finishes, a line "
+"will be logged telling how many of those are happening.\n"
+"If the platform doesn't support parallel shader compile, but only the "
+"compile queue via a secondary GL context, what the message will tell is the "
+"number of shader compiles currently queued.\n"
+"[b]Note:[/b] This setting is only meaningful if [code]rendering/gles3/"
+"shaders/shader_compilation_mode[/code] is [b]not[/b] [code]Synchronous[/"
+"code]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"This is the maximum number of shaders that can be compiled (or reconstructed "
+"from cache) at the same time.\n"
+"At runtime, while that count is reached, other shaders that can be "
+"asynchronously compiled will just use their fallback, without their setup "
+"being started until the count gets lower.\n"
+"This is a way to balance the CPU work between running the game and compiling "
+"the shaders. The goal is to have as many asynchronous compiles in flight as "
+"possible without impacting the responsiveness of the game, which beyond some "
+"point would destroy the benefits of asynchronous compilation. In other "
+"words, you may be able to afford that the FPS lowers a bit, and that will "
+"already be better than the stalling that synchronous compilation could "
+"cause.\n"
+"The default value is a conservative one, so you are advised to tweak it "
+"according to the hardware you are targeting.\n"
+"[b]Note:[/b] This setting is only meaningful if [code]rendering/gles3/"
+"shaders/shader_compilation_mode[/code] is [b]not[/b] [code]Synchronous[/"
+"code]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default is a very conservative override for [code]rendering/gles3/"
+"shaders/max_concurrent_compiles[/code].\n"
+"Depending on the specific devices you are targeting, you may want to raise "
+"it.\n"
+"[b]Note:[/b] This setting is only meaningful if [code]rendering/gles3/"
+"shaders/shader_compilation_mode[/code] is [b]not[/b] [code]Synchronous[/"
+"code]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The maximum size, in megabytes, that the ubershader cache can grow up to. On "
+"startup, the least recently used entries will be deleted until the total "
+"size is within bounds.\n"
+"[b]Note:[/b] This setting is only meaningful if [code]rendering/gles3/"
+"shaders/shader_compilation_mode[/code] is set to [code]Asynchronous + Cache[/"
+"code]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"An override for [code]rendering/gles3/shaders/ubershader_cache_size_mb[/"
+"code], so a smaller maximum size can be configured for mobile platforms, "
+"where storage space is more limited.\n"
+"[b]Note:[/b] This setting is only meaningful if [code]rendering/gles3/"
+"shaders/shader_compilation_mode[/code] is set to [code]Asynchronous + Cache[/"
+"code]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If set to [code]Asynchronous[/code] and available on the target device, "
+"asynchronous compilation of shaders is enabled (in contrast to "
+"[code]Asynchronous[/code]).\n"
+"That means that when a shader is first used under some new rendering "
+"situation, the game won't stall while such shader is being compiled. "
+"Instead, a fallback will be used and the real shader will be compiled in the "
+"background. Once the actual shader is compiled, it will be used the next "
+"times it's used to draw a frame.\n"
+"Depending on the async mode configured for a given material/shader, the "
+"fallback will be an \"ubershader\" (the default) or just skip rendering any "
+"item it is applied to.\n"
+"An ubershader is a very complex shader, slow but suited to any rendering "
+"situation, that the engine generates internally so it can be used from the "
+"beginning while the traditional conditioned, optimized version of it is "
+"being compiled.\n"
+"In order to save some loading time, you can use [code]Asynchronous + Cache[/"
+"code], which also causes the ubershaders to be cached into storage so they "
+"can be ready faster next time they are used (provided the platform provides "
+"support for it).\n"
+"[b]Warning:[/b] Async. compilation is currently only supported for spatial "
+"and particle materials/shaders."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Max buffer size for blend shapes. Any blend shape bigger than this will not "
+"work."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Max buffer size for drawing polygons. Any polygon bigger than this will not "
+"work."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Max index buffer size for drawing polygons. Any polygon bigger than this "
+"will not work."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Max buffer size for drawing immediate objects (ImmediateGeometry nodes). "
+"Nodes using more than this size will not work."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Max number of lights renderable per object. This is further limited by "
+"hardware support. Most devices only support 409 lights, while many devices "
+"(especially mobile) only support 102. Setting this low will slightly reduce "
+"memory usage and may decrease shader compile times."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Max amount of elements renderable in a frame. If more elements than this are "
+"visible per frame, they will not be drawn. Keep in mind elements refer to "
+"mesh surfaces and not meshes themselves. Setting this low will slightly "
+"reduce memory usage and may decrease shader compile times, particularly on "
+"web. For most uses, the default value is suitable, but consider lowering as "
+"much as possible on web export."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Max number of lights renderable in a frame. If more lights than this number "
+"are used, they will be ignored. Setting this low will slightly reduce memory "
+"usage and may decrease shader compile times, particularly on web. For most "
+"uses, the default value is suitable, but consider lowering as much as "
+"possible on web export."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Max number of reflection probes renderable in a frame. If more reflection "
+"probes than this number are used, they will be ignored. Setting this low "
+"will slightly reduce memory usage and may decrease shader compile times, "
+"particularly on web. For most uses, the default value is suitable, but "
+"consider lowering as much as possible on web export."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Shaders have a time variable that constantly increases. At some point, it "
+"needs to be rolled back to zero to avoid precision errors on shader "
+"animations. This setting specifies when (in seconds)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], the texture importer will import lossless textures "
+"using the PNG format. Otherwise, it will default to using WebP."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default compression level for lossless WebP. Higher levels result in "
+"smaller files at the cost of compression speed. Decompression speed is "
+"mostly unaffected by the compression level. Supported values are 0 to 9. "
+"Note that compression levels above 6 are very slow and offer very little "
+"savings."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"On import, mesh vertex data will be split into two streams within a single "
+"vertex buffer, one for position data and the other for interleaved "
+"attributes data. Recommended to be enabled if targeting mobile devices. "
+"Requires manual reimport of meshes after toggling."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Determines the maximum number of sphere occluders that will be used at any "
+"one time.\n"
+"Although you can have many occluders in a scene, each frame the system will "
+"choose from these the most relevant based on a screen space metric, in order "
+"to give the best overall performance."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The default convention is for portal normals to point outward (face outward) "
+"from the source room.\n"
+"If you accidentally build your level with portals facing the wrong way, this "
+"setting can fix the problem.\n"
+"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
+"conversion to [Portal] nodes."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Show conversion logs.\n"
+"[b]Note:[/b] This will automatically be disabled in exports."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], gameplay callbacks will be sent as [code]signals[/"
+"code]. If [code]false[/code], they will be sent as [code]notifications[/"
+"code]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If enabled, while merging meshes, the system will also attempt to remove "
+"[Spatial] nodes that no longer have any children.\n"
+"Reducing the number of [Node]s in the scene tree can make traversal more "
+"efficient, but can be switched off in case you wish to use empty [Spatial]s "
+"for markers or some other purpose."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Show logs during PVS generation.\n"
+"[b]Note:[/b] This will automatically be disabled in exports."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Uses a simplified method of generating PVS (potentially visible set) data. "
+"The results may not be accurate where more than one portal join adjacent "
+"rooms.\n"
+"[b]Note:[/b] Generally you should only use this option if you encounter bugs "
+"when it is set to [code]false[/code], i.e. there are problems with the "
+"default method."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/depth/hdr] on mobile "
+"devices, due to performance concerns or driver support."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
+"architecture already does this."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], performs a previous depth pass before rendering "
+"materials. This increases performance in scenes with high overdraw, when "
+"complex materials and lighting are used."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The directional shadow's size in pixels. Higher values will result in "
+"sharper shadows, at the cost of performance. The value will be rounded up to "
+"the nearest power of 2."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/directional_shadow/size] on "
+"mobile devices, due to performance concerns or driver support."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The video driver to use (\"GLES2\" or \"GLES3\").\n"
+"[b]Note:[/b] The backend in use can be overridden at runtime via the [code]--"
+"video-driver[/code] command line argument, or by the [member rendering/"
+"quality/driver/fallback_to_gles2] option if the target system does not "
+"support GLES3 and falls back to GLES2. In such cases, this property is not "
+"updated, so use [method OS.get_current_video_driver] to query it at run-time."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], allows falling back to the GLES2 driver if the GLES3 "
+"driver is not supported.\n"
+"[b]Note:[/b] The two video drivers are not drop-in replacements for each "
+"other, so a game designed for GLES3 might not work properly when falling "
+"back to GLES2. In particular, some features of the GLES3 backend are not "
+"available in GLES2. Enabling this setting also means that both ETC and ETC2 "
+"VRAM-compressed textures will be exported on Android and iOS, increasing the "
+"data pack's size."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Maximum anisotropic filter level used for textures with anisotropy enabled. "
+"Higher values will result in sharper textures when viewed from oblique "
+"angles, at the cost of performance. Only power-of-two values are valid (2, "
+"4, 8, 16)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Sets the number of MSAA samples to use. MSAA is used to reduce aliasing "
+"around the edges of polygons. A higher MSAA value results in smoother edges "
+"but can be significantly slower on some hardware.\n"
+"[b]Note:[/b] MSAA is not available on HTML5 export using the GLES2 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], contrast-adaptive "
+"sharpening will be applied to the 3D viewport. This has a low performance "
+"cost and can be used to recover some of the sharpness lost from using FXAA. "
+"Values around [code]0.5[/code] generally give the best results. See also "
+"[member rendering/quality/filters/use_fxaa]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], uses a fast post-processing filter to make banding "
+"significantly less visible. In some cases, debanding may introduce a "
+"slightly noticeable dithering pattern. It's recommended to enable debanding "
+"only when actually needed since the dithering pattern will make lossless-"
+"compressed screenshots larger.\n"
+"[b]Note:[/b] Only available on the GLES3 backend. [member rendering/quality/"
+"depth/hdr] must also be [code]true[/code] for debanding to be effective.\n"
+"[b]Note:[/b] There are known issues with debanding breaking rendering on "
+"mobile platforms. Due to this, it is recommended to leave this option "
+"disabled when targeting mobile platforms."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Enables FXAA in the root Viewport. FXAA is a popular screen-space "
+"antialiasing method, which is fast but will make the image look blurry, "
+"especially at lower resolutions. It can still work relatively well at large "
+"resolutions such as 1440p and 4K. Some of the lost sharpness can be "
+"recovered by enabling contrast-adaptive sharpening (see [member rendering/"
+"quality/filters/sharpen_intensity])."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], uses nearest-neighbor mipmap filtering when using "
+"mipmaps (also called \"bilinear filtering\"), which will result in visible "
+"seams appearing between mipmap stages. This may increase performance in "
+"mobile as less memory bandwidth is used. If [code]false[/code], linear "
+"mipmap filtering (also called \"trilinear filtering\") is used."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Strategy used for framebuffer allocation. The simpler it is, the less "
+"resources it uses (but the less features it supports). If set to \"2D "
+"Without Sampling\" or \"3D Without Effects\", sample buffers will not be "
+"allocated. This means [code]SCREEN_TEXTURE[/code] and [code]DEPTH_TEXTURE[/"
+"code] will not be available in shaders and post-processing effects will not "
+"be available in the [Environment]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/intended_usage/"
+"framebuffer_allocation] on mobile devices, due to performance concerns or "
+"driver support."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Enable usage of bicubic sampling in baked lightmaps. This results in "
+"smoother looking lighting at the expense of more bandwidth usage. On GLES2, "
+"changes to this setting will only be applied upon restarting the application."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/lightmapping/"
+"use_bicubic_sampling] on mobile devices, in order to reduce bandwidth usage."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Size of the atlas used by reflection probes. A larger size can result in "
+"higher visual quality, while a smaller size will be faster and take up less "
+"memory."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Number of subdivisions to use for the reflection atlas. A higher number "
+"lowers the quality of each atlas, but allows you to use more."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], uses a high amount of samples to create blurred "
+"variants of reflection probes and panorama backgrounds (sky). Those blurred "
+"variants are used by rough materials."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/reflections/"
+"high_quality_ggx] on mobile devices, due to performance concerns or driver "
+"support."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Limits the size of the irradiance map which is normally determined by "
+"[member Sky.radiance_size]. A higher size results in a higher quality "
+"irradiance map similarly to [member rendering/quality/reflections/"
+"high_quality_ggx]. Use a higher value when using high-frequency HDRI maps, "
+"otherwise keep this as low as possible.\n"
+"[b]Note:[/b] Low and mid range hardware do not support complex irradiance "
+"maps well and may crash if this is set too high."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], uses texture arrays instead of mipmaps for reflection "
+"probes and panorama backgrounds (sky). This reduces jitter noise on "
+"reflections, but costs more performance and memory."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/reflections/"
+"texture_array_reflections] on mobile devices, due to performance concerns or "
+"driver support."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], uses faster but lower-quality Blinn model to generate "
+"blurred reflections instead of the GGX model."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/shading/"
+"force_blinn_over_ggx] on mobile devices, due to performance concerns or "
+"driver support."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], uses faster but lower-quality Lambert material "
+"lighting model instead of Burley."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/shading/"
+"force_lambert_over_burley] on mobile devices, due to performance concerns or "
+"driver support."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], forces vertex shading for all rendering. This can "
+"increase performance a lot, but also reduces quality immensely. Can be used "
+"to optimize performance on low-end mobile devices."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/shading/"
+"force_vertex_shading] on mobile devices, due to performance concerns or "
+"driver support."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], enables new physical light attenuation for "
+"[OmniLight]s and [SpotLight]s. This results in more realistic lighting "
+"appearance with a very small performance cost. When physical light "
+"attenuation is enabled, lights will appear to be darker as a result of the "
+"new attenuation formula. This can be compensated by adjusting the lights' "
+"energy or attenuation values.\n"
+"Changes to this setting will only be applied upon restarting the application."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Size for cubemap into which the shadow is rendered before being copied into "
+"the shadow atlas. A higher number can result in higher resolution shadows "
+"when used with a higher [member rendering/quality/shadow_atlas/size]. "
+"Setting higher than a quarter of the [member rendering/quality/shadow_atlas/"
+"size] will not result in a perceptible increase in visual quality."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Subdivision quadrant size for shadow mapping. See shadow mapping "
+"documentation."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Size for shadow atlas (used for OmniLights and SpotLights). See "
+"documentation."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/shadow_atlas/size] on "
+"mobile devices, due to performance concerns or driver support."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Shadow filter mode. Higher-quality settings result in smoother shadows that "
+"flicker less when moving. \"Disabled\" is the fastest option, but also has "
+"the lowest quality. \"PCF5\" is smoother but is also slower. \"PCF13\" is "
+"the smoothest option, but is also the slowest.\n"
+"[b]Note:[/b] When using the GLES2 backend, the \"PCF13\" option actually "
+"uses 16 samples to emulate linear filtering in the shader. This results in a "
+"shadow appearance similar to the one produced by the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Lower-end override for [member rendering/quality/shadows/filter_mode] on "
+"mobile devices, due to performance concerns or driver support."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Forces [MeshInstance] to always perform skinning on the CPU (applies to both "
+"GLES2 and GLES3).\n"
+"See also [member rendering/quality/skinning/software_skinning_fallback]."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Allows [MeshInstance] to perform skinning on the CPU when the hardware "
+"doesn't support the default GPU skinning process with GLES2.\n"
+"If [code]false[/code], an alternative skinning process on the GPU is used in "
+"this case (slower in most cases).\n"
+"See also [member rendering/quality/skinning/force_software_skinning].\n"
+"[b]Note:[/b] When the software skinning fallback is triggered, custom vertex "
+"shaders will behave in a different way, because the bone transform will be "
+"already applied to the modelview matrix."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Additional expansion applied to object bounds in the 3D rendering bounding "
+"volume hierarchy. This can reduce BVH processing at the cost of a slightly "
+"reduced accuracy.\n"
+"The default value will work well in most situations. A value of 0.0 will "
+"turn this optimization off, and larger values may work better for larger, "
+"faster moving objects.\n"
+"[b]Note:[/b] Used only if [member ProjectSettings.rendering/quality/"
+"spatial_partitioning/use_bvh] is enabled."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"The rendering octree balance can be changed to favor smaller ([code]0[/"
+"code]), or larger ([code]1[/code]) branches.\n"
+"Larger branches can increase performance significantly in some projects.\n"
+"[b]Note:[/b] Not used if [member ProjectSettings.rendering/quality/"
+"spatial_partitioning/use_bvh] is enabled."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Enables the use of bounding volume hierarchy instead of octree for rendering "
+"spatial partitioning. This may give better performance."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Improves quality of subsurface scattering, but cost significantly increases."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Quality setting for subsurface scattering (samples taken)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid "Max radius used for subsurface scattering samples."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Weight subsurface scattering samples. Helps to avoid reading samples from "
+"unrelated parts of the screen."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Use high-quality voxel cone tracing. This results in better-looking "
+"reflections, but is much more expensive on the GPU."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Thread model for rendering. Rendering on a thread can vastly improve "
+"performance, but synchronizing to the main thread can cause a bit more "
+"jitter."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], a thread safe version of BVH (bounding volume "
+"hierarchy) will be used in rendering and Godot physics.\n"
+"Try enabling this option if you see any visual anomalies in 3D (such as "
+"incorrect object visibility)."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], the texture importer will import VRAM-compressed "
+"textures using the BPTC algorithm. This texture compression algorithm is "
+"only supported on desktop platforms, and only when using the GLES3 "
+"renderer.\n"
+"[b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were "
+"already imported before. To make this setting apply to textures that were "
+"already imported, exit the editor, remove the [code].import/[/code] folder "
+"located inside the project folder then restart the editor (see [member "
+"application/config/use_hidden_project_data_directory])."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], the texture importer will import VRAM-compressed "
+"textures using the Ericsson Texture Compression algorithm. This algorithm "
+"doesn't support alpha channels in textures.\n"
+"[b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were "
+"already imported before. To make this setting apply to textures that were "
+"already imported, exit the editor, remove the [code].import/[/code] folder "
+"located inside the project folder then restart the editor (see [member "
+"application/config/use_hidden_project_data_directory])."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], the texture importer will import VRAM-compressed "
+"textures using the Ericsson Texture Compression 2 algorithm. This texture "
+"compression algorithm is only supported when using the GLES3 renderer.\n"
+"[b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were "
+"already imported before. To make this setting apply to textures that were "
+"already imported, exit the editor, remove the [code].import/[/code] folder "
+"located inside the project folder then restart the editor (see [member "
+"application/config/use_hidden_project_data_directory])."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], the texture importer will import VRAM-compressed "
+"textures using the PowerVR Texture Compression algorithm. This texture "
+"compression algorithm is only supported on iOS.\n"
+"[b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were "
+"already imported before. To make this setting apply to textures that were "
+"already imported, exit the editor, remove the [code].import/[/code] folder "
+"located inside the project folder then restart the editor (see [member "
+"application/config/use_hidden_project_data_directory])."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"If [code]true[/code], the texture importer will import VRAM-compressed "
+"textures using the S3 Texture Compression algorithm. This algorithm is only "
+"supported on desktop platforms and consoles.\n"
+"[b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were "
+"already imported before. To make this setting apply to textures that were "
+"already imported, exit the editor, remove the [code].import/[/code] folder "
+"located inside the project folder then restart the editor (see [member "
+"application/config/use_hidden_project_data_directory])."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
+"Cell size used for the 2D hash grid that [VisibilityNotifier2D] uses (in "
+"pixels)."
+msgstr ""
+
+#: doc/classes/ProximityGroup.xml
+msgid "General-purpose proximity detection node."
+msgstr ""
+
+#: doc/classes/QuadMesh.xml
+msgid "Class representing a square mesh."
+msgstr ""
+
+#: doc/classes/QuadMesh.xml
+msgid ""
+"Class representing a square [PrimitiveMesh]. This flat mesh does not have a "
+"thickness. By default, this mesh is aligned on the X and Y axes; this "
+"default rotation is more suited for use with billboarded materials. Unlike "
+"[PlaneMesh], this mesh doesn't provide subdivision options."
+msgstr ""
+
+#: doc/classes/QuadMesh.xml doc/classes/Viewport.xml
+#: doc/classes/ViewportTexture.xml
+msgid "https://godotengine.org/asset-library/asset/129"
+msgstr ""
+
+#: doc/classes/QuadMesh.xml
+msgid "Offset of the generated Quad. Useful for particles."
+msgstr ""
+
+#: doc/classes/QuadMesh.xml
+msgid "Size on the X and Y axes."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid "Quaternion."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"A unit quaternion used for representing 3D rotations. Quaternions need to be "
+"normalized to be used for rotation.\n"
+"It is similar to Basis, which implements matrix representation of rotations, "
+"and can be parametrized using both an axis-angle pair or Euler angles. Basis "
+"stores rotation, scale, and shearing, while Quat only stores rotation.\n"
+"Due to its compactness and the way it is stored in memory, certain "
+"operations (obtaining axis-angle and performing SLERP, in particular) are "
+"more efficient and robust against floating-point errors."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"$DOCS_URL/tutorials/3d/using_transforms.html#interpolating-with-quaternions"
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid "Constructs a quaternion from the given [Basis]."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Constructs a quaternion that will perform a rotation specified by Euler "
+"angles (in the YXZ convention: when decomposing, first Z, then X, and Y "
+"last), given in the vector format as (X angle, Y angle, Z angle)."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Constructs a quaternion that will rotate around the given axis by the "
+"specified angle. The axis must be a normalized vector."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid "Constructs a quaternion defined by the given values."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Returns the angle between this quaternion and [code]to[/code]. This is the "
+"magnitude of the angle you would need to rotate by to get from one to the "
+"other.\n"
+"[b]Note:[/b] This method has an abnormally high amount of floating-point "
+"error, so methods such as [method @GDScript.is_zero_approx] will not work "
+"reliably."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Performs a cubic spherical interpolation between quaternions [code]pre_a[/"
+"code], this vector, [code]b[/code], and [code]post_b[/code], by the given "
+"amount [code]weight[/code]."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid "Returns the dot product of two quaternions."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Returns Euler angles (in the YXZ convention: when decomposing, first Z, then "
+"X, and Y last) corresponding to the rotation represented by the unit "
+"quaternion. Returned vector contains the rotation angles in the format (X "
+"angle, Y angle, Z angle)."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid "Returns the inverse of the quaternion."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Returns [code]true[/code] if this quaternion and [code]quat[/code] are "
+"approximately equal, by running [method @GDScript.is_equal_approx] on each "
+"component."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid "Returns whether the quaternion is normalized or not."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid "Returns the length of the quaternion."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid "Returns the length of the quaternion, squared."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid "Returns a copy of the quaternion, normalized to unit length."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Sets the quaternion to a rotation which rotates around axis by the specified "
+"angle, in radians. The axis must be a normalized vector."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Sets the quaternion to a rotation specified by Euler angles (in the YXZ "
+"convention: when decomposing, first Z, then X, and Y last), given in the "
+"vector format as (X angle, Y angle, Z angle)."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Returns the result of the spherical linear interpolation between this "
+"quaternion and [code]to[/code] by amount [code]weight[/code].\n"
+"[b]Note:[/b] Both quaternions must be normalized."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Returns the result of the spherical linear interpolation between this "
+"quaternion and [code]to[/code] by amount [code]weight[/code], but without "
+"checking if the rotation path is not bigger than 90 degrees."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid "Returns a vector transformed (multiplied) by this quaternion."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"W component of the quaternion (real part).\n"
+"Quaternion components should usually not be manipulated directly."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"X component of the quaternion (imaginary [code]i[/code] axis part).\n"
+"Quaternion components should usually not be manipulated directly."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Y component of the quaternion (imaginary [code]j[/code] axis part).\n"
+"Quaternion components should usually not be manipulated directly."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"Z component of the quaternion (imaginary [code]k[/code] axis part).\n"
+"Quaternion components should usually not be manipulated directly."
+msgstr ""
+
+#: doc/classes/Quat.xml
+msgid ""
+"The identity quaternion, representing no rotation. Equivalent to an identity "
+"[Basis] matrix. If a vector is transformed by an identity quaternion, it "
+"will not change."
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid "A class for generating pseudo-random numbers."
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid ""
+"RandomNumberGenerator is a class for generating pseudo-random numbers. It "
+"currently uses [url=http://www.pcg-random.org/]PCG32[/url].\n"
+"[b]Note:[/b] The underlying algorithm is an implementation detail. As a "
+"result, it should not be depended upon for reproducible random streams "
+"across Godot versions.\n"
+"To generate a random float number (within a given range) based on a time-"
+"dependant seed:\n"
+"[codeblock]\n"
+"var rng = RandomNumberGenerator.new()\n"
+"func _ready():\n"
+" rng.randomize()\n"
+" var my_random_number = rng.randf_range(-10.0, 10.0)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] The default values of [member seed] and [member state] "
+"properties are pseudo-random, and changes when calling [method randomize]. "
+"The [code]0[/code] value documented here is a placeholder, and not the "
+"actual default seed."
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid "$DOCS_URL/tutorials/math/random_number_generation.html"
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid ""
+"Generates a pseudo-random float between [code]0.0[/code] and [code]1.0[/"
+"code] (inclusive)."
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid ""
+"Generates a pseudo-random float between [code]from[/code] and [code]to[/"
+"code] (inclusive)."
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid ""
+"Generates a [url=https://en.wikipedia.org/wiki/Normal_distribution]normally-"
+"distributed[/url] pseudo-random number, using Box-Muller transform with the "
+"specified [code]mean[/code] and a standard [code]deviation[/code]. This is "
+"also called Gaussian distribution."
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid ""
+"Generates a pseudo-random 32-bit unsigned integer between [code]0[/code] and "
+"[code]4294967295[/code] (inclusive)."
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid ""
+"Generates a pseudo-random 32-bit signed integer between [code]from[/code] "
+"and [code]to[/code] (inclusive)."
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid "Setups a time-based seed to generator."
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid ""
+"Initializes the random number generator state based on the given seed value. "
+"A given seed will give a reproducible sequence of pseudo-random numbers.\n"
+"[b]Note:[/b] The RNG does not have an avalanche effect, and can output "
+"similar random streams given similar seeds. Consider using a hash function "
+"to improve your seed quality if they're sourced externally.\n"
+"[b]Note:[/b] Setting this property produces a side effect of changing the "
+"internal [member state], so make sure to initialize the seed [i]before[/i] "
+"modifying the [member state]:\n"
+"[codeblock]\n"
+"var rng = RandomNumberGenerator.new()\n"
+"rng.seed = hash(\"Godot\")\n"
+"rng.state = 100 # Restore to some previously saved state.\n"
+"[/codeblock]\n"
+"[b]Warning:[/b] the getter of this property returns the previous [member "
+"state], and not the initial seed value, which is going to be fixed in Godot "
+"4.0."
+msgstr ""
+
+#: doc/classes/RandomNumberGenerator.xml
+msgid ""
+"The current state of the random number generator. Save and restore this "
+"property to restore the generator to a previous state:\n"
+"[codeblock]\n"
+"var rng = RandomNumberGenerator.new()\n"
+"print(rng.randf())\n"
+"var saved_state = rng.state # Store current state.\n"
+"print(rng.randf()) # Advance internal state.\n"
+"rng.state = saved_state # Restore the state.\n"
+"print(rng.randf()) # Prints the same value as in previous.\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Do not set state to arbitrary values, since the random number "
+"generator requires the state to have certain qualities to behave properly. "
+"It should only be set to values that came from the state property itself. To "
+"initialize the random number generator with arbitrary input, use [member "
+"seed] instead."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid "Abstract base class for range-based controls."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"Range is a base class for [Control] nodes that change a floating-point "
+"[i]value[/i] between a [i]minimum[/i] and a [i]maximum[/i], using [i]step[/"
+"i] and [i]page[/i], for example a [ScrollBar]."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"Binds two ranges together along with any ranges previously grouped with "
+"either of them. When any of range's member variables change, it will share "
+"the new value with all other ranges in its group."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid "Stops range from sharing its member variables with any other."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"If [code]true[/code], [member value] may be greater than [member max_value]."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"If [code]true[/code], [member value] may be less than [member min_value]."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"If [code]true[/code], and [code]min_value[/code] is greater than 0, "
+"[code]value[/code] will be represented exponentially rather than linearly."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"Maximum value. Range is clamped if [code]value[/code] is greater than "
+"[code]max_value[/code]."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"Minimum value. Range is clamped if [code]value[/code] is less than "
+"[code]min_value[/code]."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"Page size. Used mainly for [ScrollBar]. ScrollBar's length is its size "
+"multiplied by [code]page[/code] over the difference between [code]min_value[/"
+"code] and [code]max_value[/code]."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid "The value mapped between 0 and 1."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"If [code]true[/code], [code]value[/code] will always be rounded to the "
+"nearest integer."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"If greater than 0, [code]value[/code] will always be rounded to a multiple "
+"of [code]step[/code]. If [code]rounded[/code] is also [code]true[/code], "
+"[code]value[/code] will first be rounded to a multiple of [code]step[/code] "
+"then rounded to the nearest integer."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid "Range's current value."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid ""
+"Emitted when [member min_value], [member max_value], [member page], or "
+"[member step] change."
+msgstr ""
+
+#: doc/classes/Range.xml
+msgid "Emitted when [member value] changes."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid "Query the closest object intersecting a ray."
+msgstr ""
+
+#: doc/classes/RayCast.xml
+msgid ""
+"A RayCast represents a line from its origin to its destination position, "
+"[code]cast_to[/code]. It is used to query the 3D space in order to find the "
+"closest object along the path of the ray.\n"
+"RayCast can ignore some objects by adding them to the exception list via "
+"[code]add_exception[/code] or by setting proper filtering with collision "
+"layers and masks.\n"
+"RayCast can be configured to report collisions with [Area]s ([member "
+"collide_with_areas]) and/or [PhysicsBody]s ([member collide_with_bodies]).\n"
+"Only enabled raycasts will be able to query the space and report "
+"collisions.\n"
+"RayCast calculates intersection every physics frame (see [Node]), and the "
+"result is cached so it can be used later until the next frame. If multiple "
+"queries are required between physics frames (or during the same frame), use "
+"[method force_raycast_update] after adjusting the raycast."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"Adds a collision exception so the ray does not report collisions with the "
+"specified node."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"Adds a collision exception so the ray does not report collisions with the "
+"specified [RID]."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid "Removes all collision exceptions for this ray."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
+"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"Returns the first object that the ray intersects, or [code]null[/code] if no "
+"object is intersecting the ray (i.e. [method is_colliding] returns "
+"[code]false[/code])."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"Returns the shape ID of the first object that the ray intersects, or "
+"[code]0[/code] if no object is intersecting the ray (i.e. [method "
+"is_colliding] returns [code]false[/code])."
+msgstr ""
+
+#: doc/classes/RayCast.xml
+msgid ""
+"Returns [code]true[/code] if the bit index passed is turned on.\n"
+"[b]Note:[/b] Bit indices range from 0-19."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"Returns the normal of the intersecting object's shape at the collision point."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"Returns the collision point at which the ray intersects the closest object.\n"
+"[b]Note:[/b] This point is in the [b]global[/b] coordinate system."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"Returns whether any object is intersecting with the ray's vector "
+"(considering the vector length)."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"Removes a collision exception so the ray does report collisions with the "
+"specified node."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"Removes a collision exception so the ray does report collisions with the "
+"specified [RID]."
+msgstr ""
+
+#: doc/classes/RayCast.xml
+msgid ""
+"Sets the bit index passed to the [code]value[/code] passed.\n"
+"[b]Note:[/b] Bit indexes range from 0-19."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"The ray's destination point, relative to the RayCast's [code]position[/code]."
+msgstr ""
+
+#: doc/classes/RayCast.xml
+msgid "If [code]true[/code], collision with [Area]s will be reported."
+msgstr ""
+
+#: doc/classes/RayCast.xml
+msgid "If [code]true[/code], collision with [PhysicsBody]s will be reported."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid ""
+"The ray's collision mask. Only objects in at least one collision layer "
+"enabled in the mask will be detected. See [url=$DOCS_URL/tutorials/physics/"
+"physics_introduction.html#collision-layers-and-masks]Collision layers and "
+"masks[/url] in the documentation for more information."
+msgstr ""
+
+#: doc/classes/RayCast.xml
+msgid ""
+"The custom color to use to draw the shape in the editor and at run-time if "
+"[b]Visible Collision Shapes[/b] is enabled in the [b]Debug[/b] menu. This "
+"color will be highlighted at run-time if the [RayCast] is colliding with "
+"something.\n"
+"If set to [code]Color(0.0, 0.0, 0.0)[/code] (by default), the color set in "
+"[member ProjectSettings.debug/shapes/collision/shape_color] is used."
+msgstr ""
+
+#: doc/classes/RayCast.xml
+msgid ""
+"If set to [code]1[/code], a line is used as the debug shape. Otherwise, a "
+"truncated pyramid is drawn to represent the [RayCast]. Requires [b]Visible "
+"Collision Shapes[/b] to be enabled in the [b]Debug[/b] menu for the debug "
+"shape to be visible at run-time."
+msgstr ""
+
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
+msgid "If [code]true[/code], collisions will be reported."
+msgstr ""
+
+#: doc/classes/RayCast.xml
+msgid ""
+"If [code]true[/code], collisions will be ignored for this RayCast's "
+"immediate parent."
+msgstr ""
+
+#: doc/classes/RayCast2D.xml
+msgid ""
+"A RayCast represents a line from its origin to its destination position, "
+"[code]cast_to[/code]. It is used to query the 2D space in order to find the "
+"closest object along the path of the ray.\n"
+"RayCast2D can ignore some objects by adding them to the exception list via "
+"[code]add_exception[/code], by setting proper filtering with collision "
+"layers, or by filtering object types with type masks.\n"
+"RayCast2D can be configured to report collisions with [Area2D]s ([member "
+"collide_with_areas]) and/or [PhysicsBody2D]s ([member "
+"collide_with_bodies]).\n"
+"Only enabled raycasts will be able to query the space and report "
+"collisions.\n"
+"RayCast2D calculates intersection every physics frame (see [Node]), and the "
+"result is cached so it can be used later until the next frame. If multiple "
+"queries are required between physics frames (or during the same frame) use "
+"[method force_raycast_update] after adjusting the raycast."
+msgstr ""
+
+#: doc/classes/RayCast2D.xml
+msgid ""
+"Sets or clears individual bits on the collision mask. This makes selecting "
+"the areas scanned easier."
+msgstr ""
+
+#: doc/classes/RayCast2D.xml
+msgid "If [code]true[/code], collision with [Area2D]s will be reported."
+msgstr ""
+
+#: doc/classes/RayCast2D.xml
+msgid "If [code]true[/code], collision with [PhysicsBody2D]s will be reported."
+msgstr ""
+
+#: doc/classes/RayCast2D.xml
+msgid ""
+"If [code]true[/code], the parent node will be excluded from collision "
+"detection."
+msgstr ""
+
+#: doc/classes/RayShape.xml
+msgid "Ray shape for 3D collisions."
+msgstr ""
+
+#: doc/classes/RayShape.xml
+msgid ""
+"Ray shape for 3D collisions, which can be set into a [PhysicsBody] or "
+"[Area]. A ray is not really a collision body; instead, it tries to separate "
+"itself from whatever is touching its far endpoint. It's often useful for "
+"characters."
+msgstr ""
+
+#: doc/classes/RayShape.xml doc/classes/RayShape2D.xml
+msgid "The ray's length."
+msgstr ""
+
+#: doc/classes/RayShape.xml doc/classes/RayShape2D.xml
+msgid "If [code]true[/code], allow the shape to return the correct normal."
+msgstr ""
+
+#: doc/classes/RayShape2D.xml
+msgid "Ray shape for 2D collisions."
+msgstr ""
+
+#: doc/classes/RayShape2D.xml
+msgid ""
+"Ray shape for 2D collisions. A ray is not really a collision body; instead, "
+"it tries to separate itself from whatever is touching its far endpoint. It's "
+"often useful for characters."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid "2D axis-aligned bounding box."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"[Rect2] consists of a position, a size, and several utility functions. It is "
+"typically used for fast overlap tests.\n"
+"It uses floating-point coordinates.\n"
+"The 3D counterpart to [Rect2] is [AABB].\n"
+"Negative values for [member size] are not supported and will not work for "
+"most methods. Use [method abs] to get a Rect2 with a positive size."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid "Constructs a [Rect2] by position and size."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid "Constructs a [Rect2] by x, y, width, and height."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"Returns a [Rect2] with equivalent position and area, modified so that the "
+"top-left corner is the origin and [code]width[/code] and [code]height[/code] "
+"are positive."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid "Returns the intersection of this [Rect2] and b."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"Returns [code]true[/code] if this [Rect2] completely encloses another one."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"Returns a copy of this [Rect2] expanded to include a given point.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"# position (-3, 2), size (1, 1)\n"
+"var rect = Rect2(Vector2(-3, 2), Vector2(1, 1))\n"
+"# position (-3, -1), size (3, 4), so we fit both rect and Vector2(0, -1)\n"
+"var rect2 = rect.expand(Vector2(0, -1))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid "Returns the area of the [Rect2]."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"Returns the center of the [Rect2], which is equal to [member position] + "
+"([member size] / 2)."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"Returns a copy of the [Rect2] grown a given amount of units towards all the "
+"sides."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"Returns a copy of the [Rect2] grown a given amount of units towards each "
+"direction individually."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"Returns a copy of the [Rect2] grown a given amount of units towards the "
+"[enum Margin] direction."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid "Returns [code]true[/code] if the [Rect2] is flat or empty."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"Returns [code]true[/code] if the [Rect2] contains a point. By convention, "
+"the right and bottom edges of the [Rect2] are considered exclusive, so "
+"points on these edges are [b]not[/b] included.\n"
+"[b]Note:[/b] This method is not reliable for [Rect2] with a [i]negative "
+"size[/i]. Use [method abs] to get a positive sized equivalent rectangle to "
+"check for contained points."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"Returns [code]true[/code] if the [Rect2] overlaps with [code]b[/code] (i.e. "
+"they have at least one point in common).\n"
+"If [code]include_borders[/code] is [code]true[/code], they will also be "
+"considered overlapping if their borders touch, even without intersection."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid ""
+"Returns [code]true[/code] if this [Rect2] and [code]rect[/code] are "
+"approximately equal, by calling [code]is_equal_approx[/code] on each "
+"component."
+msgstr ""
+
+#: doc/classes/Rect2.xml
+msgid "Returns a larger [Rect2] that contains this [Rect2] and [code]b[/code]."
+msgstr ""
+
+#: doc/classes/RectangleShape2D.xml
+msgid "Rectangle shape for 2D collisions."
+msgstr ""
+
+#: doc/classes/RectangleShape2D.xml
+msgid ""
+"Rectangle shape for 2D collisions. This shape is useful for modeling box-"
+"like 2D objects."
+msgstr ""
+
+#: doc/classes/RectangleShape2D.xml
+msgid ""
+"The rectangle's half extents. The width and height of this shape is twice "
+"the half extents."
+msgstr ""
+
+#: doc/classes/Reference.xml
+msgid "Base class for reference-counted objects."
+msgstr ""
+
+#: doc/classes/Reference.xml
+msgid ""
+"Base class for any object that keeps a reference count. [Resource] and many "
+"other helper objects inherit this class.\n"
+"Unlike other [Object] types, References keep an internal reference counter "
+"so that they are automatically released when no longer in use, and only "
+"then. References therefore do not need to be freed manually with [method "
+"Object.free].\n"
+"In the vast majority of use cases, instantiating and using [Reference]-"
+"derived types is all you need to do. The methods provided in this class are "
+"only for advanced users, and can cause issues if misused.\n"
+"[b]Note:[/b] In C#, references will not be freed instantly after they are no "
+"longer in use. Instead, garbage collection will run periodically and will "
+"free references that are no longer in use. This means that unused references "
+"will linger on for a while before being removed."
+msgstr ""
+
+#: doc/classes/Reference.xml
+msgid ""
+"Initializes the internal reference counter. Use this only if you really know "
+"what you are doing.\n"
+"Returns whether the initialization was successful."
+msgstr ""
+
+#: doc/classes/Reference.xml
+msgid ""
+"Increments the internal reference counter. Use this only if you really know "
+"what you are doing.\n"
+"Returns [code]true[/code] if the increment was successful, [code]false[/"
+"code] otherwise."
+msgstr ""
+
+#: doc/classes/Reference.xml
+msgid ""
+"Decrements the internal reference counter. Use this only if you really know "
+"what you are doing.\n"
+"Returns [code]true[/code] if the decrement was successful, [code]false[/"
+"code] otherwise."
+msgstr ""
+
+#: doc/classes/ReferenceRect.xml
+msgid "Reference frame for GUI."
+msgstr ""
+
+#: doc/classes/ReferenceRect.xml
+msgid ""
+"A rectangle box that displays only a [member border_color] border color "
+"around its rectangle. [ReferenceRect] has no fill [Color]. If you need to "
+"display a rectangle filled with a solid color, consider using [ColorRect] "
+"instead."
+msgstr ""
+
+#: doc/classes/ReferenceRect.xml
+msgid "Sets the border [Color] of the [ReferenceRect]."
+msgstr ""
+
+#: doc/classes/ReferenceRect.xml
+msgid ""
+"Sets the border width of the [ReferenceRect]. The border grows both inwards "
+"and outwards with respect to the rectangle box."
+msgstr ""
+
+#: doc/classes/ReferenceRect.xml
+msgid ""
+"If set to [code]true[/code], the [ReferenceRect] will only be visible while "
+"in editor. Otherwise, [ReferenceRect] will be visible in game."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Captures its surroundings to create fast, accurate reflections from a given "
+"point."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Capture its surroundings as a dual paraboloid image, and stores versions of "
+"it with increasing levels of blur to simulate different material "
+"roughnesses.\n"
+"The [ReflectionProbe] is used to create high-quality reflections at a low "
+"performance cost (when [member update_mode] is [constant UPDATE_ONCE]). "
+"[ReflectionProbe]s can be blended together and with the rest of the scene "
+"smoothly. [ReflectionProbe]s can also be combined with [GIProbe] and screen-"
+"space reflections ([member Environment.ss_reflections_enabled]) to get more "
+"accurate reflections in specific areas. [ReflectionProbe]s render all "
+"objects within their [member cull_mask], so updating them can be quite "
+"expensive. It is best to update them once with the important static objects "
+"and then leave them as-is.\n"
+"[b]Note:[/b] Unlike [GIProbe], [ReflectionProbe]s only source their "
+"environment from a [WorldEnvironment] node. If you specify an [Environment] "
+"resource within a [Camera] node, it will be ignored by the "
+"[ReflectionProbe]. This can lead to incorrect lighting within the "
+"[ReflectionProbe].\n"
+"[b]Note:[/b] By default, Godot will only render 16 reflection probes. If you "
+"need more, increase the number of atlas subdivisions. This setting can be "
+"found in [member ProjectSettings.rendering/quality/reflections/"
+"atlas_subdiv].\n"
+"[b]Note:[/b] The GLES2 backend will only display two reflection probes at "
+"the same time for a single mesh. If possible, split up large meshes that "
+"span over multiple reflection probes into smaller ones."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid "$DOCS_URL/tutorials/3d/reflection_probes.html"
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"If [code]true[/code], enables box projection. This makes reflections look "
+"more correct in rectangle-shaped rooms by offsetting the reflection center "
+"depending on the camera's location.\n"
+"[b]Note:[/b] To better fit rectangle-shaped rooms that are not aligned to "
+"the grid, you can rotate the [ReflectionProbe] node."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Sets the cull mask which determines what objects are drawn by this probe. "
+"Every [VisualInstance] with a layer included in this cull mask will be "
+"rendered by the probe. To improve performance, it is best to only include "
+"large objects which are likely to take up a lot of space in the reflection."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"If [code]true[/code], computes shadows in the reflection probe. This makes "
+"the reflection probe slower to render; you may want to disable this if using "
+"the [constant UPDATE_ALWAYS] [member update_mode]."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"The size of the reflection probe. The larger the extents the more space "
+"covered by the probe which will lower the perceived resolution. It is best "
+"to keep the extents only as large as you need them.\n"
+"[b]Note:[/b] To better fit areas that are not aligned to the grid, you can "
+"rotate the [ReflectionProbe] node."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Defines the reflection intensity. Intensity modulates the strength of the "
+"reflection."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Sets the ambient light color to be used when this probe is set to [member "
+"interior_enable]."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Sets the contribution value for how much the reflection affects the ambient "
+"light for this reflection probe when set to [member interior_enable]. Useful "
+"so that ambient light matches the color of the room."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Sets the energy multiplier for this reflection probe's ambient light "
+"contribution when set to [member interior_enable]."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"If [code]true[/code], reflections will ignore sky contribution. Ambient "
+"lighting is then controlled by the [code]interior_ambient_*[/code] "
+"properties."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"The maximum distance away from the [ReflectionProbe] an object can be before "
+"it is culled. Decrease this to improve performance, especially when using "
+"the [constant UPDATE_ALWAYS] [member update_mode]."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Sets the origin offset to be used when this [ReflectionProbe] is in [member "
+"box_projection] mode. This can be set to a non-zero value to ensure a "
+"reflection fits a rectangle-shaped room, while reducing the amount of "
+"objects that \"get in the way\" of the reflection."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Sets how frequently the [ReflectionProbe] is updated. Can be [constant "
+"UPDATE_ONCE] or [constant UPDATE_ALWAYS]."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Update the probe once on the next frame (recommended for most objects). The "
+"corresponding radiance map will be generated over the following six frames. "
+"This takes more time to update than [constant UPDATE_ALWAYS], but it has a "
+"lower performance cost and can result in higher-quality reflections. The "
+"ReflectionProbe is updated when its transform changes, but not when nearby "
+"geometry changes. You can force a [ReflectionProbe] update by moving the "
+"[ReflectionProbe] slightly in any direction."
+msgstr ""
+
+#: doc/classes/ReflectionProbe.xml
+msgid ""
+"Update the probe every frame. This provides better results for fast-moving "
+"dynamic objects (such as cars). However, it has a significant performance "
+"cost. Due to the cost, it's recommended to only use one ReflectionProbe with "
+"[constant UPDATE_ALWAYS] at most per scene. For all other use cases, use "
+"[constant UPDATE_ONCE]."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid "Class for searching text for patterns using regular expressions."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid ""
+"A regular expression (or regex) is a compact language that can be used to "
+"recognise strings that follow a specific pattern, such as URLs, email "
+"addresses, complete sentences, etc. For instance, a regex of [code]ab[0-9][/"
+"code] would find any string that is [code]ab[/code] followed by any number "
+"from [code]0[/code] to [code]9[/code]. For a more in-depth look, you can "
+"easily find various tutorials and detailed explanations on the Internet.\n"
+"To begin, the RegEx object needs to be compiled with the search pattern "
+"using [method compile] before it can be used.\n"
+"[codeblock]\n"
+"var regex = RegEx.new()\n"
+"regex.compile(\"\\\\w-(\\\\d+)\")\n"
+"[/codeblock]\n"
+"The search pattern must be escaped first for GDScript before it is escaped "
+"for the expression. For example, [code]compile(\"\\\\d+\")[/code] would be "
+"read by RegEx as [code]\\d+[/code]. Similarly, [code]compile(\"\\\"(?:\\\\\\"
+"\\.|[^\\\"])*\\\"\")[/code] would be read as [code]\"(?:\\\\.|[^\"])*\"[/"
+"code].\n"
+"Using [method search], you can find the pattern within the given text. If a "
+"pattern is found, [RegExMatch] is returned and you can retrieve details of "
+"the results using methods such as [method RegExMatch.get_string] and [method "
+"RegExMatch.get_start].\n"
+"[codeblock]\n"
+"var regex = RegEx.new()\n"
+"regex.compile(\"\\\\w-(\\\\d+)\")\n"
+"var result = regex.search(\"abc n-0123\")\n"
+"if result:\n"
+" print(result.get_string()) # Would print n-0123\n"
+"[/codeblock]\n"
+"The results of capturing groups [code]()[/code] can be retrieved by passing "
+"the group number to the various methods in [RegExMatch]. Group 0 is the "
+"default and will always refer to the entire pattern. In the above example, "
+"calling [code]result.get_string(1)[/code] would give you [code]0123[/code].\n"
+"This version of RegEx also supports named capturing groups, and the names "
+"can be used to retrieve the results. If two or more groups have the same "
+"name, the name would only refer to the first one with a match.\n"
+"[codeblock]\n"
+"var regex = RegEx.new()\n"
+"regex.compile(\"d(?<digit>[0-9]+)|x(?<digit>[0-9a-f]+)\")\n"
+"var result = regex.search(\"the number is x2f\")\n"
+"if result:\n"
+" print(result.get_string(\"digit\")) # Would print 2f\n"
+"[/codeblock]\n"
+"If you need to process multiple results, [method search_all] generates a "
+"list of all non-overlapping results. This can be combined with a [code]for[/"
+"code] loop for convenience.\n"
+"[codeblock]\n"
+"for result in regex.search_all(\"d01, d03, d0c, x3f and x42\"):\n"
+" print(result.get_string(\"digit\"))\n"
+"# Would print 01 03 0 3f 42\n"
+"[/codeblock]\n"
+"[b]Example of splitting a string using a RegEx:[/b]\n"
+"[codeblock]\n"
+"var regex = RegEx.new()\n"
+"regex.compile(\"\\\\S+\") # Negated whitespace character class.\n"
+"var results = []\n"
+"for result in regex.search_all(\"One Two \\n\\tThree\"):\n"
+" results.push_back(result.get_string())\n"
+"# The `results` array now contains \"One\", \"Two\", \"Three\".\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Godot's regex implementation is based on the [url=https://www."
+"pcre.org/]PCRE2[/url] library. You can view the full pattern reference "
+"[url=https://www.pcre.org/current/doc/html/pcre2pattern.html]here[/url].\n"
+"[b]Tip:[/b] You can use [url=https://regexr.com/]Regexr[/url] to test "
+"regular expressions online."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid ""
+"This method resets the state of the object, as if it was freshly created. "
+"Namely, it unassigns the regular expression of this object."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid ""
+"Compiles and assign the search pattern to use. Returns [constant OK] if the "
+"compilation is successful. If an error is encountered, details are printed "
+"to standard output and an error is returned."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid "Returns the number of capturing groups in compiled pattern."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid ""
+"Returns an array of names of named capturing groups in the compiled pattern. "
+"They are ordered by appearance."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid "Returns the original search pattern that was compiled."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid "Returns whether this object has a valid search pattern assigned."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid ""
+"Searches the text for the compiled pattern. Returns a [RegExMatch] container "
+"of the first matching result if found, otherwise [code]null[/code]. The "
+"region to search within can be specified without modifying where the start "
+"and end anchor would be."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid ""
+"Searches the text for the compiled pattern. Returns an array of [RegExMatch] "
+"containers for each non-overlapping result. If no results were found, an "
+"empty array is returned instead. The region to search within can be "
+"specified without modifying where the start and end anchor would be."
+msgstr ""
+
+#: modules/regex/doc_classes/RegEx.xml
+msgid ""
+"Searches the text for the compiled pattern and replaces it with the "
+"specified string. Escapes and backreferences such as [code]$1[/code] and "
+"[code]$name[/code] are expanded and resolved. By default, only the first "
+"instance is replaced, but it can be changed for all instances (global "
+"replacement). The region to search within can be specified without modifying "
+"where the start and end anchor would be."
+msgstr ""
+
+#: modules/regex/doc_classes/RegExMatch.xml
+msgid "Contains the results of a [RegEx] search."
+msgstr ""
+
+#: modules/regex/doc_classes/RegExMatch.xml
+msgid ""
+"Contains the results of a single [RegEx] match returned by [method RegEx."
+"search] and [method RegEx.search_all]. It can be used to find the position "
+"and range of the match and its capturing groups, and it can extract its "
+"substring for you."
+msgstr ""
+
+#: modules/regex/doc_classes/RegExMatch.xml
+msgid ""
+"Returns the end position of the match within the source string. The end "
+"position of capturing groups can be retrieved by providing its group number "
+"as an integer or its string name (if it's a named group). The default value "
+"of 0 refers to the whole pattern.\n"
+"Returns -1 if the group did not match or doesn't exist."
+msgstr ""
+
+#: modules/regex/doc_classes/RegExMatch.xml
+msgid "Returns the number of capturing groups."
+msgstr ""
+
+#: modules/regex/doc_classes/RegExMatch.xml
+msgid ""
+"Returns the starting position of the match within the source string. The "
+"starting position of capturing groups can be retrieved by providing its "
+"group number as an integer or its string name (if it's a named group). The "
+"default value of 0 refers to the whole pattern.\n"
+"Returns -1 if the group did not match or doesn't exist."
+msgstr ""
+
+#: modules/regex/doc_classes/RegExMatch.xml
+msgid ""
+"Returns the substring of the match from the source string. Capturing groups "
+"can be retrieved by providing its group number as an integer or its string "
+"name (if it's a named group). The default value of 0 refers to the whole "
+"pattern.\n"
+"Returns an empty string if the group did not match or doesn't exist."
+msgstr ""
+
+#: modules/regex/doc_classes/RegExMatch.xml
+msgid ""
+"A dictionary of named groups and its corresponding group number. Only groups "
+"that were matched are included. If multiple groups have the same name, that "
+"name would refer to the first matching one."
+msgstr ""
+
+#: modules/regex/doc_classes/RegExMatch.xml
+msgid "An [Array] of the match and its capturing groups."
+msgstr ""
+
+#: modules/regex/doc_classes/RegExMatch.xml
+msgid ""
+"The source string used with the search pattern to find this matching result."
+msgstr ""
+
+#: doc/classes/RemoteTransform.xml
+msgid ""
+"RemoteTransform pushes its own [Transform] to another [Spatial] derived Node "
+"in the scene."
+msgstr ""
+
+#: doc/classes/RemoteTransform.xml
+msgid ""
+"RemoteTransform pushes its own [Transform] to another [Spatial] derived Node "
+"(called the remote node) in the scene.\n"
+"It can be set to update another Node's position, rotation and/or scale. It "
+"can use either global or local coordinates."
+msgstr ""
+
+#: doc/classes/RemoteTransform.xml
+msgid ""
+"[RemoteTransform] caches the remote node. It may not notice if the remote "
+"node disappears; [method force_update_cache] forces it to update the cache "
+"again."
+msgstr ""
+
+#: doc/classes/RemoteTransform.xml
+msgid ""
+"The [NodePath] to the remote node, relative to the RemoteTransform's "
+"position in the scene."
+msgstr ""
+
+#: doc/classes/RemoteTransform.xml doc/classes/RemoteTransform2D.xml
+msgid "If [code]true[/code], the remote node's position is updated."
+msgstr ""
+
+#: doc/classes/RemoteTransform.xml doc/classes/RemoteTransform2D.xml
+msgid "If [code]true[/code], the remote node's rotation is updated."
+msgstr ""
+
+#: doc/classes/RemoteTransform.xml doc/classes/RemoteTransform2D.xml
+msgid "If [code]true[/code], the remote node's scale is updated."
+msgstr ""
+
+#: doc/classes/RemoteTransform.xml doc/classes/RemoteTransform2D.xml
+msgid ""
+"If [code]true[/code], global coordinates are used. If [code]false[/code], "
+"local coordinates are used."
+msgstr ""
+
+#: doc/classes/RemoteTransform2D.xml
+msgid ""
+"RemoteTransform2D pushes its own [Transform2D] to another [CanvasItem] "
+"derived Node in the scene."
+msgstr ""
+
+#: doc/classes/RemoteTransform2D.xml
+msgid ""
+"RemoteTransform2D pushes its own [Transform2D] to another [CanvasItem] "
+"derived Node (called the remote node) in the scene.\n"
+"It can be set to update another Node's position, rotation and/or scale. It "
+"can use either global or local coordinates."
+msgstr ""
+
+#: doc/classes/RemoteTransform2D.xml
+msgid ""
+"[RemoteTransform2D] caches the remote node. It may not notice if the remote "
+"node disappears; [method force_update_cache] forces it to update the cache "
+"again."
+msgstr ""
+
+#: doc/classes/RemoteTransform2D.xml
+msgid ""
+"The [NodePath] to the remote node, relative to the RemoteTransform2D's "
+"position in the scene."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid "Base class for all resources."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"Resource is the base class for all Godot-specific resource types, serving "
+"primarily as data containers. Since they inherit from [Reference], resources "
+"are reference-counted and freed when no longer in use. They are also cached "
+"once loaded from disk, so that any further attempts to load a resource from "
+"a given path will return the same reference (all this in contrast to a "
+"[Node], which is not reference-counted and can be instanced from disk as "
+"many times as desired). Resources can be saved externally on disk or bundled "
+"into another object, such as a [Node] or another resource.\n"
+"[b]Note:[/b] In C#, resources will not be freed instantly after they are no "
+"longer in use. Instead, garbage collection will run periodically and will "
+"free resources that are no longer in use. This means that unused resources "
+"will linger on for a while before being removed."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid "$DOCS_URL/tutorials/scripting/resources.html"
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"Virtual function which can be overridden to customize the behavior value of "
+"[method setup_local_to_scene]."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"Duplicates the resource, returning a new resource with the exported members "
+"copied. [b]Note:[/b] To duplicate the resource the constructor is called "
+"without arguments. This method will error when the constructor doesn't have "
+"default values.\n"
+"By default, sub-resources are shared between resource copies for efficiency. "
+"This can be changed by passing [code]true[/code] to the [code]subresources[/"
+"code] argument which will copy the subresources.\n"
+"[b]Note:[/b] If [code]subresources[/code] is [code]true[/code], this method "
+"will only perform a shallow copy. Nested resources within subresources will "
+"not be duplicated and will still be shared.\n"
+"[b]Note:[/b] When duplicating a resource, only [code]export[/code]ed "
+"properties are copied. Other properties will be set to their default value "
+"in the new resource."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"Emits the [signal changed] signal.\n"
+"If external objects which depend on this resource should be updated, this "
+"method must be called manually whenever the state of this resource has "
+"changed (such as modification of properties).\n"
+"The method is equivalent to:\n"
+"[codeblock]\n"
+"emit_signal(\"changed\")\n"
+"[/codeblock]\n"
+"[b]Note:[/b] This method is called automatically for built-in resources."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"If [member resource_local_to_scene] is enabled and the resource was loaded "
+"from a [PackedScene] instantiation, returns the local scene where this "
+"resource's unique copy is in use. Otherwise, returns [code]null[/code]."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"Returns the RID of the resource (or an empty RID). Many resources (such as "
+"[Texture], [Mesh], etc) are high-level abstractions of resources stored in a "
+"server, so this function will return the original RID."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"This method is called when a resource with [member resource_local_to_scene] "
+"enabled is loaded from a [PackedScene] instantiation. Its behavior can be "
+"customized by overriding [method _setup_local_to_scene] from script.\n"
+"For most resources, this method performs no base logic. [ViewportTexture] "
+"performs custom logic to properly set the proxy texture and flags in the "
+"local viewport."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"Sets the path of the resource, potentially overriding an existing cache "
+"entry for this path. This differs from setting [member resource_path], as "
+"the latter would error out if another resource was already cached for the "
+"given path."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"If [code]true[/code], the resource will be made unique in each instance of "
+"its local scene. It can thus be modified in a scene instance without "
+"impacting other instances of that same scene."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"The name of the resource. This is an optional identifier. If [member "
+"resource_name] is not empty, its value will be displayed to represent the "
+"current resource in the editor inspector. For built-in scripts, the [member "
+"resource_name] will be displayed as the tab name in the script editor."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"The path to the resource. In case it has its own file, it will return its "
+"filepath. If it's tied to the scene, it will return the scene's path, "
+"followed by the resource's index."
+msgstr ""
+
+#: doc/classes/Resource.xml
+msgid ""
+"Emitted whenever the resource changes.\n"
+"[b]Note:[/b] This signal is not emitted automatically for custom resources, "
+"which means that you need to create a setter and emit the signal yourself."
+msgstr ""
+
+#: doc/classes/ResourceFormatLoader.xml
+msgid "Loads a specific resource type from a file."
+msgstr ""
+
+#: doc/classes/ResourceFormatLoader.xml
+msgid ""
+"Godot loads resources in the editor or in exported games using "
+"ResourceFormatLoaders. They are queried automatically via the "
+"[ResourceLoader] singleton, or when a resource with internal dependencies is "
+"loaded. Each file type may load as a different resource type, so multiple "
+"ResourceFormatLoaders are registered in the engine.\n"
+"Extending this class allows you to define your own loader. Be sure to "
+"respect the documented return types and values. You should give it a global "
+"class name with [code]class_name[/code] for it to be registered. Like built-"
+"in ResourceFormatLoaders, it will be called automatically when loading "
+"resources of its handled type(s). You may also implement a "
+"[ResourceFormatSaver].\n"
+"[b]Note:[/b] You can also extend [EditorImportPlugin] if the resource type "
+"you need exists but Godot is unable to load its format. Choosing one way "
+"over another depends on if the format is suitable or not for the final "
+"exported game. For example, it's better to import [code].png[/code] textures "
+"as [code].stex[/code] ([StreamTexture]) first, so they can be loaded with "
+"better efficiency on the graphics card."
+msgstr ""
+
+#: doc/classes/ResourceFormatLoader.xml
+msgid ""
+"If implemented, gets the dependencies of a given resource. If "
+"[code]add_types[/code] is [code]true[/code], paths should be appended "
+"[code]::TypeName[/code], where [code]TypeName[/code] is the class name of "
+"the dependency.\n"
+"[b]Note:[/b] Custom resource types defined by scripts aren't known by the "
+"[ClassDB], so you might just return [code]\"Resource\"[/code] for them."
+msgstr ""
+
+#: doc/classes/ResourceFormatLoader.xml
+msgid "Gets the list of extensions for files this loader is able to read."
+msgstr ""
+
+#: doc/classes/ResourceFormatLoader.xml
+msgid ""
+"Gets the class name of the resource associated with the given path. If the "
+"loader cannot handle it, it should return [code]\"\"[/code].\n"
+"[b]Note:[/b] Custom resource types defined by scripts aren't known by the "
+"[ClassDB], so you might just return [code]\"Resource\"[/code] for them."
+msgstr ""
+
+#: doc/classes/ResourceFormatLoader.xml
+msgid ""
+"Tells which resource class this loader can load.\n"
+"[b]Note:[/b] Custom resource types defined by scripts aren't known by the "
+"[ClassDB], so you might just handle [code]\"Resource\"[/code] for them."
+msgstr ""
+
+#: doc/classes/ResourceFormatLoader.xml
+msgid ""
+"Loads a resource when the engine finds this loader to be compatible. If the "
+"loaded resource is the result of an import, [code]original_path[/code] will "
+"target the source file. Returns a [Resource] object on success, or an [enum "
+"Error] constant in case of failure."
+msgstr ""
+
+#: doc/classes/ResourceFormatLoader.xml
+msgid ""
+"If implemented, renames dependencies within the given resource and saves it. "
+"[code]renames[/code] is a dictionary [code]{ String => String }[/code] "
+"mapping old dependency paths to new paths.\n"
+"Returns [constant OK] on success, or an [enum Error] constant in case of "
+"failure."
+msgstr ""
+
+#: doc/classes/ResourceFormatSaver.xml
+msgid "Saves a specific resource type to a file."
+msgstr ""
+
+#: doc/classes/ResourceFormatSaver.xml
+msgid ""
+"The engine can save resources when you do it from the editor, or when you "
+"use the [ResourceSaver] singleton. This is accomplished thanks to multiple "
+"[ResourceFormatSaver]s, each handling its own format and called "
+"automatically by the engine.\n"
+"By default, Godot saves resources as [code].tres[/code] (text-based), [code]."
+"res[/code] (binary) or another built-in format, but you can choose to create "
+"your own format by extending this class. Be sure to respect the documented "
+"return types and values. You should give it a global class name with "
+"[code]class_name[/code] for it to be registered. Like built-in "
+"ResourceFormatSavers, it will be called automatically when saving resources "
+"of its recognized type(s). You may also implement a [ResourceFormatLoader]."
+msgstr ""
+
+#: doc/classes/ResourceFormatSaver.xml
+msgid ""
+"Returns the list of extensions available for saving the resource object, "
+"provided it is recognized (see [method recognize])."
+msgstr ""
+
+#: doc/classes/ResourceFormatSaver.xml
+msgid "Returns whether the given resource object can be saved by this saver."
+msgstr ""
+
+#: doc/classes/ResourceFormatSaver.xml
+msgid ""
+"Saves the given resource object to a file at the target [code]path[/code]. "
+"[code]flags[/code] is a bitmask composed with [enum ResourceSaver."
+"SaverFlags] constants.\n"
+"Returns [constant OK] on success, or an [enum Error] constant in case of "
+"failure."
+msgstr ""
+
+#: doc/classes/ResourceImporter.xml
+msgid "Base class for the implementation of core resource importers."
+msgstr ""
+
+#: doc/classes/ResourceImporter.xml
+msgid ""
+"This is the base class for the resource importers implemented in core. To "
+"implement your own resource importers using editor plugins, see "
+"[EditorImportPlugin]."
+msgstr ""
+
+#: doc/classes/ResourceImporter.xml
+msgid "The default import order."
+msgstr ""
+
+#: doc/classes/ResourceImporter.xml
+msgid ""
+"The import order for scenes, which ensures scenes are imported [i]after[/i] "
+"all other core resources such as textures. Custom importers should generally "
+"have an import order lower than [code]100[/code] to avoid issues when "
+"importing scenes that rely on custom resources."
+msgstr ""
+
+#: doc/classes/ResourceInteractiveLoader.xml
+msgid "Interactive [Resource] loader."
+msgstr ""
+
+#: doc/classes/ResourceInteractiveLoader.xml
+msgid ""
+"Interactive [Resource] loader. This object is returned by [ResourceLoader] "
+"when performing an interactive load. It allows loading resources with high "
+"granularity, which makes it mainly useful for displaying loading bars or "
+"percentages."
+msgstr ""
+
+#: doc/classes/ResourceInteractiveLoader.xml
+msgid ""
+"Returns the loaded resource if the load operation completed successfully, "
+"[code]null[/code] otherwise."
+msgstr ""
+
+#: doc/classes/ResourceInteractiveLoader.xml
+msgid ""
+"Returns the load stage. The total amount of stages can be queried with "
+"[method get_stage_count]."
+msgstr ""
+
+#: doc/classes/ResourceInteractiveLoader.xml
+msgid ""
+"Returns the total amount of stages (calls to [method poll]) needed to "
+"completely load this resource."
+msgstr ""
+
+#: doc/classes/ResourceInteractiveLoader.xml
+msgid ""
+"Polls the loading operation, i.e. loads a data chunk up to the next stage.\n"
+"Returns [constant OK] if the poll is successful but the load operation has "
+"not finished yet (intermediate stage). This means [method poll] will have to "
+"be called again until the last stage is completed.\n"
+"Returns [constant ERR_FILE_EOF] if the load operation has completed "
+"successfully. The loaded resource can be obtained by calling [method "
+"get_resource].\n"
+"Returns another [enum Error] code if the poll has failed."
+msgstr ""
+
+#: doc/classes/ResourceInteractiveLoader.xml
+msgid ""
+"Polls the loading operation successively until the resource is completely "
+"loaded or a [method poll] fails.\n"
+"Returns [constant ERR_FILE_EOF] if the load operation has completed "
+"successfully. The loaded resource can be obtained by calling [method "
+"get_resource].\n"
+"Returns another [enum Error] code if a poll has failed, aborting the "
+"operation."
+msgstr ""
+
+#: doc/classes/ResourceLoader.xml
+msgid "Singleton used to load resource files."
+msgstr ""
+
+#: doc/classes/ResourceLoader.xml
+msgid ""
+"Singleton used to load resource files from the filesystem.\n"
+"It uses the many [ResourceFormatLoader] classes registered in the engine "
+"(either built-in or from a plugin) to load files into memory and convert "
+"them to a format that can be used by the engine."
+msgstr ""
+
+#: doc/classes/ResourceLoader.xml
+msgid ""
+"Returns whether a recognized resource exists for the given [code]path[/"
+"code].\n"
+"An optional [code]type_hint[/code] can be used to further specify the "
+"[Resource] type that should be handled by the [ResourceFormatLoader]."
+msgstr ""
+
+#: doc/classes/ResourceLoader.xml
+msgid ""
+"Returns the dependencies for the resource at the given [code]path[/code]."
+msgstr ""
+
+#: doc/classes/ResourceLoader.xml
+msgid "Returns the list of recognized extensions for a resource type."
+msgstr ""
+
+#: doc/classes/ResourceLoader.xml
+msgid ""
+"[i]Deprecated method.[/i] Use [method has_cached] or [method exists] instead."
+msgstr ""
+
+#: doc/classes/ResourceLoader.xml
+msgid ""
+"Returns whether a cached resource is available for the given [code]path[/"
+"code].\n"
+"Once a resource has been loaded by the engine, it is cached in memory for "
+"faster access, and future calls to the [method load] or [method "
+"load_interactive] methods will use the cached version. The cached resource "
+"can be overridden by using [method Resource.take_over_path] on a new "
+"resource for that same path."
+msgstr ""
+
+#: doc/classes/ResourceLoader.xml
+msgid ""
+"Loads a resource at the given [code]path[/code], caching the result for "
+"further access.\n"
+"The registered [ResourceFormatLoader]s are queried sequentially to find the "
+"first one which can handle the file's extension, and then attempt loading. "
+"If loading fails, the remaining ResourceFormatLoaders are also attempted.\n"
+"An optional [code]type_hint[/code] can be used to further specify the "
+"[Resource] type that should be handled by the [ResourceFormatLoader]. "
+"Anything that inherits from [Resource] can be used as a type hint, for "
+"example [Image].\n"
+"If [code]no_cache[/code] is [code]true[/code], the resource cache will be "
+"bypassed and the resource will be loaded anew. Otherwise, the cached "
+"resource will be returned if it exists.\n"
+"Returns an empty resource if no [ResourceFormatLoader] could handle the "
+"file.\n"
+"GDScript has a simplified [method @GDScript.load] built-in method which can "
+"be used in most situations, leaving the use of [ResourceLoader] for more "
+"advanced scenarios."
+msgstr ""
+
+#: doc/classes/ResourceLoader.xml
+msgid ""
+"Starts loading a resource interactively. The returned "
+"[ResourceInteractiveLoader] object allows to load with high granularity, "
+"calling its [method ResourceInteractiveLoader.poll] method successively to "
+"load chunks.\n"
+"An optional [code]type_hint[/code] can be used to further specify the "
+"[Resource] type that should be handled by the [ResourceFormatLoader]. "
+"Anything that inherits from [Resource] can be used as a type hint, for "
+"example [Image]."
+msgstr ""
+
+#: doc/classes/ResourceLoader.xml
+msgid ""
+"Changes the behavior on missing sub-resources. The default behavior is to "
+"abort loading."
+msgstr ""
+
+#: doc/classes/ResourcePreloader.xml
+msgid "Resource Preloader Node."
+msgstr ""
+
+#: doc/classes/ResourcePreloader.xml
+msgid ""
+"This node is used to preload sub-resources inside a scene, so when the scene "
+"is loaded, all the resources are ready to use and can be retrieved from the "
+"preloader.\n"
+"GDScript has a simplified [method @GDScript.preload] built-in method which "
+"can be used in most situations, leaving the use of [ResourcePreloader] for "
+"more advanced scenarios."
+msgstr ""
+
+#: doc/classes/ResourcePreloader.xml
+msgid ""
+"Adds a resource to the preloader with the given [code]name[/code]. If a "
+"resource with the given [code]name[/code] already exists, the new resource "
+"will be renamed to \"[code]name[/code] N\" where N is an incrementing number "
+"starting from 2."
+msgstr ""
+
+#: doc/classes/ResourcePreloader.xml
+msgid "Returns the resource associated to [code]name[/code]."
+msgstr ""
+
+#: doc/classes/ResourcePreloader.xml
+msgid "Returns the list of resources inside the preloader."
+msgstr ""
+
+#: doc/classes/ResourcePreloader.xml
+msgid ""
+"Returns [code]true[/code] if the preloader contains a resource associated to "
+"[code]name[/code]."
+msgstr ""
+
+#: doc/classes/ResourcePreloader.xml
+msgid ""
+"Removes the resource associated to [code]name[/code] from the preloader."
+msgstr ""
+
+#: doc/classes/ResourcePreloader.xml
+msgid ""
+"Renames a resource inside the preloader from [code]name[/code] to "
+"[code]newname[/code]."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid "Singleton for saving Godot-specific resource types."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid ""
+"Singleton for saving Godot-specific resource types to the filesystem.\n"
+"It uses the many [ResourceFormatSaver] classes registered in the engine "
+"(either built-in or from a plugin) to save engine-specific resource data to "
+"text-based (e.g. [code].tres[/code] or [code].tscn[/code]) or binary files "
+"(e.g. [code].res[/code] or [code].scn[/code])."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid ""
+"Returns the list of extensions available for saving a resource of a given "
+"type."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid ""
+"Saves a resource to disk to the given path, using a [ResourceFormatSaver] "
+"that recognizes the resource object.\n"
+"The [code]flags[/code] bitmask can be specified to customize the save "
+"behavior.\n"
+"Returns [constant OK] on success."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid "Save the resource with a path relative to the scene which uses it."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid "Bundles external resources."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid ""
+"Changes the [member Resource.resource_path] of the saved resource to match "
+"its new location."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid ""
+"Do not save editor-specific metadata (identified by their [code]__editor[/"
+"code] prefix)."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid "Save as big endian (see [member File.endian_swap])."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid ""
+"Compress the resource on save using [constant File.COMPRESSION_ZSTD]. Only "
+"available for binary resource types."
+msgstr ""
+
+#: doc/classes/ResourceSaver.xml
+msgid ""
+"Take over the paths of the saved subresources (see [method Resource."
+"take_over_path])."
+msgstr ""
+
+#: doc/classes/RichTextEffect.xml
+msgid "A custom effect for use with [RichTextLabel]."
+msgstr ""
+
+#: doc/classes/RichTextEffect.xml
+msgid ""
+"A custom effect for use with [RichTextLabel].\n"
+"[b]Note:[/b] For a [RichTextEffect] to be usable, a BBCode tag must be "
+"defined as a member variable called [code]bbcode[/code] in the script.\n"
+"[codeblock]\n"
+"# The RichTextEffect will be usable like this: `[example]Some text[/"
+"example]`\n"
+"var bbcode = \"example\"\n"
+"[/codeblock]\n"
+"[b]Note:[/b] As soon as a [RichTextLabel] contains at least one "
+"[RichTextEffect], it will continuously process the effect unless the project "
+"is paused. This may impact battery life negatively."
+msgstr ""
+
+#: doc/classes/RichTextEffect.xml
+msgid ""
+"Override this method to modify properties in [code]char_fx[/code]. The "
+"method must return [code]true[/code] if the character could be transformed "
+"successfully. If the method returns [code]false[/code], it will skip "
+"transformation to avoid displaying broken text."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Label that displays rich text."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Rich text can contain custom text, fonts, images and some basic formatting. "
+"The label manages these as an internal tag stack. It also adapts itself to "
+"given width/heights.\n"
+"[b]Note:[/b] Assignments to [member bbcode_text] clear the tag stack and "
+"reconstruct it from the property's contents. Any edits made to [member "
+"bbcode_text] will erase previous edits made from other manual sources such "
+"as [method append_bbcode] and the [code]push_*[/code] / [method pop] "
+"methods.\n"
+"[b]Note:[/b] RichTextLabel doesn't support entangled BBCode tags. For "
+"example, instead of using [code][b]bold[i]bold italic[/b]italic[/i][/code], "
+"use [code][b]bold[i]bold italic[/i][/b][i]italic[/i][/code].\n"
+"[b]Note:[/b] [code]push_*/pop[/code] functions won't affect BBCode.\n"
+"[b]Note:[/b] Unlike [Label], RichTextLabel doesn't have a [i]property[/i] to "
+"horizontally align text to the center. Instead, enable [member "
+"bbcode_enabled] and surround the text in a [code][center][/code] tag as "
+"follows: [code][center]Example[/center][/code]. There is currently no built-"
+"in way to vertically align text either, but this can be emulated by relying "
+"on anchors/containers and the [member fit_content_height] property.\n"
+"[b]Note:[/b] Unicode characters after [code]0xffff[/code] (such as most "
+"emoji) are [i]not[/i] supported on Windows. They will display as unknown "
+"characters instead. This will be resolved in Godot 4.0."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "https://godotengine.org/asset-library/asset/132"
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Adds an image's opening and closing tags to the tag stack, optionally "
+"providing a [code]width[/code] and [code]height[/code] to resize the image.\n"
+"If [code]width[/code] or [code]height[/code] is set to 0, the image size "
+"will be adjusted in order to keep the original aspect ratio."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Adds raw non-BBCode-parsed text to the tag stack."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Parses [code]bbcode[/code] and adds tags to the tag stack as needed. Returns "
+"the result of the parsing, [constant OK] if successful.\n"
+"[b]Note:[/b] Using this method, you can't close a tag that was opened in a "
+"previous [method append_bbcode] call. This is done to improve performance, "
+"especially when updating large RichTextLabels since rebuilding the whole "
+"BBCode every time would be slower. If you absolutely need to close a tag in "
+"a future method call, append the [member bbcode_text] instead of using "
+"[method append_bbcode]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Clears the tag stack and sets [member bbcode_text] to an empty string."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Returns the height of the content."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Returns the total number of newlines in the tag stack's text tags. Considers "
+"wrapped text as one line."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Returns the total number of characters from text tags. Does not include "
+"BBCodes."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Returns the number of visible lines."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Installs a custom effect. [code]effect[/code] should be a valid "
+"[RichTextEffect]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Adds a newline tag to the tag stack."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"The assignment version of [method append_bbcode]. Clears the tag stack and "
+"inserts the new content. Returns [constant OK] if parses [code]bbcode[/code] "
+"successfully."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Parses BBCode parameter [code]expressions[/code] into a dictionary."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Terminates the current tag. Use after [code]push_*[/code] methods to close "
+"BBCodes manually. Does not need to follow [code]add_*[/code] methods."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Adds an [code][align][/code] tag based on the given [code]align[/code] "
+"value. See [enum Align] for possible values."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Adds a [code][font][/code] tag with a bold font to the tag stack. This is "
+"the same as adding a [code][b][/code] tag if not currently in a [code][i][/"
+"code] tag."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Adds a [code][font][/code] tag with a bold italics font to the tag stack."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Adds a [code][cell][/code] tag to the tag stack. Must be inside a [code]"
+"[table][/code] tag. See [method push_table] for details."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Adds a [code][color][/code] tag to the tag stack."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Adds a [code][font][/code] tag to the tag stack. Overrides default fonts for "
+"its duration."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Adds an [code][indent][/code] tag to the tag stack. Multiplies [code]level[/"
+"code] by current [member tab_size] to determine new margin length."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Adds a [code][font][/code] tag with a italics font to the tag stack. This is "
+"the same as adding a [code][i][/code] tag if not currently in a [code][b][/"
+"code] tag."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Adds a [code][list][/code] tag to the tag stack. Similar to the BBCodes "
+"[code][ol][/code] or [code][ul][/code], but supports more list types. Not "
+"fully implemented!"
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Adds a [code][meta][/code] tag to the tag stack. Similar to the BBCode [code]"
+"[url=something]{text}[/url][/code], but supports non-[String] metadata types."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Adds a [code][font][/code] tag with a monospace font to the tag stack."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Adds a [code][font][/code] tag with a normal font to the tag stack."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Adds a [code][s][/code] tag to the tag stack."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Adds a [code][table=columns][/code] tag to the tag stack."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Adds a [code][u][/code] tag to the tag stack."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Removes a line of content from the label. Returns [code]true[/code] if the "
+"line exists.\n"
+"The [code]line[/code] argument is the index of the line to remove, it can "
+"take values in the interval [code][0, get_line_count() - 1][/code]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Scrolls the window's top line to match [code]line[/code]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Edits the selected column's expansion options. If [code]expand[/code] is "
+"[code]true[/code], the column expands in proportion to its expansion ratio "
+"versus the other columns' ratios.\n"
+"For example, 2 columns with ratios 3 and 4 plus 70 pixels in available width "
+"would expand 30 and 40 pixels, respectively.\n"
+"If [code]expand[/code] is [code]false[/code], the column will not contribute "
+"to the total ratio."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"If [code]true[/code], the label uses BBCode formatting.\n"
+"[b]Note:[/b] Trying to alter the [RichTextLabel]'s text with [method "
+"add_text] will reset this to [code]false[/code]. Use instead [method "
+"append_bbcode] to preserve BBCode formatting."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"The label's text in BBCode format. Is not representative of manual "
+"modifications to the internal tag stack. Erases changes made by other "
+"methods when edited.\n"
+"[b]Note:[/b] It is unadvised to use the [code]+=[/code] operator with "
+"[code]bbcode_text[/code] (e.g. [code]bbcode_text += \"some string\"[/code]) "
+"as it replaces the whole text and can cause slowdowns. Use [method "
+"append_bbcode] for adding text instead, unless you absolutely need to close "
+"a tag that was opened in an earlier method call."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"The currently installed custom effects. This is an array of "
+"[RichTextEffect]s.\n"
+"To add a custom effect, it's more convenient to use [method install_effect]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"If [code]true[/code], the label's height will be automatically updated to "
+"fit its content.\n"
+"[b]Note:[/b] This property is used as a workaround to fix issues with "
+"[RichTextLabel] in [Container]s, but it's unreliable in some cases and will "
+"be removed in future versions."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"If [code]true[/code], the label underlines meta tags such as [code][url]"
+"{text}[/url][/code]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "If [code]true[/code], the label uses the custom font color."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"The range of characters to display, as a [float] between 0.0 and 1.0. When "
+"assigned an out of range value, it's the same as assigning 1.0.\n"
+"[b]Note:[/b] Setting this property updates [member visible_characters] based "
+"on current [method get_total_character_count]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"If [code]true[/code], the scrollbar is visible. Setting this to [code]false[/"
+"code] does not block scrolling completely. See [method scroll_to_line]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"If [code]true[/code], the window scrolls down to display new content "
+"automatically."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "If [code]true[/code], the label allows text selection."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"The number of spaces associated with a single tab length. Does not affect "
+"[code]\\t[/code] in text tags, only indent tags."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"The raw text of the label.\n"
+"When set, clears the tag stack and adds a raw text tag to the top of it. "
+"Does not parse BBCodes. Does not modify [member bbcode_text]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"The restricted number of characters to display in the label. If [code]-1[/"
+"code], all characters will be displayed.\n"
+"[b]Note:[/b] Setting this property updates [member percent_visible] based on "
+"current [method get_total_character_count]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Triggered when the user clicks on content between meta tags. If the meta is "
+"defined in text, e.g. [code][url={\"data\"=\"hi\"}]hi[/url][/code], then the "
+"parameter for this signal will be a [String] type. If a particular type or "
+"an object is desired, the [method push_meta] method must be used to manually "
+"insert the data into the tag stack."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Triggers when the mouse exits a meta tag."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Triggers when the mouse enters a meta tag."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Makes text left aligned."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Makes text centered."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Makes text right aligned."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Makes text fill width."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Each list item has a number marker."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Each list item has a letter marker."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "Each list item has a filled circle marker."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The default text color."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"The color of selected text, used when [member selection_enabled] is "
+"[code]true[/code]."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The color of the font's shadow."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The color of the selection box."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The vertical space between lines."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid ""
+"Boolean value. If 1 ([code]true[/code]), the shadow will be displayed around "
+"the whole text as an outline."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The horizontal offset of the font's shadow."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The vertical offset of the font's shadow."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The horizontal separation of elements in a table."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The vertical separation of elements in a table."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The font used for bold text."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The font used for bold italics text."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The font used for italics text."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The font used for monospace text."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The default text font."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The background The background used when the [RichTextLabel] is focused."
+msgstr ""
+
+#: doc/classes/RichTextLabel.xml
+msgid "The normal background for the [RichTextLabel]."
+msgstr ""
+
+#: doc/classes/RID.xml
+msgid "Handle for a [Resource]'s unique ID."
+msgstr ""
+
+#: doc/classes/RID.xml
+msgid ""
+"The RID type is used to access the unique integer ID of a resource. They are "
+"opaque, which means they do not grant access to the associated resource by "
+"themselves. They are used by and with the low-level Server classes such as "
+"[VisualServer]."
+msgstr ""
+
+#: doc/classes/RID.xml
+msgid ""
+"Creates a new RID instance with the ID of a given resource. When not handed "
+"a valid resource, silently stores the unused ID 0."
+msgstr ""
+
+#: doc/classes/RID.xml
+msgid "Returns the ID of the referenced resource."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Physics Body whose position is determined through physics simulation in 3D "
+"space."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"This is the node that implements full 3D physics. This means that you do not "
+"control a RigidBody directly. Instead, you can apply forces to it (gravity, "
+"impulses, etc.), and the physics simulation will calculate the resulting "
+"movement, collision, bouncing, rotating, etc.\n"
+"A RigidBody has 4 behavior [member mode]s: Rigid, Static, Character, and "
+"Kinematic.\n"
+"[b]Note:[/b] Don't change a RigidBody's position every frame or very often. "
+"Sporadic changes work fine, but physics runs at a different granularity "
+"(fixed Hz) than usual rendering (process callback) and maybe even in a "
+"separate thread, so changing this from a process loop may result in strange "
+"behavior. If you need to directly affect the body's state, use [method "
+"_integrate_forces], which allows you to directly access the physics state.\n"
+"If you need to override the default physics behavior, you can write a custom "
+"force integration function. See [member custom_integrator].\n"
+"With Bullet physics (the default), the center of mass is the RigidBody3D "
+"center. With GodotPhysics, the center of mass is the average of the "
+"[CollisionShape] centers."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Called during physics processing, allowing you to read and safely modify the "
+"simulation state for the object. By default, it works in addition to the "
+"usual physics behavior, but the [member custom_integrator] property allows "
+"you to disable the default behavior and do fully custom force integration "
+"for a body."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Adds a constant directional force (i.e. acceleration) without affecting "
+"rotation.\n"
+"This is equivalent to [code]add_force(force, Vector3(0,0,0))[/code]."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Adds a constant directional force (i.e. acceleration).\n"
+"The position uses the rotation of the global coordinate system, but is "
+"centered at the object's origin."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Adds a constant rotational force (i.e. a motor) without affecting position."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Applies a directional impulse without affecting rotation.\n"
+"This is equivalent to [code]apply_impulse(Vector3(0,0,0), impulse)[/code]."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Applies a positioned impulse to the body. An impulse is time independent! "
+"Applying an impulse every frame would result in a framerate-dependent force. "
+"For this reason it should only be used when simulating one-time impacts. The "
+"position uses the rotation of the global coordinate system, but is centered "
+"at the object's origin."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Applies a torque impulse which will be affected by the body mass and shape. "
+"This will rotate the body around the [code]impulse[/code] vector passed."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Returns [code]true[/code] if the specified linear or rotational axis is "
+"locked."
+msgstr ""
+
+#: doc/classes/RigidBody.xml doc/classes/RigidBody2D.xml
+msgid ""
+"Returns a list of the bodies colliding with this one. Requires [member "
+"contact_monitor] to be set to [code]true[/code] and [member "
+"contacts_reported] to be set high enough to detect all the collisions.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, list of collisions is updated once per frame and before the "
+"physics step. Consider using signals instead."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Returns the inverse inertia tensor basis. This is used to calculate the "
+"angular acceleration resulting from a torque applied to the RigidBody."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid "Locks the specified linear or rotational axis."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Damps RigidBody's rotational forces.\n"
+"See [member ProjectSettings.physics/3d/default_angular_damp] for more "
+"details about damping."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid "Lock the body's rotation in the X axis."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid "Lock the body's rotation in the Y axis."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid "Lock the body's rotation in the Z axis."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid "Lock the body's movement in the X axis."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid "Lock the body's movement in the Y axis."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid "Lock the body's movement in the Z axis."
+msgstr ""
+
+#: doc/classes/RigidBody.xml doc/classes/RigidBody2D.xml
+#: doc/classes/StaticBody.xml doc/classes/StaticBody2D.xml
+msgid ""
+"The body's bounciness. Values range from [code]0[/code] (no bounce) to "
+"[code]1[/code] (full bounciness).\n"
+"Deprecated, use [member PhysicsMaterial.bounce] instead via [member "
+"physics_material_override]."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"If [code]true[/code], the body can enter sleep mode when there is no "
+"movement. See [member sleeping].\n"
+"[b]Note:[/b] A RigidBody3D will never enter sleep mode automatically if its "
+"[member mode] is [constant MODE_CHARACTER]. It can still be put to sleep "
+"manually by setting its [member sleeping] property to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"If [code]true[/code], the RigidBody will emit signals when it collides with "
+"another RigidBody. See also [member contacts_reported]."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"The maximum number of contacts that will be recorded. Requires [member "
+"contact_monitor] to be set to [code]true[/code].\n"
+"[b]Note:[/b] The number of contacts is different from the number of "
+"collisions. Collisions between parallel edges will result in two contacts "
+"(one at each end), and collisions between parallel faces will result in four "
+"contacts (one at each corner)."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"If [code]true[/code], continuous collision detection is used.\n"
+"Continuous collision detection tries to predict where a moving body will "
+"collide, instead of moving it and correcting its movement if it collided. "
+"Continuous collision detection is more precise, and misses fewer impacts by "
+"small, fast-moving objects. Not using continuous collision detection is "
+"faster to compute, but can miss small, fast-moving objects."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"If [code]true[/code], internal force integration will be disabled (like "
+"gravity or air friction) for this body. Other than collision response, the "
+"body will only move as determined by the [method _integrate_forces] "
+"function, if defined."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"The body's friction, from 0 (frictionless) to 1 (max friction).\n"
+"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
+"physics_material_override]."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"This is multiplied by the global 3D gravity setting found in [b]Project > "
+"Project Settings > Physics > 3d[/b] to produce RigidBody's gravity. For "
+"example, a value of 1 will be normal gravity, 2 will apply double gravity, "
+"and 0.5 will apply half gravity to this object."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"The body's linear damp. Cannot be less than -1.0. If this value is different "
+"from -1.0, any linear damp derived from the world or areas will be "
+"overridden.\n"
+"See [member ProjectSettings.physics/3d/default_linear_damp] for more details "
+"about damping."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"The body's linear velocity in units per second. Can be used sporadically, "
+"but [b]don't set this every frame[/b], because physics may run in another "
+"thread and runs at a different granularity. Use [method _integrate_forces] "
+"as your process loop for precise control of the body state."
+msgstr ""
+
+#: doc/classes/RigidBody.xml doc/classes/RigidBody2D.xml
+msgid "The body's mass."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid "The body mode. See [enum Mode] for possible values."
+msgstr ""
+
+#: doc/classes/RigidBody.xml doc/classes/RigidBody2D.xml
+#: doc/classes/StaticBody.xml doc/classes/StaticBody2D.xml
+msgid ""
+"The physics material override for the body.\n"
+"If a material is assigned to this property, it will be used instead of any "
+"other physics material, such as an inherited one."
+msgstr ""
+
+#: doc/classes/RigidBody.xml doc/classes/RigidBody2D.xml
+msgid ""
+"If [code]true[/code], the body will not move and will not calculate forces "
+"until woken up by another body through, for example, a collision, or by "
+"using the [method apply_impulse] or [method add_force] methods."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"The body's weight based on its mass and the global 3D gravity. Global values "
+"are set in [b]Project > Project Settings > Physics > 3d[/b]."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Emitted when a collision with another [PhysicsBody] or [GridMap] occurs. "
+"Requires [member contact_monitor] to be set to [code]true[/code] and [member "
+"contacts_reported] to be set high enough to detect all the collisions. "
+"[GridMap]s are detected if the [MeshLibrary] has Collision [Shape]s.\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody] or [GridMap]."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Emitted when the collision with another [PhysicsBody] or [GridMap] ends. "
+"Requires [member contact_monitor] to be set to [code]true[/code] and [member "
+"contacts_reported] to be set high enough to detect all the collisions. "
+"[GridMap]s are detected if the [MeshLibrary] has Collision [Shape]s.\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody] or [GridMap]."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Emitted when one of this RigidBody's [Shape]s collides with another "
+"[PhysicsBody] or [GridMap]'s [Shape]s. Requires [member contact_monitor] to "
+"be set to [code]true[/code] and [member contacts_reported] to be set high "
+"enough to detect all the collisions. [GridMap]s are detected if the "
+"[MeshLibrary] has Collision [Shape]s.\n"
+"[code]body_rid[/code] the [RID] of the other [PhysicsBody] or "
+"[MeshLibrary]'s [CollisionObject] used by the [PhysicsServer].\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody] or [GridMap].\n"
+"[code]body_shape_index[/code] the index of the [Shape] of the other "
+"[PhysicsBody] or [GridMap] used by the [PhysicsServer]. Get the "
+"[CollisionShape] node with [code]body.shape_owner_get_owner(body_shape_index)"
+"[/code].\n"
+"[code]local_shape_index[/code] the index of the [Shape] of this RigidBody "
+"used by the [PhysicsServer]. Get the [CollisionShape] node with [code]self."
+"shape_owner_get_owner(local_shape_index)[/code].\n"
+"[b]Note:[/b] Bullet physics cannot identify the shape index when using a "
+"[ConcavePolygonShape]. Don't use multiple [CollisionShape]s when using a "
+"[ConcavePolygonShape] with Bullet physics if you need shape indices."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Emitted when the collision between one of this RigidBody's [Shape]s and "
+"another [PhysicsBody] or [GridMap]'s [Shape]s ends. Requires [member "
+"contact_monitor] to be set to [code]true[/code] and [member "
+"contacts_reported] to be set high enough to detect all the collisions. "
+"[GridMap]s are detected if the [MeshLibrary] has Collision [Shape]s.\n"
+"[code]body_rid[/code] the [RID] of the other [PhysicsBody] or "
+"[MeshLibrary]'s [CollisionObject] used by the [PhysicsServer]. [GridMap]s "
+"are detected if the Meshes have [Shape]s.\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody] or [GridMap].\n"
+"[code]body_shape_index[/code] the index of the [Shape] of the other "
+"[PhysicsBody] or [GridMap] used by the [PhysicsServer]. Get the "
+"[CollisionShape] node with [code]body.shape_owner_get_owner(body_shape_index)"
+"[/code].\n"
+"[code]local_shape_index[/code] the index of the [Shape] of this RigidBody "
+"used by the [PhysicsServer]. Get the [CollisionShape] node with [code]self."
+"shape_owner_get_owner(local_shape_index)[/code].\n"
+"[b]Note:[/b] Bullet physics cannot identify the shape index when using a "
+"[ConcavePolygonShape]. Don't use multiple [CollisionShape]s when using a "
+"[ConcavePolygonShape] with Bullet physics if you need shape indices."
+msgstr ""
+
+#: doc/classes/RigidBody.xml doc/classes/RigidBody2D.xml
+msgid ""
+"Emitted when the physics engine changes the body's sleeping state.\n"
+"[b]Note:[/b] Changing the value [member sleeping] will not trigger this "
+"signal. It is only emitted if the sleeping state is changed by the physics "
+"engine or [code]emit_signal(\"sleeping_state_changed\")[/code] is used."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Rigid body mode. This is the \"natural\" state of a rigid body. It is "
+"affected by forces, and can move, rotate, and be affected by user code."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Static mode. The body behaves like a [StaticBody], and can only move by user "
+"code."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Character body mode. This behaves like a rigid body, but can not rotate."
+msgstr ""
+
+#: doc/classes/RigidBody.xml
+msgid ""
+"Kinematic body mode. The body behaves like a [KinematicBody], and can only "
+"move by user code."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid "A body that is controlled by the 2D physics engine."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"This node implements simulated 2D physics. You do not control a RigidBody2D "
+"directly. Instead, you apply forces to it (gravity, impulses, etc.) and the "
+"physics simulation calculates the resulting movement based on its mass, "
+"friction, and other physical properties.\n"
+"A RigidBody2D has 4 behavior [member mode]s: Rigid, Static, Character, and "
+"Kinematic.\n"
+"[b]Note:[/b] You should not change a RigidBody2D's [code]position[/code] or "
+"[code]linear_velocity[/code] every frame or even very often. If you need to "
+"directly affect the body's state, use [method _integrate_forces], which "
+"allows you to directly access the physics state.\n"
+"Please also keep in mind that physics bodies manage their own transform "
+"which overwrites the ones you set. So any direct or indirect transformation "
+"(including scaling of the node or its parent) will be visible in the editor "
+"only, and immediately reset at runtime.\n"
+"If you need to override the default physics behavior or add a transformation "
+"at runtime, you can write a custom force integration. See [member "
+"custom_integrator].\n"
+"The center of mass is always located at the node's origin without taking "
+"into account the [CollisionShape2D] centroid offsets."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid "https://godotengine.org/asset-library/asset/119"
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml doc/classes/Sprite.xml
+msgid "https://godotengine.org/asset-library/asset/148"
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Allows you to read and safely modify the simulation state for the object. "
+"Use this instead of [method Node._physics_process] if you need to directly "
+"change the body's [code]position[/code] or other physics properties. By "
+"default, it works in addition to the usual physics behavior, but [member "
+"custom_integrator] allows you to disable the default behavior and write "
+"custom force integration for a body."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Applies a positioned impulse to the body. An impulse is time-independent! "
+"Applying an impulse every frame would result in a framerate-dependent force. "
+"For this reason it should only be used when simulating one-time impacts (use "
+"the \"_force\" functions otherwise). The position uses the rotation of the "
+"global coordinate system, but is centered at the object's origin."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Sets the body's velocity on the given axis. The velocity in the given vector "
+"axis will be set as the given vector length. This is useful for jumping "
+"behavior."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Returns [code]true[/code] if a collision would result from moving in the "
+"given vector. [code]margin[/code] increases the size of the shapes involved "
+"in the collision detection, and [code]result[/code] is an object of type "
+"[Physics2DTestMotionResult], which contains additional information about the "
+"collision (should there be one)."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Damps the body's [member angular_velocity]. If [code]-1[/code], the body "
+"will use the [b]Default Angular Damp[/b] defined in [b]Project > Project "
+"Settings > Physics > 2d[/b].\n"
+"See [member ProjectSettings.physics/2d/default_angular_damp] for more "
+"details about damping."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid "The body's total applied force."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid "The body's total applied torque."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"If [code]true[/code], the body can enter sleep mode when there is no "
+"movement. See [member sleeping].\n"
+"[b]Note:[/b] A RigidBody2D will never enter sleep mode automatically if its "
+"[member mode] is [constant MODE_CHARACTER]. It can still be put to sleep "
+"manually by setting its [member sleeping] property to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"If [code]true[/code], the body will emit signals when it collides with "
+"another RigidBody2D. See also [member contacts_reported]."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"The maximum number of contacts that will be recorded. Requires [member "
+"contact_monitor] to be set to [code]true[/code].\n"
+"[b]Note:[/b] The number of contacts is different from the number of "
+"collisions. Collisions between parallel edges will result in two contacts "
+"(one at each end)."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Continuous collision detection mode.\n"
+"Continuous collision detection tries to predict where a moving body will "
+"collide instead of moving it and correcting its movement after collision. "
+"Continuous collision detection is slower, but more precise and misses fewer "
+"collisions with small, fast-moving objects. Raycasting and shapecasting "
+"methods are available. See [enum CCDMode] for details."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"If [code]true[/code], internal force integration is disabled for this body. "
+"Aside from collision response, the body will only move as determined by the "
+"[method _integrate_forces] function."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"The body's friction. Values range from [code]0[/code] (frictionless) to "
+"[code]1[/code] (maximum friction).\n"
+"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
+"physics_material_override]."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Multiplies the gravity applied to the body. The body's gravity is calculated "
+"from the [b]Default Gravity[/b] value in [b]Project > Project Settings > "
+"Physics > 2d[/b] and/or any additional gravity vector applied by [Area2D]s."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"The body's moment of inertia. This is like mass, but for rotation: it "
+"determines how much torque it takes to rotate the body. The moment of "
+"inertia is usually computed automatically from the mass and the shapes, but "
+"this function allows you to set a custom value. Set 0 inertia to return to "
+"automatically computing it."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Damps the body's [member linear_velocity]. If [code]-1[/code], the body will "
+"use the [b]Default Linear Damp[/b] in [b]Project > Project Settings > "
+"Physics > 2d[/b].\n"
+"See [member ProjectSettings.physics/2d/default_linear_damp] for more details "
+"about damping."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"The body's linear velocity in pixels per second. Can be used sporadically, "
+"but [b]don't set this every frame[/b], because physics may run in another "
+"thread and runs at a different granularity. Use [method _integrate_forces] "
+"as your process loop for precise control of the body state."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid "The body's mode. See [enum Mode] for possible values."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"The body's weight based on its mass and the [b]Default Gravity[/b] value in "
+"[b]Project > Project Settings > Physics > 2d[/b]."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Emitted when a collision with another [PhysicsBody2D] or [TileMap] occurs. "
+"Requires [member contact_monitor] to be set to [code]true[/code] and [member "
+"contacts_reported] to be set high enough to detect all the collisions. "
+"[TileMap]s are detected if the [TileSet] has Collision [Shape2D]s.\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody2D] or [TileMap]."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Emitted when the collision with another [PhysicsBody2D] or [TileMap] ends. "
+"Requires [member contact_monitor] to be set to [code]true[/code] and [member "
+"contacts_reported] to be set high enough to detect all the collisions. "
+"[TileMap]s are detected if the [TileSet] has Collision [Shape2D]s.\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody2D] or [TileMap]."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Emitted when one of this RigidBody2D's [Shape2D]s collides with another "
+"[PhysicsBody2D] or [TileMap]'s [Shape2D]s. Requires [member contact_monitor] "
+"to be set to [code]true[/code] and [member contacts_reported] to be set high "
+"enough to detect all the collisions. [TileMap]s are detected if the "
+"[TileSet] has Collision [Shape2D]s.\n"
+"[code]body_rid[/code] the [RID] of the other [PhysicsBody2D] or [TileSet]'s "
+"[CollisionObject2D] used by the [Physics2DServer].\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody2D] or [TileMap].\n"
+"[code]body_shape_index[/code] the index of the [Shape2D] of the other "
+"[PhysicsBody2D] or [TileMap] used by the [Physics2DServer]. Get the "
+"[CollisionShape2D] node with [code]body."
+"shape_owner_get_owner(body_shape_index)[/code].\n"
+"[code]local_shape_index[/code] the index of the [Shape2D] of this "
+"RigidBody2D used by the [Physics2DServer]. Get the [CollisionShape2D] node "
+"with [code]self.shape_owner_get_owner(local_shape_index)[/code]."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Emitted when the collision between one of this RigidBody2D's [Shape2D]s and "
+"another [PhysicsBody2D] or [TileMap]'s [Shape2D]s ends. Requires [member "
+"contact_monitor] to be set to [code]true[/code] and [member "
+"contacts_reported] to be set high enough to detect all the collisions. "
+"[TileMap]s are detected if the [TileSet] has Collision [Shape2D]s.\n"
+"[code]body_rid[/code] the [RID] of the other [PhysicsBody2D] or [TileSet]'s "
+"[CollisionObject2D] used by the [Physics2DServer].\n"
+"[code]body[/code] the [Node], if it exists in the tree, of the other "
+"[PhysicsBody2D] or [TileMap].\n"
+"[code]body_shape_index[/code] the index of the [Shape2D] of the other "
+"[PhysicsBody2D] or [TileMap] used by the [Physics2DServer]. Get the "
+"[CollisionShape2D] node with [code]body."
+"shape_owner_get_owner(body_shape_index)[/code].\n"
+"[code]local_shape_index[/code] the index of the [Shape2D] of this "
+"RigidBody2D used by the [Physics2DServer]. Get the [CollisionShape2D] node "
+"with [code]self.shape_owner_get_owner(local_shape_index)[/code]."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Rigid mode. The body behaves as a physical object. It collides with other "
+"bodies and responds to forces applied to it. This is the default mode."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid "Static mode. The body behaves like a [StaticBody2D] and does not move."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Character mode. Similar to [constant MODE_RIGID], but the body can not "
+"rotate."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Kinematic mode. The body behaves like a [KinematicBody2D], and must be moved "
+"by code."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Continuous collision detection disabled. This is the fastest way to detect "
+"body collisions, but can miss small, fast-moving objects."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Continuous collision detection enabled using raycasting. This is faster than "
+"shapecasting but less precise."
+msgstr ""
+
+#: doc/classes/RigidBody2D.xml
+msgid ""
+"Continuous collision detection enabled using shapecasting. This is the "
+"slowest CCD method and the most precise."
+msgstr ""
+
+#: doc/classes/Room.xml
+msgid "Room node, used to group objects together locally for [Portal] culling."
+msgstr ""
+
+#: doc/classes/Room.xml
+msgid ""
+"The [Portal] culling system requires levels to be built using objects "
+"grouped together by location in areas called [Room]s. In many cases these "
+"will correspond to actual rooms in buildings, but not necessarily (a canyon "
+"area may be treated as a room).\n"
+"Any [VisualInstance] that is a child or grandchild of a [Room] will be "
+"assigned to that room, if the [code]portal_mode[/code] of that "
+"[VisualInstance] is set to [code]STATIC[/code] (does not move) or "
+"[code]DYNAMIC[/code] (moves only within the room).\n"
+"Internally the room boundary must form a [b]convex hull[/b], and by default "
+"this is determined automatically by the geometry of the objects you place "
+"within the room.\n"
+"You can alternatively precisely specify a [b]manual bound[/b]. If you place "
+"a [MeshInstance] with a name prefixed by [code]Bound_[/code], it will turn "
+"off the bound generation from geometry, and instead use the vertices of this "
+"MeshInstance to directly calculate a convex hull during the conversion stage "
+"(see [RoomManager]).\n"
+"In order to see from one room into an adjacent room, [Portal]s must be "
+"placed over non-occluded openings between rooms. These will often be placed "
+"over doors and windows."
+msgstr ""
+
+#: doc/classes/Room.xml
+msgid ""
+"If [code]points[/code] are set, the [Room] bounding convex hull will be "
+"built from these points. If no points are set, the room bound will either be "
+"derived from a manual bound ([MeshInstance] with name prefix [code]Bound_[/"
+"code]), or from the geometry within the room.\n"
+"Note that you can use the [code]Generate Points[/code] editor button to get "
+"started. This will use either the geometry or manual bound to generate the "
+"room hull, and save the resulting points, allowing you to edit them to "
+"further refine the bound."
+msgstr ""
+
+#: doc/classes/Room.xml
+msgid ""
+"The [code]simplify[/code] value determines to what degree room hulls "
+"(bounds) are simplified, by removing similar planes. A value of 0 gives no "
+"simplification, 1 gives maximum simplification."
+msgstr ""
+
+#: doc/classes/Room.xml
+msgid ""
+"The room hull simplification can either use the default value set in the "
+"[RoomManager], or override this and use the per room setting."
+msgstr ""
+
+#: doc/classes/RoomGroup.xml
+msgid "Groups [Room]s together to allow common functionality."
+msgstr ""
+
+#: doc/classes/RoomGroup.xml
+msgid ""
+"Although [Room] behavior can be specified individually, sometimes it is "
+"faster and more convenient to write functionality for a group of rooms.\n"
+"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
+"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
+"children of a [RoomGroup] in order to assign them to the RoomGroup.\n"
+"A [RoomGroup] can for example be used to specify [Room]s that are "
+"[b]outside[/b], and switch on or off a directional light, sky, or rain "
+"effect as the player enters / exits the area.\n"
+"[RoomGroup]s receive [b]gameplay callbacks[/b] when the "
+"[code]gameplay_monitor[/code] is switched on, as [code]signal[/code]s or "
+"[code]notification[/code]s as they enter and exit the [b]gameplay area[/b] "
+"(see [RoomManager] for details)."
+msgstr ""
+
+#: doc/classes/RoomGroup.xml
+msgid ""
+"This priority will be applied to [Room]s within the group. The [Room] "
+"priority allows the use of [b]internal rooms[/b], rooms [i]within[/i] "
+"another room or rooms.\n"
+"When the [Camera] is within more than one room (regular and internal), the "
+"higher priority room will take precedence. So with for example, a house "
+"inside a terrain 'room', you would make the house higher priority, so that "
+"when the camera is within the house, the house is used as the source room, "
+"but outside the house, the terrain room would be used instead."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid "The RoomManager node is used to control the portal culling system."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"In order to utilize the portal occlusion culling system, you must build your "
+"level using [Room]s and [Portal]s. Before these can be used at runtime, they "
+"must undergo a short conversion process to build the [code]room graph[/"
+"code], runtime data needed for portal culling. The [code]room graph[/code] "
+"is controlled by the [RoomManager] node, and the [RoomManager] also contains "
+"settings that are common throughout the portal system."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"This function clears all converted data from the [b]room graph[/b]. Use this "
+"before unloading a level, when transitioning from level to level, or "
+"returning to a main menu."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"This is the most important function in the whole portal culling system. "
+"Without it, the system cannot function.\n"
+"First it goes through every [Room] that is a child of the [code]room list[/"
+"code] node (and [RoomGroup]s within) and converts and adds it to the "
+"[code]room graph[/code].\n"
+"This works for both [Room] nodes, and [Spatial] nodes that follow a special "
+"naming convention. They should begin with the prefix [i]'Room_'[/i], "
+"followed by the name you wish to give the room, e.g. [i]'Room_lounge'[/i]. "
+"This will automatically convert such [Spatial]s to [Room] nodes for you. "
+"This is useful if you want to build you entire room system in e.g. Blender, "
+"and reimport multiple times as you work on the level.\n"
+"The conversion will try to assign [VisualInstance]s that are children and "
+"grandchildren of the [Room] to the room. These should be given a suitable "
+"[code]portal mode[/code] (see the [CullInstance] documentation). The default "
+"[code]portal mode[/code] is [code]STATIC[/code] - objects which are not "
+"expected to move while the level is played, which will typically be most "
+"objects.\n"
+"The conversion will usually use the geometry of these [VisualInstance]s (and "
+"the [Portal]s) to calculate a convex hull bound for the room. These bounds "
+"will be shown in the editor with a wireframe. Alternatively you can specify "
+"a manual custom bound for any room, see the [Room] documentation.\n"
+"By definition, [Camera]s within a room can see everything else within the "
+"room (that is one advantage to using convex hulls). However, in order to see "
+"from one room into adjacent rooms, you must place [Portal]s, which represent "
+"openings that the camera can see through, like windows and doors.\n"
+"[Portal]s are really just specialized [MeshInstance]s. In fact you will "
+"usually first create a portal by creating a [MeshInstance], especially a "
+"[code]plane[/code] mesh instance. You would move the plane in the editor to "
+"cover a window or doorway, with the front face pointing outward from the "
+"room. To let the conversion process know you want this mesh to be a portal, "
+"again we use a special naming convention. [MeshInstance]s to be converted to "
+"a [Portal] should start with the prefix [i]'Portal_'[/i].\n"
+"You now have a choice - you can leave the name as [i]'Portal_'[/i] and allow "
+"the system to automatically detect the nearest [Room] to link. In most cases "
+"this will work fine.\n"
+"An alternative method is to specify the [Room] to link to manually, "
+"appending a suffix to the portal name, which should be the name of the room "
+"you intend to link to. For example [i]'Portal_lounge'[/i] will attempt to "
+"link to the room named [i]'Room_lounge'[/i].\n"
+"There is a special case here - Godot does not allow two nodes to share the "
+"same name. What if you want to manually have more than one portal leading "
+"into the same room? Surely they will need to both be called, e.g. "
+"[i]'Portal_lounge'[/i]?\n"
+"The solution is a wildcard character. After the room name, if you use the "
+"character [i]'*'[/i], this character and anything following it will be "
+"ignored. So you can use for example [i]'Portal_lounge*0'[/i], "
+"[i]'Portal_lounge*1'[/i] etc.\n"
+"Note that [Portal]s that have already been converted to [Portal] nodes "
+"(rather than [MeshInstance]s) still need to follow the same naming "
+"convention, as they will be relinked each time during conversion.\n"
+"It is recommended that you only place objects in rooms that are desired to "
+"stay within those rooms - i.e. [code]portal mode[/code]s [code]STATIC[/code] "
+"or [code]DYNAMIC[/code] (not crossing portals). [code]GLOBAL[/code] and "
+"[code]ROAMING[/code] objects are best placed in another part of the scene "
+"tree, to avoid confusion. See [CullInstance] for a full description of "
+"portal modes."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"Switches the portal culling system on and off.\n"
+"It is important to note that when portal culling is active, it is "
+"responsible for [b]all[/b] the 3d culling. Some editor functionality may be "
+"more difficult to use, so switching the active flag is intended to be used "
+"to make sure your [Room] / [Portal] layout works within the editor.\n"
+"Switching to [code]active[/code] will have no effect when the [code]room "
+"graph[/code] is unloaded (the rooms have not yet been converted)."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"Large objects can 'sprawl' over (be present in) more than one room. It can "
+"be useful to visualize which objects are sprawling outside the current "
+"room.\n"
+"Toggling this setting turns this debug view on and off."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"Usually we don't want objects that only [b]just[/b] cross a boundary into an "
+"adjacent [Room] to sprawl into that room. To prevent this, each [Portal] has "
+"an extra margin, or tolerance zone where objects can enter without sprawling "
+"to a neighbouring room.\n"
+"In most cases you can set this here for all portals. It is possible to "
+"override the margin for each portal."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"When using a partial or full PVS, the gameplay monitor allows you to receive "
+"callbacks when roaming objects or rooms enter or exit the [b]gameplay area[/"
+"b]. The gameplay area is defined as either the primary, or secondary PVS.\n"
+"These callbacks allow you to, for example, reduce processing for objects "
+"that are far from the player, or turn on and off AI.\n"
+"You can either choose to receive callbacks as notifications through the "
+"[code]_notification[/code] function, or as signals.\n"
+"[code]NOTIFICATION_ENTER_GAMEPLAY[/code]\n"
+"[code]NOTIFICATION_EXIT_GAMEPLAY[/code]\n"
+"Signals: [code]\"gameplay_entered\"[/code], [code]\"gameplay_exited\"[/code]"
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"If enabled, the system will attempt to merge similar meshes (particularly in "
+"terms of materials) within [Room]s during conversion. This can significantly "
+"reduce the number of drawcalls and state changes required during rendering, "
+"albeit at a cost of reduced culling granularity.\n"
+"[b]Note:[/b] This operates at runtime during the conversion process, and "
+"will only operate on exported or running projects, in order to prevent "
+"accidental alteration to the scene and loss of data."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"When converting rooms, the editor will warn you if overlap is detected "
+"between rooms. Overlap can interfere with determining the room that cameras "
+"and objects are within. A small amount can be acceptable, depending on your "
+"level. Here you can alter the threshold at which the editor warning appears. "
+"There are no other side effects."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"Portal rendering is recursive - each time a portal is seen through an "
+"earlier portal there is some cost. For this reason, and to prevent the "
+"possibility of infinite loops, this setting provides a hard limit on the "
+"recursion depth.\n"
+"[b]Note:[/b] This value is unused when using [code]Full[/code] PVS mode."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"Portal culling normally operates using the current [Camera] / [Camera]s, "
+"however for debugging purposes within the editor, you can use this setting "
+"to override this behavior and force it to use a particular camera to get a "
+"better idea of what the occlusion culling is doing."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"Optionally during conversion the potentially visible set (PVS) of rooms that "
+"are potentially visible from each room can be calculated. This can be used "
+"either to aid in dynamic portal culling, or to totally replace portal "
+"culling.\n"
+"In [code]Full[/code] PVS Mode, all objects within the potentially visible "
+"rooms will be frustum culled, and rendered if they are within the view "
+"frustum."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"In order to reduce processing for roaming objects, an expansion is applied "
+"to their AABB as they move. This expanded volume is used to calculate which "
+"rooms the roaming object is within. If the object's exact AABB is still "
+"within this expanded volume on the next move, there is no need to reprocess "
+"the object, which can save considerable CPU.\n"
+"The downside is that if the expansion is too much, the object may end up "
+"unexpectedly sprawling into neighbouring rooms and showing up where it might "
+"otherwise be culled.\n"
+"In order to balance roaming performance against culling accuracy, this "
+"expansion margin can be customized by the user. It will typically depend on "
+"your room and object sizes, and movement speeds. The default value should "
+"work reasonably in most circumstances."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"During the conversion process, the geometry of objects within [Room]s, or a "
+"custom specified manual bound, are used to generate a [b]convex hull bound[/"
+"b].\n"
+"This convex hull is [b]required[/b] in the visibility system, and is used "
+"for many purposes. Most importantly, it is used to decide whether the "
+"[Camera] (or an object) is within a [Room]. The convex hull generating "
+"algorithm is good, but occasionally it can create too many (or too few) "
+"planes to give a good representation of the room volume.\n"
+"The [code]room_simplify[/code] value can be used to gain fine control over "
+"this process. It determines how similar planes can be for them to be "
+"considered the same (and duplicates removed). The value can be set between 0 "
+"(no simplification) and 1 (maximum simplification).\n"
+"The value set here is the default for all rooms, but individual rooms can "
+"override this value if desired.\n"
+"The room convex hulls are shown as a wireframe in the editor."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"For the [Room] conversion process to succeed, you must point the "
+"[RoomManager] to the parent [Node] of your [Room]s and [RoomGroup]s, which "
+"we refer to as the [code]roomlist[/code] (the roomlist is not a special node "
+"type, it is normally just a [Spatial])."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid "Shows the [Portal] margins when the portal gizmo is used in the editor."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"When receiving gameplay callbacks when objects enter and exit gameplay, the "
+"[b]gameplay area[/b] can be defined by either the primary PVS (potentially "
+"visible set) of [Room]s, or the secondary PVS (the primary PVS and their "
+"neighbouring [Room]s).\n"
+"Sometimes using the larger gameplay area of the secondary PVS may be "
+"preferable."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"Use only [Portal]s at runtime to determine visibility. PVS will not be "
+"generated at [Room]s conversion, and gameplay notifications cannot be used."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"Use a combination of PVS and [Portal]s to determine visibility (this is "
+"usually fastest and most accurate)."
+msgstr ""
+
+#: doc/classes/RoomManager.xml
+msgid ""
+"Use only the PVS (potentially visible set) of [Room]s to determine "
+"visibility."
+msgstr ""
+
+#: doc/classes/RootMotionView.xml
+msgid "Editor-only helper for setting up root motion in [AnimationTree]."
+msgstr ""
+
+#: doc/classes/RootMotionView.xml
+msgid ""
+"[i]Root motion[/i] refers to an animation technique where a mesh's skeleton "
+"is used to give impulse to a character. When working with 3D animations, a "
+"popular technique is for animators to use the root skeleton bone to give "
+"motion to the rest of the skeleton. This allows animating characters in a "
+"way where steps actually match the floor below. It also allows precise "
+"interaction with objects during cinematics. See also [AnimationTree].\n"
+"[b]Note:[/b] [RootMotionView] is only visible in the editor. It will be "
+"hidden automatically in the running project, and will also be converted to a "
+"plain [Node] in the running project. This means a script attached to a "
+"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
+"[code]extends RootMotionView[/code]. Additionally, it must not be a "
+"[code]tool[/code] script."
+msgstr ""
+
+#: doc/classes/RootMotionView.xml
+msgid "$DOCS_URL/tutorials/animation/animation_tree.html#root-motion"
+msgstr ""
+
+#: doc/classes/RootMotionView.xml
+msgid "Path to an [AnimationTree] node to use as a basis for root motion."
+msgstr ""
+
+#: doc/classes/RootMotionView.xml
+msgid "The grid's cell size in 3D units."
+msgstr ""
+
+#: doc/classes/RootMotionView.xml
+msgid "The grid's color."
+msgstr ""
+
+#: doc/classes/RootMotionView.xml
+msgid ""
+"The grid's radius in 3D units. The grid's opacity will fade gradually as the "
+"distance from the origin increases until this [member radius] is reached."
+msgstr ""
+
+#: doc/classes/RootMotionView.xml
+msgid ""
+"If [code]true[/code], the grid's points will all be on the same Y coordinate "
+"([i]local[/i] Y = 0). If [code]false[/code], the points' original Y "
+"coordinate is preserved."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid "A script interface to a scene file's data."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Maintains a list of resources, nodes, exported, and overridden properties, "
+"and built-in scripts associated with a scene.\n"
+"This class cannot be instantiated directly, it is retrieved for a given "
+"scene as the result of [method PackedScene.get_state]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the list of bound parameters for the signal at [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the number of signal connections in the scene.\n"
+"The [code]idx[/code] argument used to query connection metadata in other "
+"[code]get_connection_*[/code] methods in the interval [code][0, "
+"get_connection_count() - 1][/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the connection flags for the signal at [code]idx[/code]. See [enum "
+"Object.ConnectFlags] constants."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid "Returns the method connected to the signal at [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid "Returns the name of the signal at [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the path to the node that owns the signal at [code]idx[/code], "
+"relative to the root node."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the path to the node that owns the method connected to the signal at "
+"[code]idx[/code], relative to the root node."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the number of nodes in the scene.\n"
+"The [code]idx[/code] argument used to query node data in other "
+"[code]get_node_*[/code] methods in the interval [code][0, get_node_count() - "
+"1][/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the list of group names associated with the node at [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the node's index, which is its position relative to its siblings. "
+"This is only relevant and saved in scenes for cases where new nodes are "
+"added to an instanced or inherited scene among siblings from the base scene. "
+"Despite the name, this index is not related to the [code]idx[/code] argument "
+"used here and in other methods."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns a [PackedScene] for the node at [code]idx[/code] (i.e. the whole "
+"branch starting at this node, with its child nodes and resources), or "
+"[code]null[/code] if the node is not an instance."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the path to the represented scene file if the node at [code]idx[/"
+"code] is an [InstancePlaceholder]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid "Returns the name of the node at [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the path to the owner of the node at [code]idx[/code], relative to "
+"the root node."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the path to the node at [code]idx[/code].\n"
+"If [code]for_parent[/code] is [code]true[/code], returns the path of the "
+"[code]idx[/code] node's parent instead."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the number of exported or overridden properties for the node at "
+"[code]idx[/code].\n"
+"The [code]prop_idx[/code] argument used to query node property data in other "
+"[code]get_node_property_*[/code] methods in the interval [code][0, "
+"get_node_property_count() - 1][/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the name of the property at [code]prop_idx[/code] for the node at "
+"[code]idx[/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns the value of the property at [code]prop_idx[/code] for the node at "
+"[code]idx[/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid "Returns the type of the node at [code]idx[/code]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"Returns [code]true[/code] if the node at [code]idx[/code] is an "
+"[InstancePlaceholder]."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"If passed to [method PackedScene.instance], blocks edits to the scene state."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"If passed to [method PackedScene.instance], provides inherited scene "
+"resources to the local scene.\n"
+"[b]Note:[/b] Only available in editor builds."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"If passed to [method PackedScene.instance], provides local scene resources "
+"to the local scene. Only the main scene should receive the main edit state.\n"
+"[b]Note:[/b] Only available in editor builds."
+msgstr ""
+
+#: doc/classes/SceneState.xml
+msgid ""
+"If passed to [method PackedScene.instance], it's similar to [constant "
+"GEN_EDIT_STATE_MAIN], but for the case where the scene is being instantiated "
+"to be the base of another one.\n"
+"[b]Note:[/b] Only available in editor builds."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Manages the game loop via a hierarchy of nodes."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"As one of the most important classes, the [SceneTree] manages the hierarchy "
+"of nodes in a scene as well as scenes themselves. Nodes can be added, "
+"retrieved and removed. The whole scene tree (and thus the current scene) can "
+"be paused. Scenes can be loaded, switched and reloaded.\n"
+"You can also use the [SceneTree] to organize your nodes into groups: every "
+"node can be assigned as many groups as you want to create, e.g. an \"enemy\" "
+"group. You can then iterate these groups or even call methods and set "
+"properties on all the group's members at once.\n"
+"[SceneTree] is the default [MainLoop] implementation used by scenes, and is "
+"thus in charge of the game loop."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "$DOCS_URL/tutorials/scripting/scene_tree.html"
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "$DOCS_URL/tutorials/rendering/multiple_resolutions.html"
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Calls [code]method[/code] on each member of the given group. You can pass "
+"arguments to [code]method[/code] by specifying them at the end of the method "
+"call. This method is equivalent of calling [method call_group_flags] with "
+"[constant GROUP_CALL_DEFAULT] flag.\n"
+"[b]Note:[/b] [code]method[/code] may only have 5 arguments at most (7 "
+"arguments passed to this method in total).\n"
+"[b]Note:[/b] Due to design limitations, [method call_group] will fail "
+"silently if one of the arguments is [code]null[/code].\n"
+"[b]Note:[/b] [method call_group] will always call methods with an one-frame "
+"delay, in a way similar to [method Object.call_deferred]. To call methods "
+"immediately, use [method call_group_flags] with the [constant "
+"GROUP_CALL_REALTIME] flag."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Calls [code]method[/code] on each member of the given group, respecting the "
+"given [enum GroupCallFlags]. You can pass arguments to [code]method[/code] "
+"by specifying them at the end of the method call.\n"
+"[b]Note:[/b] [code]method[/code] may only have 5 arguments at most (8 "
+"arguments passed to this method in total).\n"
+"[b]Note:[/b] Due to design limitations, [method call_group_flags] will fail "
+"silently if one of the arguments is [code]null[/code].\n"
+"[codeblock]\n"
+"# Call the method immediately and in reverse order.\n"
+"get_tree().call_group_flags(SceneTree.GROUP_CALL_REALTIME | SceneTree."
+"GROUP_CALL_REVERSE, \"bases\", \"destroy\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Changes the running scene to the one at the given [code]path[/code], after "
+"loading it into a [PackedScene] and creating a new instance.\n"
+"Returns [constant OK] on success, [constant ERR_CANT_OPEN] if the "
+"[code]path[/code] cannot be loaded into a [PackedScene], or [constant "
+"ERR_CANT_CREATE] if that scene cannot be instantiated.\n"
+"[b]Note:[/b] The scene change is deferred, which means that the new scene "
+"node is added on the next idle frame. You won't be able to access it "
+"immediately after the [method change_scene] call."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Changes the running scene to a new instance of the given [PackedScene].\n"
+"Returns [constant OK] on success or [constant ERR_CANT_CREATE] if the scene "
+"cannot be instantiated.\n"
+"[b]Note:[/b] The scene change is deferred, which means that the new scene "
+"node is added on the next idle frame. You won't be able to access it "
+"immediately after the [method change_scene_to] call."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Returns a [SceneTreeTimer] which will [signal SceneTreeTimer.timeout] after "
+"the given time in seconds elapsed in this [SceneTree]. If "
+"[code]pause_mode_process[/code] is set to [code]false[/code], pausing the "
+"[SceneTree] will also pause the timer.\n"
+"Commonly used to create a one-shot delay timer as in the following example:\n"
+"[codeblock]\n"
+"func some_function():\n"
+" print(\"start\")\n"
+" yield(get_tree().create_timer(1.0), \"timeout\")\n"
+" print(\"end\")\n"
+"[/codeblock]\n"
+"The timer will be automatically freed after its time elapses."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Returns the current frame number, i.e. the total frame count since the "
+"application started."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Returns the peer IDs of all connected peers of this [SceneTree]'s [member "
+"network_peer]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Returns the unique peer ID of this [SceneTree]'s [member network_peer]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Returns the number of nodes in this [SceneTree]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Returns a list of all nodes assigned to the given group."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Returns the sender's peer ID for the most recently received RPC call."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Returns [code]true[/code] if the given group exists."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Returns [code]true[/code] if the most recent [InputEvent] was marked as "
+"handled with [method set_input_as_handled]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Returns [code]true[/code] if this [SceneTree]'s [member network_peer] is in "
+"server mode (listening for connections)."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Sends the given notification to all members of the [code]group[/code]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Sends the given notification to all members of the [code]group[/code], "
+"respecting the given [enum GroupCallFlags]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Queues the given object for deletion, delaying the call to [method Object."
+"free] to after the current frame."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Quits the application at the end of the current iteration. A process "
+"[code]exit_code[/code] can optionally be passed as an argument. If this "
+"argument is [code]0[/code] or greater, it will override the [member OS."
+"exit_code] defined before quitting the application.\n"
+"[b]Note:[/b] On iOS this method doesn't work. Instead, as recommended by the "
+"iOS Human Interface Guidelines, the user is expected to close apps via the "
+"Home button."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Reloads the currently active scene.\n"
+"Returns [constant OK] on success, [constant ERR_UNCONFIGURED] if no [member "
+"current_scene] was defined yet, [constant ERR_CANT_OPEN] if [member "
+"current_scene] cannot be loaded into a [PackedScene], or [constant "
+"ERR_CANT_CREATE] if the scene cannot be instantiated."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"If [code]true[/code], the application automatically accepts quitting. "
+"Enabled by default.\n"
+"For mobile platforms, see [method set_quit_on_go_back]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Sets the given [code]property[/code] to [code]value[/code] on all members of "
+"the given group."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Sets the given [code]property[/code] to [code]value[/code] on all members of "
+"the given group, respecting the given [enum GroupCallFlags]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Marks the most recent [InputEvent] as handled."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"If [code]true[/code], the application quits automatically on going back (e."
+"g. on Android). Enabled by default.\n"
+"To handle 'Go Back' button when this option is disabled, use [constant "
+"MainLoop.NOTIFICATION_WM_GO_BACK_REQUEST]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Configures screen stretching to the given [enum StretchMode], [enum "
+"StretchAspect], minimum size and [code]scale[/code]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "The current scene."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"If [code]true[/code], collision shapes will be visible when running the game "
+"from the editor for debugging purposes."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"If [code]true[/code], navigation polygons will be visible when running the "
+"game from the editor for debugging purposes."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "The root of the edited scene."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "The default [MultiplayerAPI] instance for this [SceneTree]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"If [code]true[/code] (default value), enables automatic polling of the "
+"[MultiplayerAPI] for this SceneTree during [signal idle_frame].\n"
+"If [code]false[/code], you need to manually call [method MultiplayerAPI."
+"poll] to process network packets and deliver RPCs/RSETs. This allows running "
+"RPCs/RSETs in a different loop (e.g. physics, thread, specific time step) "
+"and for manual [Mutex] protection when accessing the [MultiplayerAPI] from "
+"threads."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"The peer object to handle the RPC system (effectively enabling networking "
+"when set). Depending on the peer itself, the [SceneTree] will become a "
+"network server (check with [method is_network_server]) and will set the root "
+"node's network mode to master, or it will become a regular peer with the "
+"root node set to puppet. All child nodes are set to inherit the network mode "
+"by default. Handling of networking-related events (connection, "
+"disconnection, new clients) is done by connecting to [SceneTree]'s signals."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"If [code]true[/code], the [SceneTree] is paused. Doing so will have the "
+"following behavior:\n"
+"- 2D and 3D physics will be stopped. This includes signals and collision "
+"detection.\n"
+"- [method Node._process], [method Node._physics_process] and [method Node."
+"_input] will not be called anymore in nodes."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"If [code]true[/code], the [SceneTree]'s [member network_peer] refuses new "
+"incoming connections."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "The [SceneTree]'s root [Viewport]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"If [code]true[/code], font oversampling is enabled. This means that "
+"[DynamicFont]s will be rendered at higher or lower size than configured "
+"based on the viewport's scaling ratio. For example, in a viewport scaled "
+"with a factor 1.5, a font configured with size 14 would be rendered with "
+"size 21 ([code]14 * 1.5[/code]).\n"
+"[b]Note:[/b] Font oversampling is only used if the viewport stretch mode is "
+"[constant STRETCH_MODE_VIEWPORT], and if the stretch aspect mode is "
+"different from [constant STRETCH_ASPECT_IGNORE].\n"
+"[b]Note:[/b] This property is set automatically for the active [SceneTree] "
+"when the project starts based on the configuration of [code]rendering/"
+"quality/dynamic_fonts/use_oversampling[/code] in [ProjectSettings]. The "
+"property can however be overridden at runtime as needed."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted whenever this [SceneTree]'s [member network_peer] successfully "
+"connected to a server. Only emitted on clients."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted whenever this [SceneTree]'s [member network_peer] fails to establish "
+"a connection to a server. Only emitted on clients."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted when files are dragged from the OS file manager and dropped in the "
+"game window. The arguments are a list of file paths and the identifier of "
+"the screen where the drag originated."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Emitted whenever global menu item is clicked."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted immediately before [method Node._process] is called on every node in "
+"the [SceneTree]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted whenever this [SceneTree]'s [member network_peer] connects with a "
+"new peer. ID is the peer ID of the new peer. Clients get notified when other "
+"clients connect to the same server. Upon connecting to a server, a client "
+"also receives this signal for the server (with ID being 1)."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted whenever this [SceneTree]'s [member network_peer] disconnects from a "
+"peer. Clients get notified when other clients disconnect from the same "
+"server."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Emitted whenever a node is added to the [SceneTree]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted when a node's configuration changed. Only emitted in [code]tool[/"
+"code] mode."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Emitted whenever a node is removed from the [SceneTree]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Emitted whenever a node is renamed."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted immediately before [method Node._physics_process] is called on every "
+"node in the [SceneTree]."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted when the screen resolution (fullscreen) or window size (windowed) "
+"changes."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted whenever this [SceneTree]'s [member network_peer] disconnected from "
+"server. Only emitted on clients."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Emitted whenever the [SceneTree] hierarchy changed (children being moved or "
+"renamed, etc.)."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Call a group with no flags (default)."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Call a group in reverse scene order."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Call a group immediately (calls are normally made on idle)."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Call a group only once even if the call is executed many times."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "No stretching."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid "Render stretching in higher resolution (interpolated)."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Keep the specified display resolution. No interpolation. Content may appear "
+"pixelated."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Fill the window with the content stretched to cover excessive space. Content "
+"may appear stretched."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Retain the same aspect ratio by padding with black bars on either axis. This "
+"prevents distortion."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Expand vertically. Left/right black bars may appear if the window is too "
+"wide."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Expand horizontally. Top/bottom black bars may appear if the window is too "
+"tall."
+msgstr ""
+
+#: doc/classes/SceneTree.xml
+msgid ""
+"Expand in both directions, retaining the same aspect ratio. This prevents "
+"distortion while avoiding black bars."
+msgstr ""
+
+#: doc/classes/SceneTreeTimer.xml
+msgid "One-shot timer."
+msgstr ""
+
+#: doc/classes/SceneTreeTimer.xml
+msgid ""
+"A one-shot timer managed by the scene tree, which emits [signal timeout] on "
+"completion. See also [method SceneTree.create_timer].\n"
+"As opposed to [Timer], it does not require the instantiation of a node. "
+"Commonly used to create a one-shot delay timer as in the following example:\n"
+"[codeblock]\n"
+"func some_function():\n"
+" print(\"Timer started.\")\n"
+" yield(get_tree().create_timer(1.0), \"timeout\")\n"
+" print(\"Timer ended.\")\n"
+"[/codeblock]\n"
+"The timer will be automatically freed after its time elapses."
+msgstr ""
+
+#: doc/classes/SceneTreeTimer.xml
+msgid "The time remaining (in seconds)."
+msgstr ""
+
+#: doc/classes/SceneTreeTimer.xml doc/classes/Timer.xml
+msgid "Emitted when the timer reaches 0."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "A class stored as a resource."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid ""
+"A class stored as a resource. A script extends the functionality of all "
+"objects that instance it.\n"
+"The [code]new[/code] method of a script subclass creates a new instance. "
+"[method Object.set_script] extends an existing object, if that object's "
+"class matches one of the script's base classes."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "$DOCS_URL/tutorials/scripting/index.html"
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "Returns [code]true[/code] if the script can be instanced."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "Returns the script directly inherited by this script."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "Returns the script's base type."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "Returns the default value of the specified property."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "Returns a dictionary containing constant names and their values."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "Returns the list of methods in this [Script]."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "Returns the list of properties in this [Script]."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "Returns the list of user signals defined in this [Script]."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid ""
+"Returns [code]true[/code] if the script, or a base class, defines a signal "
+"with the given name."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "Returns [code]true[/code] if the script contains non-empty source code."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid ""
+"Returns [code]true[/code] if [code]base_object[/code] is an instance of this "
+"script."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid ""
+"Returns [code]true[/code] if the script is a tool script. A tool script can "
+"run in the editor."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid "Reloads the script's class implementation. Returns an error code."
+msgstr ""
+
+#: doc/classes/Script.xml
+msgid ""
+"The script source code or an empty string if source code is not available. "
+"When set, does not reload the class implementation automatically."
+msgstr ""
+
+#: doc/classes/ScriptCreateDialog.xml
+msgid "The Editor's popup dialog for creating new [Script] files."
+msgstr ""
+
+#: doc/classes/ScriptCreateDialog.xml
+msgid ""
+"The [ScriptCreateDialog] creates script files according to a given template "
+"for a given scripting language. The standard use is to configure its fields "
+"prior to calling one of the [method Popup.popup] methods.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" dialog.config(\"Node\", \"res://new_node.gd\") # For in-engine types\n"
+" dialog.config(\"\\\"res://base_node.gd\\\"\", \"res://derived_node.gd\") "
+"# For script types\n"
+" dialog.popup_centered()\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ScriptCreateDialog.xml
+msgid "Prefills required fields to configure the ScriptCreateDialog for use."
+msgstr ""
+
+#: doc/classes/ScriptCreateDialog.xml
+msgid "Emitted when the user clicks the OK button."
+msgstr ""
+
+#: doc/classes/ScriptEditor.xml
+msgid "Godot editor's script editor."
+msgstr ""
+
+#: doc/classes/ScriptEditor.xml
+msgid ""
+"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
+"the singleton using [method EditorInterface.get_script_editor]."
+msgstr ""
+
+#: doc/classes/ScriptEditor.xml
+msgid "Returns a [Script] that is currently active in editor."
+msgstr ""
+
+#: doc/classes/ScriptEditor.xml
+msgid ""
+"Returns an array with all [Script] objects which are currently open in "
+"editor."
+msgstr ""
+
+#: doc/classes/ScriptEditor.xml
+msgid "Goes to the specified line in the current script."
+msgstr ""
+
+#: doc/classes/ScriptEditor.xml
+msgid ""
+"Opens the script create dialog. The script will extend [code]base_name[/"
+"code]. The file extension can be omitted from [code]base_path[/code]. It "
+"will be added based on the selected scripting language."
+msgstr ""
+
+#: doc/classes/ScriptEditor.xml
+msgid ""
+"Emitted when user changed active script. Argument is a freshly activated "
+"[Script]."
+msgstr ""
+
+#: doc/classes/ScriptEditor.xml
+msgid ""
+"Emitted when editor is about to close the active script. Argument is a "
+"[Script] that is going to be closed."
+msgstr ""
+
+#: doc/classes/ScrollBar.xml
+msgid "Base class for scroll bars."
+msgstr ""
+
+#: doc/classes/ScrollBar.xml
+msgid ""
+"Scrollbars are a [Range]-based [Control], that display a draggable area (the "
+"size of the page). Horizontal ([HScrollBar]) and Vertical ([VScrollBar]) "
+"versions are available."
+msgstr ""
+
+#: doc/classes/ScrollBar.xml
+msgid ""
+"Overrides the step used when clicking increment and decrement buttons or "
+"when using arrow keys when the [ScrollBar] is focused."
+msgstr ""
+
+#: doc/classes/ScrollBar.xml
+msgid "Emitted when the scrollbar is being scrolled."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid "A helper node for displaying scrollable elements such as lists."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid ""
+"A ScrollContainer node meant to contain a [Control] child. ScrollContainers "
+"will automatically create a scrollbar child ([HScrollBar], [VScrollBar], or "
+"both) when needed and will only draw the Control within the ScrollContainer "
+"area. Scrollbars will automatically be drawn at the right (for vertical) or "
+"bottom (for horizontal) and will enable dragging to move the viewable "
+"Control (and its children) within the ScrollContainer. Scrollbars will also "
+"automatically resize the grabber based on the [member Control.rect_min_size] "
+"of the Control relative to the ScrollContainer. Works great with a [Panel] "
+"control. You can set [code]EXPAND[/code] on the children's size flags, so "
+"they will upscale to the ScrollContainer's size if it's larger (scroll is "
+"invisible for the chosen dimension)."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid ""
+"Ensures the given [code]control[/code] is visible (must be a direct or "
+"indirect child of the ScrollContainer). Used by [member follow_focus].\n"
+"[b]Note:[/b] This will not work on a node that was just added during the "
+"same frame. If you want to scroll to a newly added child, you must wait "
+"until the next frame using [signal SceneTree.idle_frame]:\n"
+"[codeblock]\n"
+"add_child(child_node)\n"
+"yield(get_tree(), \"idle_frame\")\n"
+"ensure_control_visible(child_node)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid ""
+"Returns the horizontal scrollbar [HScrollBar] of this [ScrollContainer].\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to disable the horizontal scrollbar, use "
+"[member scroll_horizontal_enabled]. If you want to only hide it instead, use "
+"its [member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid ""
+"Returns the vertical scrollbar [VScrollBar] of this [ScrollContainer].\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to disable the vertical scrollbar, use "
+"[member scroll_vertical_enabled]. If you want to only hide it instead, use "
+"its [member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid ""
+"If [code]true[/code], the ScrollContainer will automatically scroll to "
+"focused children (including indirect children) to make sure they are fully "
+"visible."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid "The current horizontal scroll value."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid "If [code]true[/code], enables horizontal scrolling."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid "The current vertical scroll value."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid "If [code]true[/code], enables vertical scrolling."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid "Emitted when scrolling stops."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid "Emitted when scrolling is started."
+msgstr ""
+
+#: doc/classes/ScrollContainer.xml
+msgid "The background [StyleBox] of the [ScrollContainer]."
+msgstr ""
+
+#: doc/classes/SegmentShape2D.xml
+msgid "Segment shape for 2D collisions."
+msgstr ""
+
+#: doc/classes/SegmentShape2D.xml
+msgid ""
+"Segment shape for 2D collisions. Consists of two points, [code]a[/code] and "
+"[code]b[/code]."
+msgstr ""
+
+#: doc/classes/SegmentShape2D.xml
+msgid "The segment's first point position."
+msgstr ""
+
+#: doc/classes/SegmentShape2D.xml
+msgid "The segment's second point position."
+msgstr ""
+
+#: doc/classes/Semaphore.xml
+msgid "A synchronization semaphore."
+msgstr ""
+
+#: doc/classes/Semaphore.xml
+msgid ""
+"A synchronization semaphore which can be used to synchronize multiple "
+"[Thread]s. Initialized to zero on creation. Be careful to avoid deadlocks. "
+"For a binary version, see [Mutex]."
+msgstr ""
+
+#: doc/classes/Semaphore.xml
+msgid ""
+"Lowers the [Semaphore], allowing one more thread in. Returns [constant OK] "
+"on success, [constant ERR_BUSY] otherwise."
+msgstr ""
+
+#: doc/classes/Semaphore.xml
+msgid ""
+"Tries to wait for the [Semaphore], if its value is zero, blocks until non-"
+"zero. Returns [constant OK] on success, [constant ERR_BUSY] otherwise."
+msgstr ""
+
+#: doc/classes/Separator.xml
+msgid "Base class for separators."
+msgstr ""
+
+#: doc/classes/Separator.xml
+msgid ""
+"Separator is a [Control] used for separating other controls. It's purely a "
+"visual decoration. Horizontal ([HSeparator]) and Vertical ([VSeparator]) "
+"versions are available."
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid "A custom shader program."
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid ""
+"This class allows you to define a custom shader program that can be used by "
+"a [ShaderMaterial]. Shaders allow you to write your own custom behavior for "
+"rendering objects or updating particle information. For a detailed "
+"explanation and usage, please see the tutorials linked below."
+msgstr ""
+
+#: doc/classes/Shader.xml doc/classes/ShaderMaterial.xml
+msgid "$DOCS_URL/tutorials/shaders/index.html"
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid "$DOCS_URL/tutorials/shaders/introduction_to_shaders.html"
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid ""
+"Returns the texture that is set as default for the specified parameter.\n"
+"[b]Note:[/b] [code]param[/code] must match the name of the uniform in the "
+"code exactly."
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid ""
+"Returns the shader mode for the shader, either [constant MODE_CANVAS_ITEM], "
+"[constant MODE_SPATIAL] or [constant MODE_PARTICLES]."
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid ""
+"Returns [code]true[/code] if the shader has this param defined as a uniform "
+"in its code.\n"
+"[b]Note:[/b] [code]param[/code] must match the name of the uniform in the "
+"code exactly."
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid ""
+"Sets the default texture to be used with a texture uniform. The default is "
+"used if a texture is not set in the [ShaderMaterial].\n"
+"[b]Note:[/b] [code]param[/code] must match the name of the uniform in the "
+"code exactly."
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid ""
+"Returns the shader's code as the user has written it, not the full generated "
+"code used internally."
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid ""
+"Returns the shader's custom defines. Custom defines can be used in Godot to "
+"add GLSL preprocessor directives (e.g: extensions) required for the shader "
+"logic.\n"
+"[b]Note:[/b] Custom defines are not validated by the Godot shader parser, so "
+"care should be taken when using them."
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid "Mode used to draw all 3D objects."
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid "Mode used to draw all 2D objects."
+msgstr ""
+
+#: doc/classes/Shader.xml
+msgid ""
+"Mode used to calculate particle information on a per-particle basis. Not "
+"used for drawing."
+msgstr ""
+
+#: doc/classes/ShaderMaterial.xml
+msgid "A material that uses a custom [Shader] program."
+msgstr ""
+
+#: doc/classes/ShaderMaterial.xml
+msgid ""
+"A material that uses a custom [Shader] program to render either items to "
+"screen or process particles. You can create multiple materials for the same "
+"shader but configure different values for the uniforms defined in the "
+"shader.\n"
+"[b]Note:[/b] Due to a renderer limitation, emissive [ShaderMaterial]s cannot "
+"emit light when used in a [GIProbe]. Only emissive [SpatialMaterial]s can "
+"emit light in a [GIProbe]."
+msgstr ""
+
+#: doc/classes/ShaderMaterial.xml
+msgid ""
+"Returns the current value set for this material of a uniform in the shader."
+msgstr ""
+
+#: doc/classes/ShaderMaterial.xml
+msgid ""
+"Returns [code]true[/code] if the property identified by [code]name[/code] "
+"can be reverted to a default value."
+msgstr ""
+
+#: doc/classes/ShaderMaterial.xml
+msgid ""
+"Returns the default value of the material property with given [code]name[/"
+"code]."
+msgstr ""
+
+#: doc/classes/ShaderMaterial.xml
+msgid ""
+"Changes the value set for this material of a uniform in the shader.\n"
+"[b]Note:[/b] [code]param[/code] must match the name of the uniform in the "
+"code exactly."
+msgstr ""
+
+#: doc/classes/ShaderMaterial.xml
+msgid "The [Shader] program used to render this material."
+msgstr ""
+
+#: doc/classes/Shape.xml
+msgid "Base class for all 3D shape resources."
+msgstr ""
+
+#: doc/classes/Shape.xml
+msgid ""
+"Base class for all 3D shape resources. Nodes that inherit from this can be "
+"used as shapes for a [PhysicsBody] or [Area] objects."
+msgstr ""
+
+#: doc/classes/Shape.xml
+msgid ""
+"Returns the [ArrayMesh] used to draw the debug collision for this [Shape]."
+msgstr ""
+
+#: doc/classes/Shape.xml
+msgid ""
+"The collision margin for the shape. Used in Bullet Physics only.\n"
+"Collision margins allow collision detection to be more efficient by adding "
+"an extra shell around shapes. Collision algorithms are more expensive when "
+"objects overlap by more than their margin, so a higher value for margins is "
+"better for performance, at the cost of accuracy around edges as it makes "
+"them less sharp."
+msgstr ""
+
+#: doc/classes/Shape2D.xml
+msgid "Base class for all 2D shapes."
+msgstr ""
+
+#: doc/classes/Shape2D.xml
+msgid "Base class for all 2D shapes. All 2D shape types inherit from this."
+msgstr ""
+
+#: doc/classes/Shape2D.xml
+msgid ""
+"Returns [code]true[/code] if this shape is colliding with another.\n"
+"This method needs the transformation matrix for this shape "
+"([code]local_xform[/code]), the shape to check collisions with "
+"([code]with_shape[/code]), and the transformation matrix of that shape "
+"([code]shape_xform[/code])."
+msgstr ""
+
+#: doc/classes/Shape2D.xml
+msgid ""
+"Returns a list of the points where this shape touches another. If there are "
+"no collisions the list is empty.\n"
+"This method needs the transformation matrix for this shape "
+"([code]local_xform[/code]), the shape to check collisions with "
+"([code]with_shape[/code]), and the transformation matrix of that shape "
+"([code]shape_xform[/code])."
+msgstr ""
+
+#: doc/classes/Shape2D.xml
+msgid ""
+"Returns whether this shape would collide with another, if a given movement "
+"was applied.\n"
+"This method needs the transformation matrix for this shape "
+"([code]local_xform[/code]), the movement to test on this shape "
+"([code]local_motion[/code]), the shape to check collisions with "
+"([code]with_shape[/code]), the transformation matrix of that shape "
+"([code]shape_xform[/code]), and the movement to test onto the other object "
+"([code]shape_motion[/code])."
+msgstr ""
+
+#: doc/classes/Shape2D.xml
+msgid ""
+"Returns a list of the points where this shape would touch another, if a "
+"given movement was applied. If there are no collisions the list is empty.\n"
+"This method needs the transformation matrix for this shape "
+"([code]local_xform[/code]), the movement to test on this shape "
+"([code]local_motion[/code]), the shape to check collisions with "
+"([code]with_shape[/code]), the transformation matrix of that shape "
+"([code]shape_xform[/code]), and the movement to test onto the other object "
+"([code]shape_motion[/code])."
+msgstr ""
+
+#: doc/classes/Shape2D.xml
+msgid ""
+"Draws a solid shape onto a [CanvasItem] with the [VisualServer] API filled "
+"with the specified [code]color[/code]. The exact drawing method is specific "
+"for each shape and cannot be configured."
+msgstr ""
+
+#: doc/classes/Shape2D.xml
+msgid "The shape's custom solver bias."
+msgstr ""
+
+#: doc/classes/ShortCut.xml
+msgid "A shortcut for binding input."
+msgstr ""
+
+#: doc/classes/ShortCut.xml
+msgid ""
+"A shortcut for binding input.\n"
+"Shortcuts are commonly used for interacting with a [Control] element from a "
+"[InputEvent]."
+msgstr ""
+
+#: doc/classes/ShortCut.xml
+msgid "Returns the shortcut's [InputEvent] as a [String]."
+msgstr ""
+
+#: doc/classes/ShortCut.xml
+msgid ""
+"Returns [code]true[/code] if the shortcut's [InputEvent] equals [code]event[/"
+"code]."
+msgstr ""
+
+#: doc/classes/ShortCut.xml
+msgid "If [code]true[/code], this shortcut is valid."
+msgstr ""
+
+#: doc/classes/ShortCut.xml
+msgid ""
+"The shortcut's [InputEvent].\n"
+"Generally the [InputEvent] is a keyboard key, though it can be any "
+"[InputEvent]."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid "Skeleton for characters and animated objects."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid ""
+"Skeleton provides a hierarchical interface for managing bones, including "
+"pose, rest and animation (see [Animation]). It can also use ragdoll "
+"physics.\n"
+"The overall transform of a bone with respect to the skeleton is determined "
+"by the following hierarchical order: rest pose, custom pose and pose.\n"
+"Note that \"global pose\" below refers to the overall transform of the bone "
+"with respect to skeleton, so it not the actual global/world transform of the "
+"bone."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid ""
+"Adds a bone, with name [code]name[/code]. [method get_bone_count] will "
+"become the bone index."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid "[i]Deprecated soon.[/i]"
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid "Clear all the bones in this skeleton."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid "Returns the bone index that matches [code]name[/code] as its name."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid "Returns the amount of bones in the skeleton."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid ""
+"Returns the custom pose of the specified bone. Custom pose is applied on top "
+"of the rest pose."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid ""
+"Returns the overall transform of the specified bone, with respect to the "
+"skeleton. Being relative to the skeleton frame, this is not the actual "
+"\"global\" transform of the bone."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid ""
+"Returns the overall transform of the specified bone, with respect to the "
+"skeleton, but without any global pose overrides. Being relative to the "
+"skeleton frame, this is not the actual \"global\" transform of the bone."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid "Returns the name of the bone at index [code]index[/code]."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid ""
+"Returns the bone index which is the parent of the bone at [code]bone_idx[/"
+"code]. If -1, then bone has no parent.\n"
+"[b]Note:[/b] The parent bone returned will always be less than "
+"[code]bone_idx[/code]."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid ""
+"Returns the pose transform of the specified bone. Pose is applied on top of "
+"the custom pose, which is applied on top the rest pose."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid "Returns the rest transform for a bone [code]bone_idx[/code]."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid ""
+"Sets the bone index [code]parent_idx[/code] as the parent of the bone at "
+"[code]bone_idx[/code]. If -1, then bone has no parent.\n"
+"[b]Note:[/b] [code]parent_idx[/code] must be less than [code]bone_idx[/code]."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid "Sets the pose transform for bone [code]bone_idx[/code]."
+msgstr ""
+
+#: doc/classes/Skeleton.xml
+msgid "Sets the rest transform for bone [code]bone_idx[/code]."
+msgstr ""
+
+#: doc/classes/Skeleton2D.xml
+msgid "Skeleton for 2D characters and animated objects."
+msgstr ""
+
+#: doc/classes/Skeleton2D.xml
+msgid ""
+"Skeleton2D parents a hierarchy of [Bone2D] objects. It is a requirement of "
+"[Bone2D]. Skeleton2D holds a reference to the rest pose of its children and "
+"acts as a single point of access to its bones."
+msgstr ""
+
+#: doc/classes/Skeleton2D.xml
+msgid "$DOCS_URL/tutorials/animation/2d_skeletons.html"
+msgstr ""
+
+#: doc/classes/Skeleton2D.xml
+msgid ""
+"Returns a [Bone2D] from the node hierarchy parented by Skeleton2D. The "
+"object to return is identified by the parameter [code]idx[/code]. Bones are "
+"indexed by descending the node hierarchy from top to bottom, adding the "
+"children of each branch before moving to the next sibling."
+msgstr ""
+
+#: doc/classes/Skeleton2D.xml
+msgid ""
+"Returns the number of [Bone2D] nodes in the node hierarchy parented by "
+"Skeleton2D."
+msgstr ""
+
+#: doc/classes/Skeleton2D.xml
+msgid "Returns the [RID] of a Skeleton2D instance."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"SkeletonIK is used to place the end bone of a [Skeleton] bone chain at a "
+"certain point in 3D by rotating all bones in the chain accordingly."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"SkeletonIK is used to place the end bone of a [Skeleton] bone chain at a "
+"certain point in 3D by rotating all bones in the chain accordingly. A "
+"typical scenario for IK in games is to place a characters feet on the ground "
+"or a characters hands on a currently hold object. SkeletonIK uses "
+"FabrikInverseKinematic internally to solve the bone chain and applies the "
+"results to the [Skeleton] [code]bones_global_pose_override[/code] property "
+"for all affected bones in the chain. If fully applied this overwrites any "
+"bone transform from [Animation]s or bone custom poses set by users. The "
+"applied amount can be controlled with the [code]interpolation[/code] "
+"property.\n"
+"[codeblock]\n"
+"# Apply IK effect automatically on every new frame (not the current)\n"
+"skeleton_ik_node.start()\n"
+"\n"
+"# Apply IK effect only on the current frame\n"
+"skeleton_ik_node.start(true)\n"
+"\n"
+"# Stop IK effect and reset bones_global_pose_override on Skeleton\n"
+"skeleton_ik_node.stop()\n"
+"\n"
+"# Apply full IK effect\n"
+"skeleton_ik_node.set_interpolation(1.0)\n"
+"\n"
+"# Apply half IK effect\n"
+"skeleton_ik_node.set_interpolation(0.5)\n"
+"\n"
+"# Apply zero IK effect (a value at or below 0.01 also removes "
+"bones_global_pose_override on Skeleton)\n"
+"skeleton_ik_node.set_interpolation(0.0)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"Returns the parent [Skeleton] Node that was present when SkeletonIK entered "
+"the [SceneTree]. Returns null if the parent node was not a [Skeleton] Node "
+"when SkeletonIK entered the [SceneTree]."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"Returns [code]true[/code] if SkeletonIK is applying IK effects on continues "
+"frames to the [Skeleton] bones. Returns [code]false[/code] if SkeletonIK is "
+"stopped or [method start] was used with the [code]one_time[/code] parameter "
+"set to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"Starts applying IK effects on each frame to the [Skeleton] bones but will "
+"only take effect starting on the next frame. If [code]one_time[/code] is "
+"[code]true[/code], this will take effect immediately but also reset on the "
+"next frame."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"Stops applying IK effects on each frame to the [Skeleton] bones and also "
+"calls [method Skeleton.clear_bones_global_pose_override] to remove existing "
+"overrides on all bones."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"Interpolation value for how much the IK results are applied to the current "
+"skeleton bone chain. A value of [code]1.0[/code] will overwrite all skeleton "
+"bone transforms completely while a value of [code]0.0[/code] will visually "
+"disable the SkeletonIK. A value at or below [code]0.01[/code] also calls "
+"[method Skeleton.clear_bones_global_pose_override]."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"Secondary target position (first is [member target] property or [member "
+"target_node]) for the IK chain. Use magnet position (pole target) to control "
+"the bending of the IK chain. Only works if the bone chain has more than 2 "
+"bones. The middle chain bone position will be linearly interpolated with the "
+"magnet position."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"Number of iteration loops used by the IK solver to produce more accurate "
+"(and elegant) bone chain results."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"The minimum distance between bone and goal target. If the distance is below "
+"this value, the IK solver stops further iterations."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"If [code]true[/code] overwrites the rotation of the tip bone with the "
+"rotation of the [member target] (or [member target_node] if defined)."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid "The name of the current root bone, the first bone in the IK chain."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"First target of the IK chain where the tip bone is placed and, if [member "
+"override_tip_basis] is [code]true[/code], how the tip bone is rotated. If a "
+"[member target_node] path is available the nodes transform is used instead "
+"and this property is ignored."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"Target node [NodePath] for the IK chain. If available, the node's current "
+"[Transform] is used instead of the [member target] property."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"The name of the current tip bone, the last bone in the IK chain placed at "
+"the [member target] transform (or [member target_node] if defined)."
+msgstr ""
+
+#: doc/classes/SkeletonIK.xml
+msgid ""
+"If [code]true[/code], instructs the IK solver to consider the secondary "
+"magnet target (pole target) when calculating the bone chain. Use the magnet "
+"position (pole target) to control the bending of the IK chain."
+msgstr ""
+
+#: doc/classes/Sky.xml
+msgid "The base class for [PanoramaSky] and [ProceduralSky]."
+msgstr ""
+
+#: doc/classes/Sky.xml
+msgid ""
+"The [Sky]'s radiance map size. The higher the radiance map size, the more "
+"detailed the lighting from the [Sky] will be.\n"
+"See [enum RadianceSize] constants for values.\n"
+"[b]Note:[/b] You will only benefit from high radiance sizes if you have "
+"perfectly sharp reflective surfaces in your project and are not using "
+"[ReflectionProbe]s or [GIProbe]s. For most projects, keeping [member "
+"radiance_size] to the default value is the best compromise between visuals "
+"and performance. Be careful when using high radiance size values as these "
+"can cause crashes on low-end GPUs."
+msgstr ""
+
+#: doc/classes/Sky.xml
+msgid "Radiance texture size is 32×32 pixels."
+msgstr ""
+
+#: doc/classes/Sky.xml
+msgid "Radiance texture size is 64×64 pixels."
+msgstr ""
+
+#: doc/classes/Sky.xml
+msgid "Radiance texture size is 128×128 pixels."
+msgstr ""
+
+#: doc/classes/Sky.xml
+msgid "Radiance texture size is 256×256 pixels."
+msgstr ""
+
+#: doc/classes/Sky.xml
+msgid "Radiance texture size is 512×512 pixels."
+msgstr ""
+
+#: doc/classes/Sky.xml
+msgid ""
+"Radiance texture size is 1024×1024 pixels.\n"
+"[b]Note:[/b] [constant RADIANCE_SIZE_1024] is not exposed in the inspector "
+"as it is known to cause GPU hangs on certain systems."
+msgstr ""
+
+#: doc/classes/Sky.xml
+msgid ""
+"Radiance texture size is 2048×2048 pixels.\n"
+"[b]Note:[/b] [constant RADIANCE_SIZE_2048] is not exposed in the inspector "
+"as it is known to cause GPU hangs on certain systems."
+msgstr ""
+
+#: doc/classes/Sky.xml
+msgid "Represents the size of the [enum RadianceSize] enum."
+msgstr ""
+
+#: doc/classes/Slider.xml
+msgid "Base class for GUI sliders."
+msgstr ""
+
+#: doc/classes/Slider.xml
+msgid ""
+"Base class for GUI sliders.\n"
+"[b]Note:[/b] The [signal Range.changed] and [signal Range.value_changed] "
+"signals are part of the [Range] class which this class inherits from."
+msgstr ""
+
+#: doc/classes/Slider.xml
+msgid ""
+"If [code]true[/code], the slider can be interacted with. If [code]false[/"
+"code], the value can be changed only by code."
+msgstr ""
+
+#: doc/classes/Slider.xml
+msgid "If [code]true[/code], the value can be changed using the mouse wheel."
+msgstr ""
+
+#: doc/classes/Slider.xml
+msgid ""
+"Number of ticks displayed on the slider, including border ticks. Ticks are "
+"uniformly-distributed value markers."
+msgstr ""
+
+#: doc/classes/Slider.xml
+msgid ""
+"If [code]true[/code], the slider will display ticks for minimum and maximum "
+"values."
+msgstr ""
+
+#: doc/classes/SliderJoint.xml
+msgid "Slider between two PhysicsBodies in 3D."
+msgstr ""
+
+#: doc/classes/SliderJoint.xml
+msgid ""
+"Slides across the X axis of the pivot object. See also [Generic6DOFJoint]."
+msgstr ""
+
+#: doc/classes/SliderJoint.xml
+msgid ""
+"The amount of damping of the rotation when the limit is surpassed.\n"
+"A lower damping value allows a rotation initiated by body A to travel to "
+"body B slower."
+msgstr ""
+
+#: doc/classes/SliderJoint.xml
+msgid ""
+"The amount of restitution of the rotation when the limit is surpassed.\n"
+"Does not affect damping."
+msgstr ""
+
+#: doc/classes/SliderJoint.xml
+msgid ""
+"A factor applied to the all rotation once the limit is surpassed.\n"
+"Makes all rotation slower when between 0 and 1."
+msgstr ""
+
+#: doc/classes/SliderJoint.xml
+msgid "A factor applied to the all rotation in the limits."
+msgstr ""
+
+#: doc/classes/SliderJoint.xml
+msgid ""
+"A factor applied to the all rotation across axes orthogonal to the slider."
+msgstr ""
+
+#: doc/classes/SliderJoint.xml
+msgid ""
+"The amount of damping that happens once the limit defined by [member "
+"linear_limit/lower_distance] and [member linear_limit/upper_distance] is "
+"surpassed."
+msgstr ""
+
+#: doc/classes/SliderJoint.xml
+msgid ""
+"The amount of restitution once the limits are surpassed. The lower, the more "
+"velocity-energy gets lost."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid "A soft mesh physics body."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid ""
+"A deformable physics body. Used to create elastic or deformable objects such "
+"as cloth, rubber, or other flexible materials."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid "$DOCS_URL/tutorials/physics/soft_body.html"
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid "Returns local translation of a vertex in the surface array."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid "Returns [code]true[/code] if vertex is set to pinned."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid ""
+"Sets the pinned state of a surface vertex. When set to [code]true[/code], "
+"the optional [code]attachment_path[/code] can define a [Spatial] the pinned "
+"vertex will be attached to."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid ""
+"The physics layers this SoftBody is in.\n"
+"Collidable objects can exist in any of 32 different layers. These layers "
+"work like a tagging system, and are not visual. A collidable can use these "
+"layers to select with which objects it can collide, using the collision_mask "
+"property.\n"
+"A contact is detected if object A is in any of the layers that object B "
+"scans, or object B is in any layer scanned by object A. See [url=$DOCS_URL/"
+"tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid ""
+"The physics layers this SoftBody scans for collisions. See [url=$DOCS_URL/"
+"tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid "[NodePath] to a [CollisionObject] this SoftBody should avoid clipping."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid ""
+"If [code]true[/code], the [SoftBody] is simulated in physics. Can be set to "
+"[code]false[/code] to pause the physics simulation."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid "If [code]true[/code], the [SoftBody] will respond to [RayCast]s."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid ""
+"Increasing this value will improve the resulting simulation, but can affect "
+"performance. Use with care."
+msgstr ""
+
+#: doc/classes/SoftBody.xml
+msgid "The SoftBody's mass."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "Most basic 3D game object, parent of all 3D-related nodes."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Most basic 3D game object, with a 3D [Transform] and visibility settings. "
+"All other 3D game objects inherit from Spatial. Use [Spatial] as a parent "
+"node to move, scale, rotate and show/hide children in a 3D project.\n"
+"Affine operations (rotate, scale, translate) happen in parent's local "
+"coordinate system, unless the [Spatial] object is set as top-level. Affine "
+"operations in this coordinate system correspond to direct affine operations "
+"on the [Spatial]'s transform. The word local below refers to this coordinate "
+"system. The coordinate system that is attached to the [Spatial] object "
+"itself is referred to as object-local coordinate system.\n"
+"[b]Note:[/b] Unless otherwise specified, all methods that have angle "
+"parameters must have angles specified as [i]radians[/i]. To convert degrees "
+"to radians, use [method @GDScript.deg2rad]."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "$DOCS_URL/tutorials/3d/introduction_to_3d.html"
+msgstr ""
+
+#: doc/classes/Spatial.xml doc/classes/Vector3.xml
+msgid "https://github.com/godotengine/godot-demo-projects/tree/master/3d"
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Returns the parent [Spatial], or an empty [Object] if no parent exists or "
+"parent is not of type [Spatial]."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Returns the current [World] resource this [Spatial] node is registered to."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Rotates the global (world) transformation around axis, a unit [Vector3], by "
+"specified angle in radians. The rotation axis is in global coordinate system."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Scales the global (world) transformation by the given [Vector3] scale "
+"factors."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Moves the global (world) transformation by [Vector3] offset. The offset is "
+"in global coordinate system."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Disables rendering of this node. Changes [member visible] to [code]false[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Returns whether node notifies about its local transformation changes. "
+"[Spatial] will not propagate this by default."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Returns whether this node uses a scale of [code](1, 1, 1)[/code] or its "
+"local transformation scale."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Returns whether this node is set as Toplevel, that is whether it ignores its "
+"parent nodes transformations."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Returns whether the node notifies about its global and local transformation "
+"changes. [Spatial] will not propagate this by default."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Rotates itself so that the local -Z axis points towards the [code]target[/"
+"code] position.\n"
+"The transform will first be rotated around the given [code]up[/code] vector, "
+"and then fully aligned to the target by a further rotation around an axis "
+"perpendicular to both the [code]target[/code] and [code]up[/code] vectors.\n"
+"Operations take place in global space."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Moves the node to the specified [code]position[/code], and then rotates "
+"itself to point toward the [code]target[/code] as per [method look_at]. "
+"Operations take place in global space."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Resets this node's transformations (like scale, skew and taper) preserving "
+"its rotation and translation by performing Gram-Schmidt orthonormalization "
+"on this node's [Transform]."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Rotates the local transformation around axis, a unit [Vector3], by specified "
+"angle in radians."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Rotates the local transformation around axis, a unit [Vector3], by specified "
+"angle in radians. The rotation axis is in object-local coordinate system."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "Rotates the local transformation around the X axis by angle in radians."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "Rotates the local transformation around the Y axis by angle in radians."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "Rotates the local transformation around the Z axis by angle in radians."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Scales the local transformation by given 3D scale factors in object-local "
+"coordinate system."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Makes the node ignore its parents transformations. Node transformations are "
+"only in global space."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Sets whether the node uses a scale of [code](1, 1, 1)[/code] or its local "
+"transformation scale. Changes to the local transformation scale are "
+"preserved."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Reset all transformations for this node (sets its [Transform] to the "
+"identity matrix)."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Sets whether the node ignores notification that its transformation (global "
+"or local) changed."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Sets whether the node notifies about its local transformation changes. "
+"[Spatial] will not propagate this by default."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Sets whether the node notifies about its global and local transformation "
+"changes. [Spatial] will not propagate this by default, unless it is in the "
+"editor context and it has a valid gizmo."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Enables rendering of this node. Changes [member visible] to [code]true[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Transforms [code]local_point[/code] from this node's local space to world "
+"space."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Transforms [code]global_point[/code] from world space to this node's local "
+"space."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Changes the node's position by the given offset [Vector3].\n"
+"Note that the translation [code]offset[/code] is affected by the node's "
+"scale, so if scaled by e.g. [code](10, 1, 1)[/code], a translation by an "
+"offset of [code](2, 0, 0)[/code] would actually add 20 ([code]2 * 10[/code]) "
+"to the X coordinate."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Changes the node's position by the given offset [Vector3] in local space."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "Updates the [SpatialGizmo] of this node."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"The [SpatialGizmo] for this node. Used for example in [EditorSpatialGizmo] "
+"as custom visualization and editing handles in Editor."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "World space (global) [Transform] of this node."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Rotation part of the local transformation in radians, specified in terms of "
+"YXZ-Euler angles in the format (X angle, Y angle, Z angle).\n"
+"[b]Note:[/b] In the mathematical sense, rotation is a matrix and not a "
+"vector. The three Euler angles, which are the three independent parameters "
+"of the Euler-angle parametrization of the rotation matrix, are stored in a "
+"[Vector3] data structure not because the rotation is a vector, but only "
+"because [Vector3] exists as a convenient data-structure to store 3 floating-"
+"point numbers. Therefore, applying affine operations on the rotation \"vector"
+"\" is not meaningful."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Rotation part of the local transformation in degrees, specified in terms of "
+"YXZ-Euler angles in the format (X angle, Y angle, Z angle)."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "Scale part of the local transformation."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "Local space [Transform] of this node, with respect to the parent node."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "Local translation of this node."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"If [code]true[/code], this node is drawn. The node is only visible if all of "
+"its antecedents are visible as well (in other words, [method "
+"is_visible_in_tree] must return [code]true[/code])."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Emitted by portal system gameplay monitor when a node enters the gameplay "
+"area."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Emitted by portal system gameplay monitor when a node exits the gameplay "
+"area."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "Emitted when node visibility changes."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Spatial nodes receives this notification when their global transform "
+"changes. This means that either the current or a parent node changed its "
+"transform.\n"
+"In order for [constant NOTIFICATION_TRANSFORM_CHANGED] to work, users first "
+"need to ask for it, with [method set_notify_transform]. The notification is "
+"also sent if the node is in the editor context and it has a valid gizmo."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Spatial nodes receives this notification when they are registered to new "
+"[World] resource."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Spatial nodes receives this notification when they are unregistered from "
+"current [World] resource."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid "Spatial nodes receives this notification when their visibility changes."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Spatial nodes receives this notification if the portal system gameplay "
+"monitor detects they have entered the gameplay area."
+msgstr ""
+
+#: doc/classes/Spatial.xml
+msgid ""
+"Spatial nodes receives this notification if the portal system gameplay "
+"monitor detects they have exited the gameplay area."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Default 3D rendering material."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"This provides a default material with a wide variety of rendering features "
+"and properties without the need to write shader code. See the tutorial below "
+"for details."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "$DOCS_URL/tutorials/3d/spatial_material.html"
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Returns [code]true[/code], if the specified [enum Feature] is enabled."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Returns [code]true[/code], if the specified flag is enabled. See [enum "
+"Flags] enumerator for options."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Returns the [Texture] associated with the specified [enum TextureParam]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], enables the specified [enum Feature]. Many features "
+"that are available in [SpatialMaterial]s need to be enabled before use. This "
+"way the cost for using the feature is only incurred when specified. Features "
+"can also be enabled by setting the corresponding member to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], enables the specified flag. Flags are optional "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
+"time with this function, the flag enumerators cannot be bit-masked together "
+"to enable or disable multiple flags at once. Flags can also be enabled by "
+"setting the corresponding member to [code]true[/code]. See [enum Flags] "
+"enumerator for options."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Sets the [Texture] to be used by the specified [enum TextureParam]. This "
+"function is called when setting members ending in [code]*_texture[/code]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The material's base color."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture to multiply by [member albedo_color]. Used for basic texturing of "
+"objects."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], ambient occlusion is enabled. Ambient occlusion "
+"darkens areas based on the [member ao_texture]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Amount that ambient occlusion affects lighting from lights. If [code]0[/"
+"code], ambient occlusion only affects ambient light. If [code]1[/code], "
+"ambient occlusion affects lights just as much as it affects ambient light. "
+"This can be used to impact the strength of the ambient occlusion effect, but "
+"typically looks unrealistic."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], use [code]UV2[/code] coordinates to look up from the "
+"[member ao_texture]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture that defines the amount of ambient occlusion for a given point on "
+"the object."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Specifies the channel of the [member ao_texture] in which the ambient "
+"occlusion information is stored. This is useful when you store the "
+"information for multiple effects in a single texture. For example if you "
+"stored metallic in the red channel, roughness in the blue, and ambient "
+"occlusion in the green you could reduce the number of textures you use."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [member ProjectSettings.rendering/gles3/shaders/shader_compilation_mode] "
+"is [code]Synchronous[/code] (with or without cache), this determines how "
+"this material must behave in regards to asynchronous shader compilation.\n"
+"[constant ASYNC_MODE_VISIBLE] is the default and the best for most cases."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Sets the strength of the clearcoat effect. Setting to [code]0[/code] looks "
+"the same as disabling the clearcoat effect."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], clearcoat rendering is enabled. Adds a secondary "
+"transparent pass to the lighting calculation resulting in an added specular "
+"blob. This makes materials appear as if they have a clear layer on them that "
+"can be either glossy or rough.\n"
+"[b]Note:[/b] Clearcoat rendering is not visible if the material has [member "
+"flags_unshaded] set to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Sets the roughness of the clearcoat pass. A higher value results in a "
+"smoother clearcoat while a lower value results in a rougher clearcoat."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture that defines the strength of the clearcoat effect and the glossiness "
+"of the clearcoat. Strength is specified in the red channel while glossiness "
+"is specified in the green channel."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], the shader will read depth texture at multiple points "
+"along the view ray to determine occlusion and parrallax. This can be very "
+"performance demanding, but results in more realistic looking depth mapping."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], depth mapping is enabled (also called \"parallax "
+"mapping\" or \"height mapping\"). See also [member normal_enabled].\n"
+"[b]Note:[/b] Depth mapping is not supported if triplanar mapping is used on "
+"the same material. The value of [member depth_enabled] will be ignored if "
+"[member uv1_triplanar] is enabled."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], direction of the binormal is flipped before using in "
+"the depth effect. This may be necessary if you have encoded your binormals "
+"in a way that is conflicting with the depth effect."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], direction of the tangent is flipped before using in "
+"the depth effect. This may be necessary if you have encoded your tangents in "
+"a way that is conflicting with the depth effect."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Number of layers to use when using [member depth_deep_parallax] and the view "
+"direction is perpendicular to the surface of the object. A higher number "
+"will be more performance demanding while a lower number may not look as "
+"crisp."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Number of layers to use when using [member depth_deep_parallax] and the view "
+"direction is parallel to the surface of the object. A higher number will be "
+"more performance demanding while a lower number may not look as crisp."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Scales the depth offset effect. A higher number will create a larger depth."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture used to determine depth at a given pixel. Depth is always stored in "
+"the red channel."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture that specifies the color of the detail overlay."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Specifies how the [member detail_albedo] should blend with the current "
+"[code]ALBEDO[/code]. See [enum BlendMode] for options."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], enables the detail overlay. Detail is a second texture "
+"that gets mixed over the surface of the object based on [member "
+"detail_mask]. This can be used to add variation to objects, or to blend "
+"between two different albedo/normal textures."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture used to specify how the detail textures get blended with the base "
+"textures."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture that specifies the per-pixel normal of the detail overlay.\n"
+"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
+"See [url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
+"a comparison of normal map coordinates expected by popular engines."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Specifies whether to use [code]UV[/code] or [code]UV2[/code] for the detail "
+"layer. See [enum DetailUV] for options."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Distance at which the object appears fully opaque.\n"
+"[b]Note:[/b] If [code]distance_fade_max_distance[/code] is less than "
+"[code]distance_fade_min_distance[/code], the behavior will be reversed. The "
+"object will start to fade away at [code]distance_fade_max_distance[/code] "
+"and will fully disappear once it reaches [code]distance_fade_min_distance[/"
+"code]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Distance at which the object starts to become visible. If the object is less "
+"than this distance away, it will be invisible.\n"
+"[b]Note:[/b] If [code]distance_fade_min_distance[/code] is greater than "
+"[code]distance_fade_max_distance[/code], the behavior will be reversed. The "
+"object will start to fade away at [code]distance_fade_max_distance[/code] "
+"and will fully disappear once it reaches [code]distance_fade_min_distance[/"
+"code]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Specifies which type of fade to use. Can be any of the [enum "
+"DistanceFadeMode]s."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The emitted light's color. See [member emission_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], the body emits light. Emitting light makes the object "
+"appear brighter. The object can also cast light on other objects if a "
+"[GIProbe] or [BakedLightmap] is used and this object is used in baked "
+"lighting."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The emitted light's strength. See [member emission_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Use [code]UV2[/code] to read from the [member emission_texture]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Sets how [member emission] interacts with [member emission_texture]. Can "
+"either add or multiply. See [enum EmissionOperator] for options."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture that specifies how much surface emits light at a given point."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Forces a conversion of the [member albedo_texture] from sRGB space to linear "
+"space."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "If [code]true[/code], the object receives no ambient light."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], the object receives no shadow that would otherwise be "
+"cast onto it."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], the shader will compute extra operations to make sure "
+"the normal stays correct when using a non-uniform scale. Only enable if "
+"using non-uniform scaling."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], the object is rendered at the same size regardless of "
+"distance."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], depth testing is disabled and the object will be drawn "
+"in render order."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], transparency is enabled on the body. See also [member "
+"params_blend_mode]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "If [code]true[/code], the object is unaffected by lighting."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], render point size can be changed.\n"
+"[b]Note:[/b] This is only effective for objects whose geometry is point-"
+"based rather than triangle-based. See also [member params_point_size]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], enables the \"shadow to opacity\" render mode where "
+"lighting modifies the alpha so shadowed areas are opaque and non-shadowed "
+"areas are transparent. Useful for overlaying shadows onto a camera feed in "
+"AR."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], lighting is calculated per vertex rather than per "
+"pixel. This may increase performance on low-end devices."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], triplanar mapping is calculated in world space rather "
+"than object local space. See also [member uv1_triplanar]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"A high value makes the material appear more like a metal. Non-metals use "
+"their albedo as the diffuse color and add diffuse to the specular "
+"reflection. With non-metals, the reflection appears on top of the albedo "
+"color. Metals use their albedo as a multiplier to the specular reflection "
+"and set the diffuse color to black resulting in a tinted reflection. "
+"Materials work better when fully metal or fully non-metal, values between "
+"[code]0[/code] and [code]1[/code] should only be used for blending between "
+"metal and non-metal sections. To alter the amount of reflection use [member "
+"roughness]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Sets the size of the specular lobe. The specular lobe is the bright spot "
+"that is reflected from light sources.\n"
+"[b]Note:[/b] Unlike [member metallic], this is not energy-conserving, so it "
+"should be left at [code]0.5[/code] in most cases. See also [member "
+"roughness]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture used to specify metallic for an object. This is multiplied by "
+"[member metallic]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Specifies the channel of the [member metallic_texture] in which the metallic "
+"information is stored. This is useful when you store the information for "
+"multiple effects in a single texture. For example if you stored metallic in "
+"the red channel, roughness in the blue, and ambient occlusion in the green "
+"you could reduce the number of textures you use."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "If [code]true[/code], normal mapping is enabled."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The strength of the normal map's effect."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture used to specify the normal at a given pixel. The "
+"[code]normal_texture[/code] only uses the red and green channels; the blue "
+"and alpha channels are ignored. The normal read from [code]normal_texture[/"
+"code] is oriented around the surface normal provided by the [Mesh].\n"
+"[b]Note:[/b] The mesh must have both normals and tangents defined in its "
+"vertex data. Otherwise, the normal map won't render correctly and will only "
+"appear to darken the whole surface. If creating geometry with [SurfaceTool], "
+"you can use [method SurfaceTool.generate_normals] and [method SurfaceTool."
+"generate_tangents] to automatically generate normals and tangents "
+"respectively.\n"
+"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
+"See [url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
+"a comparison of normal map coordinates expected by popular engines."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Threshold at which the alpha scissor will discard values."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], the shader will keep the scale set for the mesh. "
+"Otherwise the scale is lost when billboarding. Only applies when [member "
+"params_billboard_mode] is [constant BILLBOARD_ENABLED]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Controls how the object faces the camera. See [enum BillboardMode].\n"
+"[b]Note:[/b] Billboard mode is not suitable for VR because the left-right "
+"vector of the camera is not horizontal when the screen is attached to your "
+"head instead of on the table. See [url=https://github.com/godotengine/godot/"
+"issues/41567]GitHub issue #41567[/url] for details."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"The material's blend mode.\n"
+"[b]Note:[/b] Values other than [code]Mix[/code] force the object into the "
+"transparent pipeline. See [enum BlendMode]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Which side of the object is not drawn when backfaces are rendered. See [enum "
+"CullMode]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Determines when depth rendering takes place. See [enum DepthDrawMode]. See "
+"also [member flags_transparent]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"The algorithm used for diffuse light scattering. See [enum DiffuseMode]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], enables the vertex grow setting. See [member "
+"params_grow_amount]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Grows object vertices in the direction of their normals."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Currently unimplemented in Godot."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The point size in pixels. See [member flags_use_point_size]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The method for rendering the specular blob. See [enum SpecularMode]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], the shader will discard all pixels that have an alpha "
+"value less than [member params_alpha_scissor_threshold]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"The number of horizontal frames in the particle sprite sheet. Only enabled "
+"when using [constant BILLBOARD_PARTICLES]. See [member "
+"params_billboard_mode]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], particle animations are looped. Only enabled when "
+"using [constant BILLBOARD_PARTICLES]. See [member params_billboard_mode]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"The number of vertical frames in the particle sprite sheet. Only enabled "
+"when using [constant BILLBOARD_PARTICLES]. See [member "
+"params_billboard_mode]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Distance over which the fade effect takes place. The larger the distance the "
+"longer it takes for an object to fade."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], the proximity fade effect is enabled. The proximity "
+"fade effect fades out each pixel based on its distance to another object."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], the refraction effect is enabled. Refraction distorts "
+"transparency based on light from behind the object. When using the GLES3 "
+"backend, the material's roughness value will affect the blurriness of the "
+"refraction. Higher roughness values will make the refraction look blurrier."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"The strength of the refraction effect. Higher values result in a more "
+"distorted appearance for the refraction."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture that controls the strength of the refraction per-pixel. Multiplied "
+"by [member refraction_scale]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Specifies the channel of the [member refraction_texture] in which the "
+"refraction information is stored. This is useful when you store the "
+"information for multiple effects in a single texture. For example if you "
+"stored metallic in the red channel, roughness in the blue, and ambient "
+"occlusion in the green you could reduce the number of textures you use."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Sets the strength of the rim lighting effect."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], rim effect is enabled. Rim lighting increases the "
+"brightness at glancing angles on an object.\n"
+"[b]Note:[/b] Rim lighting is not visible if the material has [member "
+"flags_unshaded] set to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture used to set the strength of the rim lighting effect per-pixel. "
+"Multiplied by [member rim]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"The amount of to blend light and albedo color when rendering rim effect. If "
+"[code]0[/code] the light color is used, while [code]1[/code] means albedo "
+"color is used. An intermediate value generally works best."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Surface reflection. A value of [code]0[/code] represents a perfect mirror "
+"while a value of [code]1[/code] completely blurs the reflection. See also "
+"[member metallic]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture used to control the roughness per-pixel. Multiplied by [member "
+"roughness]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], subsurface scattering is enabled. Emulates light that "
+"penetrates an object's surface, is scattered, and then emerges."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The strength of the subsurface scattering effect."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture used to control the subsurface scattering strength. Stored in the "
+"red texture channel. Multiplied by [member subsurf_scatter_strength]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"The color used by the transmission effect. Represents the light passing "
+"through an object."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "If [code]true[/code], the transmission effect is enabled."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture used to control the transmission effect per-pixel. Added to [member "
+"transmission]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"How much to offset the [code]UV[/code] coordinates. This amount will be "
+"added to [code]UV[/code] in the vertex function. This can be used to offset "
+"a texture."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"How much to scale the [code]UV[/code] coordinates. This is multiplied by "
+"[code]UV[/code] in the vertex function."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], instead of using [code]UV[/code] textures will use a "
+"triplanar texture lookup to determine how to apply textures. Triplanar uses "
+"the orientation of the object's surface to blend between texture "
+"coordinates. It reads from the source texture 3 times, once for each axis "
+"and then blends between the results based on how closely the pixel aligns "
+"with each axis. This is often used for natural features to get a realistic "
+"blend of materials. Because triplanar texturing requires many more texture "
+"reads per-pixel it is much slower than normal UV texturing. Additionally, "
+"because it is blending the texture between the three axes, it is unsuitable "
+"when you are trying to achieve crisp texturing."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"A lower number blends the texture more softly while a higher number blends "
+"the texture more sharply."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"How much to offset the [code]UV2[/code] coordinates. This amount will be "
+"added to [code]UV2[/code] in the vertex function. This can be used to offset "
+"a texture."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"How much to scale the [code]UV2[/code] coordinates. This is multiplied by "
+"[code]UV2[/code] in the vertex function."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], instead of using [code]UV2[/code] textures will use a "
+"triplanar texture lookup to determine how to apply textures. Triplanar uses "
+"the orientation of the object's surface to blend between texture "
+"coordinates. It reads from the source texture 3 times, once for each axis "
+"and then blends between the results based on how closely the pixel aligns "
+"with each axis. This is often used for natural features to get a realistic "
+"blend of materials. Because triplanar texturing requires many more texture "
+"reads per-pixel it is much slower than normal UV texturing. Additionally, "
+"because it is blending the texture between the three axes, it is unsuitable "
+"when you are trying to achieve crisp texturing."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"If [code]true[/code], the model's vertex colors are processed as sRGB mode."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "If [code]true[/code], the vertex color is used as albedo color."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel color."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel metallic value."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel roughness value."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel emission color."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel normal vector."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel rim value."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel clearcoat value."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Texture specifying per-pixel flowmap direction for use with [member "
+"anisotropy]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel ambient occlusion value."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel depth."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel subsurface scattering."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel transmission color."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel refraction strength."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel detail mask blending value."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel detail color."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Texture specifying per-pixel detail normal."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Represents the size of the [enum TextureParam] enum."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Use [code]UV[/code] with the detail texture."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Use [code]UV2[/code] with the detail texture."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member flags_transparent]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member emission_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member normal_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member rim_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member clearcoat_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member anisotropy_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member ao_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member depth_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member subsurf_scatter_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member transmission_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member refraction_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Constant for setting [member detail_enabled]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Default blend mode. The color of the object is blended over the background "
+"based on the object's alpha value."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The color of the object is added to the background."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The color of the object is subtracted from the background."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The color of the object is multiplied by the background."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Default depth draw mode. Depth is drawn only for opaque objects."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Depth draw is calculated for both opaque and transparent objects."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "No depth draw."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"For transparent objects, an opaque pass is made first with the opaque parts, "
+"then transparency is drawn."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Default cull mode. The back of the object is culled when not visible."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The front of the object is culled when not visible."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "No culling is performed."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"No lighting is used on the object. Color comes directly from [code]ALBEDO[/"
+"code]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Lighting is calculated per-vertex rather than per-pixel. This can be used to "
+"increase the speed of the shader at the cost of quality."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Disables the depth test, so this object is drawn on top of all others. "
+"However, objects drawn after it in the draw order may cover it."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Set [code]ALBEDO[/code] to the per-vertex color specified in the mesh."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Vertex color is in sRGB space and needs to be converted to linear. Only "
+"applies in the GLES3 renderer."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Uses point size to alter the size of primitive points. Also changes the "
+"albedo texture lookup to use [code]POINT_COORD[/code] instead of [code]UV[/"
+"code]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Object is scaled by depth so that it always appears the same size on screen."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Shader will keep the scale set for the mesh. Otherwise the scale is lost "
+"when billboarding. Only applies when [member params_billboard_mode] is "
+"[constant BILLBOARD_ENABLED]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Use triplanar texture lookup for all texture lookups that would normally use "
+"[code]UV[/code]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Use triplanar texture lookup for all texture lookups that would normally use "
+"[code]UV2[/code]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Use [code]UV2[/code] coordinates to look up from the [member ao_texture]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Use [code]UV2[/code] coordinates to look up from the [member "
+"emission_texture]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Use alpha scissor. Set by [member params_use_alpha_scissor]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Use world coordinates in the triplanar texture lookup instead of local "
+"coordinates."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Forces the shader to convert albedo from sRGB space to linear space."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Disables receiving shadows from other objects."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Disables receiving ambient light."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Ensures that normals appear correct, even with non-uniform scaling."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Enables the shadow to opacity feature."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Default diffuse scattering algorithm."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Diffuse scattering ignores roughness."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Extends Lambert to cover more than 90 degrees when roughness increases."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Attempts to use roughness to emulate microsurfacing."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Uses a hard cut for lighting, with smoothing affected by roughness."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Default specular blob."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Older specular algorithm, included for compatibility."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Toon blob which changes size based on roughness."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "No specular blob."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Billboard mode is disabled."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The object's Z axis will always face the camera."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "The object's X axis will always face the camera."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Used for particle systems when assigned to [Particles] and [CPUParticles] "
+"nodes. Enables [code]particles_anim_*[/code] properties.\n"
+"The [member ParticlesMaterial.anim_speed] or [member CPUParticles."
+"anim_speed] should also be set to a positive value for the animation to play."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Used to read from the red channel of a texture."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Used to read from the green channel of a texture."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Used to read from the blue channel of a texture."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Used to read from the alpha channel of a texture."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Adds the emission color to the color from the emission texture."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Multiplies the emission color by the color from the emission texture."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid "Do not use distance fade."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Smoothly fades the object out based on each pixel's distance from the camera "
+"using the alpha channel."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Smoothly fades the object out based on each pixel's distance from the camera "
+"using a dither approach. Dithering discards pixels based on a set pattern to "
+"smoothly fade without enabling transparency. On certain hardware this can be "
+"faster than [constant DISTANCE_FADE_PIXEL_ALPHA]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Smoothly fades the object out based on the object's distance from the camera "
+"using a dither approach. Dithering discards pixels based on a set pattern to "
+"smoothly fade without enabling transparency. On certain hardware this can be "
+"faster than [constant DISTANCE_FADE_PIXEL_ALPHA]."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"The real conditioned shader needed on each situation will be sent for "
+"background compilation. In the meantime, a very complex shader that adapts "
+"to every situation will be used (\"ubershader\"). This ubershader is much "
+"slower to render, but will keep the game running without stalling to "
+"compile. Once shader compilation is done, the ubershader is replaced by the "
+"traditional optimized shader."
+msgstr ""
+
+#: doc/classes/SpatialMaterial.xml
+msgid ""
+"Anything with this material applied won't be rendered while this material's "
+"shader is being compiled.\n"
+"This is useful for optimization, in cases where the visuals won't suffer "
+"from having certain non-essential elements missing during the short time "
+"their shaders are being compiled."
+msgstr ""
+
+#: doc/classes/SphereMesh.xml
+msgid "Class representing a spherical [PrimitiveMesh]."
+msgstr ""
+
+#: doc/classes/SphereMesh.xml
+msgid "Full height of the sphere."
+msgstr ""
+
+#: doc/classes/SphereMesh.xml
+msgid ""
+"If [code]true[/code], a hemisphere is created rather than a full sphere.\n"
+"[b]Note:[/b] To get a regular hemisphere, the height and radius of the "
+"sphere must be equal."
+msgstr ""
+
+#: doc/classes/SphereMesh.xml
+msgid "Number of radial segments on the sphere."
+msgstr ""
+
+#: doc/classes/SphereMesh.xml
+msgid "Radius of sphere."
+msgstr ""
+
+#: doc/classes/SphereMesh.xml
+msgid "Number of segments along the height of the sphere."
+msgstr ""
+
+#: doc/classes/SphereShape.xml
+msgid "Sphere shape for 3D collisions."
+msgstr ""
+
+#: doc/classes/SphereShape.xml
+msgid ""
+"Sphere shape for 3D collisions, which can be set into a [PhysicsBody] or "
+"[Area]. This shape is useful for modeling sphere-like 3D objects."
+msgstr ""
+
+#: doc/classes/SphereShape.xml
+msgid "The sphere's radius. The shape's diameter is double the radius."
+msgstr ""
+
+#: doc/classes/SpinBox.xml
+msgid "Numerical input text field."
+msgstr ""
+
+#: doc/classes/SpinBox.xml
+msgid ""
+"SpinBox is a numerical input text field. It allows entering integers and "
+"floats.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"var spin_box = SpinBox.new()\n"
+"add_child(spin_box)\n"
+"var line_edit = spin_box.get_line_edit()\n"
+"line_edit.context_menu_enabled = false\n"
+"spin_box.align = LineEdit.ALIGN_RIGHT\n"
+"[/codeblock]\n"
+"The above code will create a [SpinBox], disable context menu on it and set "
+"the text alignment to right.\n"
+"See [Range] class for more options over the [SpinBox].\n"
+"[b]Note:[/b] [SpinBox] relies on an underlying [LineEdit] node. To theme a "
+"[SpinBox]'s background, add theme items for [LineEdit] and customize them."
+msgstr ""
+
+#: doc/classes/SpinBox.xml
+msgid "Applies the current value of this [SpinBox]."
+msgstr ""
+
+#: doc/classes/SpinBox.xml
+msgid ""
+"Returns the [LineEdit] instance from this [SpinBox]. You can use it to "
+"access properties and methods of [LineEdit].\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/SpinBox.xml
+msgid "Sets the text alignment of the [SpinBox]."
+msgstr ""
+
+#: doc/classes/SpinBox.xml
+msgid ""
+"If [code]true[/code], the [SpinBox] will be editable. Otherwise, it will be "
+"read only."
+msgstr ""
+
+#: doc/classes/SpinBox.xml
+msgid ""
+"Adds the specified [code]prefix[/code] string before the numerical value of "
+"the [SpinBox]."
+msgstr ""
+
+#: doc/classes/SpinBox.xml
+msgid ""
+"Adds the specified [code]suffix[/code] string after the numerical value of "
+"the [SpinBox]."
+msgstr ""
+
+#: doc/classes/SpinBox.xml
+msgid "Sets a custom [Texture] for up and down arrows of the [SpinBox]."
+msgstr ""
+
+#: doc/classes/SplitContainer.xml
+msgid "Container for splitting and adjusting."
+msgstr ""
+
+#: doc/classes/SplitContainer.xml
+msgid ""
+"Container for splitting two [Control]s vertically or horizontally, with a "
+"grabber that allows adjusting the split offset or ratio."
+msgstr ""
+
+#: doc/classes/SplitContainer.xml
+msgid ""
+"Clamps the [member split_offset] value to not go outside the currently "
+"possible minimal and maximum values."
+msgstr ""
+
+#: doc/classes/SplitContainer.xml
+msgid ""
+"If [code]true[/code], the area of the first [Control] will be collapsed and "
+"the dragger will be disabled."
+msgstr ""
+
+#: doc/classes/SplitContainer.xml
+msgid ""
+"Determines the dragger's visibility. See [enum DraggerVisibility] for "
+"details."
+msgstr ""
+
+#: doc/classes/SplitContainer.xml
+msgid ""
+"The initial offset of the splitting between the two [Control]s, with "
+"[code]0[/code] being at the end of the first [Control]."
+msgstr ""
+
+#: doc/classes/SplitContainer.xml
+msgid "Emitted when the dragger is dragged by user."
+msgstr ""
+
+#: doc/classes/SplitContainer.xml
+msgid "The split dragger is visible when the cursor hovers it."
+msgstr ""
+
+#: doc/classes/SplitContainer.xml
+msgid "The split dragger is never visible."
+msgstr ""
+
+#: doc/classes/SplitContainer.xml
+msgid "The split dragger is never visible and its space collapsed."
+msgstr ""
+
+#: doc/classes/SpotLight.xml
+msgid "A spotlight, such as a reflector spotlight or a lantern."
+msgstr ""
+
+#: doc/classes/SpotLight.xml
+msgid ""
+"A Spotlight is a type of [Light] node that emits lights in a specific "
+"direction, in the shape of a cone. The light is attenuated through the "
+"distance. This attenuation can be configured by changing the energy, radius "
+"and attenuation parameters of [Light].\n"
+"[b]Note:[/b] By default, only 32 SpotLights may affect a single mesh "
+"[i]resource[/i] at once. Consider splitting your level into several meshes "
+"to decrease the likelihood that more than 32 lights will affect the same "
+"mesh resource. Splitting the level mesh will also improve frustum culling "
+"effectiveness, leading to greater performance. If you need to use more "
+"lights per mesh, you can increase [member ProjectSettings.rendering/limits/"
+"rendering/max_lights_per_object] at the cost of shader compilation times."
+msgstr ""
+
+#: doc/classes/SpotLight.xml
+msgid "The spotlight's angle in degrees."
+msgstr ""
+
+#: doc/classes/SpotLight.xml
+msgid "The spotlight's angular attenuation curve."
+msgstr ""
+
+#: doc/classes/SpotLight.xml
+msgid "The spotlight's light energy attenuation curve."
+msgstr ""
+
+#: doc/classes/SpotLight.xml
+msgid ""
+"The maximal range that can be reached by the spotlight. Note that the "
+"effectively lit area may appear to be smaller depending on the [member "
+"spot_attenuation] in use. No matter the [member spot_attenuation] in use, "
+"the light will never reach anything outside this range."
+msgstr ""
+
+#: doc/classes/SpringArm.xml
+msgid "A helper node, mostly used in 3rd person cameras."
+msgstr ""
+
+#: doc/classes/SpringArm.xml
+msgid ""
+"The SpringArm node is a node that casts a ray (or collision shape) along its "
+"z axis and moves all its direct children to the collision point, minus a "
+"margin.\n"
+"The most common use case for this is to make a 3rd person camera that reacts "
+"to collisions in the environment.\n"
+"The SpringArm will either cast a ray, or if a shape is given, it will cast "
+"the shape in the direction of its z axis.\n"
+"If you use the SpringArm as a camera controller for your player, you might "
+"need to exclude the player's collider from the SpringArm's collision check."
+msgstr ""
+
+#: doc/classes/SpringArm.xml
+msgid ""
+"Adds the [PhysicsBody] object with the given [RID] to the list of "
+"[PhysicsBody] objects excluded from the collision check."
+msgstr ""
+
+#: doc/classes/SpringArm.xml
+msgid ""
+"Clears the list of [PhysicsBody] objects excluded from the collision check."
+msgstr ""
+
+#: doc/classes/SpringArm.xml
+msgid "Returns the spring arm's current length."
+msgstr ""
+
+#: doc/classes/SpringArm.xml
+msgid ""
+"Removes the given [RID] from the list of [PhysicsBody] objects excluded from "
+"the collision check."
+msgstr ""
+
+#: doc/classes/SpringArm.xml
+msgid ""
+"The layers against which the collision check shall be done. See [url="
+"$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: doc/classes/SpringArm.xml
+msgid ""
+"When the collision check is made, a candidate length for the SpringArm is "
+"given.\n"
+"The margin is then subtracted to this length and the translation is applied "
+"to the child objects of the SpringArm.\n"
+"This margin is useful for when the SpringArm has a [Camera] as a child node: "
+"without the margin, the [Camera] would be placed on the exact point of "
+"collision, while with the margin the [Camera] would be placed close to the "
+"point of collision."
+msgstr ""
+
+#: doc/classes/SpringArm.xml
+msgid ""
+"The [Shape] to use for the SpringArm.\n"
+"When the shape is set, the SpringArm will cast the [Shape] on its z axis "
+"instead of performing a ray cast."
+msgstr ""
+
+#: doc/classes/SpringArm.xml
+msgid ""
+"The maximum extent of the SpringArm. This is used as a length for both the "
+"ray and the shape cast used internally to calculate the desired position of "
+"the SpringArm's child nodes.\n"
+"To know more about how to perform a shape cast or a ray cast, please consult "
+"the [PhysicsDirectSpaceState] documentation."
+msgstr ""
+
+#: doc/classes/Sprite.xml
+msgid "General-purpose sprite node."
+msgstr ""
+
+#: doc/classes/Sprite.xml
+msgid ""
+"A node that displays a 2D texture. The texture displayed can be a region "
+"from a larger atlas texture, or a frame from a sprite sheet animation."
+msgstr ""
+
+#: doc/classes/Sprite.xml
+msgid ""
+"Returns a [Rect2] representing the Sprite's boundary in local coordinates. "
+"Can be used to detect if the Sprite was clicked. Example:\n"
+"[codeblock]\n"
+"func _input(event):\n"
+" if event is InputEventMouseButton and event.pressed and event."
+"button_index == BUTTON_LEFT:\n"
+" if get_rect().has_point(to_local(event.position)):\n"
+" print(\"A click!\")\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Sprite.xml
+msgid ""
+"Returns [code]true[/code], if the pixel at the given position is opaque and "
+"[code]false[/code] in other case.\n"
+"[b]Note:[/b] It also returns [code]false[/code], if the sprite's texture is "
+"[code]null[/code] or if the given position is invalid."
+msgstr ""
+
+#: doc/classes/Sprite.xml
+msgid "If [code]true[/code], texture is centered."
+msgstr ""
+
+#: doc/classes/Sprite.xml doc/classes/Sprite3D.xml
+msgid ""
+"Current frame to display from sprite sheet. [member hframes] or [member "
+"vframes] must be greater than 1."
+msgstr ""
+
+#: doc/classes/Sprite.xml doc/classes/Sprite3D.xml
+msgid ""
+"Coordinates of the frame to display from sprite sheet. This is as an alias "
+"for the [member frame] property. [member hframes] or [member vframes] must "
+"be greater than 1."
+msgstr ""
+
+#: doc/classes/Sprite.xml doc/classes/Sprite3D.xml
+msgid "The number of columns in the sprite sheet."
+msgstr ""
+
+#: doc/classes/Sprite.xml
+msgid ""
+"The normal map gives depth to the Sprite.\n"
+"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
+"See [url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
+"a comparison of normal map coordinates expected by popular engines."
+msgstr ""
+
+#: doc/classes/Sprite.xml
+msgid ""
+"If [code]true[/code], texture is cut from a larger atlas texture. See "
+"[member region_rect]."
+msgstr ""
+
+#: doc/classes/Sprite.xml
+msgid "If [code]true[/code], the outermost pixels get blurred out."
+msgstr ""
+
+#: doc/classes/Sprite.xml doc/classes/Sprite3D.xml
+msgid ""
+"The region of the atlas texture to display. [member region_enabled] must be "
+"[code]true[/code]."
+msgstr ""
+
+#: doc/classes/Sprite.xml
+msgid "[Texture] object to draw."
+msgstr ""
+
+#: doc/classes/Sprite.xml doc/classes/Sprite3D.xml
+msgid "The number of rows in the sprite sheet."
+msgstr ""
+
+#: doc/classes/Sprite.xml doc/classes/Sprite3D.xml
+msgid "Emitted when the [member frame] changes."
+msgstr ""
+
+#: doc/classes/Sprite.xml
+msgid "Emitted when the [member texture] changes."
+msgstr ""
+
+#: doc/classes/Sprite3D.xml
+msgid "2D sprite node in a 3D world."
+msgstr ""
+
+#: doc/classes/Sprite3D.xml
+msgid ""
+"A node that displays a 2D texture in a 3D environment. The texture displayed "
+"can be a region from a larger atlas texture, or a frame from a sprite sheet "
+"animation."
+msgstr ""
+
+#: doc/classes/Sprite3D.xml
+msgid ""
+"If [code]true[/code], texture will be cut from a larger atlas texture. See "
+"[member region_rect]."
+msgstr ""
+
+#: doc/classes/Sprite3D.xml
+msgid ""
+"[Texture] object to draw. If [member GeometryInstance.material_override] is "
+"used, this will be overridden."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid "2D sprite node in 3D environment."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid "A node that displays 2D texture information in a 3D environment."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid "Returns the rectangle representing this sprite."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid "If [code]true[/code], the specified flag will be enabled."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid "The direction in which the front of the texture faces."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid ""
+"If [code]true[/code], texture can be seen from the back as well, if "
+"[code]false[/code], it is invisible when looking at it from behind."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid ""
+"A color value that gets multiplied on, could be used for mood-coloring or to "
+"simulate the color of light."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid ""
+"The objects' visibility on a scale from [code]0[/code] fully invisible to "
+"[code]1[/code] fully visible."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid "The size of one pixel's width on the sprite to scale it in 3D."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid ""
+"If [code]true[/code], the [Light] in the [Environment] has effects on the "
+"sprite."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid ""
+"If [code]true[/code], the texture's transparency and the opacity are used to "
+"make those parts of the sprite invisible."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid ""
+"If set, the texture's transparency and the opacity are used to make those "
+"parts of the sprite invisible."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid "If set, lights in the environment affect the sprite."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid ""
+"If set, texture can be seen from the back as well, if not, it is invisible "
+"when looking at it from behind."
+msgstr ""
+
+#: doc/classes/SpriteBase3D.xml
+msgid "Represents the size of the [enum DrawFlags] enum."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Sprite frame library for AnimatedSprite."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid ""
+"Sprite frame library for [AnimatedSprite]. Contains frames and animation "
+"data for playback.\n"
+"[b]Note:[/b] You can associate a set of normal maps by creating additional "
+"[SpriteFrames] resources with a [code]_normal[/code] suffix. For example, "
+"having 2 [SpriteFrames] resources [code]run[/code] and [code]run_normal[/"
+"code] will make it so the [code]run[/code] animation uses the normal map."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Adds a new animation to the library."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Adds a frame to the given animation."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Removes all frames from the given animation."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Removes all animations. A \"default\" animation will be created."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid ""
+"Returns [code]true[/code] if the given animation is configured to loop when "
+"it finishes playing. Otherwise, returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid ""
+"Returns an array containing the names associated to each animation. Values "
+"are placed in alphabetical order."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "The animation's speed in frames per second."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Returns the animation's selected frame."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Returns the number of frames in the animation."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "If [code]true[/code], the named animation exists."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Removes the given animation."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Removes the animation's selected frame."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Changes the animation's name to [code]newname[/code]."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "If [code]true[/code], the animation will loop."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Sets the texture of the given frame."
+msgstr ""
+
+#: doc/classes/SpriteFrames.xml
+msgid "Compatibility property, always equals to an empty array."
+msgstr ""
+
+#: doc/classes/StaticBody.xml
+msgid "Static body for 3D physics."
+msgstr ""
+
+#: doc/classes/StaticBody.xml
+msgid ""
+"Static body for 3D physics. A static body is a simple body that is not "
+"intended to move. In contrast to [RigidBody], they don't consume any CPU "
+"resources as long as they don't move.\n"
+"Additionally, a constant linear or angular velocity can be set for the "
+"static body, so even if it doesn't move, it affects other bodies as if it "
+"was moving (this is useful for simulating conveyor belts or conveyor wheels)."
+msgstr ""
+
+#: doc/classes/StaticBody.xml
+msgid ""
+"The body's constant angular velocity. This does not rotate the body, but "
+"affects other bodies that touch it, as if it was in a state of rotation."
+msgstr ""
+
+#: doc/classes/StaticBody.xml
+msgid ""
+"The body's constant linear velocity. This does not move the body, but "
+"affects other bodies that touch it, as if it was in a state of movement."
+msgstr ""
+
+#: doc/classes/StaticBody.xml
+msgid ""
+"The body's friction, from 0 (frictionless) to 1 (full friction).\n"
+"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
+"physics_material_override]."
+msgstr ""
+
+#: doc/classes/StaticBody2D.xml
+msgid "Static body for 2D physics."
+msgstr ""
+
+#: doc/classes/StaticBody2D.xml
+msgid ""
+"Static body for 2D physics. A StaticBody2D is a body that is not intended to "
+"move. It is ideal for implementing objects in the environment, such as walls "
+"or platforms.\n"
+"Additionally, a constant linear or angular velocity can be set for the "
+"static body, which will affect colliding bodies as if it were moving (for "
+"example, a conveyor belt)."
+msgstr ""
+
+#: doc/classes/StaticBody2D.xml
+msgid ""
+"The body's constant angular velocity. This does not rotate the body, but "
+"affects colliding bodies, as if it were rotating."
+msgstr ""
+
+#: doc/classes/StaticBody2D.xml
+msgid ""
+"The body's constant linear velocity. This does not move the body, but "
+"affects colliding bodies, as if it were moving."
+msgstr ""
+
+#: doc/classes/StaticBody2D.xml
+msgid ""
+"The body's friction. Values range from [code]0[/code] (no friction) to "
+"[code]1[/code] (full friction).\n"
+"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
+"physics_material_override]."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Abstraction and base class for stream-based protocols."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"StreamPeer is an abstraction and base class for stream-based protocols (such "
+"as TCP). It provides an API for sending and receiving data through streams "
+"as raw data or strings."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Gets a signed 16-bit value from the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Gets a signed 32-bit value from the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Gets a signed 64-bit value from the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Gets a signed byte from the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Returns the amount of bytes this [StreamPeer] has available."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"Returns a chunk data with the received bytes. The amount of bytes to be "
+"received can be requested in the [code]bytes[/code] argument. If not enough "
+"bytes are available, the function will block until the desired amount is "
+"received. This function returns two values, an [enum @GlobalScope.Error] "
+"code and a data array."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Gets a double-precision float from the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Gets a single-precision float from the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"Returns a chunk data with the received bytes. The amount of bytes to be "
+"received can be requested in the \"bytes\" argument. If not enough bytes are "
+"available, the function will return how many were actually received. This "
+"function returns two values, an [enum @GlobalScope.Error] code, and a data "
+"array."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
+"[code]bytes[/code] is negative (default) the length will be read from the "
+"stream using the reverse process of [method put_string]."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Gets an unsigned 16-bit value from the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Gets an unsigned 32-bit value from the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Gets an unsigned 64-bit value from the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Gets an unsigned byte from the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"Gets an UTF-8 string with byte-length [code]bytes[/code] from the stream "
+"(this decodes the string sent as UTF-8). If [code]bytes[/code] is negative "
+"(default) the length will be read from the stream using the reverse process "
+"of [method put_utf8_string]."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"Gets a Variant from the stream. If [code]allow_objects[/code] is [code]true[/"
+"code], decoding objects is allowed.\n"
+"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
+"Do not use this option if the serialized object comes from untrusted sources "
+"to avoid potential security threats such as remote code execution."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Puts a signed 16-bit value into the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Puts a signed 32-bit value into the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Puts a signed 64-bit value into the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Puts a signed byte into the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"Sends a chunk of data through the connection, blocking if necessary until "
+"the data is done sending. This function returns an [enum @GlobalScope.Error] "
+"code."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Puts a double-precision float into the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Puts a single-precision float into the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"Sends a chunk of data through the connection. If all the data could not be "
+"sent at once, only part of it will. This function returns two values, an "
+"[enum @GlobalScope.Error] code and an integer, describing how much data was "
+"actually sent."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"Puts a zero-terminated ASCII string into the stream prepended by a 32-bit "
+"unsigned integer representing its size.\n"
+"[b]Note:[/b] To put an ASCII string without prepending its size, you can use "
+"[method put_data]:\n"
+"[codeblock]\n"
+"put_data(\"Hello world\".to_ascii())\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Puts an unsigned 16-bit value into the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Puts an unsigned 32-bit value into the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Puts an unsigned 64-bit value into the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid "Puts an unsigned byte into the stream."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"Puts a zero-terminated UTF-8 string into the stream prepended by a 32 bits "
+"unsigned integer representing its size.\n"
+"[b]Note:[/b] To put an UTF-8 string without prepending its size, you can use "
+"[method put_data]:\n"
+"[codeblock]\n"
+"put_data(\"Hello world\".to_utf8())\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"Puts a Variant into the stream. If [code]full_objects[/code] is [code]true[/"
+"code] encoding objects is allowed (and can potentially include code)."
+msgstr ""
+
+#: doc/classes/StreamPeer.xml
+msgid ""
+"If [code]true[/code], this [StreamPeer] will using big-endian format for "
+"encoding and decoding."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml
+msgid "SSL stream peer."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml
+msgid ""
+"SSL stream peer. This object can be used to connect to an SSL server or "
+"accept a single SSL client connection."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml
+msgid ""
+"Accepts a peer connection as a server using the given [code]private_key[/"
+"code] and providing the given [code]certificate[/code] to the client. You "
+"can pass the optional [code]chain[/code] parameter to provide additional CA "
+"chain information along with the certificate."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml
+msgid ""
+"Connects to a peer using an underlying [StreamPeer] [code]stream[/code]. If "
+"[code]validate_certs[/code] is [code]true[/code], [StreamPeerSSL] will "
+"validate that the certificate presented by the peer matches the "
+"[code]for_hostname[/code].\n"
+"[b]Note:[/b] Specifying a custom [code]valid_certificate[/code] is not "
+"supported in HTML5 exports due to browsers restrictions."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml doc/classes/StreamPeerTCP.xml
+msgid "Disconnects from host."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml
+msgid ""
+"Poll the connection to check for incoming bytes. Call this right before "
+"[method StreamPeer.get_available_bytes] for it to work properly."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml
+msgid "A status representing a [StreamPeerSSL] that is disconnected."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml
+msgid "A status representing a [StreamPeerSSL] during handshaking."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml
+msgid "A status representing a [StreamPeerSSL] that is connected to a host."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml
+msgid "A status representing a [StreamPeerSSL] in error state."
+msgstr ""
+
+#: doc/classes/StreamPeerSSL.xml
+msgid ""
+"An error status that shows a mismatch in the SSL certificate domain "
+"presented by the host and the domain requested for validation."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid "TCP stream peer."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid ""
+"TCP stream peer. This object can be used to connect to TCP servers, or also "
+"is returned by a TCP server."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid ""
+"Connects to the specified [code]host:port[/code] pair. A hostname will be "
+"resolved if valid. Returns [constant OK] on success or [constant FAILED] on "
+"failure."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid "Returns the IP of this peer."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid "Returns the port of this peer."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid "Returns the status of the connection, see [enum Status]."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid ""
+"Returns [code]true[/code] if this peer is currently connected or is "
+"connecting to a host, [code]false[/code] otherwise."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid ""
+"If [code]enabled[/code] is [code]true[/code], packets will be sent "
+"immediately. If [code]enabled[/code] is [code]false[/code] (the default), "
+"packet transfers will be delayed and combined using [url=https://en."
+"wikipedia.org/wiki/Nagle%27s_algorithm]Nagle's algorithm[/url].\n"
+"[b]Note:[/b] It's recommended to leave this disabled for applications that "
+"send large packets or need to transfer a lot of data, as enabling this can "
+"decrease the total available bandwidth."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid ""
+"The initial status of the [StreamPeerTCP]. This is also the status after "
+"disconnecting."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid "A status representing a [StreamPeerTCP] that is connecting to a host."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid "A status representing a [StreamPeerTCP] that is connected to a host."
+msgstr ""
+
+#: doc/classes/StreamPeerTCP.xml
+msgid "A status representing a [StreamPeerTCP] in error state."
+msgstr ""
+
+#: doc/classes/StreamTexture.xml
+msgid "A [code].stex[/code] texture."
+msgstr ""
+
+#: doc/classes/StreamTexture.xml
+msgid "A texture that is loaded from a [code].stex[/code] file."
+msgstr ""
+
+#: doc/classes/StreamTexture.xml
+msgid "Loads the texture from the given path."
+msgstr ""
+
+#: doc/classes/StreamTexture.xml
+msgid "The StreamTexture's file path to a [code].stex[/code] file."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Built-in string class."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"This is the built-in string class (and the one used by GDScript). It "
+"supports Unicode and provides all necessary means for string handling. "
+"Strings are reference-counted and use a copy-on-write approach, so passing "
+"them around is cheap in resources."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "$DOCS_URL/tutorials/scripting/gdscript/gdscript_format_string.html"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [bool]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [int]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [float]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Vector2]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Rect2]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Vector3]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Transform2D]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Plane]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Quat]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [AABB]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Basis]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Transform]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Color]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [NodePath]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [RID]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Dictionary]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [Array]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [PoolByteArray]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [PoolIntArray]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [PoolRealArray]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [PoolStringArray]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Constructs a new String from the given [PoolColorArray]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns [code]true[/code] if the string begins with the given string."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the bigrams (pairs of consecutive letters) of this string."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string with special characters escaped using the C "
+"language standard."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string with escaped characters replaced by their "
+"meanings. Supported escape sequences are [code]\\'[/code], [code]\\\"[/"
+"code], [code]\\?[/code], [code]\\\\[/code], [code]\\a[/code], [code]\\b[/"
+"code], [code]\\f[/code], [code]\\n[/code], [code]\\r[/code], [code]\\t[/"
+"code], [code]\\v[/code].\n"
+"[b]Note:[/b] Unlike the GDScript parser, this method doesn't support the "
+"[code]\\uXXXX[/code] escape sequence."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Changes the case of some letters. Replaces underscores with spaces, adds "
+"spaces before in-word uppercase characters, converts all letters to "
+"lowercase, then capitalizes the first letter and every letter following a "
+"space character. For [code]capitalize camelCase mixed_with_underscores[/"
+"code], it will return [code]Capitalize Camel Case Mixed With Underscores[/"
+"code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Performs a case-sensitive comparison to another string. Returns [code]-1[/"
+"code] if less than, [code]1[/code] if greater than, or [code]0[/code] if "
+"equal. \"less than\" or \"greater than\" are determined by the [url=https://"
+"en.wikipedia.org/wiki/List_of_Unicode_characters]Unicode code points[/url] "
+"of each string, which roughly matches the alphabetical order.\n"
+"[b]Behavior with different string lengths:[/b] Returns [code]1[/code] if the "
+"\"base\" string is longer than the [code]to[/code] string or [code]-1[/code] "
+"if the \"base\" string is shorter than the [code]to[/code] string. Keep in "
+"mind this length is determined by the number of Unicode codepoints, [i]not[/"
+"i] the actual visible characters.\n"
+"[b]Behavior with empty strings:[/b] Returns [code]-1[/code] if the \"base\" "
+"string is empty, [code]1[/code] if the [code]to[/code] string is empty or "
+"[code]0[/code] if both strings are empty.\n"
+"To get a boolean result from a string comparison, use the [code]==[/code] "
+"operator instead. See also [method nocasecmp_to]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns the number of occurrences of substring [code]what[/code] between "
+"[code]from[/code] and [code]to[/code] positions. If [code]from[/code] and "
+"[code]to[/code] equals 0 the whole string will be used. If only [code]to[/"
+"code] equals 0 the remained substring will be used."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns the number of occurrences of substring [code]what[/code] (ignoring "
+"case) between [code]from[/code] and [code]to[/code] positions. If "
+"[code]from[/code] and [code]to[/code] equals 0 the whole string will be "
+"used. If only [code]to[/code] equals 0 the remained substring will be used."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string with indentation (leading tabs and spaces) "
+"removed. See also [method indent] to add indentation."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns [code]true[/code] if the length of the string equals [code]0[/code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns [code]true[/code] if the string ends with the given string."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Erases [code]chars[/code] characters from the string starting from "
+"[code]position[/code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Finds the first occurrence of a substring. Returns the starting position of "
+"the substring or [code]-1[/code] if not found. Optionally, the initial "
+"search index can be passed.\n"
+"[b]Note:[/b] If you just want to know whether a string contains a substring, "
+"use the [code]in[/code] operator as follows:\n"
+"[codeblock]\n"
+"# Will evaluate to `false`.\n"
+"if \"i\" in \"team\":\n"
+" pass\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Finds the last occurrence of a substring. Returns the starting position of "
+"the substring or [code]-1[/code] if not found."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Finds the first occurrence of a substring, ignoring case. Returns the "
+"starting position of the substring or [code]-1[/code] if not found. "
+"Optionally, the initial search index can be passed."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Formats the string by replacing all occurrences of [code]placeholder[/code] "
+"with [code]values[/code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "If the string is a valid file path, returns the base directory name."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"If the string is a valid file path, returns the full file path without the "
+"extension."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns the extension without the leading period character ([code].[/code]) "
+"if the string is a valid file name or path. If the string does not contain "
+"an extension, returns an empty string instead.\n"
+"[codeblock]\n"
+"print(\"/path/to/file.txt\".get_extension()) # \"txt\"\n"
+"print(\"file.txt\".get_extension()) # \"txt\"\n"
+"print(\"file.sample.txt\".get_extension()) # \"txt\"\n"
+"print(\".txt\".get_extension()) # \"txt\"\n"
+"print(\"file.txt.\".get_extension()) # \"\" (empty string)\n"
+"print(\"file.txt..\".get_extension()) # \"\" (empty string)\n"
+"print(\"txt\".get_extension()) # \"\" (empty string)\n"
+"print(\"\".get_extension()) # \"\" (empty string)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "If the string is a valid file path, returns the filename."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Splits a string using a [code]delimiter[/code] and returns a substring at "
+"index [code]slice[/code]. Returns an empty string if the index doesn't "
+"exist.\n"
+"This is a more performant alternative to [method split] for cases when you "
+"need only one element from the array at a fixed index.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\"i/am/example/string\".get_slice(\"/\", 2)) # Prints 'example'.\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Hashes the string and returns a 32-bit integer."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Converts a string containing a hexadecimal number into an integer. "
+"Hexadecimal strings are expected to be prefixed with \"[code]0x[/code]\" "
+"otherwise [code]0[/code] is returned.\n"
+"[codeblock]\n"
+"print(\"0xff\".hex_to_int()) # Print \"255\"\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Escapes (encodes) a string to URL friendly format. Also referred to as 'URL "
+"encode'.\n"
+"[codeblock]\n"
+"print(\"https://example.org/?escaped=\" + \"Godot Engine:'docs'\"."
+"http_escape())\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Unescapes (decodes) a string in URL encoded format. Also referred to as 'URL "
+"decode'.\n"
+"[codeblock]\n"
+"print(\"https://example.org/?escaped=\" + \"Godot%20Engine%3A%27docs%27\"."
+"http_unescape())\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Converts [code]size[/code] represented as number of bytes to human-readable "
+"format using internationalized set of data size units, namely: B, KiB, MiB, "
+"GiB, TiB, PiB, EiB. Note that the next smallest unit is picked automatically "
+"to hold at most 1024 units.\n"
+"[codeblock]\n"
+"var bytes = 133790307\n"
+"var size = String.humanize_size(bytes)\n"
+"print(size) # prints \"127.5 MiB\"\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string with lines indented with [code]prefix[/code].\n"
+"For example, the string can be indented with two tabs using [code]\"\\t\\t"
+"\"[/code], or four spaces using [code]\" \"[/code]. The prefix can be any "
+"string so it can also be used to comment out strings with e.g. [code]\"# \"[/"
+"code]. See also [method dedent] to remove indentation.\n"
+"[b]Note:[/b] Empty lines are kept empty."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string with the substring [code]what[/code] inserted "
+"at the given position."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"If the string is a path to a file or directory, returns [code]true[/code] if "
+"the path is absolute."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"If the string is a path to a file or directory, returns [code]true[/code] if "
+"the path is relative."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns [code]true[/code] if this string is a subsequence of the given "
+"string."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns [code]true[/code] if this string is a subsequence of the given "
+"string, without considering case."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns [code]true[/code] if this string is free from characters that aren't "
+"allowed in file names, those being:\n"
+"[code]: / \\ ? * \" | % < >[/code]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns [code]true[/code] if this string contains a valid float."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns [code]true[/code] if this string contains a valid hexadecimal "
+"number. If [code]with_prefix[/code] is [code]true[/code], then a validity of "
+"the hexadecimal number is determined by [code]0x[/code] prefix, for "
+"instance: [code]0xDEADC0DE[/code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns [code]true[/code] if this string contains a valid color in "
+"hexadecimal HTML notation. Other HTML notations such as named colors or "
+"[code]hsl()[/code] colors aren't considered valid by this method and will "
+"return [code]false[/code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns [code]true[/code] if this string is a valid identifier. A valid "
+"identifier may contain only letters, digits and underscores ([code]_[/code]) "
+"and the first character may not be a digit."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns [code]true[/code] if this string contains a valid integer."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns [code]true[/code] if this string contains only a well-formatted IPv4 "
+"or IPv6 address. This method considers [url=https://en.wikipedia.org/wiki/"
+"Reserved_IP_addresses]reserved IP addresses[/url] such as [code]0.0.0.0[/"
+"code] as valid."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string with special characters escaped using the JSON "
+"standard."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns a number of characters from the left of the string."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the string's amount of characters."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string with characters removed from the left. The "
+"[code]chars[/code] argument is a string specifying the set of characters to "
+"be removed.\n"
+"[b]Note:[/b] The [code]chars[/code] is not a prefix. See [method "
+"trim_prefix] method that will remove a single prefix string rather than a "
+"set of characters."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Does a simple case-sensitive expression match, where [code]\"*\"[/code] "
+"matches zero or more arbitrary characters and [code]\"?\"[/code] matches any "
+"single character except a period ([code]\".\"[/code])."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Does a simple case-insensitive expression match, where [code]\"*\"[/code] "
+"matches zero or more arbitrary characters and [code]\"?\"[/code] matches any "
+"single character except a period ([code]\".\"[/code])."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the MD5 hash of the string as an array of bytes."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the MD5 hash of the string as a string."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Performs a case-insensitive [i]natural order[/i] comparison to another "
+"string. Returns [code]-1[/code] if less than, [code]1[/code] if greater "
+"than, or [code]0[/code] if equal. \"less than\" or \"greater than\" are "
+"determined by the [url=https://en.wikipedia.org/wiki/"
+"List_of_Unicode_characters]Unicode code points[/url] of each string, which "
+"roughly matches the alphabetical order. Internally, lowercase characters "
+"will be converted to uppercase during the comparison.\n"
+"When used for sorting, natural order comparison will order suites of numbers "
+"as expected by most people. If you sort the numbers from 1 to 10 using "
+"natural order, you will get [code][1, 2, 3, ...][/code] instead of [code][1, "
+"10, 2, 3, ...][/code].\n"
+"[b]Behavior with different string lengths:[/b] Returns [code]1[/code] if the "
+"\"base\" string is longer than the [code]to[/code] string or [code]-1[/code] "
+"if the \"base\" string is shorter than the [code]to[/code] string. Keep in "
+"mind this length is determined by the number of Unicode codepoints, [i]not[/"
+"i] the actual visible characters.\n"
+"[b]Behavior with empty strings:[/b] Returns [code]-1[/code] if the \"base\" "
+"string is empty, [code]1[/code] if the [code]to[/code] string is empty or "
+"[code]0[/code] if both strings are empty.\n"
+"To get a boolean result from a string comparison, use the [code]==[/code] "
+"operator instead. See also [method nocasecmp_to] and [method casecmp_to]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Performs a case-insensitive comparison to another string. Returns [code]-1[/"
+"code] if less than, [code]1[/code] if greater than, or [code]0[/code] if "
+"equal. \"less than\" or \"greater than\" are determined by the [url=https://"
+"en.wikipedia.org/wiki/List_of_Unicode_characters]Unicode code points[/url] "
+"of each string, which roughly matches the alphabetical order. Internally, "
+"lowercase characters will be converted to uppercase during the comparison.\n"
+"[b]Behavior with different string lengths:[/b] Returns [code]1[/code] if the "
+"\"base\" string is longer than the [code]to[/code] string or [code]-1[/code] "
+"if the \"base\" string is shorter than the [code]to[/code] string. Keep in "
+"mind this length is determined by the number of Unicode codepoints, [i]not[/"
+"i] the actual visible characters.\n"
+"[b]Behavior with empty strings:[/b] Returns [code]-1[/code] if the \"base\" "
+"string is empty, [code]1[/code] if the [code]to[/code] string is empty or "
+"[code]0[/code] if both strings are empty.\n"
+"To get a boolean result from a string comparison, use the [code]==[/code] "
+"operator instead. See also [method casecmp_to]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the character code at position [code]at[/code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Formats a number to have an exact number of [code]digits[/code] after the "
+"decimal point."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Formats a number to have an exact number of [code]digits[/code] before the "
+"decimal point."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Decode a percent-encoded string. See [method percent_encode]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Percent-encodes a string. Encodes parameters in a URL when sending a HTTP "
+"GET request (and bodies of form-urlencoded POST requests)."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"If the string is a path, this concatenates [code]file[/code] at the end of "
+"the string as a subpath. E.g. [code]\"this/is\".plus_file(\"path\") == "
+"\"this/is/path\"[/code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns original string repeated a number of times. The number of "
+"repetitions is given by the argument."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Replaces occurrences of a case-sensitive substring with the given one inside "
+"the string."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Replaces occurrences of a case-insensitive substring with the given one "
+"inside the string."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Performs a case-sensitive search for a substring, but starts from the end of "
+"the string instead of the beginning."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Performs a case-insensitive search for a substring, but starts from the end "
+"of the string instead of the beginning."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the right side of the string from a given position."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Splits the string by a [code]delimiter[/code] string and returns an array of "
+"the substrings, starting from right.\n"
+"The splits in the returned array are sorted in the same order as the "
+"original string, from left to right.\n"
+"If [code]maxsplit[/code] is specified, it defines the number of splits to do "
+"from the right up to [code]maxsplit[/code]. The default value of 0 means "
+"that all items are split, thus giving the same result as [method split].\n"
+"Example:\n"
+"[codeblock]\n"
+"var some_string = \"One,Two,Three,Four\"\n"
+"var some_array = some_string.rsplit(\",\", true, 1)\n"
+"print(some_array.size()) # Prints 2\n"
+"print(some_array[0]) # Prints \"Four\"\n"
+"print(some_array[1]) # Prints \"Three,Two,One\"\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string with characters removed from the right. The "
+"[code]chars[/code] argument is a string specifying the set of characters to "
+"be removed.\n"
+"[b]Note:[/b] The [code]chars[/code] is not a suffix. See [method "
+"trim_suffix] method that will remove a single suffix string rather than a "
+"set of characters."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the SHA-1 hash of the string as an array of bytes."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the SHA-1 hash of the string as a string."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the SHA-256 hash of the string as an array of bytes."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the SHA-256 hash of the string as a string."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns the similarity index of the text compared to this string. 1 means "
+"totally similar and 0 means totally dissimilar."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns a simplified canonical path."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Splits the string by a [code]delimiter[/code] string and returns an array of "
+"the substrings. The [code]delimiter[/code] can be of any length.\n"
+"If [code]maxsplit[/code] is specified, it defines the number of splits to do "
+"from the left up to [code]maxsplit[/code]. The default value of [code]0[/"
+"code] means that all items are split.\n"
+"If you need only one element from the array at a specific index, [method "
+"get_slice] is a more performant option.\n"
+"Example:\n"
+"[codeblock]\n"
+"var some_string = \"One,Two,Three,Four\"\n"
+"var some_array = some_string.split(\",\", true, 1)\n"
+"print(some_array.size()) # Prints 2\n"
+"print(some_array[0]) # Prints \"One\"\n"
+"print(some_array[1]) # Prints \"Two,Three,Four\"\n"
+"[/codeblock]\n"
+"If you need to split strings with more complex rules, use the [RegEx] class "
+"instead."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Splits the string in floats by using a delimiter string and returns an array "
+"of the substrings.\n"
+"For example, [code]\"1,2.5,3\"[/code] will return [code][1,2.5,3][/code] if "
+"split by [code]\",\"[/code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string stripped of any non-printable character "
+"(including tabulations, spaces and line breaks) at the beginning and the "
+"end. The optional arguments are used to toggle stripping on the left and "
+"right edges respectively."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string stripped of any escape character. These include "
+"all non-printable control characters of the first page of the ASCII table (< "
+"32), such as tabulation ([code]\\t[/code] in C) and newline ([code]\\n[/"
+"code] and [code]\\r[/code]) characters, but not spaces."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns part of the string from the position [code]from[/code] with length "
+"[code]len[/code]. Argument [code]len[/code] is optional and using [code]-1[/"
+"code] will return remaining characters from given position."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Converts the String (which is a character array) to [PoolByteArray] (which "
+"is an array of bytes). The conversion is faster compared to [method "
+"to_utf8], as this method assumes that all the characters in the String are "
+"ASCII characters."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Converts a string containing a decimal number into a [code]float[/code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Converts a string containing an integer number into an [code]int[/code]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the string converted to lowercase."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid "Returns the string converted to uppercase."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Converts the String (which is an array of characters) to [PoolByteArray] "
+"(which is an array of bytes). The conversion is a bit slower than [method "
+"to_ascii], but supports all UTF-8 characters. Therefore, you should prefer "
+"this function over [method to_ascii]."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Converts the String (which is an array of characters) to [PoolByteArray] "
+"(which is an array of bytes)."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Removes a given string from the start if it starts with it or leaves the "
+"string unchanged."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Removes a given string from the end if it ends with it or leaves the string "
+"unchanged."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Removes any characters from the string that are prohibited in [Node] names "
+"([code].[/code] [code]:[/code] [code]@[/code] [code]/[/code] [code]\"[/"
+"code])."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string with special characters escaped using the XML "
+"standard."
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
+"Returns a copy of the string with escaped characters replaced by their "
+"meanings according to the XML standard."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid "Base class for drawing stylized boxes for the UI."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid ""
+"StyleBox is [Resource] that provides an abstract base class for drawing "
+"stylized boxes for the UI. StyleBoxes are used for drawing the styles of "
+"buttons, line edit backgrounds, tree backgrounds, etc. and also for testing "
+"a transparency mask for pointer signals. If mask test fails on a StyleBox "
+"assigned as mask to a control, clicks and motion signals will go through it "
+"to the one below.\n"
+"[b]Note:[/b] For children of [Control] that have [i]Theme Properties[/i], "
+"the [code]focus[/code] [StyleBox] is displayed over the [code]normal[/code], "
+"[code]hover[/code] or [code]pressed[/code] [StyleBox]. This makes the "
+"[code]focus[/code] [StyleBox] more reusable across different nodes."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid ""
+"Draws this stylebox using a [CanvasItem] with given [RID].\n"
+"You can get a [RID] value using [method Object.get_instance_id] on a "
+"[CanvasItem]-derived node."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid "Returns the size of this [StyleBox] without the margins."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid ""
+"Returns the [CanvasItem] that handles its [constant CanvasItem."
+"NOTIFICATION_DRAW] or [method CanvasItem._draw] callback at this moment."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid "Returns the default value of the specified [enum Margin]."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid ""
+"Returns the content margin offset for the specified [enum Margin].\n"
+"Positive values reduce size inwards, unlike [Control]'s margin values."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid "Returns the minimum size that this stylebox can be shrunk to."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid ""
+"Returns the \"offset\" of a stylebox. This helper function returns a value "
+"equivalent to [code]Vector2(style.get_margin(MARGIN_LEFT), style."
+"get_margin(MARGIN_TOP))[/code]."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid ""
+"Sets the default value of the specified [enum Margin] to given [code]offset[/"
+"code] in pixels."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid "Test a position in a rectangle, return whether it passes the mask test."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid ""
+"The bottom margin for the contents of this style box. Increasing this value "
+"reduces the space available to the contents from the bottom.\n"
+"If this value is negative, it is ignored and a child-specific margin is used "
+"instead. For example for [StyleBoxFlat] the border thickness (if any) is "
+"used instead.\n"
+"It is up to the code using this style box to decide what these contents are: "
+"for example, a [Button] respects this content margin for the textual "
+"contents of the button.\n"
+"[method get_margin] should be used to fetch this value as consumer instead "
+"of reading these properties directly. This is because it correctly respects "
+"negative values and the fallback mentioned above."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid ""
+"The left margin for the contents of this style box.Increasing this value "
+"reduces the space available to the contents from the left.\n"
+"Refer to [member content_margin_bottom] for extra considerations."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid ""
+"The right margin for the contents of this style box. Increasing this value "
+"reduces the space available to the contents from the right.\n"
+"Refer to [member content_margin_bottom] for extra considerations."
+msgstr ""
+
+#: doc/classes/StyleBox.xml
+msgid ""
+"The top margin for the contents of this style box. Increasing this value "
+"reduces the space available to the contents from the top.\n"
+"Refer to [member content_margin_bottom] for extra considerations."
+msgstr ""
+
+#: doc/classes/StyleBoxEmpty.xml
+msgid "Empty stylebox (does not display anything)."
+msgstr ""
+
+#: doc/classes/StyleBoxEmpty.xml
+msgid "Empty stylebox (really does not display anything)."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Customizable [StyleBox] with a given set of parameters (no texture required)."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"This [StyleBox] can be used to achieve all kinds of looks without the need "
+"of a texture. The following properties are customizable:\n"
+"- Color\n"
+"- Border width (individual width for each border)\n"
+"- Rounded corners (individual radius for each corner)\n"
+"- Shadow (with blur and offset)\n"
+"Setting corner radius to high values is allowed. As soon as corners overlap, "
+"the stylebox will switch to a relative system. Example:\n"
+"[codeblock]\n"
+"height = 30\n"
+"corner_radius_top_left = 50\n"
+"corner_radius_bottom_left = 100\n"
+"[/codeblock]\n"
+"The relative system now would take the 1:2 ratio of the two left corners to "
+"calculate the actual corner width. Both corners added will [b]never[/b] be "
+"more than the height. Result:\n"
+"[codeblock]\n"
+"corner_radius_top_left: 10\n"
+"corner_radius_bottom_left: 20\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Returns the given [code]margin[/code]'s border width. See [enum Margin] for "
+"possible values."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "Returns the smallest border width out of all four borders."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Returns the given [code]corner[/code]'s radius. See [enum Corner] for "
+"possible values."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml doc/classes/StyleBoxTexture.xml
+msgid ""
+"Returns the size of the given [code]margin[/code]'s expand margin. See [enum "
+"Margin] for possible values."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Sets the border width to [code]width[/code] pixels for the given "
+"[code]margin[/code]. See [enum Margin] for possible values."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "Sets the border width to [code]width[/code] pixels for all margins."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Sets the corner radius to [code]radius[/code] pixels for the given "
+"[code]corner[/code]. See [enum Corner] for possible values."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "Sets the corner radius to [code]radius[/code] pixels for all corners."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Sets the corner radius for each corner to [code]radius_top_left[/code], "
+"[code]radius_top_right[/code], [code]radius_bottom_right[/code], and "
+"[code]radius_bottom_left[/code] pixels."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml doc/classes/StyleBoxTexture.xml
+msgid ""
+"Sets the expand margin to [code]size[/code] pixels for the given "
+"[code]margin[/code]. See [enum Margin] for possible values."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml doc/classes/StyleBoxTexture.xml
+msgid "Sets the expand margin to [code]size[/code] pixels for all margins."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml doc/classes/StyleBoxTexture.xml
+msgid ""
+"Sets the expand margin for each margin to [code]size_left[/code], "
+"[code]size_top[/code], [code]size_right[/code], and [code]size_bottom[/code] "
+"pixels."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Antialiasing draws a small ring around the edges, which fades to "
+"transparency. As a result, edges look much smoother. This is only noticeable "
+"when using rounded corners.\n"
+"[b]Note:[/b] When using beveled corners with 45-degree angles ([member "
+"corner_detail] = 1), it is recommended to set [member anti_aliasing] to "
+"[code]false[/code] to ensure crisp visuals and avoid possible visual "
+"glitches."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"This changes the size of the faded ring. Higher values can be used to "
+"achieve a \"blurry\" effect."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "The background color of the stylebox."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "If [code]true[/code], the border will fade into the background color."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "Sets the color of the border."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "Border width for the bottom border."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "Border width for the left border."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "Border width for the right border."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "Border width for the top border."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"This sets the number of vertices used for each corner. Higher values result "
+"in rounder corners but take more processing power to compute. When choosing "
+"a value, you should take the corner radius ([method set_corner_radius_all]) "
+"into account.\n"
+"For corner radii less than 10, [code]4[/code] or [code]5[/code] should be "
+"enough. For corner radii less than 30, values between [code]8[/code] and "
+"[code]12[/code] should be enough.\n"
+"A corner detail of [code]1[/code] will result in chamfered corners instead "
+"of rounded corners, which is useful for some artistic effects."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"The bottom-left corner's radius. If [code]0[/code], the corner is not "
+"rounded."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"The bottom-right corner's radius. If [code]0[/code], the corner is not "
+"rounded."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"The top-left corner's radius. If [code]0[/code], the corner is not rounded."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"The top-right corner's radius. If [code]0[/code], the corner is not rounded."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "Toggles drawing of the inner part of the stylebox."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Expands the stylebox outside of the control rect on the bottom edge. Useful "
+"in combination with [member border_width_bottom] to draw a border outside "
+"the control rect."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Expands the stylebox outside of the control rect on the left edge. Useful in "
+"combination with [member border_width_left] to draw a border outside the "
+"control rect."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Expands the stylebox outside of the control rect on the right edge. Useful "
+"in combination with [member border_width_right] to draw a border outside the "
+"control rect."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"Expands the stylebox outside of the control rect on the top edge. Useful in "
+"combination with [member border_width_top] to draw a border outside the "
+"control rect."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"The color of the shadow. This has no effect if [member shadow_size] is lower "
+"than 1."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid ""
+"The shadow offset in pixels. Adjusts the position of the shadow relatively "
+"to the stylebox."
+msgstr ""
+
+#: doc/classes/StyleBoxFlat.xml
+msgid "The shadow size in pixels."
+msgstr ""
+
+#: doc/classes/StyleBoxLine.xml
+msgid "[StyleBox] that displays a single line."
+msgstr ""
+
+#: doc/classes/StyleBoxLine.xml
+msgid ""
+"[StyleBox] that displays a single line of a given color and thickness. It "
+"can be used to draw things like separators."
+msgstr ""
+
+#: doc/classes/StyleBoxLine.xml
+msgid "The line's color."
+msgstr ""
+
+#: doc/classes/StyleBoxLine.xml
+msgid ""
+"The number of pixels the line will extend before the [StyleBoxLine]'s "
+"bounds. If set to a negative value, the line will begin inside the "
+"[StyleBoxLine]'s bounds."
+msgstr ""
+
+#: doc/classes/StyleBoxLine.xml
+msgid ""
+"The number of pixels the line will extend past the [StyleBoxLine]'s bounds. "
+"If set to a negative value, the line will end inside the [StyleBoxLine]'s "
+"bounds."
+msgstr ""
+
+#: doc/classes/StyleBoxLine.xml
+msgid "The line's thickness in pixels."
+msgstr ""
+
+#: doc/classes/StyleBoxLine.xml
+msgid ""
+"If [code]true[/code], the line will be vertical. If [code]false[/code], the "
+"line will be horizontal."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid "Texture-based nine-patch [StyleBox]."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Texture-based nine-patch [StyleBox], in a way similar to [NinePatchRect]. "
+"This stylebox performs a 3×3 scaling of a texture, where only the center "
+"cell is fully stretched. This makes it possible to design bordered styles "
+"regardless of the stylebox's size."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Returns the size of the given [code]margin[/code]. See [enum Margin] for "
+"possible values."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Sets the margin to [code]size[/code] pixels for the given [code]margin[/"
+"code]. See [enum Margin] for possible values."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Controls how the stylebox's texture will be stretched or tiled horizontally. "
+"See [enum AxisStretchMode] for possible values."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Controls how the stylebox's texture will be stretched or tiled vertically. "
+"See [enum AxisStretchMode] for possible values."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"If [code]true[/code], the nine-patch texture's center tile will be drawn."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Expands the bottom margin of this style box when drawing, causing it to be "
+"drawn larger than requested."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Expands the left margin of this style box when drawing, causing it to be "
+"drawn larger than requested."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Expands the right margin of this style box when drawing, causing it to be "
+"drawn larger than requested."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Expands the top margin of this style box when drawing, causing it to be "
+"drawn larger than requested."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Increases the bottom margin of the 3×3 texture box.\n"
+"A higher value means more of the source texture is considered to be part of "
+"the bottom border of the 3×3 box.\n"
+"This is also the value used as fallback for [member StyleBox."
+"content_margin_bottom] if it is negative."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Increases the left margin of the 3×3 texture box.\n"
+"A higher value means more of the source texture is considered to be part of "
+"the left border of the 3×3 box.\n"
+"This is also the value used as fallback for [member StyleBox."
+"content_margin_left] if it is negative."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Increases the right margin of the 3×3 texture box.\n"
+"A higher value means more of the source texture is considered to be part of "
+"the right border of the 3×3 box.\n"
+"This is also the value used as fallback for [member StyleBox."
+"content_margin_right] if it is negative."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Increases the top margin of the 3×3 texture box.\n"
+"A higher value means more of the source texture is considered to be part of "
+"the top border of the 3×3 box.\n"
+"This is also the value used as fallback for [member StyleBox."
+"content_margin_top] if it is negative."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid "Modulates the color of the texture when this style box is drawn."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"The normal map to use when drawing this style box.\n"
+"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
+"See [url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
+"a comparison of normal map coordinates expected by popular engines."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Species a sub-region of the texture to use.\n"
+"This is equivalent to first wrapping the texture in an [AtlasTexture] with "
+"the same region."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid "The texture to use when drawing this style box."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid "Emitted when the stylebox's texture is changed."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Stretch the stylebox's texture. This results in visible distortion unless "
+"the texture size matches the stylebox's size perfectly."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Repeats the stylebox's texture to match the stylebox's size according to the "
+"nine-patch system."
+msgstr ""
+
+#: doc/classes/StyleBoxTexture.xml
+msgid ""
+"Repeats the stylebox's texture to match the stylebox's size according to the "
+"nine-patch system. Unlike [constant AXIS_STRETCH_MODE_TILE], the texture may "
+"be slightly stretched to make the nine-patch texture tile seamlessly."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid "Helper tool to create geometry."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"The [SurfaceTool] is used to construct a [Mesh] by specifying vertex "
+"attributes individually. It can be used to construct a [Mesh] from a script. "
+"All properties except indices need to be added before calling [method "
+"add_vertex]. For example, to add vertex colors and UVs:\n"
+"[codeblock]\n"
+"var st = SurfaceTool.new()\n"
+"st.begin(Mesh.PRIMITIVE_TRIANGLES)\n"
+"st.add_color(Color(1, 0, 0))\n"
+"st.add_uv(Vector2(0, 0))\n"
+"st.add_vertex(Vector3(0, 0, 0))\n"
+"[/codeblock]\n"
+"The above [SurfaceTool] now contains one vertex of a triangle which has a UV "
+"coordinate and a specified [Color]. If another vertex were added without "
+"calling [method add_uv] or [method add_color], then the last values would be "
+"used.\n"
+"Vertex attributes must be passed [b]before[/b] calling [method add_vertex]. "
+"Failure to do so will result in an error when committing the vertex "
+"information to a mesh.\n"
+"Additionally, the attributes used before the first vertex is added determine "
+"the format of the mesh. For example, if you only add UVs to the first "
+"vertex, you cannot add color to any of the subsequent vertices.\n"
+"See also [ArrayMesh], [ImmediateGeometry] and [MeshDataTool] for procedural "
+"geometry generation.\n"
+"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-"
+"OpenGL/Face-culling]winding order[/url] for front faces of triangle "
+"primitive modes."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Specifies an array of bones to use for the [i]next[/i] vertex. [code]bones[/"
+"code] must contain 4 integers."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Specifies a [Color] to use for the [i]next[/i] vertex. If every vertex needs "
+"to have this information set and you fail to submit it for the first vertex, "
+"this information may not be used at all.\n"
+"[b]Note:[/b] The material must have [member SpatialMaterial."
+"vertex_color_use_as_albedo] enabled for the vertex color to be visible."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Adds an index to index array if you are using indexed vertices. Does not "
+"need to be called before adding vertices."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Specifies a normal to use for the [i]next[/i] vertex. If every vertex needs "
+"to have this information set and you fail to submit it for the first vertex, "
+"this information may not be used at all."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Specifies whether the current vertex (if using only vertex arrays) or "
+"current index (if also using index arrays) should use smooth normals for "
+"normal calculation."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Specifies a tangent to use for the [i]next[/i] vertex. If every vertex needs "
+"to have this information set and you fail to submit it for the first vertex, "
+"this information may not be used at all."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Inserts a triangle fan made of array data into [Mesh] being constructed.\n"
+"Requires the primitive type be set to [constant Mesh.PRIMITIVE_TRIANGLES]."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Specifies a set of UV coordinates to use for the [i]next[/i] vertex. If "
+"every vertex needs to have this information set and you fail to submit it "
+"for the first vertex, this information may not be used at all."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Specifies an optional second set of UV coordinates to use for the [i]next[/"
+"i] vertex. If every vertex needs to have this information set and you fail "
+"to submit it for the first vertex, this information may not be used at all."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Specifies the position of current vertex. Should be called after specifying "
+"other vertex properties (e.g. Color, UV)."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Specifies weight values to use for the [i]next[/i] vertex. [code]weights[/"
+"code] must contain 4 values. If every vertex needs to have this information "
+"set and you fail to submit it for the first vertex, this information may not "
+"be used at all."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Append vertices from a given [Mesh] surface onto the current vertex array "
+"with specified [Transform].\n"
+"[b]Note:[/b] Using [method append_from] on a [Thread] is much slower as the "
+"GPU must communicate data back to the CPU, while also causing the main "
+"thread to stall (as OpenGL is not thread-safe). Consider requesting a copy "
+"of the mesh, converting it to an [ArrayMesh] and adding vertices manually "
+"instead."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Called before adding any vertices. Takes the primitive type as an argument "
+"(e.g. [constant Mesh.PRIMITIVE_TRIANGLES])."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid "Clear all information passed into the surface tool so far."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Returns a constructed [ArrayMesh] from current information passed in. If an "
+"existing [ArrayMesh] is passed in as an argument, will add an extra surface "
+"to the existing [ArrayMesh].\n"
+"Default flag is [constant Mesh.ARRAY_COMPRESS_DEFAULT] if compression is "
+"enabled. If compression is disabled the default flag is [constant Mesh."
+"ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION]. See [code]ARRAY_COMPRESS_*[/code] "
+"constants in [enum Mesh.ArrayFormat] for other flags."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Commits the data to the same format used by [method ArrayMesh."
+"add_surface_from_arrays]. This way you can further process the mesh data "
+"using the [ArrayMesh] API."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid "Creates a vertex array from an existing [Mesh]."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Creates a vertex array from the specified blend shape of an existing [Mesh]. "
+"This can be used to extract a specific pose from a blend shape."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid "Removes the index array by expanding the vertex array."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Generates normals from vertices so you do not have to do it manually. If "
+"[code]flip[/code] is [code]true[/code], the resulting normals will be "
+"inverted. [method generate_normals] should be called [i]after[/i] generating "
+"geometry and [i]before[/i] committing the mesh using [method commit] or "
+"[method commit_to_arrays]. For correct display of normal-mapped surfaces, "
+"you will also have to generate tangents using [method generate_tangents].\n"
+"[b]Note:[/b] [method generate_normals] only works if the primitive type to "
+"be set to [constant Mesh.PRIMITIVE_TRIANGLES]."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Generates a tangent vector for each vertex. Requires that each vertex have "
+"UVs and normals set already (see [method generate_normals])."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid ""
+"Shrinks the vertex array by creating an index array. This can improve "
+"performance by avoiding vertex reuse."
+msgstr ""
+
+#: doc/classes/SurfaceTool.xml
+msgid "Sets [Material] to be used by the [Mesh] you are constructing."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "Tabbed container."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"Arranges [Control] children into a tabbed view, creating a tab for each one. "
+"The active tab's corresponding [Control] has its [code]visible[/code] "
+"property set to [code]true[/code], and all other children's to [code]false[/"
+"code].\n"
+"Ignores non-[Control] children.\n"
+"[b]Note:[/b] The drawing of the clickable tabs themselves is handled by this "
+"node. Adding [Tabs] as children is not needed."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "Returns the child [Control] node located at the active tab index."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"Returns the [Popup] node instance if one has been set already with [method "
+"set_popup].\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "Returns the previously active tab index."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "Returns the [Control] node from the tab at index [code]tab_idx[/code]."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "Returns the number of tabs."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid ""
+"Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is "
+"disabled."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is hidden."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid ""
+"Returns the [Texture] for the tab at index [code]tab_idx[/code] or "
+"[code]null[/code] if the tab has no [Texture]."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"Returns the index of the tab at local coordinates [code]point[/code]. "
+"Returns [code]-1[/code] if the point is outside the control boundaries or if "
+"there's no tab at the queried position."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"Returns the title of the tab at index [code]tab_idx[/code]. Tab titles "
+"default to the name of the indexed child node, but this can be overridden "
+"with [method set_tab_title]."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "Returns the [TabContainer] rearrange group id."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"If set on a [Popup] node instance, a popup menu icon appears in the top-"
+"right corner of the [TabContainer]. Clicking it will expand the [Popup] node."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid ""
+"If [code]disabled[/code] is [code]true[/code], disables the tab at index "
+"[code]tab_idx[/code], making it non-interactable."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"If [code]hidden[/code] is [code]true[/code], hides the tab at index "
+"[code]tab_idx[/code], making it disappear from the tab area."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "Sets an icon for the tab at index [code]tab_idx[/code]."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"Sets a title for the tab at index [code]tab_idx[/code]. Tab titles default "
+"to the name of the indexed child node."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"Defines rearrange group id, choose for each [TabContainer] the same value to "
+"enable tab drag between [TabContainer]. Enable drag with [member "
+"drag_to_rearrange_enabled]."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"If [code]true[/code], all tabs are drawn in front of the panel. If "
+"[code]false[/code], inactive tabs are drawn behind the panel."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"The current tab index. When set, this index's [Control] node's "
+"[code]visible[/code] property is set to [code]true[/code] and all others are "
+"set to [code]false[/code]."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "If [code]true[/code], tabs can be rearranged with mouse drag."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"The alignment of all tabs in the tab container. See the [enum TabAlign] "
+"constants for details."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"If [code]true[/code], tabs are visible. If [code]false[/code], tabs' content "
+"and titles are hidden."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"If [code]true[/code], children [Control] nodes that are hidden have their "
+"minimum size take into account in the total, instead of only the currently "
+"visible one."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"Emitted when the [TabContainer]'s [Popup] button is clicked. See [method "
+"set_popup] for details."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "Emitted when switching to another tab."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "Emitted when a tab is selected, even if it is the current tab."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "Align the tabs to the left."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "Align the tabs to the center."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "Align the tabs to the right."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "Font color of inactive tabs."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "Font color of disabled tabs."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "Font color of the currently selected tab."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "Horizontal separation between tabs."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "The space at the left and right edges of the tab bar."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "The font used to draw tab names."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid ""
+"Icon for the left arrow button that appears when there are too many tabs to "
+"fit in the container width. When the button is disabled (i.e. the first tab "
+"is visible), it appears semi-transparent."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid ""
+"Icon for the left arrow button that appears when there are too many tabs to "
+"fit in the container width. Used when the button is being hovered with the "
+"cursor."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid ""
+"Icon for the right arrow button that appears when there are too many tabs to "
+"fit in the container width. When the button is disabled (i.e. the last tab "
+"is visible) it appears semi-transparent."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid ""
+"Icon for the right arrow button that appears when there are too many tabs to "
+"fit in the container width. Used when the button is being hovered with the "
+"cursor."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "The icon for the menu button (see [method set_popup])."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid ""
+"The icon for the menu button (see [method set_popup]) when it's being "
+"hovered with the cursor."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "The style for the background fill."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "The style of inactive tabs."
+msgstr ""
+
+#: doc/classes/TabContainer.xml
+msgid "The style of disabled tabs."
+msgstr ""
+
+#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
+msgid "The style of the currently selected tab."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Tabs control."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid ""
+"Simple tabs control, similar to [TabContainer] but is only in charge of "
+"drawing tabs, not interacting with children."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Adds a new tab."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Moves the scroll view to make the tab visible."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid ""
+"Returns [code]true[/code] if the offset buttons (the ones that appear when "
+"there's not enough space for all tabs) are visible."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Returns [code]true[/code] if select with right mouse button is enabled."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Returns the number of hidden tabs offsetted to the left."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Returns tab [Rect2] with local position and size."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Returns the title of the tab at index [code]tab_idx[/code]."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Returns the [Tabs]' rearrange group ID."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Moves a tab from [code]from[/code] to [code]to[/code]."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Removes the tab at index [code]tab_idx[/code]."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid ""
+"If [code]true[/code], enables selecting a tab with the right mouse button."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Sets an [code]icon[/code] for the tab at index [code]tab_idx[/code]."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Sets a [code]title[/code] for the tab at index [code]tab_idx[/code]."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid ""
+"Defines the rearrange group ID. Choose for each [Tabs] the same value to "
+"dragging tabs between [Tabs]. Enable drag with [member "
+"drag_to_rearrange_enabled]."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Select tab at index [code]tab_idx[/code]."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid ""
+"if [code]true[/code], the mouse's scroll wheel can be used to navigate the "
+"scroll view."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "The alignment of all tabs. See [enum TabAlign] for details."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid ""
+"Sets when the close button will appear on the tabs. See [enum "
+"CloseButtonDisplayPolicy] for details."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid ""
+"Emitted when the active tab is rearranged via mouse drag. See [member "
+"drag_to_rearrange_enabled]."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Emitted when a tab is right-clicked."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Emitted when a tab is clicked, even if it is the current tab."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Emitted when a tab is closed."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Emitted when a tab is hovered by the mouse."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Represents the size of the [enum TabAlign] enum."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Never show the close buttons."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Only show the close button on the currently active tab."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Show the close button on all tabs."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Represents the size of the [enum CloseButtonDisplayPolicy] enum."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "The horizontal separation between the tabs."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "The icon for the close button (see [member tab_close_display_policy])."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Background of the close button when it's being hovered with the cursor."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "Background of the close button when it's being pressed."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "The style of an inactive tab."
+msgstr ""
+
+#: doc/classes/Tabs.xml
+msgid "The style of a disabled tab"
+msgstr ""
+
+#: doc/classes/TCP_Server.xml
+msgid "A TCP server."
+msgstr ""
+
+#: doc/classes/TCP_Server.xml
+msgid ""
+"A TCP server. Listens to connections on a port and returns a [StreamPeerTCP] "
+"when it gets an incoming connection."
+msgstr ""
+
+#: doc/classes/TCP_Server.xml
+msgid "Returns [code]true[/code] if a connection is available for taking."
+msgstr ""
+
+#: doc/classes/TCP_Server.xml
+msgid ""
+"Returns [code]true[/code] if the server is currently listening for "
+"connections."
+msgstr ""
+
+#: doc/classes/TCP_Server.xml
+msgid ""
+"Listen on the [code]port[/code] binding to [code]bind_address[/code].\n"
+"If [code]bind_address[/code] is set as [code]\"*\"[/code] (default), the "
+"server will listen on all available addresses (both IPv4 and IPv6).\n"
+"If [code]bind_address[/code] is set as [code]\"0.0.0.0\"[/code] (for IPv4) "
+"or [code]\"::\"[/code] (for IPv6), the server will listen on all available "
+"addresses matching that IP type.\n"
+"If [code]bind_address[/code] is set to any valid address (e.g. "
+"[code]\"192.168.1.101\"[/code], [code]\"::1\"[/code], etc), the server will "
+"only listen on the interface with that addresses (or fail if no interface "
+"with the given address exists)."
+msgstr ""
+
+#: doc/classes/TCP_Server.xml
+msgid "Stops listening."
+msgstr ""
+
+#: doc/classes/TCP_Server.xml
+msgid ""
+"If a connection is available, returns a StreamPeerTCP with the connection."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Multiline text editing control."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"TextEdit is meant for editing large, multiline text. It also has facilities "
+"for editing code, such as syntax highlighting support and multiple levels of "
+"undo/redo.\n"
+"[b]Note:[/b] When holding down [code]Alt[/code], the vertical scroll wheel "
+"will scroll 5 times as fast as it would normally do. This also works in the "
+"Godot script editor."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Adds color region (given the delimiters) and its colors."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Adds a [code]keyword[/code] and its [Color]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns if the given line is foldable, that is, it has indented lines right "
+"below it."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Centers the viewport on the line the editing cursor is at. This also resets "
+"the [member scroll_horizontal] value to [code]0[/code]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Clears all custom syntax coloring information previously added with [method "
+"add_color_region] or [method add_keyword_color]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Clears the undo history."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Copy's the current text selection."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the column the editing cursor is at."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the line the editing cursor is at."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Moves the cursor at the specified [code]column[/code] index.\n"
+"If [code]adjust_viewport[/code] is set to [code]true[/code], the viewport "
+"will center at the cursor position after the move occurs."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Moves the cursor at the specified [code]line[/code] index.\n"
+"If [code]adjust_viewport[/code] is set to [code]true[/code], the viewport "
+"will center at the cursor position after the move occurs.\n"
+"If [code]can_be_hidden[/code] is set to [code]true[/code], the specified "
+"[code]line[/code] can be hidden using [method set_line_as_hidden]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Cut's the current selection."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Deselects the current selection."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Folds all lines that are possible to be folded (see [method can_fold])."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Folds the given line, if possible (see [method can_fold])."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns an array containing the line number of each breakpoint."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the [Color] of the specified [code]keyword[/code]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the text of a specific line."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns the line and column at the given position. In the returned vector, "
+"[code]x[/code] is the column, [code]y[/code] is the line."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the amount of total lines in the text."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the height of a largest line."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns the width in pixels of the [code]wrap_index[/code] on [code]line[/"
+"code]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the number of times the given line is wrapped."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns an array of [String]s representing each wrapped index."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns the [PopupMenu] of this [TextEdit]. By default, this menu is "
+"displayed when right-clicking on the [TextEdit].\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns the local position for the given [code]line[/code] and [code]column[/"
+"code]. If [code]x[/code] or [code]y[/code] of the returned vector equal "
+"[code]-1[/code], the position is outside of the viewable area of the "
+"control.\n"
+"[b]Note:[/b] The Y position corresponds to the bottom side of the line. Use "
+"[method get_rect_at_line_column] to get the top side position."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns the local position and size for the grapheme at the given "
+"[code]line[/code] and [code]column[/code]. If [code]x[/code] or [code]y[/"
+"code] position of the returned rect equal [code]-1[/code], the position is "
+"outside of the viewable area of the control.\n"
+"[b]Note:[/b] The Y position of the returned rect corresponds to the top side "
+"of the line, unlike [method get_pos_at_line_column] which returns the bottom "
+"side."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the selection begin column."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the selection begin line."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the text inside the selection."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the selection end column."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the selection end line."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns the total width of all gutters and internal padding."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns a [String] text with the word under the caret (text cursor) location."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns whether the specified [code]keyword[/code] has a color set to it or "
+"not."
+msgstr ""
+
+#: doc/classes/TextEdit.xml doc/classes/UndoRedo.xml
+msgid "Returns [code]true[/code] if a \"redo\" action is available."
+msgstr ""
+
+#: doc/classes/TextEdit.xml doc/classes/UndoRedo.xml
+msgid "Returns [code]true[/code] if an \"undo\" action is available."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Insert the specified text at the cursor position."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns whether the line at the specified index is folded or not."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns whether the line at the specified index is hidden or not."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns [code]true[/code] when the specified [code]line[/code] is bookmarked."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns [code]true[/code] when the specified [code]line[/code] has a "
+"breakpoint."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Returns [code]true[/code] when the specified [code]line[/code] is marked as "
+"safe."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns if the given line is wrapped."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Returns [code]true[/code] if the selection is active."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Triggers a right-click menu action by the specified index. See [enum "
+"MenuItems] for a list of available indexes."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Paste the current selection."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Perform redo operation."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Removes all the breakpoints. This will not fire the [signal "
+"breakpoint_toggled] signal."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Perform a search inside the text. Search flags can be specified in the [enum "
+"SearchFlags] enum.\n"
+"Returns an empty [code]PoolIntArray[/code] if no result was found. "
+"Otherwise, the result line and column can be accessed at indices specified "
+"in the [enum SearchResult] enum, e.g:\n"
+"[codeblock]\n"
+"var result = search(key, flags, line, column)\n"
+"if result.size() > 0:\n"
+" # Result found.\n"
+" var res_line = result[TextEdit.SEARCH_RESULT_LINE]\n"
+" var res_column = result[TextEdit.SEARCH_RESULT_COLUMN]\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Perform selection, from line/column to line/column.\n"
+"If [member selecting_enabled] is [code]false[/code], no selection will occur."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Select all the text.\n"
+"If [member selecting_enabled] is [code]false[/code], no selection will occur."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Sets the text for a specific line."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Bookmarks the [code]line[/code] if [code]bookmark[/code] is true. Deletes "
+"the bookmark if [code]bookmark[/code] is false.\n"
+"Bookmarks are shown in the [member breakpoint_gutter]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Adds or removes the breakpoint in [code]line[/code]. Breakpoints are shown "
+"in the [member breakpoint_gutter]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "If [code]true[/code], hides the line of the specified index."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], marks the [code]line[/code] as safe.\n"
+"This will show the line number with the color provided in the "
+"[code]safe_line_number_color[/code] theme property."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Toggle the folding of the code block at the given line."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Perform undo operation."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Unfolds the given line, if folded."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Unhide all lines that were previously set to hidden by [method "
+"set_line_as_hidden]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "If [code]true[/code], the bookmark gutter is visible."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "If [code]true[/code], the breakpoint gutter is visible."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], the caret displays as a rectangle.\n"
+"If [code]false[/code], the caret displays as a bar."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], a right-click moves the cursor at the mouse position "
+"before displaying the context menu.\n"
+"If [code]false[/code], the context menu disregards mouse location."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "If [code]true[/code], a right-click displays the context menu."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], the \"space\" character will have a visible "
+"representation."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], the \"tab\" character will have a visible "
+"representation."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], the fold gutter is visible. This enables folding "
+"groups of indented lines."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], all lines that have been set to hidden by [method "
+"set_line_as_hidden], will not be visible."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], all occurrences of the selected text will be "
+"highlighted."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "If [code]true[/code], the line containing the cursor is highlighted."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], a minimap is shown, providing an outline of your "
+"source code."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "The width, in pixels, of the minimap."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], custom [code]font_color_selected[/code] will be used "
+"for selected text."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], read-only mode is enabled. Existing text cannot be "
+"modified and new text cannot be added."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If there is a horizontal scrollbar, this determines the current horizontal "
+"scroll value in pixels."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If there is a vertical scrollbar, this determines the current vertical "
+"scroll value in line numbers, starting at 0 for the top line."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], text can be selected.\n"
+"If [code]false[/code], text can not be selected by the user or by the "
+"[method select] or [method select_all] methods."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], shortcut keys for context menu items are enabled, even "
+"if the context menu is disabled."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], line numbers are displayed to the left of the text."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], sets the [code]step[/code] of the scrollbars to "
+"[code]0.25[/code] which results in smoother scrolling."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], any custom color properties that have been set for "
+"this [TextEdit] will be visible."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "String value of the [TextEdit]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Vertical scroll sensitivity."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"If [code]true[/code], enables text wrapping when it goes beyond the edge of "
+"what is visible."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Emitted when a breakpoint is placed via the breakpoint gutter."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Emitted when the cursor changes."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Emitted when the info icon is clicked."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Match case when searching."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Match whole words when searching."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Search from end to beginning."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Used to access the result column from [method search]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Used to access the result line from [method search]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Pastes the clipboard text over the selected text (or at the cursor's "
+"position)."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Erases the whole [TextEdit] text."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Selects the whole [TextEdit] text."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Redoes the previous action."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Sets the background [Color] of this [TextEdit]. [member syntax_highlighting] "
+"has to be enabled."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Sets the [Color] of the bookmark marker. [member syntax_highlighting] has to "
+"be enabled."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Sets the [Color] of the breakpoints. [member breakpoint_gutter] has to be "
+"enabled."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Sets the font [Color]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Sets the [Color] of the selected text. [member override_selected_font_color] "
+"has to be enabled."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Sets the [Color] of the line numbers. [member show_line_numbers] has to be "
+"enabled."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Sets the [Color] of marked text."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Sets the highlight [Color] of text selections."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Sets the highlight [Color] of multiple occurrences. [member "
+"highlight_all_occurrences] has to be enabled."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Sets the spacing between the lines."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Sets the default [Font]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Sets a custom [Texture] for tab text characters."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid "Sets the [StyleBox] of this [TextEdit]."
+msgstr ""
+
+#: doc/classes/TextEdit.xml
+msgid ""
+"Sets the [StyleBox] of this [TextEdit] when [member readonly] is enabled."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid "Texture for 2D and 3D."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid ""
+"A texture works by registering an image in the video hardware, which then "
+"can be used in 3D models or 2D [Sprite] or GUI [Control].\n"
+"Textures are often created by loading them from a file. See [method "
+"@GDScript.load].\n"
+"[Texture] is a base for other resources. It cannot be used directly.\n"
+"[b]Note:[/b] The maximum texture size is 16384×16384 pixels due to graphics "
+"hardware limitations. Larger textures may fail to import."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid ""
+"Draws the texture using a [CanvasItem] with the [VisualServer] API at the "
+"specified [code]position[/code]. Equivalent to [method VisualServer."
+"canvas_item_add_texture_rect] with a rect at [code]position[/code] and the "
+"size of this [Texture]."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid ""
+"Draws the texture using a [CanvasItem] with the [VisualServer] API. "
+"Equivalent to [method VisualServer.canvas_item_add_texture_rect]."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid ""
+"Draws a part of the texture using a [CanvasItem] with the [VisualServer] "
+"API. Equivalent to [method VisualServer.canvas_item_add_texture_rect_region]."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid ""
+"Returns an [Image] that is a copy of data from this [Texture]. [Image]s can "
+"be accessed and manipulated directly."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid "Returns the texture height."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid "Returns the texture size."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid "Returns the texture width."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid "Returns [code]true[/code] if this [Texture] has an alpha channel."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid ""
+"The texture's [enum Flags]. [enum Flags] are used to set various properties "
+"of the [Texture]."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid ""
+"Default flags. [constant FLAG_MIPMAPS], [constant FLAG_REPEAT] and [constant "
+"FLAG_FILTER] are enabled."
+msgstr ""
+
+#: doc/classes/Texture.xml doc/classes/VisualServer.xml
+msgid ""
+"Generates mipmaps, which are smaller versions of the same texture to use "
+"when zoomed out, keeping the aspect ratio."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid ""
+"Repeats the texture (instead of clamp to edge).\n"
+"[b]Note:[/b] Ignored when using an [AtlasTexture] as these don't support "
+"repetition."
+msgstr ""
+
+#: doc/classes/Texture.xml doc/classes/VisualServer.xml
+msgid "Uses a magnifying filter, to enable smooth zooming in of the texture."
+msgstr ""
+
+#: doc/classes/Texture.xml doc/classes/TextureLayered.xml
+#: doc/classes/VisualServer.xml
+msgid ""
+"Uses anisotropic mipmap filtering. Generates smaller versions of the same "
+"texture with different aspect ratios.\n"
+"This results in better-looking textures when viewed from oblique angles."
+msgstr ""
+
+#: doc/classes/Texture.xml doc/classes/VisualServer.xml
+msgid "Converts the texture to the sRGB color space."
+msgstr ""
+
+#: doc/classes/Texture.xml
+msgid ""
+"Repeats the texture with alternate sections mirrored.\n"
+"[b]Note:[/b] Ignored when using an [AtlasTexture] as these don't support "
+"repetition."
+msgstr ""
+
+#: doc/classes/Texture.xml doc/classes/VisualServer.xml
+msgid "Texture is a video surface."
+msgstr ""
+
+#: doc/classes/Texture3D.xml
+msgid "Texture with 3 dimensions."
+msgstr ""
+
+#: doc/classes/Texture3D.xml
+msgid ""
+"Texture3D is a 3-dimensional [Texture] that has a width, height, and depth. "
+"See also [TextureArray].\n"
+"[b]Note:[/b] [Texture3D]s can only be sampled in shaders in the GLES3 "
+"backend. In GLES2, their data can be accessed via scripting, but there is no "
+"way to render them in a hardware-accelerated manner."
+msgstr ""
+
+#: doc/classes/Texture3D.xml
+msgid ""
+"Creates the Texture3D with specified [code]width[/code], [code]height[/"
+"code], and [code]depth[/code]. See [enum Image.Format] for [code]format[/"
+"code] options. See [enum TextureLayered.Flags] enumerator for [code]flags[/"
+"code] options."
+msgstr ""
+
+#: doc/classes/TextureArray.xml
+msgid "Array of textures stored in a single primitive."
+msgstr ""
+
+#: doc/classes/TextureArray.xml
+msgid ""
+"[TextureArray]s store an array of [Image]s in a single [Texture] primitive. "
+"Each layer of the texture array has its own mipmap chain. This makes it is a "
+"good alternative to texture atlases. See also [Texture3D].\n"
+"[TextureArray]s must be displayed using shaders. After importing your file "
+"as a [TextureArray] and setting the appropriate Horizontal and Vertical "
+"Slices, display it by setting it as a uniform to a shader, for example "
+"(2D):\n"
+"[codeblock]\n"
+"shader_type canvas_item;\n"
+"\n"
+"uniform sampler2DArray tex;\n"
+"uniform int index;\n"
+"\n"
+"void fragment() {\n"
+" COLOR = texture(tex, vec3(UV.x, UV.y, float(index)));\n"
+"}\n"
+"[/codeblock]\n"
+"Set the integer uniform \"index\" to show a particular part of the texture "
+"as defined by the Horizontal and Vertical Slices in the importer.\n"
+"[b]Note:[/b] When sampling an albedo texture from a texture array in 3D, the "
+"sRGB -> linear conversion hint ([code]hint_albedo[/code]) should be used to "
+"prevent colors from looking washed out:\n"
+"[codeblock]\n"
+"shader_type spatial;\n"
+"\n"
+"uniform sampler2DArray tex : hint_albedo;\n"
+"uniform int index;\n"
+"\n"
+"void fragment() {\n"
+" ALBEDO = texture(tex, vec3(UV.x, UV.y, float(index)));\n"
+"}\n"
+"[/codeblock]\n"
+"[b]Note:[/b] [TextureArray]s can only be sampled in shaders in the GLES3 "
+"backend. In GLES2, their data can be accessed via scripting, but there is no "
+"way to render them in a hardware-accelerated manner."
+msgstr ""
+
+#: doc/classes/TextureArray.xml
+msgid ""
+"Creates the TextureArray with specified [code]width[/code], [code]height[/"
+"code], and [code]depth[/code]. See [enum Image.Format] for [code]format[/"
+"code] options. See [enum TextureLayered.Flags] enumerator for [code]flags[/"
+"code] options."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid ""
+"Texture-based button. Supports Pressed, Hover, Disabled and Focused states."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid ""
+"[TextureButton] has the same functionality as [Button], except it uses "
+"sprites instead of Godot's [Theme] resource. It is faster to create, but it "
+"doesn't support localization like more complex [Control]s.\n"
+"The \"normal\" state must contain a texture ([member texture_normal]); other "
+"textures are optional.\n"
+"See also [BaseButton] which contains common properties and methods "
+"associated with this node."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid ""
+"If [code]true[/code], the texture stretches to the edges of the node's "
+"bounding rectangle using the [member stretch_mode]. If [code]false[/code], "
+"the texture will not scale with the node."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid ""
+"Controls the texture's behavior when you resize the node's bounding "
+"rectangle, [b]only if[/b] [member expand] is [code]true[/code]. Set it to "
+"one of the [enum StretchMode] constants. See the constants to learn more."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid ""
+"Pure black and white [BitMap] image to use for click detection. On the mask, "
+"white pixels represent the button's clickable area. Use it to create buttons "
+"with curved shapes."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid ""
+"Texture to display when the node is disabled. See [member BaseButton."
+"disabled]."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid "Texture to display when the node has mouse or keyboard focus."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid "Texture to display when the mouse hovers the node."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid ""
+"Texture to display by default, when the node is [b]not[/b] in the disabled, "
+"focused, hover or pressed state."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid ""
+"Texture to display on mouse down over the node, if the node has keyboard "
+"focus and the player presses the Enter key or if the player presses the "
+"[member BaseButton.shortcut] key."
+msgstr ""
+
+#: doc/classes/TextureButton.xml doc/classes/TextureRect.xml
+msgid "Scale to fit the node's bounding rectangle."
+msgstr ""
+
+#: doc/classes/TextureButton.xml doc/classes/TextureRect.xml
+msgid "Tile inside the node's bounding rectangle."
+msgstr ""
+
+#: doc/classes/TextureButton.xml doc/classes/TextureRect.xml
+msgid ""
+"The texture keeps its original size and stays in the bounding rectangle's "
+"top-left corner."
+msgstr ""
+
+#: doc/classes/TextureButton.xml doc/classes/TextureRect.xml
+msgid ""
+"The texture keeps its original size and stays centered in the node's "
+"bounding rectangle."
+msgstr ""
+
+#: doc/classes/TextureButton.xml doc/classes/TextureRect.xml
+msgid ""
+"Scale the texture to fit the node's bounding rectangle, but maintain the "
+"texture's aspect ratio."
+msgstr ""
+
+#: doc/classes/TextureButton.xml
+msgid ""
+"Scale the texture to fit the node's bounding rectangle, center it, and "
+"maintain its aspect ratio."
+msgstr ""
+
+#: doc/classes/TextureButton.xml doc/classes/TextureRect.xml
+msgid ""
+"Scale the texture so that the shorter side fits the bounding rectangle. The "
+"other side clips to the node's limits."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid "Base class for 3D texture types."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid ""
+"Base class for [Texture3D] and [TextureArray]. Cannot be used directly, but "
+"contains all the functions necessary for accessing and using [Texture3D] and "
+"[TextureArray]. Data is set on a per-layer basis. For [Texture3D]s, the "
+"layer specifies the depth or Z-index, they can be treated as a bunch of 2D "
+"slices. Similarly, for [TextureArray]s, the layer specifies the array layer."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid ""
+"Returns the depth of the texture. Depth is the 3rd dimension (typically Z-"
+"axis)."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid ""
+"Returns the current format being used by this texture. See [enum Image."
+"Format] for details."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid ""
+"Returns the height of the texture. Height is typically represented by the Y-"
+"axis."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid ""
+"Returns an [Image] resource with the data from specified [code]layer[/code]."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid ""
+"Returns the width of the texture. Width is typically represented by the X-"
+"axis."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid ""
+"Partially sets the data for a specified [code]layer[/code] by overwriting "
+"using the data of the specified [code]image[/code]. [code]x_offset[/code] "
+"and [code]y_offset[/code] determine where the [Image] is \"stamped\" over "
+"the texture. The [code]image[/code] must fit within the texture."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid ""
+"Sets the data for the specified layer. Data takes the form of a 2-"
+"dimensional [Image] resource."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid "Returns a dictionary with all the data used by this texture."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid "Specifies which [enum Flags] apply to this texture."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid ""
+"Default flags for [TextureArray]. [constant FLAG_MIPMAPS], [constant "
+"FLAG_REPEAT] and [constant FLAG_FILTER] are enabled."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid "Default flags for [Texture3D]. [constant FLAG_FILTER] is enabled."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid "Texture will generate mipmaps on creation."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid "Texture will repeat when UV used is outside the 0-1 range."
+msgstr ""
+
+#: doc/classes/TextureLayered.xml
+msgid ""
+"Use filtering when reading from texture. Filtering smooths out pixels. "
+"Turning filtering off is slightly faster and more appropriate when you need "
+"access to individual pixels."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"Texture-based progress bar. Useful for loading screens and life or stamina "
+"bars."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"TextureProgress works like [ProgressBar], but uses up to 3 textures instead "
+"of Godot's [Theme] resource. It can be used to create horizontal, vertical "
+"and radial progress bars."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid "The fill direction. See [enum FillMode] for possible values."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"If [code]true[/code], Godot treats the bar's textures like in "
+"[NinePatchRect]. Use the [code]stretch_margin_*[/code] properties like "
+"[member stretch_margin_bottom] to set up the nine patch's 3×3 grid. When "
+"using a radial [member fill_mode], this setting will enable stretching."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"Offsets [member texture_progress] if [member fill_mode] is [constant "
+"FILL_CLOCKWISE] or [constant FILL_COUNTER_CLOCKWISE]."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"Upper limit for the fill of [member texture_progress] if [member fill_mode] "
+"is [constant FILL_CLOCKWISE] or [constant FILL_COUNTER_CLOCKWISE]. When the "
+"node's [code]value[/code] is equal to its [code]max_value[/code], the "
+"texture fills up to this angle.\n"
+"See [member Range.value], [member Range.max_value]."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"Starting angle for the fill of [member texture_progress] if [member "
+"fill_mode] is [constant FILL_CLOCKWISE] or [constant "
+"FILL_COUNTER_CLOCKWISE]. When the node's [code]value[/code] is equal to its "
+"[code]min_value[/code], the texture doesn't show up at all. When the "
+"[code]value[/code] increases, the texture fills and tends towards [member "
+"radial_fill_degrees]."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's "
+"bottom corners and side will have a height of 16 pixels. You can set all 4 "
+"margin values individually to create panels with non-uniform borders."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid "The width of the 9-patch's left column."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid "The width of the 9-patch's right column."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid "The height of the 9-patch's top row."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"[Texture] that draws over the progress bar. Use it to add highlights or an "
+"upper-frame that hides part of [member texture_progress]."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"[Texture] that clips based on the node's [code]value[/code] and [member "
+"fill_mode]. As [code]value[/code] increased, the texture fills up. It shows "
+"entirely when [code]value[/code] reaches [code]max_value[/code]. It doesn't "
+"show at all if [code]value[/code] is equal to [code]min_value[/code].\n"
+"The [code]value[/code] property comes from [Range]. See [member Range."
+"value], [member Range.min_value], [member Range.max_value]."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"The offset of [member texture_progress]. Useful for [member texture_over] "
+"and [member texture_under] with fancy borders, to avoid transparent margins "
+"in your progress texture."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid "[Texture] that draws under the progress bar. The bar's background."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"Multiplies the color of the bar's [code]texture_over[/code] texture. The "
+"effect is similar to [member CanvasItem.modulate], except it only affects "
+"this specific texture instead of the entire node."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"Multiplies the color of the bar's [code]texture_progress[/code] texture."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid "Multiplies the color of the bar's [code]texture_under[/code] texture."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid "The [member texture_progress] fills from left to right."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid "The [member texture_progress] fills from right to left."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid "The [member texture_progress] fills from top to bottom."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid "The [member texture_progress] fills from bottom to top."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"Turns the node into a radial bar. The [member texture_progress] fills "
+"clockwise. See [member radial_center_offset], [member radial_initial_angle] "
+"and [member radial_fill_degrees] to control the way the bar fills up."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"Turns the node into a radial bar. The [member texture_progress] fills "
+"counterclockwise. See [member radial_center_offset], [member "
+"radial_initial_angle] and [member radial_fill_degrees] to control the way "
+"the bar fills up."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"The [member texture_progress] fills from the center, expanding both towards "
+"the left and the right."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"The [member texture_progress] fills from the center, expanding both towards "
+"the top and the bottom."
+msgstr ""
+
+#: doc/classes/TextureProgress.xml
+msgid ""
+"Turns the node into a radial bar. The [member texture_progress] fills "
+"radially from the center, expanding both clockwise and counterclockwise. See "
+"[member radial_center_offset], [member radial_initial_angle] and [member "
+"radial_fill_degrees] to control the way the bar fills up."
+msgstr ""
+
+#: doc/classes/TextureRect.xml
+msgid "Control for drawing textures."
+msgstr ""
+
+#: doc/classes/TextureRect.xml
+msgid ""
+"Used to draw icons and sprites in a user interface. The texture's placement "
+"can be controlled with the [member stretch_mode] property. It can scale, "
+"tile, or stay centered inside its bounding rectangle.\n"
+"[b]Note:[/b] You should enable [member flip_v] when using a TextureRect to "
+"display a [ViewportTexture]. Alternatively, you can enable [member Viewport."
+"render_target_v_flip] on the Viewport. Otherwise, the image will appear "
+"upside down."
+msgstr ""
+
+#: doc/classes/TextureRect.xml
+msgid "If [code]true[/code], the texture scales to fit its bounding rectangle."
+msgstr ""
+
+#: doc/classes/TextureRect.xml
+msgid ""
+"Controls the texture's behavior when resizing the node's bounding rectangle. "
+"See [enum StretchMode]."
+msgstr ""
+
+#: doc/classes/TextureRect.xml
+msgid "The node's [Texture] resource."
+msgstr ""
+
+#: doc/classes/TextureRect.xml
+msgid ""
+"Scale to fit the node's bounding rectangle, only if [code]expand[/code] is "
+"[code]true[/code]. Default [code]stretch_mode[/code], for backwards "
+"compatibility. Until you set [code]expand[/code] to [code]true[/code], the "
+"texture will behave like [constant STRETCH_KEEP]."
+msgstr ""
+
+#: doc/classes/TextureRect.xml
+msgid ""
+"Scale the texture to fit the node's bounding rectangle, center it and "
+"maintain its aspect ratio."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "Theme for controls."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"A theme for skinning controls. Controls can be skinned individually, but for "
+"complex applications, it's more practical to just create a global theme that "
+"defines everything. This theme can be applied to any [Control]; the Control "
+"and its children will automatically use it.\n"
+"Theme resources can alternatively be loaded by writing them in a [code]."
+"theme[/code] file, see the documentation for more information."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "$DOCS_URL/tutorials/ui/gui_skinning.html"
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "Clears all values on the theme."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Clears the [Color] at [code]name[/code] if the theme has [code]node_type[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Clears the constant at [code]name[/code] if the theme has [code]node_type[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Clears the [Font] at [code]name[/code] if the theme has [code]node_type[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Clears the icon at [code]name[/code] if the theme has [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Clears [StyleBox] at [code]name[/code] if the theme has [code]node_type[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Clears the theme item of [code]data_type[/code] at [code]name[/code] if the "
+"theme has [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "Sets the theme's values to a copy of the default theme values."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "Sets the theme's values to a copy of a given theme."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns the [Color] at [code]name[/code] if the theme has [code]node_type[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the [Color]s as a [PoolStringArray] filled with each [Color]'s "
+"name, for use in [method get_color], if the theme has [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the [Color] types as a [PoolStringArray] filled with unique type "
+"names, for use in [method get_color] and/or [method get_color_list]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns the constant at [code]name[/code] if the theme has [code]node_type[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the constants as a [PoolStringArray] filled with each constant's "
+"name, for use in [method get_constant], if the theme has [code]node_type[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the constant types as a [PoolStringArray] filled with unique "
+"type names, for use in [method get_constant] and/or [method "
+"get_constant_list]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns the [Font] at [code]name[/code] if the theme has [code]node_type[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the [Font]s as a [PoolStringArray] filled with each [Font]'s "
+"name, for use in [method get_font], if the theme has [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the [Font] types as a [PoolStringArray] filled with unique type "
+"names, for use in [method get_font] and/or [method get_font_list]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns the icon [Texture] at [code]name[/code] if the theme has "
+"[code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the icons as a [PoolStringArray] filled with each [Texture]'s "
+"name, for use in [method get_icon], if the theme has [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the icon types as a [PoolStringArray] filled with unique type "
+"names, for use in [method get_icon] and/or [method get_icon_list]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns the [StyleBox] at [code]name[/code] if the theme has "
+"[code]node_type[/code].\n"
+"Valid [code]name[/code]s may be found using [method get_stylebox_list]. "
+"Valid [code]node_type[/code]s may be found using [method get_stylebox_types]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the [StyleBox]s as a [PoolStringArray] filled with each "
+"[StyleBox]'s name, for use in [method get_stylebox], if the theme has "
+"[code]node_type[/code].\n"
+"Valid [code]node_type[/code]s may be found using [method get_stylebox_types]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the [StyleBox] types as a [PoolStringArray] filled with unique "
+"type names, for use in [method get_stylebox] and/or [method "
+"get_stylebox_list]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns the theme item of [code]data_type[/code] at [code]name[/code] if the "
+"theme has [code]node_type[/code].\n"
+"Valid [code]name[/code]s may be found using [method get_theme_item_list] or "
+"a data type specific method. Valid [code]node_type[/code]s may be found "
+"using [method get_theme_item_types] or a data type specific method."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the theme items of [code]data_type[/code] as a [PoolStringArray] "
+"filled with each theme items's name, for use in [method get_theme_item] or a "
+"data type specific method, if the theme has [code]node_type[/code].\n"
+"Valid [code]node_type[/code]s may be found using [method "
+"get_theme_item_types] or a data type specific method."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the theme items of [code]data_type[/code] types as a "
+"[PoolStringArray] filled with unique type names, for use in [method "
+"get_theme_item], [method get_theme_item_list] or data type specific methods."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns all the theme types as a [PoolStringArray] filled with unique type "
+"names, for use in other [code]get_*[/code] functions of this theme.\n"
+"[b]Note:[/b] [code]node_type[/code] has no effect and will be removed in "
+"future version."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns [code]true[/code] if [Color] with [code]name[/code] is in "
+"[code]node_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns [code]true[/code] if constant with [code]name[/code] is in "
+"[code]node_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns [code]true[/code] if this theme has a valid [member default_font] "
+"value."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns [code]true[/code] if [Font] with [code]name[/code] is in "
+"[code]node_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns [code]true[/code] if icon [Texture] with [code]name[/code] is in "
+"[code]node_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns [code]true[/code] if [StyleBox] with [code]name[/code] is in "
+"[code]node_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Returns [code]true[/code] if a theme item of [code]data_type[/code] with "
+"[code]name[/code] is in [code]node_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Adds missing and overrides existing definitions with values from the "
+"[code]other[/code] [Theme].\n"
+"[b]Note:[/b] This modifies the current theme. If you want to merge two "
+"themes together without modifying either one, create a new empty theme and "
+"merge the other two into it one after another."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Renames the [Color] at [code]old_name[/code] to [code]name[/code] if the "
+"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
+"this method fails."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Renames the constant at [code]old_name[/code] to [code]name[/code] if the "
+"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
+"this method fails."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Renames the [Font] at [code]old_name[/code] to [code]name[/code] if the "
+"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
+"this method fails."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Renames the icon at [code]old_name[/code] to [code]name[/code] if the theme "
+"has [code]node_type[/code]. If [code]name[/code] is already taken, this "
+"method fails."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Renames [StyleBox] at [code]old_name[/code] to [code]name[/code] if the "
+"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
+"this method fails."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Renames the theme item of [code]data_type[/code] at [code]old_name[/code] to "
+"[code]name[/code] if the theme has [code]node_type[/code]. If [code]name[/"
+"code] is already taken, this method fails."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Sets the theme's [Color] to [code]color[/code] at [code]name[/code] in "
+"[code]node_type[/code].\n"
+"Creates [code]node_type[/code] if the theme does not have it."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Sets the theme's constant to [code]constant[/code] at [code]name[/code] in "
+"[code]node_type[/code].\n"
+"Creates [code]node_type[/code] if the theme does not have it."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Sets the theme's [Font] to [code]font[/code] at [code]name[/code] in "
+"[code]node_type[/code].\n"
+"Creates [code]node_type[/code] if the theme does not have it."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Sets the theme's icon [Texture] to [code]texture[/code] at [code]name[/code] "
+"in [code]node_type[/code].\n"
+"Creates [code]node_type[/code] if the theme does not have it."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Sets theme's [StyleBox] to [code]stylebox[/code] at [code]name[/code] in "
+"[code]node_type[/code].\n"
+"Creates [code]node_type[/code] if the theme does not have it."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"Sets the theme item of [code]data_type[/code] to [code]value[/code] at "
+"[code]name[/code] in [code]node_type[/code].\n"
+"Does nothing if the [code]value[/code] type does not match [code]data_type[/"
+"code].\n"
+"Creates [code]node_type[/code] if the theme does not have it."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid ""
+"The default font of this [Theme] resource. Used as a fallback value for font "
+"items defined in this theme, but having invalid values. If this value is "
+"also invalid, the global default value is used.\n"
+"Use [method has_default_font] to check if this value is valid."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "Theme's [Color] item type."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "Theme's constant item type."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "Theme's [Font] item type."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "Theme's icon [Texture] item type."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "Theme's [StyleBox] item type."
+msgstr ""
+
+#: doc/classes/Theme.xml
+msgid "Maximum value for the DataType enum."
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid "A unit of execution in a process."
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid ""
+"A unit of execution in a process. Can run methods on [Object]s "
+"simultaneously. The use of synchronization via [Mutex] or [Semaphore] is "
+"advised if working with shared objects.\n"
+"[b]Note:[/b] Breakpoints won't break on code if it's running in a thread. "
+"This is a current limitation of the GDScript debugger."
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid "$DOCS_URL/tutorials/performance/threads/thread_safe_apis.html"
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid ""
+"Returns the current [Thread]'s ID, uniquely identifying it among all "
+"threads. If the [Thread] is not running this returns an empty string."
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid ""
+"Returns [code]true[/code] if this [Thread] has been started. Once started, "
+"this will return [code]true[/code] until it is joined using [method "
+"wait_to_finish]. For checking if a [Thread] is still executing its task, use "
+"[method is_alive]."
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid ""
+"Returns [code]true[/code] if this [Thread] is currently running. This is "
+"useful for determining if [method wait_to_finish] can be called without "
+"blocking the calling thread.\n"
+"To check if a [Thread] is joinable, use [method is_active]."
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid ""
+"Starts a new [Thread] that runs [code]method[/code] on object "
+"[code]instance[/code] with [code]userdata[/code] passed as an argument. Even "
+"if no userdata is passed, [code]method[/code] must accept one argument and "
+"it will be null. The [code]priority[/code] of the [Thread] can be changed by "
+"passing a value from the [enum Priority] enum.\n"
+"Returns [constant OK] on success, or [constant ERR_CANT_CREATE] on failure."
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid ""
+"Joins the [Thread] and waits for it to finish. Returns the output of the "
+"method passed to [method start].\n"
+"Should either be used when you want to retrieve the value returned from the "
+"method called by the [Thread] or before freeing the instance that contains "
+"the [Thread].\n"
+"To determine if this can be called without blocking the calling thread, "
+"check if [method is_alive] is [code]false[/code].\n"
+"[b]Note:[/b] After the [Thread] finishes joining it will be disposed. If you "
+"want to use it again you will have to create a new instance of it."
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid "A thread running with lower priority than normally."
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid "A thread with a standard priority."
+msgstr ""
+
+#: doc/classes/Thread.xml
+msgid "A thread running with higher priority than normally."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Node for 2D tile-based maps."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Node for 2D tile-based maps. Tilemaps use a [TileSet] which contain a list "
+"of tiles (textures plus optional collision, navigation, and/or occluder "
+"shapes) which are used to create grid-based maps.\n"
+"When doing physics queries against the tilemap, the cell coordinates are "
+"encoded as [code]metadata[/code] for each detected collision shape returned "
+"by methods such as [method Physics2DDirectSpaceState.intersect_shape], "
+"[method Physics2DDirectBodyState.get_contact_collider_shape_metadata], etc."
+msgstr ""
+
+#: doc/classes/TileMap.xml doc/classes/TileSet.xml
+msgid "$DOCS_URL/tutorials/2d/using_tilemaps.html"
+msgstr ""
+
+#: doc/classes/TileMap.xml doc/classes/TileSet.xml
+msgid "https://godotengine.org/asset-library/asset/111"
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Clears all cells."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Clears cells that do not exist in the tileset."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Returns the tile index of the given cell. If no tile exists in the cell, "
+"returns [constant INVALID_CELL]."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Returns the coordinate (subtile column and row) of the autotile variation in "
+"the tileset. Returns a zero vector if the cell doesn't have autotiling."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Returns the tile index of the cell given by a Vector2. If no tile exists in "
+"the cell, returns [constant INVALID_CELL]."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Returns [code]true[/code] if the given collision layer bit is set."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Returns [code]true[/code] if the given collision mask bit is set."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Returns a [Vector2] array with the positions of all cells containing a tile "
+"from the tileset (i.e. a tile index different from [code]-1[/code])."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Returns an array of all cells with the given tile index specified in "
+"[code]id[/code]."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Returns a rectangle enclosing the used (non-empty) tiles of the map."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Returns [code]true[/code] if the given cell is transposed, i.e. the X and Y "
+"axes are swapped."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Returns [code]true[/code] if the given cell is flipped in the X axis."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Returns [code]true[/code] if the given cell is flipped in the Y axis."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Returns the local position of the top left corner of the cell corresponding "
+"to the given tilemap (grid-based) coordinates.\n"
+"To get the global position, use [method Node2D.to_global]:\n"
+"[codeblock]\n"
+"var local_position = my_tilemap.map_to_world(map_position)\n"
+"var global_position = my_tilemap.to_global(local_position)\n"
+"[/codeblock]\n"
+"Optionally, the tilemap's half offset can be ignored."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Sets the tile index for the given cell.\n"
+"An index of [code]-1[/code] clears the cell.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
+"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
+"immediately updated for performance reasons.\n"
+"If you need these to be immediately updated, you can call [method "
+"update_dirty_quadrants].\n"
+"Overriding this method also overrides it internally, allowing custom logic "
+"to be implemented when tiles are placed/removed:\n"
+"[codeblock]\n"
+"func set_cell(x, y, tile, flip_x=false, flip_y=false, transpose=false, "
+"autotile_coord=Vector2()):\n"
+" # Write your custom logic here.\n"
+" # To call the default method:\n"
+" .set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Sets the tile index for the cell given by a Vector2.\n"
+"An index of [code]-1[/code] clears the cell.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
+"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
+"immediately updated for performance reasons.\n"
+"If you need these to be immediately updated, you can call [method "
+"update_dirty_quadrants]."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Sets the given collision layer bit."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Sets the given collision mask bit."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Applies autotiling rules to the cell (and its adjacent cells) referenced by "
+"its grid-based X and Y coordinates."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Applies autotiling rules to the cells in the given region (specified by grid-"
+"based X and Y coordinates).\n"
+"Calling with invalid (or missing) parameters applies autotiling rules for "
+"the entire tilemap."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Updates the tile map's quadrants, allowing things such as navigation and "
+"collision shapes to be immediately used if modified."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Returns the tilemap (grid-based) coordinates corresponding to the given "
+"local position.\n"
+"To use this with a global position, first determine the local position with "
+"[method Node2D.to_local]:\n"
+"[codeblock]\n"
+"var local_position = my_tilemap.to_local(global_position)\n"
+"var map_position = my_tilemap.world_to_map(local_position)\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "If [code]true[/code], the cell's UVs will be clipped."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "The custom [Transform2D] to be applied to the TileMap's cells."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Amount to offset alternating tiles. See [enum HalfOffset] for possible "
+"values."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"The TileMap's quadrant size. Optimizes drawing by batching, using chunks of "
+"this size."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "The TileMap's cell size."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Position for tile origin. See [enum TileOrigin] for possible values."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"If [code]true[/code], the TileMap's direct children will be drawn in order "
+"of their Y coordinate."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"If [code]true[/code], the textures will be centered in the middle of each "
+"tile. This is useful for certain isometric or top-down modes when textures "
+"are made larger or smaller than the tiles (e.g. to avoid flickering on tile "
+"edges). The offset is still applied, but from the center of the tile. If "
+"used, [member compatibility_mode] is ignored.\n"
+"If [code]false[/code], the texture position start in the top-left corner "
+"unless [member compatibility_mode] is enabled."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Bounce value for static body collisions (see [code]collision_use_kinematic[/"
+"code])."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"Friction value for static body collisions (see "
+"[code]collision_use_kinematic[/code])."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"The collision layer(s) for all colliders in the TileMap. See [url=$DOCS_URL/"
+"tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"The collision mask(s) for all colliders in the TileMap. See [url=$DOCS_URL/"
+"tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"If [code]true[/code], TileMap collisions will be handled as a kinematic "
+"body. If [code]false[/code], collisions will be handled as static body."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"If [code]true[/code], this tilemap's collision shape will be added to the "
+"collision shape of the parent. The parent has to be a [CollisionObject2D]."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"If [code]true[/code], the compatibility with the tilemaps made in Godot 3.1 "
+"or earlier is maintained (textures move when the tile origin changes and "
+"rotate if the texture size is not homogeneous). This mode presents problems "
+"when doing [code]flip_h[/code], [code]flip_v[/code] and [code]transpose[/"
+"code] tile operations on non-homogeneous isometric tiles (e.g. 2:1), in "
+"which the texture could not coincide with the collision, thus it is not "
+"recommended for isometric or non-square tiles.\n"
+"If [code]false[/code], the textures do not move when doing [code]flip_h[/"
+"code], [code]flip_v[/code] operations if no offset is used, nor when "
+"changing the tile origin.\n"
+"The compatibility mode doesn't work with the [member centered_textures] "
+"option, because displacing textures with the [member cell_tile_origin] "
+"option or in irregular tiles is not relevant when centering those textures."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "The TileMap orientation mode. See [enum Mode] for possible values."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"The light mask assigned to all light occluders in the TileMap. The TileSet's "
+"light occluders will cast shadows only from Light2D(s) that have the same "
+"light mask(s)."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid ""
+"If [code]true[/code], collision shapes are visible in the editor. Doesn't "
+"affect collision shapes visibility at runtime. To show collision shapes at "
+"runtime, enable [b]Visible Collision Shapes[/b] in the [b]Debug[/b] menu "
+"instead."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "The assigned [TileSet]."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Emitted when a tilemap setting has changed."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Returned when a cell doesn't exist."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Orthogonal orientation mode."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Isometric orientation mode."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Custom orientation mode."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Half offset on the X coordinate."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Half offset on the Y coordinate."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Half offset disabled."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Half offset on the X coordinate (negative)."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Half offset on the Y coordinate (negative)."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Tile origin at its top-left corner."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Tile origin at its center."
+msgstr ""
+
+#: doc/classes/TileMap.xml
+msgid "Tile origin at its bottom-left corner."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Tile library for tilemaps."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"A TileSet is a library of tiles for a [TileMap]. It contains a list of "
+"tiles, each consisting of a sprite and optional collision shapes.\n"
+"Tiles are referenced by a unique integer ID."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Determines when the auto-tiler should consider two different auto-tile IDs "
+"to be bound together.\n"
+"[b]Note:[/b] [code]neighbor_id[/code] will be [code]-1[/code] ([constant "
+"TileMap.INVALID_CELL]) when checking a tile against an empty neighbor tile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Clears all bitmask information of the autotile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Returns the bitmask of the subtile from an autotile given its coordinates.\n"
+"The value is the sum of the values in [enum AutotileBindings] present in the "
+"subtile (e.g. a value of 5 means the bitmask has bindings in both the top "
+"left and top right)."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the [enum BitmaskMode] of the autotile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Returns the subtile that's being used as an icon in an atlas/autotile given "
+"its coordinates.\n"
+"The subtile defined as the icon will be used as a fallback when the atlas/"
+"autotile's bitmask information is incomplete. It will also be used to "
+"represent it in the TileSet editor."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Returns the light occluder of the subtile from an atlas/autotile given its "
+"coordinates."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Returns the navigation polygon of the subtile from an atlas/autotile given "
+"its coordinates."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the size of the subtiles in an atlas/autotile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the spacing between subtiles of the atlas/autotile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Returns the priority of the subtile from an autotile given its coordinates.\n"
+"When more than one subtile has the same bitmask value, one of them will be "
+"picked randomly for drawing. Its priority will define how often it will be "
+"picked."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Returns the drawing index of the subtile from an atlas/autotile given its "
+"coordinates."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Sets the bitmask of the subtile from an autotile given its coordinates.\n"
+"The value is the sum of the values in [enum AutotileBindings] present in the "
+"subtile (e.g. a value of 5 means the bitmask has bindings in both the top "
+"left and top right)."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the [enum BitmaskMode] of the autotile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Sets the subtile that will be used as an icon in an atlas/autotile given its "
+"coordinates.\n"
+"The subtile defined as the icon will be used as a fallback when the atlas/"
+"autotile's bitmask information is incomplete. It will also be used to "
+"represent it in the TileSet editor."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Sets the light occluder of the subtile from an atlas/autotile given its "
+"coordinates."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Sets the navigation polygon of the subtile from an atlas/autotile given its "
+"coordinates."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the size of the subtiles in an atlas/autotile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the spacing between subtiles of the atlas/autotile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Sets the priority of the subtile from an autotile given its coordinates.\n"
+"When more than one subtile has the same bitmask value, one of them will be "
+"picked randomly for drawing. Its priority will define how often it will be "
+"picked."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Sets the drawing index of the subtile from an atlas/autotile given its "
+"coordinates."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Clears all tiles."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Creates a new tile with the given ID."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the first tile matching the given name."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Returns the ID following the last currently used ID, useful when creating a "
+"new tile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns an array of all currently used tile IDs."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Removes the given tile ID."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Adds a shape to the tile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the tile's light occluder."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the tile's material."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the tile's modulation color."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the tile's name."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the navigation polygon of the tile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the offset of the tile's navigation polygon."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the tile's normal map texture."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the offset of the tile's light occluder."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the tile sub-region in the texture."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns a tile's given shape."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the number of shapes assigned to a tile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the offset of a tile's shape."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the one-way collision value of a tile's shape."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the [Transform2D] of a tile's shape."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Returns an array of dictionaries describing the tile's shapes.\n"
+"[b]Dictionary structure in the array returned by this method:[/b]\n"
+"[codeblock]\n"
+"{\n"
+" \"autotile_coord\": Vector2,\n"
+" \"one_way\": bool,\n"
+" \"one_way_margin\": int,\n"
+" \"shape\": CollisionShape2D,\n"
+" \"shape_transform\": Transform2D,\n"
+"}\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the tile's texture."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the texture offset of the tile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the tile's [enum TileMode]."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Returns the tile's Z index (drawing layer)."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets a light occluder for the tile."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the tile's material."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the tile's modulation color."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the tile's name."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the tile's navigation polygon."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets an offset for the tile's navigation polygon."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Sets the tile's normal map texture.\n"
+"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
+"See [url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
+"a comparison of normal map coordinates expected by popular engines."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets an offset for the tile's light occluder."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid ""
+"Sets the tile's sub-region in the texture. This is common in texture atlases."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets a shape for the tile, enabling collision."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the offset of a tile's shape."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Enables one-way collision on a tile's shape."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets a [Transform2D] on a tile's shape."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets an array of shapes for the tile, enabling collision."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the tile's texture."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the tile's texture offset."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the tile's [enum TileMode]."
+msgstr ""
+
+#: doc/classes/TileSet.xml
+msgid "Sets the tile's drawing index."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "Time singleton for working with time."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"The Time singleton allows converting time between various formats and also "
+"getting time information from the system.\n"
+"This class conforms with as many of the ISO 8601 standards as possible. All "
+"dates follow the Proleptic Gregorian calendar. As such, the day before "
+"[code]1582-10-15[/code] is [code]1582-10-14[/code], not [code]1582-10-04[/"
+"code]. The year before 1 AD (aka 1 BC) is number [code]0[/code], with the "
+"year before that (2 BC) being [code]-1[/code], etc.\n"
+"Conversion methods assume \"the same timezone\", and do not handle timezone "
+"conversions or DST automatically. Leap seconds are also not handled, they "
+"must be done manually if desired. Suffixes such as \"Z\" are not handled, "
+"you need to strip them away manually.\n"
+"When getting time information from the system, the time can either be in the "
+"local timezone or UTC depending on the [code]utc[/code] parameter. However, "
+"the [method get_unix_time_from_system] method always returns the time in "
+"UTC.\n"
+"[b]Important:[/b] The [code]_from_system[/code] methods use the system clock "
+"that the user can manually set. [b]Never use[/b] this method for precise "
+"time calculation since its results are subject to automatic adjustments by "
+"the user or the operating system. [b]Always use[/b] [method get_ticks_usec] "
+"or [method get_ticks_msec] for precise time calculation instead, since they "
+"are guaranteed to be monotonic (i.e. never decrease)."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Returns the current date as a dictionary of keys: [code]year[/code], "
+"[code]month[/code], [code]day[/code], [code]weekday[/code], and [code]dst[/"
+"code] (Daylight Savings Time).\n"
+"The returned values are in the system's local time when [code]utc[/code] is "
+"false, otherwise they are in UTC."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Converts the given Unix timestamp to a dictionary of keys: [code]year[/"
+"code], [code]month[/code], [code]day[/code], and [code]weekday[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Returns the current date as an ISO 8601 date string (YYYY-MM-DD).\n"
+"The returned values are in the system's local time when [code]utc[/code] is "
+"false, otherwise they are in UTC."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Converts the given Unix timestamp to an ISO 8601 date string (YYYY-MM-DD)."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Converts the given ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS) to a "
+"dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], "
+"[code]weekday[/code], [code]hour[/code], [code]minute[/code], and "
+"[code]second[/code].\n"
+"If [code]weekday[/code] is false, then the [code]weekday[/code] entry is "
+"excluded (the calculation is relatively expensive)."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Returns the current date as a dictionary of keys: [code]year[/code], "
+"[code]month[/code], [code]day[/code], [code]weekday[/code], [code]hour[/"
+"code], [code]minute[/code], and [code]second[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Converts the given Unix timestamp to a dictionary of keys: [code]year[/"
+"code], [code]month[/code], [code]day[/code], and [code]weekday[/code].\n"
+"The returned Dictionary's values will be the same as the [method "
+"get_datetime_dict_from_system] if the Unix timestamp is the current time, "
+"with the exception of Daylight Savings Time as it cannot be determined from "
+"the epoch."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Converts the given dictionary of keys to an ISO 8601 date and time string "
+"(YYYY-MM-DDTHH:MM:SS).\n"
+"The given dictionary can be populated with the following keys: [code]year[/"
+"code], [code]month[/code], [code]day[/code], [code]hour[/code], "
+"[code]minute[/code], and [code]second[/code]. Any other entries (including "
+"[code]dst[/code]) are ignored.\n"
+"If the dictionary is empty, [code]0[/code] is returned. If some keys are "
+"omitted, they default to the equivalent values for the Unix epoch timestamp "
+"0 (1970-01-01 at 00:00:00).\n"
+"If [code]use_space[/code] is true, use a space instead of the letter T in "
+"the middle."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Returns the current date and time as an ISO 8601 date and time string (YYYY-"
+"MM-DDTHH:MM:SS).\n"
+"The returned values are in the system's local time when [code]utc[/code] is "
+"false, otherwise they are in UTC.\n"
+"If [code]use_space[/code] is true, use a space instead of the letter T in "
+"the middle."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Converts the given Unix timestamp to an ISO 8601 date and time string (YYYY-"
+"MM-DDTHH:MM:SS).\n"
+"If [code]use_space[/code] is true, use a space instead of the letter T in "
+"the middle."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Returns the amount of time passed in milliseconds since the engine started.\n"
+"Will always be positive or 0 and uses a 64-bit value (it will wrap after "
+"roughly 500 million years)."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Returns the amount of time passed in microseconds since the engine started.\n"
+"Will always be positive or 0 and uses a 64-bit value (it will wrap after "
+"roughly half a million years)."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Returns the current time as a dictionary of keys: [code]hour[/code], "
+"[code]minute[/code], and [code]second[/code].\n"
+"The returned values are in the system's local time when [code]utc[/code] is "
+"false, otherwise they are in UTC."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Converts the given time to a dictionary of keys: [code]hour[/code], "
+"[code]minute[/code], and [code]second[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Returns the current time as an ISO 8601 time string (HH:MM:SS).\n"
+"The returned values are in the system's local time when [code]utc[/code] is "
+"false, otherwise they are in UTC."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Converts the given Unix timestamp to an ISO 8601 time string (HH:MM:SS)."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Returns the current time zone as a dictionary of keys: [code]bias[/code] and "
+"[code]name[/code]. The [code]bias[/code] value is the offset from UTC in "
+"minutes, since not all time zones are multiples of an hour from UTC."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Converts a dictionary of time values to a Unix timestamp.\n"
+"The given dictionary can be populated with the following keys: [code]year[/"
+"code], [code]month[/code], [code]day[/code], [code]hour[/code], "
+"[code]minute[/code], and [code]second[/code]. Any other entries (including "
+"[code]dst[/code]) are ignored.\n"
+"If the dictionary is empty, [code]0[/code] is returned. If some keys are "
+"omitted, they default to the equivalent values for the Unix epoch timestamp "
+"0 (1970-01-01 at 00:00:00).\n"
+"You can pass the output from [method get_datetime_dict_from_unix_time] "
+"directly into this function and get the same as what was put in.\n"
+"[b]Note:[/b] Unix timestamps are often in UTC. This method does not do any "
+"timezone conversion, so the timestamp will be in the same timezone as the "
+"given datetime dictionary."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Converts the given ISO 8601 date and/or time string to a Unix timestamp. The "
+"string can contain a date only, a time only, or both.\n"
+"[b]Note:[/b] Unix timestamps are often in UTC. This method does not do any "
+"timezone conversion, so the timestamp will be in the same timezone as the "
+"given datetime string."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"Returns the current Unix timestamp in seconds based on the system time in "
+"UTC. This method is implemented by the operating system and always returns "
+"the time in UTC."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of January, represented numerically as [code]01[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of February, represented numerically as [code]02[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of March, represented numerically as [code]03[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of April, represented numerically as [code]04[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of May, represented numerically as [code]05[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of June, represented numerically as [code]06[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of July, represented numerically as [code]07[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of August, represented numerically as [code]08[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of September, represented numerically as [code]09[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of October, represented numerically as [code]10[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of November, represented numerically as [code]11[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The month of December, represented numerically as [code]12[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The day of the week Sunday, represented numerically as [code]0[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The day of the week Monday, represented numerically as [code]1[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The day of the week Tuesday, represented numerically as [code]2[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"The day of the week Wednesday, represented numerically as [code]3[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"The day of the week Thursday, represented numerically as [code]4[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid "The day of the week Friday, represented numerically as [code]5[/code]."
+msgstr ""
+
+#: doc/classes/Time.xml
+msgid ""
+"The day of the week Saturday, represented numerically as [code]6[/code]."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid "A countdown timer."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid ""
+"Counts down a specified interval and emits a signal on reaching 0. Can be "
+"set to repeat or \"one-shot\" mode.\n"
+"[b]Note:[/b] To create a one-shot timer without instantiating a node, use "
+"[method SceneTree.create_timer]."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid "Returns [code]true[/code] if the timer is stopped."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid ""
+"Starts the timer. Sets [code]wait_time[/code] to [code]time_sec[/code] if "
+"[code]time_sec > 0[/code]. This also resets the remaining time to "
+"[code]wait_time[/code].\n"
+"[b]Note:[/b] This method will not resume a paused timer. See [member paused]."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid "Stops the timer."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid ""
+"If [code]true[/code], the timer will automatically start when entering the "
+"scene tree.\n"
+"[b]Note:[/b] This property is automatically set to [code]false[/code] after "
+"the timer enters the scene tree and starts."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid ""
+"If [code]true[/code], the timer will stop when reaching 0. If [code]false[/"
+"code], it will restart."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid ""
+"If [code]true[/code], the timer is paused and will not process until it is "
+"unpaused again, even if [method start] is called."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid "Processing mode. See [enum TimerProcessMode]."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid ""
+"The timer's remaining time in seconds. Returns 0 if the timer is inactive.\n"
+"[b]Note:[/b] You cannot set this value. To change the timer's remaining "
+"time, use [method start]."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid ""
+"The wait time in seconds.\n"
+"[b]Note:[/b] Timers can only emit once per rendered frame at most (or once "
+"per physics frame if [member process_mode] is [constant "
+"TIMER_PROCESS_PHYSICS]). This means very low wait times (lower than 0.05 "
+"seconds) will behave in significantly different ways depending on the "
+"rendered framerate. For very low wait times, it is recommended to use a "
+"process loop in a script instead of using a Timer node."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid ""
+"Update the timer during the physics step at each frame (fixed framerate "
+"processing)."
+msgstr ""
+
+#: doc/classes/Timer.xml
+msgid "Update the timer during the idle time at each frame."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "Flat button helper class."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid ""
+"This is a helper class to generate a flat [Button] (see [member Button."
+"flat]), creating a [ToolButton] is equivalent to:\n"
+"[codeblock]\n"
+"var btn = Button.new()\n"
+"btn.flat = true\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "Default text [Color] of the [ToolButton]."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "Text [Color] used when the [ToolButton] is disabled."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid ""
+"Text [Color] used when the [ToolButton] is focused. Only replaces the normal "
+"text color of the button. Disabled, hovered, and pressed states take "
+"precedence over this color."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "Text [Color] used when the [ToolButton] is being hovered."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "Text [Color] used when the [ToolButton] is being pressed."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "The horizontal space between [ToolButton]'s icon and text."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "[Font] of the [ToolButton]'s text."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "[StyleBox] used when the [ToolButton] is disabled."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid ""
+"[StyleBox] used when the [ToolButton] is focused. It is displayed over the "
+"current [StyleBox], so using [StyleBoxEmpty] will just disable the focus "
+"visual effect."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "[StyleBox] used when the [ToolButton] is being hovered."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "Default [StyleBox] for the [ToolButton]."
+msgstr ""
+
+#: doc/classes/ToolButton.xml
+msgid "[StyleBox] used when the [ToolButton] is being pressed."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "Button for touch screen devices for gameplay use."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid ""
+"TouchScreenButton allows you to create on-screen buttons for touch devices. "
+"It's intended for gameplay use, such as a unit you have to touch to move. "
+"Unlike [Button], TouchScreenButton supports multitouch out of the box. "
+"Several TouchScreenButtons can be pressed at the same time with touch "
+"input.\n"
+"This node inherits from [Node2D]. Unlike with [Control] nodes, you cannot "
+"set anchors on it. If you want to create menus or user interfaces, you may "
+"want to use [Button] nodes instead. To make button nodes react to touch "
+"events, you can enable the Emulate Mouse option in the Project Settings.\n"
+"You can configure TouchScreenButton to be visible only on touch devices, "
+"helping you develop your game both for desktop and mobile devices."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "Returns [code]true[/code] if this button is currently pressed."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "The button's action. Actions can be handled with [InputEventAction]."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "The button's bitmask."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "The button's texture for the normal state."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid ""
+"If [code]true[/code], the [signal pressed] and [signal released] signals are "
+"emitted whenever a pressed finger goes in and out of the button, even if the "
+"pressure started outside the active area of the button.\n"
+"[b]Note:[/b] This is a \"pass-by\" (not \"bypass\") press mode."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "The button's texture for the pressed state."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "The button's shape."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid ""
+"If [code]true[/code], the button's shape is centered in the provided "
+"texture. If no texture is used, this property has no effect."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "If [code]true[/code], the button's shape is visible."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid ""
+"The button's visibility mode. See [enum VisibilityMode] for possible values."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "Emitted when the button is pressed (down)."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "Emitted when the button is released (up)."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "Always visible."
+msgstr ""
+
+#: doc/classes/TouchScreenButton.xml
+msgid "Visible on touch screens only."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid "3D transformation (3×4 matrix)."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"3×4 matrix (3 rows, 4 columns) used for 3D linear transformations. It can "
+"represent transformations such as translation, rotation, or scaling. It "
+"consists of a [member basis] (first 3 columns) and a [Vector3] for the "
+"[member origin] (last column).\n"
+"For more information, read the \"Matrices and transforms\" documentation "
+"article."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"Constructs a Transform from four [Vector3] values (matrix columns). Each "
+"axis corresponds to local basis vectors (some of which may be scaled)."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid "Constructs a Transform from a [Basis] and [Vector3]."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid "Constructs a Transform from a [Transform2D]."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"Constructs a Transform from a [Quat]. The origin will be [code]Vector3(0, 0, "
+"0)[/code]."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"Constructs the Transform from a [Basis]. The origin will be Vector3(0, 0, 0)."
+msgstr ""
+
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
+msgid ""
+"Returns the inverse of the transform, under the assumption that the "
+"transformation is composed of rotation, scaling and translation."
+msgstr ""
+
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
+msgid ""
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
+msgstr ""
+
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
+msgid ""
+"Returns the inverse of the transform, under the assumption that the "
+"transformation is composed of rotation and translation (no scaling, use "
+"[method affine_inverse] for transforms with scaling)."
+msgstr ""
+
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
+msgid ""
+"Returns [code]true[/code] if this transform and [code]transform[/code] are "
+"approximately equal, by calling [code]is_equal_approx[/code] on each "
+"component."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"Returns a copy of the transform rotated such that its -Z axis points towards "
+"the [code]target[/code] position.\n"
+"The transform will first be rotated around the given [code]up[/code] vector, "
+"and then fully aligned to the target by a further rotation around an axis "
+"perpendicular to both the [code]target[/code] and [code]up[/code] vectors.\n"
+"Operations take place in global space."
+msgstr ""
+
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
+msgid ""
+"Returns the transform with the basis orthogonal (90 degrees), and normalized "
+"axis vectors (scale of 1 or -1)."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"Rotates the transform around the given axis by the given angle (in radians), "
+"using matrix multiplication. The axis must be a normalized vector."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"Scales basis and origin of the transform by the given scale factor, using "
+"matrix multiplication."
+msgstr ""
+
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
+msgid ""
+"Translates the transform by the given offset, relative to the transform's "
+"basis vectors.\n"
+"Unlike [method rotated] and [method scaled], this does not use matrix "
+"multiplication."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"Transforms the given [Vector3], [Plane], [AABB], or [PoolVector3Array] by "
+"this transform."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"Inverse-transforms the given [Vector3], [Plane], [AABB], or "
+"[PoolVector3Array] by this transform, under the assumption that the "
+"transformation is composed of rotation and translation (no scaling). "
+"Equivalent to calling [code]inverse().xform(v)[/code] on this transform. For "
+"affine transformations (e.g. with scaling) see [method affine_inverse] "
+"method."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"The basis is a matrix containing 3 [Vector3] as its columns: X axis, Y axis, "
+"and Z axis. These vectors can be interpreted as the basis vectors of local "
+"coordinate system traveling with the object."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"The translation offset of the transform (column 3, the fourth column). "
+"Equivalent to array index [code]3[/code]."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid ""
+"[Transform] with no translation, rotation or scaling applied. When applied "
+"to other data structures, [constant IDENTITY] performs no transformation."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid "[Transform] with mirroring applied perpendicular to the YZ plane."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid "[Transform] with mirroring applied perpendicular to the XZ plane."
+msgstr ""
+
+#: doc/classes/Transform.xml
+msgid "[Transform] with mirroring applied perpendicular to the XY plane."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid "2D transformation (2×3 matrix)."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid ""
+"2×3 matrix (2 rows, 3 columns) used for 2D linear transformations. It can "
+"represent transformations such as translation, rotation, or scaling. It "
+"consists of three [Vector2] values: [member x], [member y], and the [member "
+"origin].\n"
+"For more information, read the \"Matrices and transforms\" documentation "
+"article."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid "Constructs the transform from a 3D [Transform]."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid ""
+"Constructs the transform from 3 [Vector2] values representing [member x], "
+"[member y], and the [member origin] (the three column vectors)."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid "Constructs the transform from a given angle (in radians) and position."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid ""
+"Returns a vector transformed (multiplied) by the basis matrix.\n"
+"This method does not account for translation (the origin vector)."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid ""
+"Returns a vector transformed (multiplied) by the inverse basis matrix.\n"
+"This method does not account for translation (the origin vector)."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid "Returns the transform's origin (translation)."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid "Returns the transform's rotation (in radians)."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid "Returns the scale."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid ""
+"Rotates the transform by the given angle (in radians), using matrix "
+"multiplication."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid ""
+"Scales the transform by the given scale factor, using matrix multiplication."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid ""
+"Transforms the given [Vector2], [Rect2], or [PoolVector2Array] by this "
+"transform."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid ""
+"Inverse-transforms the given [Vector2], [Rect2], or [PoolVector2Array] by "
+"this transform, under the assumption that the transformation is composed of "
+"rotation and translation (no scaling). Equivalent to calling [code]inverse()."
+"xform(v)[/code] on this transform. For affine transformations (e.g. with "
+"scaling) see [method affine_inverse] method."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid ""
+"The origin vector (column 2, the third column). Equivalent to array index "
+"[code]2[/code]. The origin vector represents translation."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid ""
+"The identity [Transform2D] with no translation, rotation or scaling applied. "
+"When applied to other data structures, [constant IDENTITY] performs no "
+"transformation."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid "The [Transform2D] that will flip something along the X axis."
+msgstr ""
+
+#: doc/classes/Transform2D.xml
+msgid "The [Transform2D] that will flip something along the Y axis."
+msgstr ""
+
+#: doc/classes/Translation.xml
+msgid "Language Translation."
+msgstr ""
+
+#: doc/classes/Translation.xml
+msgid ""
+"Translations are resources that can be loaded and unloaded on demand. They "
+"map a string to another string."
+msgstr ""
+
+#: doc/classes/Translation.xml doc/classes/TranslationServer.xml
+msgid "$DOCS_URL/tutorials/i18n/internationalizing_games.html"
+msgstr ""
+
+#: doc/classes/Translation.xml doc/classes/TranslationServer.xml
+msgid "$DOCS_URL/tutorials/i18n/locales.html"
+msgstr ""
+
+#: doc/classes/Translation.xml
+msgid "Virtual method to override [method get_message]."
+msgstr ""
+
+#: doc/classes/Translation.xml
+msgid "Adds a message if nonexistent, followed by its translation."
+msgstr ""
+
+#: doc/classes/Translation.xml
+msgid "Erases a message."
+msgstr ""
+
+#: doc/classes/Translation.xml
+msgid "Returns a message's translation."
+msgstr ""
+
+#: doc/classes/Translation.xml
+msgid "Returns the number of existing messages."
+msgstr ""
+
+#: doc/classes/Translation.xml
+msgid "Returns all the messages (keys)."
+msgstr ""
+
+#: doc/classes/Translation.xml
+msgid "The locale of the translation."
+msgstr ""
+
+#: doc/classes/TranslationServer.xml
+msgid "Server that manages all translations."
+msgstr ""
+
+#: doc/classes/TranslationServer.xml
+msgid ""
+"Server that manages all translations. Translations can be set to it and "
+"removed from it."
+msgstr ""
+
+#: doc/classes/TranslationServer.xml
+msgid "Adds a [Translation] resource."
+msgstr ""
+
+#: doc/classes/TranslationServer.xml
+msgid "Clears the server from all translations."
+msgstr ""
+
+#: doc/classes/TranslationServer.xml
+msgid "Returns an array of all loaded locales of the project."
+msgstr ""
+
+#: doc/classes/TranslationServer.xml
+msgid ""
+"Returns the current locale of the project.\n"
+"See also [method OS.get_locale] and [method OS.get_locale_language] to query "
+"the locale of the user system."
+msgstr ""
+
+#: doc/classes/TranslationServer.xml
+msgid ""
+"Returns a locale's language and its variant (e.g. [code]\"en_US\"[/code] "
+"would return [code]\"English (United States)\"[/code])."
+msgstr ""
+
+#: doc/classes/TranslationServer.xml
+msgid "Removes the given translation from the server."
+msgstr ""
+
+#: doc/classes/TranslationServer.xml
+msgid ""
+"Sets the locale of the project. The [code]locale[/code] string will be "
+"standardized to match known locales (e.g. [code]en-US[/code] would be "
+"matched to [code]en_US[/code]).\n"
+"If translations have been loaded beforehand for the new locale, they will be "
+"applied."
+msgstr ""
+
+#: doc/classes/TranslationServer.xml
+msgid "Returns the current locale's translation for the given message (key)."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Control to show a tree of items."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"This shows a tree of items that can be selected, expanded and collapsed. The "
+"tree can have multiple columns with custom controls like text editing, "
+"buttons and popups. It can be useful for structured displays and "
+"interactions.\n"
+"Trees are built via code, using [TreeItem] objects to create the structure. "
+"They have a single root but multiple roots can be simulated if a dummy "
+"hidden root is added.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" var tree = Tree.new()\n"
+" var root = tree.create_item()\n"
+" tree.set_hide_root(true)\n"
+" var child1 = tree.create_item(root)\n"
+" var child2 = tree.create_item(root)\n"
+" var subchild1 = tree.create_item(child1)\n"
+" subchild1.set_text(0, \"Subchild1\")\n"
+"[/codeblock]\n"
+"To iterate over all the [TreeItem] objects in a [Tree] object, use [method "
+"TreeItem.get_next] and [method TreeItem.get_children] after getting the root "
+"through [method get_root]. You can use [method Object.free] on a [TreeItem] "
+"to remove it from the [Tree]."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Clears the tree. This removes all items."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Creates an item in the tree and adds it as a child of [code]parent[/code].\n"
+"If [code]parent[/code] is [code]null[/code], the root item will be the "
+"parent, or the new item will be the root itself if the tree is empty.\n"
+"The new item will be the [code]idx[/code]th child of parent, or it will be "
+"the last child if there are not enough siblings."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Edits the selected tree item as if it was clicked. The item must be set "
+"editable with [method TreeItem.set_editable]. Returns [code]true[/code] if "
+"the item could be edited. Fails if no item is selected."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Makes the currently focused cell visible.\n"
+"This will scroll the tree if necessary. In [constant SELECT_ROW] mode, this "
+"will not do horizontal scrolling, as all the cells in the selected row is "
+"focused logically.\n"
+"[b]Note:[/b] Despite the name of this method, the focus cursor itself is "
+"only visible in [constant SELECT_MULTI] mode."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Returns the column index at [code]position[/code], or -1 if no item is there."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Returns the column's title."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Returns the column's width in pixels."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Returns the rectangle for custom popups. Helper to create custom cell "
+"controls that display a popup. See [method TreeItem.set_cell_mode]."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Returns the drop section at [code]position[/code], or -100 if no item is "
+"there.\n"
+"Values -1, 0, or 1 will be returned for the \"above item\", \"on item\", and "
+"\"below item\" drop sections, respectively. See [enum DropModeFlags] for a "
+"description of each drop section.\n"
+"To get the item which the returned drop section is relative to, use [method "
+"get_item_at_position]."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Returns the currently edited item. Can be used with [signal item_edited] to "
+"get the item that was modified.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" $Tree.item_edited.connect(on_Tree_item_edited)\n"
+"\n"
+"func on_Tree_item_edited():\n"
+" print($Tree.get_edited()) # This item just got edited (e.g. checked).\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Returns the column for the currently edited item."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Returns the rectangle area for the specified item. If [code]column[/code] is "
+"specified, only get the position and size of that column, otherwise get the "
+"rectangle containing all columns."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Returns the tree item at the specified position (relative to the tree origin "
+"position)."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Returns the next selected item after the given one, or [code]null[/code] if "
+"the end is reached.\n"
+"If [code]from[/code] is [code]null[/code], this returns the first selected "
+"item."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Returns the last pressed button's index."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Returns the tree's root item, or [code]null[/code] if the tree is empty."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Returns the current scrolling position."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Returns the currently focused item, or [code]null[/code] if no item is "
+"focused.\n"
+"In [constant SELECT_ROW] and [constant SELECT_SINGLE] modes, the focused "
+"item is same as the selected item. In [constant SELECT_MULTI] mode, the "
+"focused item is the item under the focus cursor, not necessarily selected.\n"
+"To get the currently selected item(s), use [method get_next_selected]."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Returns the currently focused column, or -1 if no column is focused.\n"
+"In [constant SELECT_SINGLE] mode, the focused column is the selected column. "
+"In [constant SELECT_ROW] mode, the focused column is always 0 if any item is "
+"selected. In [constant SELECT_MULTI] mode, the focused column is the column "
+"under the focus cursor, and there are not necessarily any column selected.\n"
+"To tell whether a column of an item is selected, use [method TreeItem."
+"is_selected]."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Causes the [Tree] to jump to the specified item."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"If [code]true[/code], the column will have the \"Expand\" flag of [Control]. "
+"Columns that have the \"Expand\" flag will use their \"min_width\" in a "
+"similar fashion to [member Control.size_flags_stretch_ratio]."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Sets the minimum width of a column. Columns that have the \"Expand\" flag "
+"will use their \"min_width\" in a similar fashion to [member Control."
+"size_flags_stretch_ratio]."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Sets the title of a column."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"If [code]true[/code], the currently selected cell may be selected again."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "If [code]true[/code], a right mouse button click can select items."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "If [code]true[/code], column titles are visible."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "The number of columns."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"The drop mode as an OR combination of flags. See [enum DropModeFlags] "
+"constants. Once dropping is done, reverts to [constant DROP_MODE_DISABLED]. "
+"Setting this during [method Control.can_drop_data] is recommended.\n"
+"This controls the drop sections, i.e. the decision and drawing of possible "
+"drop locations based on the mouse position."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "If [code]true[/code], the folding arrow is hidden."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "If [code]true[/code], the tree's root is hidden."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Allows single or multiple selection. See the [enum SelectMode] constants."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Emitted when a button on the tree was pressed (see [method TreeItem."
+"add_button])."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Emitted when a cell is selected."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Emitted when a column's title is pressed."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Emitted when a cell with the [constant TreeItem.CELL_MODE_CUSTOM] is clicked "
+"to be edited."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Emitted when the right mouse button is pressed in the empty space of the "
+"tree."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Emitted when the right mouse button is pressed if right mouse button "
+"selection is active and the tree is empty."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Emitted when an item's label is double-clicked."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Emitted when an item is collapsed by a click on the folding arrow."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Emitted when a custom button is pressed (i.e. in a [constant TreeItem."
+"CELL_MODE_CUSTOM] mode cell)."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Emitted when an item's icon is double-clicked."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Emitted when an item is edited."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Emitted when an item is edited using the right mouse button."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Emitted when an item is selected with the right mouse button."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Emitted when an item is selected."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Emitted instead of [code]item_selected[/code] if [code]select_mode[/code] is "
+"[constant SELECT_MULTI]."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Emitted when a left mouse button click does not select any item."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Allows selection of a single cell at a time. From the perspective of items, "
+"only a single item is allowed to be selected. And there is only one column "
+"selected in the selected item.\n"
+"The focus cursor is always hidden in this mode, but it is positioned at the "
+"current selection, making the currently selected item the currently focused "
+"item."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Allows selection of a single row at a time. From the perspective of items, "
+"only a single items is allowed to be selected. And all the columns are "
+"selected in the selected item.\n"
+"The focus cursor is always hidden in this mode, but it is positioned at the "
+"first column of the current selection, making the currently selected item "
+"the currently focused item."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Allows selection of multiple cells at the same time. From the perspective of "
+"items, multiple items are allowed to be selected. And there can be multiple "
+"columns selected in each selected item.\n"
+"The focus cursor is visible in this mode, the item or column under the "
+"cursor is not necessarily selected."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Disables all drop sections, but still allows to detect the \"on item\" drop "
+"section by [method get_drop_section_at_position].\n"
+"[b]Note:[/b] This is the default flag, it has no effect when combined with "
+"other flags."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Enables the \"on item\" drop section. This drop section covers the entire "
+"item.\n"
+"When combined with [constant DROP_MODE_INBETWEEN], this drop section halves "
+"the height and stays centered vertically."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Enables \"above item\" and \"below item\" drop sections. The \"above item\" "
+"drop section covers the top half of the item, and the \"below item\" drop "
+"section covers the bottom half.\n"
+"When combined with [constant DROP_MODE_ON_ITEM], these drop sections halves "
+"the height and stays on top / bottom accordingly."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Text [Color] for a [constant TreeItem.CELL_MODE_CUSTOM] mode cell when it's "
+"hovered."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"[Color] used to draw possible drop locations. See [enum DropModeFlags] "
+"constants for further description of drop locations."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "[Color] of the guideline."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "[Color] of the relationship lines."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Default text [Color] of the title button."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "The horizontal space between each button in a cell."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Draws the guidelines if not zero, this acts as a boolean. The guideline is a "
+"horizontal line drawn at the bottom of each item."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Draws the relationship lines if not zero, this acts as a boolean. "
+"Relationship lines are drawn at the start of child items to show hierarchy."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"The horizontal space between item cells. This is also used as the margin at "
+"the start of an item when folding is disabled."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"The horizontal margin at the start of an item. This is used when folding is "
+"enabled for the item."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"The maximum distance between the mouse cursor and the control's border to "
+"trigger border scrolling when dragging."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "The speed of border scrolling."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"The vertical padding inside each item, i.e. the distance between the item's "
+"content and top/bottom border."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "[Font] of the title button's text."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "The arrow icon used when a foldable item is not collapsed."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "The arrow icon used when a foldable item is collapsed."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"The check icon to display when the [constant TreeItem.CELL_MODE_CHECK] mode "
+"cell is checked."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"The arrow icon to display for the [constant TreeItem.CELL_MODE_RANGE] mode "
+"cell."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"The check icon to display when the [constant TreeItem.CELL_MODE_CHECK] mode "
+"cell is unchecked."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"The updown arrow icon to display for the [constant TreeItem.CELL_MODE_RANGE] "
+"mode cell."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Default [StyleBox] for the [Tree], i.e. used when the control is not being "
+"focused."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "[StyleBox] used when the [Tree] is being focused."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "[StyleBox] used when a button in the tree is pressed."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "[StyleBox] used for the cursor, when the [Tree] is being focused."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "[StyleBox] used for the cursor, when the [Tree] is not being focused."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"Default [StyleBox] for a [constant TreeItem.CELL_MODE_CUSTOM] mode cell."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"[StyleBox] for a [constant TreeItem.CELL_MODE_CUSTOM] mode cell when it's "
+"hovered."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"[StyleBox] for a [constant TreeItem.CELL_MODE_CUSTOM] mode cell when it's "
+"pressed."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"[StyleBox] for the selected items, used when the [Tree] is not being focused."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid ""
+"[StyleBox] for the selected items, used when the [Tree] is being focused."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "[StyleBox] used when the title button is being hovered."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "Default [StyleBox] for the title button."
+msgstr ""
+
+#: doc/classes/Tree.xml
+msgid "[StyleBox] used when the title button is being pressed."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Control for a single item inside a [Tree]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Control for a single item inside a [Tree]. May have child [TreeItem]s and be "
+"styled as well as contain buttons.\n"
+"You can remove a [TreeItem] by using [method Object.free]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Adds a button with [Texture] [code]button[/code] at column [code]column[/"
+"code]. The [code]button_idx[/code] index is used to identify the button when "
+"calling other methods. If not specified, the next available index is used, "
+"which may be retrieved by calling [method get_button_count] immediately "
+"after this method. Optionally, the button can be [code]disabled[/code] and "
+"have a [code]tooltip[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Calls the [code]method[/code] on the actual TreeItem and its children "
+"recursively. Pass parameters as a comma separated list."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Resets the background color for the given column to default."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Resets the color for the given column to default."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Deselects the given column."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Removes the button at index [code]button_idx[/code] in column [code]column[/"
+"code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns the [Texture] of the button at index [code]button_idx[/code] in "
+"column [code]column[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns the number of buttons in column [code]column[/code]. May be used to "
+"get the most recently added button's index, if no index was specified."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns the tooltip string for the button at index [code]button_idx[/code] "
+"in column [code]column[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the column's cell mode."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns the TreeItem's first child item or a null object if there is none."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the custom background color of column [code]column[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the custom color of column [code]column[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns [code]true[/code] if [code]expand_right[/code] is set."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the given column's icon [Texture]. Error if no icon is set."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the column's icon's maximum width."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the [Color] modulating the column's icon."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the icon [Texture] region as [Rect2]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns the metadata value that was set for the given column using [method "
+"set_metadata]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns the next TreeItem in the tree or a null object if there is none."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns the next visible TreeItem in the tree or a null object if there is "
+"none.\n"
+"If [code]wrap[/code] is enabled, the method will wrap around to the first "
+"visible element in the tree when called on the last visible element, "
+"otherwise it returns [code]null[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the parent TreeItem or a null object if there is none."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns the previous TreeItem in the tree or a null object if there is none."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns the previous visible TreeItem in the tree or a null object if there "
+"is none.\n"
+"If [code]wrap[/code] is enabled, the method will wrap around to the last "
+"visible element in the tree when called on the first visible element, "
+"otherwise it returns [code]null[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the value of a [constant CELL_MODE_RANGE] column."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns a dictionary containing the range parameters for a given column. The "
+"keys are \"min\", \"max\", \"step\", and \"expr\"."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Gets the suffix string shown after the column value."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the given column's text."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the given column's text alignment."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns the given column's tooltip."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Returns [code]true[/code] if the button at index [code]button_idx[/code] for "
+"the given column is disabled."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns [code]true[/code] if the given column is checked."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns [code]true[/code] if column [code]column[/code] is editable."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns [code]true[/code] if column [code]column[/code] is selectable."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Returns [code]true[/code] if column [code]column[/code] is selected."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Moves this TreeItem to the bottom in the [Tree] hierarchy."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Moves this TreeItem to the top in the [Tree] hierarchy."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Removes the given child [TreeItem] and all its children from the [Tree]. "
+"Note that it doesn't free the item from memory, so it can be reused later. "
+"To completely remove a [TreeItem] use [method Object.free]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Selects the column [code]column[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Sets the given column's button [Texture] at index [code]button_idx[/code] to "
+"[code]button[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"If [code]true[/code], disables the button at index [code]button_idx[/code] "
+"in column [code]column[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Sets the given column's cell mode to [code]mode[/code]. See [enum "
+"TreeCellMode] constants."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "If [code]true[/code], the column [code]column[/code] is checked."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Sets the given column's custom background color and whether to just use it "
+"as an outline."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Sets the given column's custom color."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Sets the given column's custom draw callback to [code]callback[/code] method "
+"on [code]object[/code].\n"
+"The [code]callback[/code] should accept two arguments: the [TreeItem] that "
+"is drawn and its position and size as a [Rect2]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "If [code]true[/code], column [code]column[/code] is editable."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"If [code]true[/code], column [code]column[/code] is expanded to the right."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Sets the given column's icon [Texture]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Sets the given column's icon's maximum width."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Modulates the given column's icon with [code]modulate[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Sets the given column's icon's texture region."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Sets the metadata value for the given column, which can be retrieved later "
+"using [method get_metadata]. This can be used, for example, to store a "
+"reference to the original data."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Sets the value of a [constant CELL_MODE_RANGE] column."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Sets the range of accepted values for a column. The column must be in the "
+"[constant CELL_MODE_RANGE] mode.\n"
+"If [code]expr[/code] is [code]true[/code], the edit mode slider will use an "
+"exponential scale as with [member Range.exp_edit]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "If [code]true[/code], the given column is selectable."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Sets a string to be shown after a column's value (for example, a unit "
+"abbreviation)."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Sets the given column's text value."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid ""
+"Sets the given column's text alignment. See [enum TextAlign] for possible "
+"values."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Sets the given column's tooltip text."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "If [code]true[/code], the TreeItem is collapsed."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "The custom minimum height."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "If [code]true[/code], folding is disabled for this TreeItem."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Cell contains a string."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Cell contains a checkbox."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Cell contains a range."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Cell contains an icon."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Align text to the left. See [code]set_text_align()[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Center text. See [code]set_text_align()[/code]."
+msgstr ""
+
+#: doc/classes/TreeItem.xml
+msgid "Align text to the right. See [code]set_text_align()[/code]."
+msgstr ""
+
+#: doc/classes/TriangleMesh.xml
+msgid "Internal mesh type."
+msgstr ""
+
+#: doc/classes/TriangleMesh.xml
+msgid "Mesh type used internally for collision calculations."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Smoothly animates a node's properties over time."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Tweens are useful for animations requiring a numerical property to be "
+"interpolated over a range of values. The name [i]tween[/i] comes from [i]in-"
+"betweening[/i], an animation technique where you specify [i]keyframes[/i] "
+"and the computer interpolates the frames that appear between them.\n"
+"[Tween] is more suited than [AnimationPlayer] for animations where you don't "
+"know the final values in advance. For example, interpolating a dynamically-"
+"chosen camera zoom value is best done with a [Tween] node; it would be "
+"difficult to do the same thing with an [AnimationPlayer] node.\n"
+"Here is a brief usage example that makes a 2D node move smoothly between two "
+"positions:\n"
+"[codeblock]\n"
+"var tween = get_node(\"Tween\")\n"
+"tween.interpolate_property($Node2D, \"position\",\n"
+" Vector2(0, 0), Vector2(100, 100), 1,\n"
+" Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)\n"
+"tween.start()\n"
+"[/codeblock]\n"
+"Many methods require a property name, such as [code]\"position\"[/code] "
+"above. You can find the correct property name by hovering over the property "
+"in the Inspector. You can also provide the components of a property directly "
+"by using [code]\"property:component\"[/code] (e.g. [code]position:x[/code]), "
+"where it would only apply to that particular component.\n"
+"Many of the methods accept [code]trans_type[/code] and [code]ease_type[/"
+"code]. The first accepts an [enum TransitionType] constant, and refers to "
+"the way the timing of the animation is handled (see [url=https://easings."
+"net/]easings.net[/url] for some examples). The second accepts an [enum "
+"EaseType] constant, and controls where the [code]trans_type[/code] is "
+"applied to the interpolation (in the beginning, the end, or both). If you "
+"don't know which transition and easing to pick, you can try different [enum "
+"TransitionType] constants with [constant EASE_IN_OUT], and use the one that "
+"looks best.\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"tween_cheatsheet.png]Tween easing and transition types cheatsheet[/url]"
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Follows [code]method[/code] of [code]object[/code] and applies the returned "
+"value on [code]target_method[/code] of [code]target[/code], beginning from "
+"[code]initial_val[/code] for [code]duration[/code] seconds, [code]delay[/"
+"code] later. Methods are called with consecutive values.\n"
+"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
+"for [code]ease_type[/code] parameters. These values control the timing and "
+"direction of the interpolation. See the class description for more "
+"information."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Follows [code]property[/code] of [code]object[/code] and applies it on "
+"[code]target_property[/code] of [code]target[/code], beginning from "
+"[code]initial_val[/code] for [code]duration[/code] seconds, [code]delay[/"
+"code] seconds later.\n"
+"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
+"for [code]ease_type[/code] parameters. These values control the timing and "
+"direction of the interpolation. See the class description for more "
+"information."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Returns the total time needed for all tweens to end. If you have two tweens, "
+"one lasting 10 seconds and the other 20 seconds, it would return 20 seconds, "
+"as by that time all tweens would have finished."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Calls [code]callback[/code] of [code]object[/code] after [code]duration[/"
+"code]. [code]arg1[/code]-[code]arg5[/code] are arguments to be passed to the "
+"callback."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Calls [code]callback[/code] of [code]object[/code] after [code]duration[/"
+"code] on the main thread (similar to [method Object.call_deferred]). "
+"[code]arg1[/code]-[code]arg5[/code] are arguments to be passed to the "
+"callback."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Animates [code]method[/code] of [code]object[/code] from [code]initial_val[/"
+"code] to [code]final_val[/code] for [code]duration[/code] seconds, "
+"[code]delay[/code] seconds later. Methods are called with consecutive "
+"values.\n"
+"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
+"for [code]ease_type[/code] parameters. These values control the timing and "
+"direction of the interpolation. See the class description for more "
+"information."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Animates [code]property[/code] of [code]object[/code] from "
+"[code]initial_val[/code] to [code]final_val[/code] for [code]duration[/code] "
+"seconds, [code]delay[/code] seconds later. Setting the initial value to "
+"[code]null[/code] uses the current value of the property.\n"
+"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
+"for [code]ease_type[/code] parameters. These values control the timing and "
+"direction of the interpolation. See the class description for more "
+"information."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Returns [code]true[/code] if any tweens are currently running.\n"
+"[b]Note:[/b] This method doesn't consider tweens that have ended."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Stops animation and removes a tween, given its object and property/method "
+"pair. By default, all tweens are removed, unless [code]key[/code] is "
+"specified."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Stops animation and removes all tweens."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Resets a tween to its initial value (the one given, not the one before the "
+"tween), given its object and property/method pair. By default, all tweens "
+"are removed, unless [code]key[/code] is specified."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Resets all tweens to their initial values (the ones given, not those before "
+"the tween)."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Continues animating a stopped tween, given its object and property/method "
+"pair. By default, all tweens are resumed, unless [code]key[/code] is "
+"specified."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Continues animating all stopped tweens."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Sets the interpolation to the given [code]time[/code] in seconds."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Activates/deactivates the tween. See also [method stop_all] and [method "
+"resume_all]."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Starts the tween. You can define animations both before and after this."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Stops a tween, given its object and property/method pair. By default, all "
+"tweens are stopped, unless [code]key[/code] is specified."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Stops animating all tweens."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Animates [code]method[/code] of [code]object[/code] from the value returned "
+"by [code]initial_method[/code] to [code]final_val[/code] for [code]duration[/"
+"code] seconds, [code]delay[/code] seconds later. Methods are animated by "
+"calling them with consecutive values.\n"
+"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
+"for [code]ease_type[/code] parameters. These values control the timing and "
+"direction of the interpolation. See the class description for more "
+"information."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"Animates [code]property[/code] of [code]object[/code] from the current value "
+"of the [code]initial_val[/code] property of [code]initial[/code] to "
+"[code]final_val[/code] for [code]duration[/code] seconds, [code]delay[/code] "
+"seconds later.\n"
+"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
+"for [code]ease_type[/code] parameters. These values control the timing and "
+"direction of the interpolation. See the class description for more "
+"information."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Returns the current time of the tween."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "The tween's animation process thread. See [enum TweenProcessMode]."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"The tween's speed multiplier. For example, set it to [code]1.0[/code] for "
+"normal speed, [code]2.0[/code] for two times normal speed, or [code]0.5[/"
+"code] for half of the normal speed. A value of [code]0[/code] pauses the "
+"animation, but see also [method set_active] or [method stop_all] for this."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "If [code]true[/code], the tween loops."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Emitted when all processes in a tween end."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Emitted when a tween ends."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Emitted when a tween starts."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "Emitted at each step of the animation."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "The tween updates with the [code]_physics_process[/code] callback."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "The tween updates with the [code]_process[/code] callback."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "The animation is interpolated linearly."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "The animation is interpolated using a sine function."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"The animation is interpolated with a quintic (to the power of 5) function."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"The animation is interpolated with a quartic (to the power of 4) function."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"The animation is interpolated with a quadratic (to the power of 2) function."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"The animation is interpolated with an exponential (to the power of x) "
+"function."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"The animation is interpolated with elasticity, wiggling around the edges."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"The animation is interpolated with a cubic (to the power of 3) function."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "The animation is interpolated with a function using square roots."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "The animation is interpolated by bouncing at the end."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "The animation is interpolated backing out at ends."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "The interpolation starts slowly and speeds up towards the end."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid "The interpolation starts quickly and slows down towards the end."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"A combination of [constant EASE_IN] and [constant EASE_OUT]. The "
+"interpolation is slowest at both ends."
+msgstr ""
+
+#: doc/classes/Tween.xml
+msgid ""
+"A combination of [constant EASE_IN] and [constant EASE_OUT]. The "
+"interpolation is fastest at both ends."
+msgstr ""
+
+#: doc/classes/UDPServer.xml
+msgid "Helper class to implement a UDP server."
+msgstr ""
+
+#: doc/classes/UDPServer.xml
+msgid ""
+"A simple server that opens a UDP socket and returns connected "
+"[PacketPeerUDP] upon receiving new packets. See also [method PacketPeerUDP."
+"connect_to_host].\n"
+"After starting the server ([method listen]), you will need to [method poll] "
+"it at regular intervals (e.g. inside [method Node._process]) for it to "
+"process new packets, delivering them to the appropriate [PacketPeerUDP], and "
+"taking new connections.\n"
+"Below a small example of how it can be used:\n"
+"[codeblock]\n"
+"# server.gd\n"
+"extends Node\n"
+"\n"
+"var server := UDPServer.new()\n"
+"var peers = []\n"
+"\n"
+"func _ready():\n"
+" server.listen(4242)\n"
+"\n"
+"func _process(delta):\n"
+" server.poll() # Important!\n"
+" if server.is_connection_available():\n"
+" var peer : PacketPeerUDP = server.take_connection()\n"
+" var pkt = peer.get_packet()\n"
+" print(\"Accepted peer: %s:%s\" % [peer.get_packet_ip(), peer."
+"get_packet_port()])\n"
+" print(\"Received data: %s\" % [pkt.get_string_from_utf8()])\n"
+" # Reply so it knows we received the message.\n"
+" peer.put_packet(pkt)\n"
+" # Keep a reference so we can keep contacting the remote peer.\n"
+" peers.append(peer)\n"
+"\n"
+" for i in range(0, peers.size()):\n"
+" pass # Do something with the connected peers.\n"
+"\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# client.gd\n"
+"extends Node\n"
+"\n"
+"var udp := PacketPeerUDP.new()\n"
+"var connected = false\n"
+"\n"
+"func _ready():\n"
+" udp.connect_to_host(\"127.0.0.1\", 4242)\n"
+"\n"
+"func _process(delta):\n"
+" if !connected:\n"
+" # Try to contact server\n"
+" udp.put_packet(\"The answer is... 42!\".to_utf8())\n"
+" if udp.get_available_packet_count() > 0:\n"
+" print(\"Connected: %s\" % udp.get_packet().get_string_from_utf8())\n"
+" connected = true\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/UDPServer.xml
+msgid ""
+"Returns [code]true[/code] if a packet with a new address/port combination "
+"was received on the socket."
+msgstr ""
+
+#: doc/classes/UDPServer.xml
+msgid ""
+"Returns [code]true[/code] if the socket is open and listening on a port."
+msgstr ""
+
+#: doc/classes/UDPServer.xml
+msgid ""
+"Starts the server by opening a UDP socket listening on the given port. You "
+"can optionally specify a [code]bind_address[/code] to only listen for "
+"packets sent to that address. See also [method PacketPeerUDP.listen]."
+msgstr ""
+
+#: doc/classes/UDPServer.xml
+msgid ""
+"Call this method at regular intervals (e.g. inside [method Node._process]) "
+"to process new packets. And packet from known address/port pair will be "
+"delivered to the appropriate [PacketPeerUDP], any packet received from an "
+"unknown address/port pair will be added as a pending connection (see [method "
+"is_connection_available], [method take_connection]). The maximum number of "
+"pending connection is defined via [member max_pending_connections]."
+msgstr ""
+
+#: doc/classes/UDPServer.xml
+msgid ""
+"Stops the server, closing the UDP socket if open. Will close all connected "
+"[PacketPeerUDP] accepted via [method take_connection] (remote peers will not "
+"be notified)."
+msgstr ""
+
+#: doc/classes/UDPServer.xml
+msgid ""
+"Returns the first pending connection (connected to the appropriate address/"
+"port). Will return [code]null[/code] if no new connection is available. See "
+"also [method is_connection_available], [method PacketPeerUDP."
+"connect_to_host]."
+msgstr ""
+
+#: doc/classes/UDPServer.xml
+msgid ""
+"Define the maximum number of pending connections, during [method poll], any "
+"new pending connection exceeding that value will be automatically dropped. "
+"Setting this value to [code]0[/code] effectively prevents any new pending "
+"connection to be accepted (e.g. when all your players have connected)."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Helper to manage undo/redo operations in the editor or custom tools."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid ""
+"Helper to manage undo/redo operations in the editor or custom tools. It "
+"works by registering methods and property changes inside \"actions\".\n"
+"Common behavior is to create an action, then add do/undo calls to functions "
+"or property changes, then committing the action.\n"
+"Here's an example on how to add an action to the Godot editor's own "
+"[UndoRedo], from a plugin:\n"
+"[codeblock]\n"
+"var undo_redo = get_undo_redo() # Method of EditorPlugin.\n"
+"\n"
+"func do_something():\n"
+" pass # Put your code here.\n"
+"\n"
+"func undo_something():\n"
+" pass # Put here the code that reverts what's done by "
+"\"do_something()\".\n"
+"\n"
+"func _on_MyButton_pressed():\n"
+" var node = get_node(\"MyNode2D\")\n"
+" undo_redo.create_action(\"Move the node\")\n"
+" undo_redo.add_do_method(self, \"do_something\")\n"
+" undo_redo.add_undo_method(self, \"undo_something\")\n"
+" undo_redo.add_do_property(node, \"position\", Vector2(100,100))\n"
+" undo_redo.add_undo_property(node, \"position\", node.position)\n"
+" undo_redo.commit_action()\n"
+"[/codeblock]\n"
+"[method create_action], [method add_do_method], [method add_undo_method], "
+"[method add_do_property], [method add_undo_property], and [method "
+"commit_action] should be called one after the other, like in the example. "
+"Not doing so could lead to crashes.\n"
+"If you don't need to register a method, you can leave [method add_do_method] "
+"and [method add_undo_method] out; the same goes for properties. You can also "
+"register more than one method/property."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Register a method that will be called when the action is committed."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Register a property value change for \"do\"."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid ""
+"Register a reference for \"do\" that will be erased if the \"do\" history is "
+"lost. This is useful mostly for new nodes created for the \"do\" call. Do "
+"not use for resources."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Register a method that will be called when the action is undone."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Register a property value change for \"undo\"."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid ""
+"Register a reference for \"undo\" that will be erased if the \"undo\" "
+"history is lost. This is useful mostly for nodes removed with the \"do\" "
+"call (not the \"undo\" call!)."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid ""
+"Clear the undo/redo history and associated references.\n"
+"Passing [code]false[/code] to [code]increase_version[/code] will prevent the "
+"version number to be increased from this."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid ""
+"Commit the action. All \"do\" methods/properties are called/set when this "
+"function is called."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid ""
+"Create a new action. After this is called, do all your calls to [method "
+"add_do_method], [method add_undo_method], [method add_do_property], and "
+"[method add_undo_property], then commit the action with [method "
+"commit_action].\n"
+"The way actions are merged is dictated by the [code]merge_mode[/code] "
+"argument. See [enum MergeMode] for details."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Gets the name of the current action."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid ""
+"Gets the version. Every time a new action is committed, the [UndoRedo]'s "
+"version number is increased automatically.\n"
+"This is useful mostly to check if something changed from a saved version."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid ""
+"Returns [code]true[/code] if the [UndoRedo] is currently committing the "
+"action, i.e. running its \"do\" method or property change (see [method "
+"commit_action])."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Redo the last action."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Undo the last action."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Called when [method undo] or [method redo] was called."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Makes \"do\"/\"undo\" operations stay in separate actions."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid ""
+"Makes so that the action's \"do\" operation is from the first action created "
+"and the \"undo\" operation is from the last subsequent action with the same "
+"name."
+msgstr ""
+
+#: doc/classes/UndoRedo.xml
+msgid "Makes subsequent actions with the same name be merged into one."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "UPNP network functions."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Provides UPNP functionality to discover [UPNPDevice]s on the local network "
+"and execute commands on them, like managing port mappings (port forwarding) "
+"and querying the local and remote network IP address. Note that methods on "
+"this class are synchronous and block the calling thread.\n"
+"To forward a specific port:\n"
+"[codeblock]\n"
+"const PORT = 7777\n"
+"var upnp = UPNP.new()\n"
+"upnp.discover(2000, 2, \"InternetGatewayDevice\")\n"
+"upnp.add_port_mapping(port)\n"
+"[/codeblock]\n"
+"To close a specific port (e.g. after you have finished using it):\n"
+"[codeblock]\n"
+"upnp.delete_port_mapping(port)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] UPnP discovery blocks the current thread. To perform discovery "
+"without blocking the main thread, use [Thread]s like this:\n"
+"[codeblock]\n"
+"# Emitted when UPnP port mapping setup is completed (regardless of success "
+"or failure).\n"
+"signal upnp_completed(error)\n"
+"\n"
+"# Replace this with your own server port number between 1025 and 65535.\n"
+"const SERVER_PORT = 3928\n"
+"var thread = null\n"
+"\n"
+"func _upnp_setup(server_port):\n"
+" # UPNP queries take some time.\n"
+" var upnp = UPNP.new()\n"
+" var err = upnp.discover()\n"
+"\n"
+" if err != OK:\n"
+" push_error(str(err))\n"
+" emit_signal(\"upnp_completed\", err)\n"
+" return\n"
+"\n"
+" if upnp.get_gateway() and upnp.get_gateway().is_valid_gateway():\n"
+" upnp.add_port_mapping(server_port, server_port, ProjectSettings."
+"get_setting(\"application/config/name\"), \"UDP\")\n"
+" upnp.add_port_mapping(server_port, server_port, ProjectSettings."
+"get_setting(\"application/config/name\"), \"TCP\")\n"
+" emit_signal(\"upnp_completed\", OK)\n"
+"\n"
+"func _ready():\n"
+" thread = Thread.new()\n"
+" thread.start(self, \"_upnp_setup\", SERVER_PORT)\n"
+"\n"
+"func _exit_tree():\n"
+" # Wait for thread finish here to handle game exit while the thread is "
+"running.\n"
+" thread.wait_to_finish()\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Adds the given [UPNPDevice] to the list of discovered devices."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Adds a mapping to forward the external [code]port[/code] (between 1 and "
+"65535) on the default gateway (see [method get_gateway]) to the "
+"[code]internal_port[/code] on the local machine for the given protocol "
+"[code]proto[/code] (either [code]TCP[/code] or [code]UDP[/code], with UDP "
+"being the default). If a port mapping for the given port and protocol "
+"combination already exists on that gateway device, this method tries to "
+"overwrite it. If that is not desired, you can retrieve the gateway manually "
+"with [method get_gateway] and call [method add_port_mapping] on it, if any.\n"
+"If [code]internal_port[/code] is [code]0[/code] (the default), the same port "
+"number is used for both the external and the internal port (the [code]port[/"
+"code] value).\n"
+"The description ([code]desc[/code]) is shown in some router UIs and can be "
+"used to point out which application added the mapping. The mapping's lease "
+"duration can be limited by specifying a [code]duration[/code] (in seconds). "
+"However, some routers are incompatible with one or both of these, so use "
+"with caution and add fallback logic in case of errors to retry without them "
+"if in doubt.\n"
+"See [enum UPNPResult] for possible return values."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Clears the list of discovered devices."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Deletes the port mapping for the given port and protocol combination on the "
+"default gateway (see [method get_gateway]) if one exists. [code]port[/code] "
+"must be a valid port between 1 and 65535, [code]proto[/code] can be either "
+"[code]TCP[/code] or [code]UDP[/code]. See [enum UPNPResult] for possible "
+"return values."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Discovers local [UPNPDevice]s. Clears the list of previously discovered "
+"devices.\n"
+"Filters for IGD (InternetGatewayDevice) type devices by default, as those "
+"manage port forwarding. [code]timeout[/code] is the time to wait for "
+"responses in milliseconds. [code]ttl[/code] is the time-to-live; only touch "
+"this if you know what you're doing.\n"
+"See [enum UPNPResult] for possible return values."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Returns the [UPNPDevice] at the given [code]index[/code]."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Returns the number of discovered [UPNPDevice]s."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Returns the default gateway. That is the first discovered [UPNPDevice] that "
+"is also a valid IGD (InternetGatewayDevice)."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Returns the external [IP] address of the default gateway (see [method "
+"get_gateway]) as string. Returns an empty string on error."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Removes the device at [code]index[/code] from the list of discovered devices."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Sets the device at [code]index[/code] from the list of discovered devices to "
+"[code]device[/code]."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "If [code]true[/code], IPv6 is used for [UPNPDevice] discovery."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"If [code]0[/code], the local port to use for discovery is chosen "
+"automatically by the system. If [code]1[/code], discovery will be done from "
+"the source port 1900 (same as destination port). Otherwise, the value will "
+"be used as the port."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Multicast interface to use for discovery. Uses the default multicast "
+"interface if empty."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "UPNP command or discovery was successful."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Not authorized to use the command on the [UPNPDevice]. May be returned when "
+"the user disabled UPNP on their router."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"No port mapping was found for the given port, protocol combination on the "
+"given [UPNPDevice]."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Inconsistent parameters."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"No such entry in array. May be returned if a given port, protocol "
+"combination is not found on an [UPNPDevice]."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "The action failed."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"The [UPNPDevice] does not allow wildcard values for the source IP address."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "The [UPNPDevice] does not allow wildcard values for the external port."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "The [UPNPDevice] does not allow wildcard values for the internal port."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "The remote host value must be a wildcard."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "The external port value must be a wildcard."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"No port maps are available. May also be returned if port mapping "
+"functionality is not available."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Conflict with other mechanism. May be returned instead of [constant "
+"UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING] if a port mapping conflicts with an "
+"existing one."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Conflict with an existing port mapping."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "External and internal port values must be the same."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"Only permanent leases are supported. Do not use the [code]duration[/code] "
+"parameter when adding port mappings."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Invalid gateway."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Invalid port."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Invalid protocol."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Invalid duration."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Invalid arguments."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Invalid response."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Invalid parameter."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml modules/upnp/doc_classes/UPNPDevice.xml
+msgid "HTTP error."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Socket error."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid "Error allocating memory."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"No gateway available. You may need to call [method discover] first, or "
+"discovery didn't detect any valid IGDs (InternetGatewayDevices)."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml
+msgid ""
+"No devices available. You may need to call [method discover] first, or "
+"discovery didn't detect any valid [UPNPDevice]s."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNP.xml modules/upnp/doc_classes/UPNPDevice.xml
+msgid "Unknown error."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "UPNP device."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid ""
+"UPNP device. See [UPNP] for UPNP discovery and utility functions. Provides "
+"low-level access to UPNP control commands. Allows to manage port mappings "
+"(port forwarding) and to query network information of the device (like local "
+"and external IP address and status). Note that methods on this class are "
+"synchronous and block the calling thread."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid ""
+"Adds a port mapping to forward the given external port on this [UPNPDevice] "
+"for the given protocol to the local machine. See [method UPNP."
+"add_port_mapping]."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid ""
+"Deletes the port mapping identified by the given port and protocol "
+"combination on this device. See [method UPNP.delete_port_mapping]."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid ""
+"Returns [code]true[/code] if this is a valid IGD (InternetGatewayDevice) "
+"which potentially supports port forwarding."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid ""
+"Returns the external IP address of this [UPNPDevice] or an empty string."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "URL to the device description."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "IDG control URL."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid ""
+"Address of the local machine in the network connecting it to this "
+"[UPNPDevice]."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "IGD service type."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "IGD status. See [enum IGDStatus]."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "Service type."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "OK."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "Empty HTTP response."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "Returned response contained no URLs."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "Not a valid IGD."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "Disconnected."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "Unknown device."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "Invalid control."
+msgstr ""
+
+#: modules/upnp/doc_classes/UPNPDevice.xml
+msgid "Memory allocation error."
+msgstr ""
+
+#: doc/classes/Variant.xml
+msgid "The most important data type in Godot."
+msgstr ""
+
+#: doc/classes/Variant.xml
+msgid ""
+"In computer programming, a Variant class is a class that is designed to "
+"store a variety of other types. Dynamic programming languages like PHP, Lua, "
+"JavaScript and GDScript like to use them to store variables' data on the "
+"backend. With these Variants, properties are able to change value types "
+"freely.\n"
+"[codeblock]\n"
+"var foo = 2 # foo is dynamically an integer\n"
+"foo = \"Now foo is a string!\"\n"
+"foo = Reference.new() # foo is an Object\n"
+"var bar: int = 2 # bar is a statically typed integer.\n"
+"# bar = \"Uh oh! I can't make static variables become a different type!\"\n"
+"[/codeblock]\n"
+"Godot tracks all scripting API variables within Variants. Without even "
+"realizing it, you use Variants all the time. When a particular language "
+"enforces its own rules for keeping data typed, then that language is "
+"applying its own custom logic over the base Variant scripting API.\n"
+"- GDScript automatically wrap values in them. It keeps all data in plain "
+"Variants by default and then optionally enforces custom static typing rules "
+"on variable types.\n"
+"- VisualScript tracks properties inside Variants as well, but it also uses "
+"static typing. The GUI interface enforces that properties have a particular "
+"type that doesn't change over time.\n"
+"- C# is statically typed, but uses the Mono [code]object[/code] type in "
+"place of Godot's Variant class when it needs to represent a dynamic value. "
+"[code]object[/code] is the Mono runtime's equivalent of the same concept.\n"
+"- The statically-typed language NativeScript C++ does not define a built-in "
+"Variant-like class. Godot's GDNative bindings provide their own godot::"
+"Variant class for users; Any point at which the C++ code starts interacting "
+"with the Godot runtime is a place where you might have to start wrapping "
+"data inside Variant objects.\n"
+"The global [method @GDScript.typeof] function returns the enumerated value "
+"of the Variant type stored in the current variable (see [enum Variant."
+"Type]).\n"
+"[codeblock]\n"
+"var foo = 2\n"
+"match typeof(foo):\n"
+" TYPE_NIL:\n"
+" print(\"foo is null\")\n"
+" TYPE_INTEGER:\n"
+" print(\"foo is an integer\")\n"
+" TYPE_OBJECT:\n"
+" # Note that Objects are their own special category.\n"
+" # To get the name of the underlying Object type, you need the "
+"`get_class()` method.\n"
+" print(\"foo is a(n) %s\" % foo.get_class()) # inject the class name "
+"into a formatted string.\n"
+" # Note also that there is not yet any way to get a script's "
+"`class_name` string easily.\n"
+" # To fetch that value, you need to dig deeply into a hidden "
+"ProjectSettings setting: an Array of Dictionaries called "
+"\"_global_script_classes\".\n"
+" # Open your project.godot file to see it up close.\n"
+"[/codeblock]\n"
+"A Variant takes up only 20 bytes and can store almost any engine datatype "
+"inside of it. Variants are rarely used to hold information for long periods "
+"of time. Instead, they are used mainly for communication, editing, "
+"serialization and moving data around.\n"
+"Godot has specifically invested in making its Variant class as flexible as "
+"possible; so much so that it is used for a multitude of operations to "
+"facilitate communication between all of Godot's systems.\n"
+"A Variant:\n"
+"- Can store almost any datatype.\n"
+"- Can perform operations between many variants. GDScript uses Variant as its "
+"atomic/native datatype.\n"
+"- Can be hashed, so it can be compared quickly to other variants.\n"
+"- Can be used to convert safely between datatypes.\n"
+"- Can be used to abstract calling methods and their arguments. Godot exports "
+"all its functions through variants.\n"
+"- Can be used to defer calls or move data between threads.\n"
+"- Can be serialized as binary and stored to disk, or transferred via "
+"network.\n"
+"- Can be serialized to text and use it for printing values and editable "
+"settings.\n"
+"- Can work as an exported property, so the editor can edit it universally.\n"
+"- Can be used for dictionaries, arrays, parsers, etc.\n"
+"[b]Containers (Array and Dictionary):[/b] Both are implemented using "
+"variants. A [Dictionary] can match any datatype used as key to any other "
+"datatype. An [Array] just holds an array of Variants. Of course, a Variant "
+"can also hold a [Dictionary] and an [Array] inside, making it even more "
+"flexible.\n"
+"Modifications to a container will modify all references to it. A [Mutex] "
+"should be created to lock it if multi-threaded access is desired."
+msgstr ""
+
+#: doc/classes/Variant.xml
+msgid "$DOCS_URL/development/cpp/variant_class.html"
+msgstr ""
+
+#: doc/classes/VBoxContainer.xml
+msgid "Vertical box container."
+msgstr ""
+
+#: doc/classes/VBoxContainer.xml
+msgid "Vertical box container. See [BoxContainer]."
+msgstr ""
+
+#: doc/classes/VBoxContainer.xml
+msgid "The vertical space between the [VBoxContainer]'s elements."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid "Vector used for 2D math."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"2-element structure that can be used to represent positions in 2D space or "
+"any other pair of numeric values.\n"
+"[b]Note:[/b] In a boolean context, a Vector2 will evaluate to [code]false[/"
+"code] if it's equal to [code]Vector2(0, 0)[/code]. Otherwise, a Vector2 will "
+"always evaluate to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab"
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Constructs a new Vector2 from the given [code]x[/code] and [code]y[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns a new vector with all components in absolute values (i.e. positive)."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Returns this vector's angle with respect to the positive X axis, or [code]"
+"(1, 0)[/code] vector, in radians.\n"
+"For example, [code]Vector2.RIGHT.angle()[/code] will return zero, "
+"[code]Vector2.DOWN.angle()[/code] will return [code]PI / 2[/code] (a quarter "
+"turn, or 90 degrees), and [code]Vector2(1, -1).angle()[/code] will return "
+"[code]-PI / 4[/code] (a negative eighth turn, or -45 degrees).\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"vector2_angle.png]Illustration of the returned angle.[/url]\n"
+"Equivalent to the result of [method @GDScript.atan2] when called with the "
+"vector's [member y] and [member x] as parameters: [code]atan2(y, x)[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Returns the angle to the given vector, in radians.\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"vector2_angle_to.png]Illustration of the returned angle.[/url]"
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Returns the angle between the line connecting the two points and the X axis, "
+"in radians.\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"vector2_angle_to_point.png]Illustration of the returned angle.[/url]"
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Returns the aspect ratio of this vector, the ratio of [member x] to [member "
+"y]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns the vector \"bounced off\" from a plane defined by the given normal."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns a new vector with all components rounded up (towards positive "
+"infinity)."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Deprecated, please use [method limit_length] instead.\n"
+"Returns the vector with a maximum length by limiting its length to "
+"[code]length[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid "Returns the cross product of this vector and [code]with[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Cubically interpolates between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns the normalized vector pointing from this vector to [code]b[/code]. "
+"This is equivalent to using [code](b - a).normalized()[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns the squared distance between this vector and [code]b[/code].\n"
+"This method runs faster than [method distance_to], so prefer it if you need "
+"to compare vectors or need the squared distance for some formula."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid "Returns the distance between this vector and [code]to[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Returns the dot product of this vector and [code]with[/code]. This can be "
+"used to compare the angle between two vectors. For example, this can be used "
+"to determine whether an enemy is facing the player.\n"
+"The dot product will be [code]0[/code] for a straight angle (90 degrees), "
+"greater than 0 for angles narrower than 90 degrees and lower than 0 for "
+"angles wider than 90 degrees.\n"
+"When using unit (normalized) vectors, the result will always be between "
+"[code]-1.0[/code] (180 degree angle) when the vectors are facing opposite "
+"directions, and [code]1.0[/code] (0 degree angle) when the vectors are "
+"aligned.\n"
+"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns a new vector with all components rounded down (towards negative "
+"infinity)."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns [code]true[/code] if this vector and [code]v[/code] are "
+"approximately equal, by running [method @GDScript.is_equal_approx] on each "
+"component."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns [code]true[/code] if the vector is normalized, [code]false[/code] "
+"otherwise."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns the length (magnitude) of this vector."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns the squared length (squared magnitude) of this vector.\n"
+"This method runs faster than [method length], so prefer it if you need to "
+"compare vectors or need the squared distance for some formula."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns the vector with a maximum length by limiting its length to "
+"[code]length[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Returns the result of the linear interpolation between this vector and "
+"[code]to[/code] by amount [code]weight[/code]. [code]weight[/code] is on the "
+"range of 0.0 to 1.0, representing the amount of interpolation."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns the vector scaled to unit length. Equivalent to [code]v / v.length()"
+"[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns a vector composed of the [method @GDScript.fposmod] of this vector's "
+"components and [code]mod[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns a vector composed of the [method @GDScript.fposmod] of this vector's "
+"components and [code]modv[/code]'s components."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Returns the vector rotated by [code]phi[/code] radians. See also [method "
+"@GDScript.deg2rad]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns the result of spherical linear interpolation between this vector and "
+"[code]to[/code], by amount [code]weight[/code]. [code]weight[/code] is on "
+"the range of 0.0 to 1.0, representing the amount of interpolation.\n"
+"[b]Note:[/b] Both vectors must be normalized."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector slid along a plane defined by the given normal."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Returns this vector with each component snapped to the nearest multiple of "
+"[code]step[/code]. This can also be used to round to an arbitrary number of "
+"decimals."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid ""
+"Returns a perpendicular vector rotated 90 degrees counter-clockwise compared "
+"to the original, with the same length."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"The vector's X component. Also accessible by using the index position [code]"
+"[0][/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"The vector's Y component. Also accessible by using the index position [code]"
+"[1][/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid "Enumerated value for the X axis."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid "Enumerated value for the Y axis."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Zero vector, a vector with all components set to [code]0[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "One vector, a vector with all components set to [code]1[/code]."
+msgstr ""
+
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid ""
+"Infinity vector, a vector with all components set to [constant @GDScript."
+"INF]."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid "Left unit vector. Represents the direction of left."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid "Right unit vector. Represents the direction of right."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid "Up unit vector. Y is down in 2D, so this vector points -Y."
+msgstr ""
+
+#: doc/classes/Vector2.xml
+msgid "Down unit vector. Y is down in 2D, so this vector points +Y."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid "Vector used for 3D math."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"3-element structure that can be used to represent positions in 3D space or "
+"any other pair of numeric values.\n"
+"[b]Note:[/b] In a boolean context, a Vector3 will evaluate to [code]false[/"
+"code] if it's equal to [code]Vector3(0, 0, 0)[/code]. Otherwise, a Vector3 "
+"will always evaluate to [code]true[/code]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid "Returns a Vector3 with the given components."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid "Returns the unsigned minimum angle to the given vector, in radians."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid "Returns the cross product of this vector and [code]b[/code]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid "Returns the distance between this vector and [code]b[/code]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Returns the dot product of this vector and [code]b[/code]. This can be used "
+"to compare the angle between two vectors. For example, this can be used to "
+"determine whether an enemy is facing the player.\n"
+"The dot product will be [code]0[/code] for a straight angle (90 degrees), "
+"greater than 0 for angles narrower than 90 degrees and lower than 0 for "
+"angles wider than 90 degrees.\n"
+"When using unit (normalized) vectors, the result will always be between "
+"[code]-1.0[/code] (180 degree angle) when the vectors are facing opposite "
+"directions, and [code]1.0[/code] (0 degree angle) when the vectors are "
+"aligned.\n"
+"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
+"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Returns the result of the linear interpolation between this vector and "
+"[code]to[/code] by amount [code]t[/code]. [code]weight[/code] is on the "
+"range of 0.0 to 1.0, representing the amount of interpolation."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Returns the axis of the vector's largest value. See [code]AXIS_*[/code] "
+"constants. If all components are equal, this method returns [constant "
+"AXIS_X]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Returns the axis of the vector's smallest value. See [code]AXIS_*[/code] "
+"constants. If all components are equal, this method returns [constant "
+"AXIS_Z]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid "Returns the outer product with [code]b[/code]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid "Returns this vector reflected from a plane defined by the given normal."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Rotates this vector around a given axis by [code]phi[/code] radians. The "
+"axis must be a normalized vector."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Returns the signed angle to the given vector, in radians. The sign of the "
+"angle is positive in a counter-clockwise direction and negative in a "
+"clockwise direction when viewed from the side specified by the [code]axis[/"
+"code]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Returns a diagonal matrix with the vector as main diagonal.\n"
+"This is equivalent to a Basis with no rotation or shearing and this vector's "
+"components set as the scale."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"The vector's Z component. Also accessible by using the index position [code]"
+"[2][/code]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Enumerated value for the X axis. Returned by [method max_axis] and [method "
+"min_axis]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Enumerated value for the Y axis. Returned by [method max_axis] and [method "
+"min_axis]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Enumerated value for the Z axis. Returned by [method max_axis] and [method "
+"min_axis]."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Left unit vector. Represents the local direction of left, and the global "
+"direction of west."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Right unit vector. Represents the local direction of right, and the global "
+"direction of east."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid "Up unit vector."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid "Down unit vector."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Forward unit vector. Represents the local direction of forward, and the "
+"global direction of north."
+msgstr ""
+
+#: doc/classes/Vector3.xml
+msgid ""
+"Back unit vector. Represents the local direction of back, and the global "
+"direction of south."
+msgstr ""
+
+#: doc/classes/VehicleBody.xml
+msgid "Physics body that simulates the behavior of a car."
+msgstr ""
+
+#: doc/classes/VehicleBody.xml
+msgid ""
+"This node implements all the physics logic needed to simulate a car. It is "
+"based on the raycast vehicle system commonly found in physics engines. You "
+"will need to add a [CollisionShape] for the main body of your vehicle and "
+"add [VehicleWheel] nodes for the wheels. You should also add a "
+"[MeshInstance] to this node for the 3D model of your car but this model "
+"should not include meshes for the wheels. You should control the vehicle by "
+"using the [member brake], [member engine_force], and [member steering] "
+"properties and not change the position or orientation of this node "
+"directly.\n"
+"[b]Note:[/b] The origin point of your VehicleBody will determine the center "
+"of gravity of your vehicle so it is better to keep this low and move the "
+"[CollisionShape] and [MeshInstance] upwards.\n"
+"[b]Note:[/b] This class has known issues and isn't designed to provide "
+"realistic 3D vehicle physics. If you want advanced vehicle physics, you will "
+"probably have to write your own physics integration using another "
+"[PhysicsBody] class."
+msgstr ""
+
+#: doc/classes/VehicleBody.xml
+msgid ""
+"Slows down the vehicle by applying a braking force. The vehicle is only "
+"slowed down if the wheels are in contact with a surface. The force you need "
+"to apply to adequately slow down your vehicle depends on the [member "
+"RigidBody.mass] of the vehicle. For a vehicle with a mass set to 1000, try a "
+"value in the 25 - 30 range for hard braking."
+msgstr ""
+
+#: doc/classes/VehicleBody.xml
+msgid ""
+"Accelerates the vehicle by applying an engine force. The vehicle is only "
+"speed up if the wheels that have [member VehicleWheel.use_as_traction] set "
+"to [code]true[/code] and are in contact with a surface. The [member "
+"RigidBody.mass] of the vehicle has an effect on the acceleration of the "
+"vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 "
+"range for acceleration.\n"
+"[b]Note:[/b] The simulation does not take the effect of gears into account, "
+"you will need to add logic for this if you wish to simulate gears.\n"
+"A negative value will result in the vehicle reversing."
+msgstr ""
+
+#: doc/classes/VehicleBody.xml
+msgid ""
+"The steering angle for the vehicle. Setting this to a non-zero value will "
+"result in the vehicle turning when it's moving. Wheels that have [member "
+"VehicleWheel.use_as_steering] set to [code]true[/code] will automatically be "
+"rotated."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid "Physics object that simulates the behavior of a wheel."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"This node needs to be used as a child node of [VehicleBody] and simulates "
+"the behavior of one of its wheels. This node also acts as a collider to "
+"detect if the wheel is touching a surface.\n"
+"[b]Note:[/b] This class has known issues and isn't designed to provide "
+"realistic 3D vehicle physics. If you want advanced vehicle physics, you will "
+"probably have to write your own physics integration using another "
+"[PhysicsBody] class."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"Returns the contacting body node if valid in the tree, as [Spatial]. At the "
+"moment, [GridMap] is not supported so the node will be always of type "
+"[PhysicsBody].\n"
+"Returns [code]null[/code] if the wheel is not in contact with a surface, or "
+"the contact body is not a [PhysicsBody]."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid "Returns the rotational speed of the wheel in revolutions per minute."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"Returns a value between 0.0 and 1.0 that indicates whether this wheel is "
+"skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 "
+"means not skidding (the wheel has full grip, e.g. dry asphalt road)."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid "Returns [code]true[/code] if this wheel is in contact with a surface."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"Slows down the wheel by applying a braking force. The wheel is only slowed "
+"down if it is in contact with a surface. The force you need to apply to "
+"adequately slow down your vehicle depends on the [member RigidBody.mass] of "
+"the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - "
+"30 range for hard braking."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"The damping applied to the spring when the spring is being compressed. This "
+"value should be between 0.0 (no damping) and 1.0. A value of 0.0 means the "
+"car will keep bouncing as the spring keeps its energy. A good value for this "
+"is around 0.3 for a normal car, 0.5 for a race car."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"The damping applied to the spring when relaxing. This value should be "
+"between 0.0 (no damping) and 1.0. This value should always be slightly "
+"higher than the [member damping_compression] property. For a [member "
+"damping_compression] value of 0.3, try a relaxation value of 0.5."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"Accelerates the wheel by applying an engine force. The wheel is only speed "
+"up if it is in contact with a surface. The [member RigidBody.mass] of the "
+"vehicle has an effect on the acceleration of the vehicle. For a vehicle with "
+"a mass set to 1000, try a value in the 25 - 50 range for acceleration.\n"
+"[b]Note:[/b] The simulation does not take the effect of gears into account, "
+"you will need to add logic for this if you wish to simulate gears.\n"
+"A negative value will result in the wheel reversing."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"The steering angle for the wheel. Setting this to a non-zero value will "
+"result in the vehicle turning when it's moving."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"The maximum force the spring can resist. This value should be higher than a "
+"quarter of the [member RigidBody.mass] of the [VehicleBody] or the spring "
+"will not carry the weight of the vehicle. Good results are often obtained by "
+"a value that is about 3× to 4× this number."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"This value defines the stiffness of the suspension. Use a value lower than "
+"50 for an off-road car, a value between 50 and 100 for a race car and try "
+"something around 200 for something like a Formula 1 car."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"This is the distance the suspension can travel. As Godot units are "
+"equivalent to meters, keep this setting relatively low. Try a value between "
+"0.1 and 0.3 depending on the type of car."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"If [code]true[/code], this wheel will be turned when the car steers. This "
+"value is used in conjunction with [member VehicleBody.steering] and ignored "
+"if you are using the per-wheel [member steering] value instead."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"If [code]true[/code], this wheel transfers engine force to the ground to "
+"propel the vehicle forward. This value is used in conjunction with [member "
+"VehicleBody.engine_force] and ignored if you are using the per-wheel [member "
+"engine_force] value instead."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"This determines how much grip this wheel has. It is combined with the "
+"friction setting of the surface the wheel is in contact with. 0.0 means no "
+"grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the "
+"rear wheels slightly lower than the front wheels, or use a lower value to "
+"simulate tire wear.\n"
+"It's best to set this to 1.0 when starting out."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid "The radius of the wheel in meters."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"This is the distance in meters the wheel is lowered from its origin point. "
+"Don't set this to 0.0 and move the wheel into position, instead move the "
+"origin point of your wheel (the gizmo in Godot) to the position the wheel "
+"will take when bottoming out, then use the rest length to move the wheel "
+"down to the position it should be in when the car is in rest."
+msgstr ""
+
+#: doc/classes/VehicleWheel.xml
+msgid ""
+"This value affects the roll of your vehicle. If set to 1.0 for all wheels, "
+"your vehicle will be prone to rolling over, while a value of 0.0 will resist "
+"body roll."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "Control for playing video streams."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid ""
+"Control node for playing video streams using [VideoStream] resources.\n"
+"Supported video formats are [url=https://www.webmproject.org/]WebM[/url] "
+"([code].webm[/code], [VideoStreamWebm]), [url=https://www.theora.org/]Ogg "
+"Theora[/url] ([code].ogv[/code], [VideoStreamTheora]), and any format "
+"exposed via a GDNative plugin using [VideoStreamGDNative].\n"
+"[b]Note:[/b] Due to a bug, VideoPlayer does not support localization "
+"remapping yet.\n"
+"[b]Warning:[/b] On HTML5, video playback [i]will[/i] perform poorly due to "
+"missing architecture-specific assembly optimizations, especially for VP8/VP9."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid ""
+"Returns the video stream's name, or [code]\"<No Stream>\"[/code] if no video "
+"stream is assigned."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "Returns the current frame as a [Texture]."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid ""
+"Returns [code]true[/code] if the video is playing.\n"
+"[b]Note:[/b] The video is still considered playing if paused during playback."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid ""
+"Starts the video playback from the beginning. If the video is paused, this "
+"will not unpause the video."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid ""
+"Stops the video playback and sets the stream position to 0.\n"
+"[b]Note:[/b] Although the stream position will be set to 0, the first frame "
+"of the video stream won't become the current frame."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "The embedded audio track to play."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "If [code]true[/code], playback starts when the scene loads."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "Amount of time in milliseconds to store in buffer while playing."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "Audio bus to use for sound playback."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid ""
+"If [code]true[/code], the video scales to the control size. Otherwise, the "
+"control minimum size will be automatically adjusted to match the video "
+"stream's dimensions."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "If [code]true[/code], the video is paused."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "The assigned video stream. See description for supported formats."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid ""
+"The current position of the stream, in seconds.\n"
+"[b]Note:[/b] Changing this value won't have any effect as seeking is not "
+"implemented yet, except in video formats implemented by a GDNative add-on."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "Audio volume as a linear value."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "Audio volume in dB."
+msgstr ""
+
+#: doc/classes/VideoPlayer.xml
+msgid "Emitted when playback is finished."
+msgstr ""
+
+#: doc/classes/VideoStream.xml
+msgid "Base resource for video streams."
+msgstr ""
+
+#: doc/classes/VideoStream.xml
+msgid ""
+"Base resource type for all video streams. Classes that derive from "
+"[VideoStream] can all be used as resource types to play back videos in "
+"[VideoPlayer]."
+msgstr ""
+
+#: modules/gdnative/doc_classes/VideoStreamGDNative.xml
+msgid "[VideoStream] resource for for video formats implemented via GDNative."
+msgstr ""
+
+#: modules/gdnative/doc_classes/VideoStreamGDNative.xml
+msgid ""
+"[VideoStream] resource for for video formats implemented via GDNative.\n"
+"It can be used via [url=https://github.com/KidRigger/godot-"
+"videodecoder]godot-videodecoder[/url] which uses the [url=https://ffmpeg."
+"org]FFmpeg[/url] library."
+msgstr ""
+
+#: modules/gdnative/doc_classes/VideoStreamGDNative.xml
+msgid "Returns the video file handled by this [VideoStreamGDNative]."
+msgstr ""
+
+#: modules/gdnative/doc_classes/VideoStreamGDNative.xml
+msgid ""
+"Sets the video file that this [VideoStreamGDNative] resource handles. The "
+"supported extensions depend on the GDNative plugins used to expose video "
+"formats."
+msgstr ""
+
+#: modules/theora/doc_classes/VideoStreamTheora.xml
+msgid "[VideoStream] resource for Ogg Theora videos."
+msgstr ""
+
+#: modules/theora/doc_classes/VideoStreamTheora.xml
+msgid ""
+"[VideoStream] resource handling the [url=https://www.theora.org/]Ogg Theora[/"
+"url] video format with [code].ogv[/code] extension. The Theora codec is less "
+"efficient than [VideoStreamWebm]'s VP8 and VP9, but it requires less CPU "
+"resources to decode. The Theora codec is decoded on the CPU.\n"
+"[b]Note:[/b] While Ogg Theora videos can also have an [code].ogg[/code] "
+"extension, you will have to rename the extension to [code].ogv[/code] to use "
+"those videos within Godot."
+msgstr ""
+
+#: modules/theora/doc_classes/VideoStreamTheora.xml
+msgid "Returns the Ogg Theora video file handled by this [VideoStreamTheora]."
+msgstr ""
+
+#: modules/theora/doc_classes/VideoStreamTheora.xml
+msgid ""
+"Sets the Ogg Theora video file that this [VideoStreamTheora] resource "
+"handles. The [code]file[/code] name should have the [code].ogv[/code] "
+"extension."
+msgstr ""
+
+#: modules/webm/doc_classes/VideoStreamWebm.xml
+msgid "[VideoStream] resource for WebM videos."
+msgstr ""
+
+#: modules/webm/doc_classes/VideoStreamWebm.xml
+msgid ""
+"[VideoStream] resource handling the [url=https://www.webmproject.org/]WebM[/"
+"url] video format with [code].webm[/code] extension. Both the VP8 and VP9 "
+"codecs are supported. The VP8 and VP9 codecs are more efficient than "
+"[VideoStreamTheora], but they require more CPU resources to decode "
+"(especially VP9). Both the VP8 and VP9 codecs are decoded on the CPU.\n"
+"[b]Note:[/b] Alpha channel (also known as transparency) is not supported. "
+"The video will always appear to have a black background, even if it "
+"originally contains an alpha channel.\n"
+"[b]Note:[/b] There are known bugs and performance issues with WebM video "
+"playback in Godot. If you run into problems, try using the Ogg Theora format "
+"instead: [VideoStreamTheora]"
+msgstr ""
+
+#: modules/webm/doc_classes/VideoStreamWebm.xml
+msgid "Returns the WebM video file handled by this [VideoStreamWebm]."
+msgstr ""
+
+#: modules/webm/doc_classes/VideoStreamWebm.xml
+msgid ""
+"Sets the WebM video file that this [VideoStreamWebm] resource handles. The "
+"[code]file[/code] name should have the [code].webm[/code] extension."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Creates a sub-view into the screen."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"A Viewport creates a different view into the screen, or a sub-view inside "
+"another viewport. Children 2D Nodes will display on it, and children Camera "
+"3D nodes will render on it too.\n"
+"Optionally, a viewport can have its own 2D or 3D world, so they don't share "
+"what they draw with other viewports.\n"
+"If a viewport is a child of a [ViewportContainer], it will automatically "
+"take up its size, otherwise it must be set manually.\n"
+"Viewports can also choose to be audio listeners, so they generate positional "
+"audio depending on a 2D or 3D camera child of it.\n"
+"Also, viewports can be assigned to different screens in case the devices "
+"have multiple screens.\n"
+"Finally, viewports can also behave as render targets, in which case they "
+"will not be visible unless the associated texture is used to draw.\n"
+"[b]Note:[/b] By default, a newly created Viewport in Godot 3.x will appear "
+"to be upside down. Enabling [member render_target_v_flip] will display the "
+"Viewport with the correct orientation."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "$DOCS_URL/tutorials/rendering/index.html"
+msgstr ""
+
+#: doc/classes/Viewport.xml doc/classes/ViewportTexture.xml
+msgid "https://godotengine.org/asset-library/asset/128"
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "https://godotengine.org/asset-library/asset/130"
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "https://godotengine.org/asset-library/asset/541"
+msgstr ""
+
+#: doc/classes/Viewport.xml doc/classes/ViewportTexture.xml
+msgid "https://godotengine.org/asset-library/asset/586"
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Returns the first valid [World] for this viewport, searching the [member "
+"world] property of itself and any Viewport ancestor."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Returns the first valid [World2D] for this viewport, searching the [member "
+"world_2d] property of itself and any Viewport ancestor."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Returns the active 3D camera."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Returns the total transform of the viewport."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Returns the topmost modal in the stack."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Returns the mouse position relative to the viewport."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Returns information about the viewport from the rendering pipeline."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Returns the [enum ShadowAtlasQuadrantSubdiv] of the specified quadrant."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Returns the size override set with [method set_size_override]."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Returns the viewport's texture.\n"
+"[b]Note:[/b] Due to the way OpenGL works, the resulting [ViewportTexture] is "
+"flipped vertically. You can use [method Image.flip_y] on the result of "
+"[method Texture.get_data] to flip it back, for example:\n"
+"[codeblock]\n"
+"var img = get_viewport().get_texture().get_data()\n"
+"img.flip_y()\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Returns the viewport's RID from the [VisualServer]."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Returns the visible rectangle in global screen coordinates."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Returns the drag data from the GUI, that was previously returned by [method "
+"Control.get_drag_data]."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Returns [code]true[/code] if there are visible modals on-screen."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Returns [code]true[/code] if the viewport is currently performing a drag "
+"operation."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Returns [code]true[/code] if the size override is enabled. See [method "
+"set_size_override]."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Attaches this [Viewport] to the root [Viewport] with the specified "
+"rectangle. This bypasses the need for another node to display this "
+"[Viewport] but makes you responsible for updating the position of this "
+"[Viewport] manually."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Stops the input from propagating further down the [SceneTree]."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Sets the number of subdivisions to use in the specified quadrant. A higher "
+"number of subdivisions allows you to have more shadows in the scene at once, "
+"but reduces the quality of the shadows. A good practice is to have quadrants "
+"with a varying number of subdivisions and to have as few subdivisions as "
+"possible."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Sets the size override of the viewport. If the [code]enable[/code] parameter "
+"is [code]true[/code] the override is used, otherwise it uses the default "
+"size. If the size parameter is [code](-1, -1)[/code], it won't update the "
+"size."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Forces update of the 2D and 3D worlds."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Warps the mouse to a position relative to the viewport."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "If [code]true[/code], the viewport will be used in AR/VR process."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "If [code]true[/code], the viewport will process 2D audio streams."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "If [code]true[/code], the viewport will process 3D audio streams."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"The canvas transform of the viewport, useful for changing the on-screen "
+"positions of all child [CanvasItem]s. This is relative to the global canvas "
+"transform of the viewport."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], uses a fast post-processing filter to make banding "
+"significantly less visible. In some cases, debanding may introduce a "
+"slightly noticeable dithering pattern. It's recommended to enable debanding "
+"only when actually needed since the dithering pattern will make lossless-"
+"compressed screenshots larger.\n"
+"[b]Note:[/b] Only available on the GLES3 backend. [member hdr] must also be "
+"[code]true[/code] for debanding to be effective."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "The overlay mode for test rendered geometry in debug purposes."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], the viewport will disable 3D rendering. For actual "
+"disabling use [code]usage[/code]."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Enables fast approximate antialiasing. FXAA is a popular screen-space "
+"antialiasing method, which is fast but will make the image look blurry, "
+"especially at lower resolutions. It can still work relatively well at large "
+"resolutions such as 1440p and 4K. Some of the lost sharpness can be "
+"recovered by enabling contrast-adaptive sharpening (see [member "
+"sharpen_intensity])."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"The global canvas transform of the viewport. The canvas transform is "
+"relative to this."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "If [code]true[/code], the viewport will not receive input events."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], the GUI controls on the viewport will lay pixel "
+"perfectly."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], the viewport rendering will receive benefits from High "
+"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
+"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], the result after 3D rendering will not have a linear "
+"to sRGB color conversion applied. This is important when the viewport is "
+"used as a render target where the result is used as a texture on a 3D object "
+"rendered in another viewport. It is also important if the viewport is used "
+"to create data that is not color based (noise, heightmaps, pickmaps, etc.). "
+"Do not enable this when the viewport is used as a texture on a 2D object or "
+"if the viewport is your final output. For the GLES2 driver this will convert "
+"the sRGB output to linear, this should only be used for VR plugins that "
+"require input in linear color space!"
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"The multisample anti-aliasing mode. A higher number results in smoother "
+"edges at the cost of significantly worse performance. A value of 4 is best "
+"unless targeting very high-end systems."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], the viewport will use [World] defined in [code]world[/"
+"code] property."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], the objects rendered by viewport become subjects of "
+"mouse picking process."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], renders the Viewport directly to the screen instead of "
+"to the root viewport. Only available in GLES2. This is a low-level "
+"optimization and should not be used in most cases. If used, reading from the "
+"Viewport or from [code]SCREEN_TEXTURE[/code] becomes unavailable. For more "
+"information see [method VisualServer.viewport_set_render_direct_to_screen]."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"The clear mode when viewport used as a render target.\n"
+"[b]Note:[/b] This property is intended for 2D usage."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "The update mode when viewport used as a render target."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], the result of rendering will be flipped vertically. "
+"Since Viewports in Godot 3.x render upside-down, it's recommended to set "
+"this to [code]true[/code] in most situations."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "The subdivision amount of the first quadrant on the shadow atlas."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "The subdivision amount of the second quadrant on the shadow atlas."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "The subdivision amount of the third quadrant on the shadow atlas."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "The subdivision amount of the fourth quadrant on the shadow atlas."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"The shadow atlas' resolution (used for omni and spot lights). The value will "
+"be rounded up to the nearest power of 2.\n"
+"[b]Note:[/b] If this is set to 0, shadows won't be visible. Since user-"
+"created viewports default to a value of 0, this value must be set above 0 "
+"manually."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], contrast-adaptive "
+"sharpening will be applied to the 3D viewport. This has a low performance "
+"cost and can be used to recover some of the sharpness lost from using FXAA. "
+"Values around [code]0.5[/code] generally give the best results. See also "
+"[member fxaa]."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"The width and height of viewport. Must be set to a value greater than or "
+"equal to 2 pixels on both dimensions. Otherwise, nothing will be displayed."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "If [code]true[/code], the size override affects stretch as well."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], the viewport should render its background as "
+"transparent."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "The rendering mode of viewport."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "The custom [World] which can be used as 3D environment source."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "The custom [World2D] which can be used as 2D environment source."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Emitted when a Control node grabs keyboard focus."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Emitted when the size of the viewport is changed, whether by [method "
+"set_size_override], resize of window, or some other means."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Do not update the render target."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Update the render target once, then switch to [constant UPDATE_DISABLED]."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Update the render target only when it is visible. This is the default value."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Always update the render target."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "This quadrant will not be used."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "This quadrant will only be used by one shadow map."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "This quadrant will be split in 4 and used by up to 4 shadow maps."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "This quadrant will be split 16 ways and used by up to 16 shadow maps."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "This quadrant will be split 64 ways and used by up to 64 shadow maps."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"This quadrant will be split 256 ways and used by up to 256 shadow maps. "
+"Unless the [member shadow_atlas_size] is very high, the shadows in this "
+"quadrant will be very low resolution."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"This quadrant will be split 1024 ways and used by up to 1024 shadow maps. "
+"Unless the [member shadow_atlas_size] is very high, the shadows in this "
+"quadrant will be very low resolution."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Represents the size of the [enum ShadowAtlasQuadrantSubdiv] enum."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Amount of objects in frame."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Amount of vertices in frame."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Amount of material changes in frame."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Amount of shader changes in frame."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Amount of surface changes in frame."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Amount of draw calls in frame."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Amount of items or joined items in frame."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Represents the size of the [enum RenderInfo] enum."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Objects are displayed normally."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Objects are displayed without light information."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Objected are displayed semi-transparent with additive blending so you can "
+"see where they intersect."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Objects are displayed in wireframe style."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Multisample anti-aliasing mode disabled. This is the default value."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Use 2x Multisample Antialiasing."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Use 4x Multisample Antialiasing."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Use 8x Multisample Antialiasing. Likely unsupported on low-end and older "
+"hardware."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Use 16x Multisample Antialiasing. Likely unsupported on medium and low-end "
+"hardware."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Allocates all buffers needed for drawing 2D scenes. This takes less VRAM "
+"than the 3D usage modes. Note that 3D rendering effects such as glow and HDR "
+"are not available when using this mode."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Allocates buffers needed for 2D scenes without allocating a buffer for "
+"screen copy. Accordingly, you cannot read from the screen. Of the [enum "
+"Usage] types, this requires the least VRAM. Note that 3D rendering effects "
+"such as glow and HDR are not available when using this mode."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Allocates full buffers for drawing 3D scenes and all 3D effects including "
+"buffers needed for 2D scenes and effects."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Allocates buffers needed for drawing 3D scenes. But does not allocate "
+"buffers needed for reading from the screen and post-processing effects. "
+"Saves some VRAM."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Always clear the render target before drawing."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid "Never clear the render target."
+msgstr ""
+
+#: doc/classes/Viewport.xml
+msgid ""
+"Clear the render target next frame, then switch to [constant "
+"CLEAR_MODE_NEVER]."
+msgstr ""
+
+#: doc/classes/ViewportContainer.xml
+msgid "Control for holding [Viewport]s."
+msgstr ""
+
+#: doc/classes/ViewportContainer.xml
+msgid ""
+"A [Container] node that holds a [Viewport], automatically setting its size.\n"
+"[b]Note:[/b] Changing a ViewportContainer's [member Control.rect_scale] will "
+"cause its contents to appear distorted. To change its visual size without "
+"causing distortion, adjust the node's margins instead (if it's not already "
+"in a container)."
+msgstr ""
+
+#: doc/classes/ViewportContainer.xml
+msgid ""
+"If [code]true[/code], the viewport will be scaled to the control's size."
+msgstr ""
+
+#: doc/classes/ViewportContainer.xml
+msgid ""
+"Divides the viewport's effective resolution by this value while preserving "
+"its scale. This can be used to speed up rendering.\n"
+"For example, a 1280×720 viewport with [member stretch_shrink] set to "
+"[code]2[/code] will be rendered at 640×360 while occupying the same size in "
+"the container.\n"
+"[b]Note:[/b] [member stretch] must be [code]true[/code] for this property to "
+"work."
+msgstr ""
+
+#: doc/classes/ViewportTexture.xml
+msgid "Texture which displays the content of a [Viewport]."
+msgstr ""
+
+#: doc/classes/ViewportTexture.xml
+msgid ""
+"Displays the content of a [Viewport] node as a dynamic [Texture]. This can "
+"be used to mix controls, 2D, and 3D elements in the same scene.\n"
+"To create a ViewportTexture in code, use the [method Viewport.get_texture] "
+"method on the target viewport."
+msgstr ""
+
+#: doc/classes/ViewportTexture.xml
+msgid ""
+"The path to the [Viewport] node to display. This is relative to the scene "
+"root, not to the node which uses the texture."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler.xml doc/classes/VisibilityEnabler2D.xml
+msgid "Enables certain nodes only when approximately visible."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler.xml
+msgid ""
+"The VisibilityEnabler will disable [RigidBody] and [AnimationPlayer] nodes "
+"when they are not visible. It will only affect other nodes within the same "
+"scene as the VisibilityEnabler itself.\n"
+"If you just want to receive notifications, use [VisibilityNotifier] "
+"instead.\n"
+"[b]Note:[/b] VisibilityEnabler uses an approximate heuristic for performance "
+"reasons. It doesn't take walls and other occlusion into account (unless you "
+"are using [Portal]s). The heuristic is an implementation detail and may "
+"change in future versions. If you need precise visibility checking, use "
+"another method such as adding an [Area] node as a child of a [Camera] node "
+"and/or [method Vector3.dot].\n"
+"[b]Note:[/b] VisibilityEnabler will not affect nodes added after scene "
+"initialization."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler.xml doc/classes/VisibilityEnabler2D.xml
+msgid ""
+"Returns whether the enabler identified by given [enum Enabler] constant is "
+"active."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler.xml doc/classes/VisibilityEnabler2D.xml
+msgid ""
+"Sets active state of the enabler identified by given [enum Enabler] constant."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler.xml
+msgid "If [code]true[/code], [RigidBody] nodes will be paused."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler.xml doc/classes/VisibilityEnabler2D.xml
+msgid "If [code]true[/code], [AnimationPlayer] nodes will be paused."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler.xml doc/classes/VisibilityEnabler2D.xml
+msgid "This enabler will pause [AnimationPlayer] nodes."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler.xml
+msgid "This enabler will freeze [RigidBody] nodes."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler.xml doc/classes/VisibilityEnabler2D.xml
+msgid "Represents the size of the [enum Enabler] enum."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid ""
+"The VisibilityEnabler2D will disable [RigidBody2D], [AnimationPlayer], and "
+"other nodes when they are not visible. It will only affect nodes with the "
+"same root node as the VisibilityEnabler2D, and the root node itself.\n"
+"If you just want to receive notifications, use [VisibilityNotifier2D] "
+"instead.\n"
+"[b]Note:[/b] For performance reasons, VisibilityEnabler2D uses an "
+"approximate heuristic with precision determined by [member ProjectSettings."
+"world/2d/cell_size]. If you need precise visibility checking, use another "
+"method such as adding an [Area2D] node as a child of a [Camera2D] node.\n"
+"[b]Note:[/b] VisibilityEnabler2D will not affect nodes added after scene "
+"initialization."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid "If [code]true[/code], [RigidBody2D] nodes will be paused."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid "If [code]true[/code], [AnimatedSprite] nodes will be paused."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid "If [code]true[/code], [Particles2D] nodes will be paused."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid ""
+"If [code]true[/code], the parent's [method Node._physics_process] will be "
+"stopped."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid ""
+"If [code]true[/code], the parent's [method Node._process] will be stopped."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid "This enabler will freeze [RigidBody2D] nodes."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid "This enabler will stop [Particles2D] nodes."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid "This enabler will stop the parent's _process function."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid "This enabler will stop the parent's _physics_process function."
+msgstr ""
+
+#: doc/classes/VisibilityEnabler2D.xml
+msgid "This enabler will stop [AnimatedSprite] nodes animations."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier.xml doc/classes/VisibilityNotifier2D.xml
+msgid "Detects approximately when the node is visible on screen."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier.xml
+msgid ""
+"The VisibilityNotifier detects when it is visible on the screen. It also "
+"notifies when its bounding rectangle enters or exits the screen or a "
+"[Camera]'s view.\n"
+"If you want nodes to be disabled automatically when they exit the screen, "
+"use [VisibilityEnabler] instead.\n"
+"[b]Note:[/b] VisibilityNotifier uses an approximate heuristic for "
+"performance reasons. It doesn't take walls and other occlusion into account "
+"(unless you are using [Portal]s). The heuristic is an implementation detail "
+"and may change in future versions. If you need precise visibility checking, "
+"use another method such as adding an [Area] node as a child of a [Camera] "
+"node and/or [method Vector3.dot]."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier.xml
+msgid ""
+"If [code]true[/code], the bounding box is on the screen.\n"
+"[b]Note:[/b] It takes one frame for the node's visibility to be assessed "
+"once added to the scene tree, so this method will return [code]false[/code] "
+"right after it is instantiated, even if it will be on screen in the draw "
+"pass."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier.xml
+msgid "The VisibilityNotifier's bounding box."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier.xml
+msgid "Emitted when the VisibilityNotifier enters a [Camera]'s view."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier.xml
+msgid "Emitted when the VisibilityNotifier exits a [Camera]'s view."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier.xml
+msgid "Emitted when the VisibilityNotifier enters the screen."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier.xml
+msgid "Emitted when the VisibilityNotifier exits the screen."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier2D.xml
+msgid ""
+"The VisibilityNotifier2D detects when it is visible on the screen. It also "
+"notifies when its bounding rectangle enters or exits the screen or a "
+"viewport.\n"
+"If you want nodes to be disabled automatically when they exit the screen, "
+"use [VisibilityEnabler2D] instead.\n"
+"[b]Note:[/b] For performance reasons, VisibilityNotifier2D uses an "
+"approximate heuristic with precision determined by [member ProjectSettings."
+"world/2d/cell_size]. If you need precise visibility checking, use another "
+"method such as adding an [Area2D] node as a child of a [Camera2D] node."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier2D.xml
+msgid ""
+"If [code]true[/code], the bounding rectangle is on the screen.\n"
+"[b]Note:[/b] It takes one frame for the node's visibility to be assessed "
+"once added to the scene tree, so this method will return [code]false[/code] "
+"right after it is instantiated, even if it will be on screen in the draw "
+"pass."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier2D.xml
+msgid "The VisibilityNotifier2D's bounding rectangle."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier2D.xml
+msgid "Emitted when the VisibilityNotifier2D enters the screen."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier2D.xml
+msgid "Emitted when the VisibilityNotifier2D exits the screen."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier2D.xml
+msgid "Emitted when the VisibilityNotifier2D enters a [Viewport]'s view."
+msgstr ""
+
+#: doc/classes/VisibilityNotifier2D.xml
+msgid "Emitted when the VisibilityNotifier2D exits a [Viewport]'s view."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid "Parent of all visual 3D nodes."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid ""
+"The [VisualInstance] is used to connect a resource to a visual "
+"representation. All visual 3D nodes inherit from the [VisualInstance]. In "
+"general, you should not access the [VisualInstance] properties directly as "
+"they are accessed and managed by the nodes that inherit from "
+"[VisualInstance]. [VisualInstance] is the node representation of the "
+"[VisualServer] instance."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid ""
+"Returns the [AABB] (also known as the bounding box) for this "
+"[VisualInstance]. See also [method get_transformed_aabb]."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid ""
+"Returns the RID of the resource associated with this [VisualInstance]. For "
+"example, if the Node is a [MeshInstance], this will return the RID of the "
+"associated [Mesh]."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid ""
+"Returns the RID of this instance. This RID is the same as the RID returned "
+"by [method VisualServer.instance_create]. This RID is needed if you want to "
+"call [VisualServer] functions directly on this [VisualInstance]."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid ""
+"Returns [code]true[/code] when the specified layer is enabled in [member "
+"layers] and [code]false[/code] otherwise."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid ""
+"Returns the transformed [AABB] (also known as the bounding box) for this "
+"[VisualInstance].\n"
+"Transformed in this case means the [AABB] plus the position, rotation, and "
+"scale of the [Spatial]'s [Transform]. See also [method get_aabb]."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid ""
+"Sets the resource that is instantiated by this [VisualInstance], which "
+"changes how the engine handles the [VisualInstance] under the hood. "
+"Equivalent to [method VisualServer.instance_set_base]."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid "Enables a particular layer in [member layers]."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid ""
+"The render layer(s) this [VisualInstance] is drawn on.\n"
+"This object will only be visible for [Camera]s whose cull mask includes the "
+"render object this [VisualInstance] is set to."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "A script implemented in the Visual Script programming environment."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid ""
+"A script implemented in the Visual Script programming environment. The "
+"script extends the functionality of all objects that instance it.\n"
+"[method Object.set_script] extends an existing object, if that object's "
+"class matches one of the script's base classes.\n"
+"You are most likely to use this class via the Visual Script editor or when "
+"writing plugins for it."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Add a custom signal with the specified name to the VisualScript."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Add a function with the specified name to the VisualScript."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Add a node to a function of the VisualScript."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid ""
+"Add a variable to the VisualScript, optionally giving it a default value or "
+"marking it as exported."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid ""
+"Add an argument to a custom signal added with [method add_custom_signal]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Get the count of a custom signal's arguments."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Get the name of a custom signal's argument."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Get the type of a custom signal's argument."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Remove a specific custom signal's argument."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Rename a custom signal's argument."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Change the type of a custom signal's argument."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Swap two of the arguments of a custom signal."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid ""
+"Connect two data ports. The value of [code]from_node[/code]'s "
+"[code]from_port[/code] would be fed into [code]to_node[/code]'s "
+"[code]to_port[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid ""
+"Disconnect two data ports previously connected with [method data_connect]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns the id of a function's entry point node."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns the position of the center of the screen for a given function."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns a node given its id and its function."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns a node's position in pixels."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns the default (initial) value of a variable."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns whether a variable is exported."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid ""
+"Returns the information for a given variable as a dictionary. The "
+"information includes its name, type, hint and usage."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns whether a signal exists with the specified name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns whether the specified data ports are connected."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns whether a function exists with the specified name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns whether a node exists with the given id."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns whether the specified sequence ports are connected."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Returns whether a variable exists with the specified name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Remove a custom signal with the given name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Remove a specific function and its nodes from the script."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Remove a specific node."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Remove a variable with the given name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Change the name of a custom signal."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Change the name of a function."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Change the name of a variable."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid ""
+"Connect two sequence ports. The execution will flow from of [code]from_node[/"
+"code]'s [code]from_output[/code] into [code]to_node[/code].\n"
+"Unlike [method data_connect], there isn't a [code]to_port[/code], since the "
+"target node can have only one sequence port."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid ""
+"Disconnect two sequence ports previously connected with [method "
+"sequence_connect]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Position the center of the screen for a function."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Set the base type of the script."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Position a node on the screen."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Change the default (initial) value of a variable."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Change whether a variable is exported."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid ""
+"Set a variable's info, using the same format as [method get_variable_info]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScript.xml
+msgid "Emitted when the ports of a node are changed."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml
+msgid "A Visual Script node representing a constant from the base types."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml
+msgid ""
+"A Visual Script node representing a constant from base types, such as "
+"[constant Vector3.AXIS_X]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml
+msgid "The type to get the constant from."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml
+msgid "The name of the constant to return."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "A Visual Script node used to call built-in functions."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"A built-in function used inside a [VisualScript]. It is usually a math "
+"function or an utility function.\n"
+"See also [@GDScript], for the same functions in the GDScript language."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "The function to be executed."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the sine of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the cosine of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the tangent of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the hyperbolic sine of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the hyperbolic cosine of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the hyperbolic tangent of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the arc sine of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the arc cosine of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the arc tangent of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the arc tangent of the input, using the signs of both parameters to "
+"determine the exact angle."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the square root of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the remainder of one input divided by the other, using floating-point "
+"numbers."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the positive remainder of one input divided by the other, using "
+"floating-point numbers."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the input rounded down."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the input rounded up."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the input rounded to the nearest integer."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the absolute value of the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the sign of the input, turning it into 1, -1, or 0. Useful to "
+"determine if the input is positive or negative."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the input raised to a given power."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the natural logarithm of the input. Note that this is not the typical "
+"base-10 logarithm function calculators use."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the mathematical constant [b]e[/b] raised to the specified power of "
+"the input. [b]e[/b] has an approximate value of 2.71828."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return whether the input is NaN (Not a Number) or not. NaN is usually "
+"produced by dividing 0 by 0, though other ways exist."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return whether the input is an infinite floating-point number or not. "
+"Infinity is usually produced by dividing a number by 0, though other ways "
+"exist."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Easing function, based on exponent. 0 is constant, 1 is linear, 0 to 1 is "
+"ease-in, 1+ is ease out. Negative values are in-out/out in."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the number of digit places after the decimal that the first non-zero "
+"digit occurs."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the input snapped to a given step."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return a number linearly interpolated between the first two inputs, based on "
+"the third input. Uses the formula [code]a + (a - b) * t[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Moves the number toward a value, based on the third input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the result of [code]value[/code] decreased by [code]step[/code] * "
+"[code]amount[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Randomize the seed (or the internal state) of the random number generator. "
+"Current implementation reseeds using a number based on time."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return a random 32 bits integer value. To obtain a random value between 0 to "
+"N (where N is smaller than 2^32 - 1), you can use it with the remainder "
+"function."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return a random floating-point value between 0 and 1. To obtain a random "
+"value between 0 to N, you can use it with multiplication."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return a random floating-point value between the two inputs."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Set the seed for the random number generator."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return a random value from the given seed, along with the new seed."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Convert the input from degrees to radians."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Convert the input from radians to degrees."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Convert the input from linear volume to decibel volume."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Convert the input from decibel volume to linear volume."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the greater of the two numbers, also known as their maximum."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the lesser of the two numbers, also known as their minimum."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the input clamped inside the given range, ensuring the result is "
+"never outside it. Equivalent to [code]min(max(input, range_low), range_high)"
+"[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return the nearest power of 2 to the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Create a [WeakRef] from the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Create a [FuncRef] from the input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Convert between types."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the type of the input as an integer. Check [enum Variant.Type] for "
+"the integers that might be returned."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Checks if a type is registered in the [ClassDB]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Return a character with the given ascii value."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Convert the input to a string."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Print the given string to the output window."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Print the given string to the standard error output."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Print the given string to the standard output, without adding a newline."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Serialize a [Variant] to a string."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Deserialize a [Variant] from a string serialized using [constant VAR_TO_STR]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Serialize a [Variant] to a [PoolByteArray]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Deserialize a [Variant] from a [PoolByteArray] serialized using [constant "
+"VAR_TO_BYTES]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return the [Color] with the given name and alpha ranging from 0 to 1.\n"
+"[b]Note:[/b] Names are defined in [code]color_names.inc[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid ""
+"Return a number smoothly interpolated between the first two inputs, based on "
+"the third input. Similar to [constant MATH_LERP], but interpolates faster at "
+"the beginning and slower at the end. Using Hermite interpolation formula:\n"
+"[codeblock]\n"
+"var t = clamp((weight - from) / (to - from), 0.0, 1.0)\n"
+"return t * t * (3.0 - 2.0 * t)\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+msgid "Represents the size of the [enum BuiltinFunc] enum."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptClassConstant.xml
+msgid "Gets a constant from a given class."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptClassConstant.xml
+msgid ""
+"This node returns a constant from a given class, such as [constant "
+"TYPE_INT]. See the given class' documentation for available constants.\n"
+"[b]Input Ports:[/b]\n"
+"none\n"
+"[b]Output Ports:[/b]\n"
+"- Data (variant): [code]value[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptClassConstant.xml
+msgid "The constant's parent class."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptClassConstant.xml
+msgid ""
+"The constant to return. See the given class for its available constants."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptComment.xml
+msgid "A Visual Script node used to annotate the script."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptComment.xml
+msgid ""
+"A Visual Script node used to display annotations in the script, so that code "
+"may be documented.\n"
+"Comment nodes can be resized so they encompass a group of nodes."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptComment.xml
+msgid "The text inside the comment node."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptComment.xml
+msgid "The comment node's size (in pixels)."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptComment.xml
+msgid "The comment node's title."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptComposeArray.xml
+msgid "A Visual Script Node used to create array from a list of items."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptComposeArray.xml
+msgid ""
+"A Visual Script Node used to compose array from the list of elements "
+"provided with custom in-graph UI hard coded in the VisualScript Editor."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCondition.xml
+msgid "A Visual Script node which branches the flow."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCondition.xml
+msgid ""
+"A Visual Script node that checks a [bool] input port. If [code]true[/code], "
+"it will exit via the \"true\" sequence port. If [code]false[/code], it will "
+"exit via the \"false\" sequence port. After exiting either, it exits via the "
+"\"done\" port. Sequence ports may be left disconnected.\n"
+"[b]Input Ports:[/b]\n"
+"- Sequence: [code]if (cond) is[/code]\n"
+"- Data (boolean): [code]cond[/code]\n"
+"[b]Output Ports:[/b]\n"
+"- Sequence: [code]true[/code]\n"
+"- Sequence: [code]false[/code]\n"
+"- Sequence: [code]done[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptConstant.xml
+msgid "Gets a contant's value."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptConstant.xml
+msgid ""
+"This node returns a constant's value.\n"
+"[b]Input Ports:[/b]\n"
+"none\n"
+"[b]Output Ports:[/b]\n"
+"- Data (variant): [code]get[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptConstant.xml
+msgid "The constant's type."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptConstant.xml
+msgid "The constant's value."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptConstructor.xml
+msgid "A Visual Script node which calls a base type constructor."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptConstructor.xml
+msgid ""
+"A Visual Script node which calls a base type constructor. It can be used for "
+"type conversion as well."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "A scripted Visual Script node."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "A custom Visual Script node which can be scripted in powerful ways."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return the node's title."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return the node's category."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return the count of input value ports."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Return the specified input port's hint. See the [enum @GlobalScope."
+"PropertyHint] hints."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return the specified input port's hint string."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return the specified input port's name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Return the specified input port's type. See the [enum Variant.Type] values."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return the amount of output [b]sequence[/b] ports."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return the specified [b]sequence[/b] output's name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return the amount of output value ports."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Return the specified output port's hint. See the [enum @GlobalScope."
+"PropertyHint] hints."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return the specified output port's hint string."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return the specified output port's name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Return the specified output port's type. See the [enum Variant.Type] values."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Return the custom node's text, which is shown right next to the input "
+"[b]sequence[/b] port (if there is none, on the place that is usually taken "
+"by it)."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Return the size of the custom node's working memory. See [method _step] for "
+"more details."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "Return whether the custom node has an input [b]sequence[/b] port."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Execute the custom node's logic, returning the index of the output sequence "
+"port to use or a [String] when there is an error.\n"
+"The [code]inputs[/code] array contains the values of the input ports.\n"
+"[code]outputs[/code] is an array whose indices should be set to the "
+"respective outputs.\n"
+"The [code]start_mode[/code] is usually [constant START_MODE_BEGIN_SEQUENCE], "
+"unless you have used the [code]STEP_*[/code] constants.\n"
+"[code]working_mem[/code] is an array which can be used to persist "
+"information between runs of the custom node. The size needs to be predefined "
+"using [method _get_working_memory_size].\n"
+"When returning, you can mask the returned value with one of the "
+"[code]STEP_*[/code] constants."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid "The start mode used the first time when [method _step] is called."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"The start mode used when [method _step] is called after coming back from a "
+"[constant STEP_PUSH_STACK_BIT]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"The start mode used when [method _step] is called after resuming from "
+"[constant STEP_YIELD_BIT]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Hint used by [method _step] to tell that control should return to it when "
+"there is no other node left to execute.\n"
+"This is used by [VisualScriptCondition] to redirect the sequence to the "
+"\"Done\" port after the [code]true[/code]/[code]false[/code] branch has "
+"finished execution."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Hint used by [method _step] to tell that control should return back, either "
+"hitting a previous [constant STEP_PUSH_STACK_BIT] or exiting the function."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Hint used by [method _step] to tell that control should stop and exit the "
+"function."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+msgid ""
+"Hint used by [method _step] to tell that the function should be yielded.\n"
+"Using this requires you to have at least one working memory slot, which is "
+"used for the [VisualScriptFunctionState]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptDeconstruct.xml
+msgid ""
+"A Visual Script node which deconstructs a base type instance into its parts."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptDeconstruct.xml
+msgid "The type to deconstruct."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptEditor.xml
+msgid ""
+"Add a custom Visual Script node to the editor. It'll be placed under "
+"\"Custom Nodes\" with the [code]category[/code] as the parameter."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptEditor.xml
+msgid ""
+"Remove a custom Visual Script node from the editor. Custom nodes already "
+"placed on scripts won't be removed."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptEditor.xml
+msgid "Emitted when a custom Visual Script node is added or removed."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptEmitSignal.xml
+msgid "Emits a specified signal."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptEmitSignal.xml
+msgid ""
+"Emits a specified signal when it is executed.\n"
+"[b]Input Ports:[/b]\n"
+"- Sequence: [code]emit[/code]\n"
+"[b]Output Ports:[/b]\n"
+"- Sequence"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptEmitSignal.xml
+msgid "The signal to emit."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml
+msgid "A Visual Script node returning a singleton from [@GlobalScope]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml
+msgid "The singleton's name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptExpression.xml
+msgid "A Visual Script node that can execute a custom expression."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptExpression.xml
+msgid ""
+"A Visual Script node that can execute a custom expression. Values can be "
+"provided for the input and the expression result can be retrieved from the "
+"output."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunction.xml
+msgid "A Visual Script node representing a function."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunction.xml
+msgid ""
+"[VisualScriptFunction] represents a function header. It is the starting "
+"point for the function body and can be used to tweak the function's "
+"properties (e.g. RPC mode)."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid "A Visual Script node for calling a function."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid ""
+"[VisualScriptFunctionCall] is created when you add or drag and drop a "
+"function onto the Visual Script graph. It allows to tweak parameters of the "
+"call, e.g. what object the function is called on."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid ""
+"The script to be used when [member call_mode] is set to [constant "
+"CALL_MODE_INSTANCE]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+msgid ""
+"The base type to be used when [member call_mode] is set to [constant "
+"CALL_MODE_INSTANCE]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid ""
+"The type to be used when [member call_mode] is set to [constant "
+"CALL_MODE_BASIC_TYPE]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid ""
+"[code]call_mode[/code] determines the target object on which the method will "
+"be called. See [enum CallMode] for options."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid "The name of the function to be called."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+msgid ""
+"The node path to use when [member call_mode] is set to [constant "
+"CALL_MODE_NODE_PATH]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid ""
+"The mode for RPC calls. See [method Node.rpc] for more details and [enum "
+"RPCCallMode] for available options."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid ""
+"The singleton to call the method on. Used when [member call_mode] is set to "
+"[constant CALL_MODE_SINGLETON]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid ""
+"Number of default arguments that will be used when calling the function. "
+"Can't be higher than the number of available default arguments in the "
+"method's declaration."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid ""
+"If [code]false[/code], call errors (e.g. wrong number of arguments) will be "
+"ignored."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid "The method will be called on this [Object]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid "The method will be called on the given [Node] in the scene tree."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid ""
+"The method will be called on an instanced node with the given type and "
+"script."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid "The method will be called on a GDScript basic type (e.g. [Vector2])."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid "The method will be called on a singleton."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid "The method will be called locally."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid "The method will be called remotely."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid "The method will be called remotely using an unreliable protocol."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid "The method will be called remotely for the given peer."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+msgid ""
+"The method will be called remotely for the given peer, using an unreliable "
+"protocol."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionState.xml
+msgid "A Visual Script node representing a function state."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionState.xml
+msgid ""
+"[VisualScriptFunctionState] is returned from [VisualScriptYield] and can be "
+"used to resume a paused function call."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionState.xml
+msgid ""
+"Connects this [VisualScriptFunctionState] to a signal in the given object to "
+"automatically resume when it's emitted."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionState.xml
+msgid "Returns whether the function state is valid."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptFunctionState.xml
+msgid "Resumes the function to run from the point it was yielded."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml
+msgid "A Visual Script node returning a constant from [@GlobalScope]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml
+msgid "The constant to be used."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptIndexGet.xml
+msgid "A Visual Script node for getting a value from an array or a dictionary."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptIndexGet.xml
+msgid ""
+"[VisualScriptIndexGet] will return the value stored in an array or a "
+"dictionary under the given index."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptIndexSet.xml
+msgid "A Visual Script node for setting a value in an array or a dictionary."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptIndexSet.xml
+msgid ""
+"[VisualScriptIndexSet] will set the value stored in an array or a dictionary "
+"under the given index to the provided new value."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptInputAction.xml
+msgid "A Visual Script node returning a state of an action."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptInputAction.xml
+msgid ""
+"[VisualScriptInputAction] can be used to check if an action is pressed or "
+"released."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptInputAction.xml
+msgid "Name of the action."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptInputAction.xml
+msgid "State of the action to check. See [enum Mode] for options."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptInputAction.xml
+msgid "[code]True[/code] if action is pressed."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptInputAction.xml
+msgid "[code]True[/code] if action is released (i.e. not pressed)."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptInputAction.xml
+msgid "[code]True[/code] on the frame the action was pressed."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptInputAction.xml
+msgid "[code]True[/code] on the frame the action was released."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptIterator.xml
+msgid "Steps through items in a given input."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptIterator.xml
+msgid ""
+"This node steps through each item in a given input. Input can be any "
+"sequence data type, such as an [Array] or [String]. When each item has been "
+"processed, execution passed out the [code]exit[/code] Sequence port.\n"
+"[b]Input Ports:[/b]\n"
+"- Sequence: [code]for (elem) in (input)[/code]\n"
+"- Data (variant): [code]input[/code]\n"
+"[b]Output Ports:[/b]\n"
+"- Sequence: [code]each[/code]\n"
+"- Sequence: [code]exit[/code]\n"
+"- Data (variant): [code]elem[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLists.xml
+msgid "A Visual Script virtual class for in-graph editable nodes."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLists.xml
+msgid ""
+"A Visual Script virtual class that defines the shape and the default "
+"behavior of the nodes that have to be in-graph editable nodes."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLists.xml
+msgid "Adds an input port to the Visual Script node."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLists.xml
+msgid "Adds an output port to the Visual Script node."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLists.xml
+msgid "Removes an input port from the Visual Script node."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLists.xml
+msgid "Removes an output port from the Visual Script node."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLists.xml
+msgid "Sets the name of an input port."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLists.xml
+msgid "Sets the type of an input port."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLists.xml
+msgid "Sets the name of an output port."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLists.xml
+msgid "Sets the type of an output port."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml
+msgid "Gets a local variable's value."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml
+msgid ""
+"Returns a local variable's value. \"Var Name\" must be supplied, with an "
+"optional type.\n"
+"[b]Input Ports:[/b]\n"
+"none\n"
+"[b]Output Ports:[/b]\n"
+"- Data (variant): [code]get[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml
+#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
+msgid "The local variable's type."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml
+#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
+msgid "The local variable's name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
+msgid "Changes a local variable's value."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
+msgid ""
+"Changes a local variable's value to the given input. The new value is also "
+"provided on an output Data port.\n"
+"[b]Input Ports:[/b]\n"
+"- Sequence\n"
+"- Data (variant): [code]set[/code]\n"
+"[b]Output Ports:[/b]\n"
+"- Sequence\n"
+"- Data (variant): [code]get[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid "Commonly used mathematical constants."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid ""
+"Provides common math constants, such as Pi, on an output Data port.\n"
+"[b]Input Ports:[/b]\n"
+"none\n"
+"[b]Output Ports:[/b]\n"
+"- Data (variant): [code]get[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid "The math constant."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid "Unity: [code]1[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid "Pi: [code]3.141593[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid "Pi divided by two: [code]1.570796[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid "Tau: [code]6.283185[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid ""
+"Mathematical constant [code]e[/code], the natural log base: [code]2.718282[/"
+"code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid "Square root of two: [code]1.414214[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid "Infinity: [code]inf[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid "Not a number: [code]nan[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+msgid "Represents the size of the [enum MathConstant] enum."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptNode.xml
+msgid "A node which is part of a [VisualScript]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptNode.xml
+msgid ""
+"A node which is part of a [VisualScript]. Not to be confused with [Node], "
+"which is a part of a [SceneTree]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptNode.xml
+msgid ""
+"Returns the default value of a given port. The default value is used when "
+"nothing is connected to the port."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptNode.xml
+msgid "Returns the [VisualScript] instance the node is bound to."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptNode.xml
+msgid ""
+"Notify that the node's ports have changed. Usually used in conjunction with "
+"[VisualScriptCustomNode] ."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptNode.xml
+msgid "Change the default value of a given port."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptNode.xml
+msgid "Emitted when the available input/output ports are changed."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptOperator.xml
+msgid "A Visual Script node that performs an operation on two values."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptOperator.xml
+msgid ""
+"[b]Input Ports:[/b]\n"
+"- Data (variant): [code]A[/code]\n"
+"- Data (variant): [code]B[/code]\n"
+"[b]Output Ports:[/b]\n"
+"- Data (variant): [code]result[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptOperator.xml
+msgid ""
+"The operation to be performed. See [enum Variant.Operator] for available "
+"options."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptOperator.xml
+msgid ""
+"The type of the values for this operation. See [enum Variant.Type] for "
+"available options."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPreload.xml
+msgid "Creates a new [Resource] or loads one from the filesystem."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPreload.xml
+msgid ""
+"Creates a new [Resource] or loads one from the filesystem.\n"
+"[b]Input Ports:[/b]\n"
+"none\n"
+"[b]Output Ports:[/b]\n"
+"- Data (object): [code]res[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPreload.xml
+msgid "The [Resource] to load."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+msgid "A Visual Script node returning a value of a property from an [Object]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+msgid ""
+"[VisualScriptPropertyGet] can return a value of any property from the "
+"current object or other objects."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The script to be used when [member set_mode] is set to [constant "
+"CALL_MODE_INSTANCE]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The base type to be used when [member set_mode] is set to [constant "
+"CALL_MODE_INSTANCE]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The type to be used when [member set_mode] is set to [constant "
+"CALL_MODE_BASIC_TYPE]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+msgid ""
+"The indexed name of the property to retrieve. See [method Object."
+"get_indexed] for details."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The node path to use when [member set_mode] is set to [constant "
+"CALL_MODE_NODE_PATH]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+msgid ""
+"The name of the property to retrieve. Changing this will clear [member "
+"index]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+msgid ""
+"[code]set_mode[/code] determines the target object from which the property "
+"will be retrieved. See [enum CallMode] for options."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+msgid "The property will be retrieved from this [Object]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+msgid "The property will be retrieved from the given [Node] in the scene tree."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+msgid ""
+"The property will be retrieved from an instanced node with the given type "
+"and script."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+msgid ""
+"The property will be retrieved from a GDScript basic type (e.g. [Vector2])."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid "A Visual Script node that sets a property of an [Object]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"[VisualScriptPropertySet] can set the value of any property from the current "
+"object or other objects."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The additional operation to perform when assigning. See [enum AssignOp] for "
+"options."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The indexed name of the property to set. See [method Object.set_indexed] for "
+"details."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The name of the property to set. Changing this will clear [member index]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"[code]set_mode[/code] determines the target object on which the property "
+"will be set. See [enum CallMode] for options."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid "The property will be set on this [Object]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid "The property will be set on the given [Node] in the scene tree."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The property will be set on an instanced node with the given type and script."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid "The property will be set on a GDScript basic type (e.g. [Vector2])."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid "The property will be assigned regularly."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The value will be added to the property. Equivalent of doing [code]+=[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The value will be subtracted from the property. Equivalent of doing [code]-"
+"=[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The property will be multiplied by the value. Equivalent of doing [code]*=[/"
+"code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The property will be divided by the value. Equivalent of doing [code]/=[/"
+"code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"A modulo operation will be performed on the property and the value. "
+"Equivalent of doing [code]%=[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The property will be binarly shifted to the left by the given value. "
+"Equivalent of doing [code]<<[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"The property will be binarly shifted to the right by the given value. "
+"Equivalent of doing [code]>>[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"A binary [code]AND[/code] operation will be performed on the property. "
+"Equivalent of doing [code]&=[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"A binary [code]OR[/code] operation will be performed on the property. "
+"Equivalent of doing [code]|=[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+msgid ""
+"A binary [code]XOR[/code] operation will be performed on the property. "
+"Equivalent of doing [code]^=[/code]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptReturn.xml
+msgid "Exits a function and returns an optional value."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptReturn.xml
+msgid ""
+"Ends the execution of a function and returns control to the calling "
+"function. Optionally, it can return a [Variant] value.\n"
+"[b]Input Ports:[/b]\n"
+"- Sequence\n"
+"- Data (variant): [code]result[/code] (optional)\n"
+"[b]Output Ports:[/b]\n"
+"none"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptReturn.xml
+msgid "If [code]true[/code], the [code]return[/code] input port is available."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptReturn.xml
+msgid "The return value's data type."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSceneNode.xml
+msgid "Node reference."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSceneNode.xml
+msgid ""
+"A direct reference to a node.\n"
+"[b]Input Ports:[/b]\n"
+"none\n"
+"[b]Output Ports:[/b]\n"
+"- Data: [code]node[/code] (obj)"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSceneNode.xml
+msgid "The node's path in the scene tree."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSceneTree.xml
+msgid "A Visual Script node for accessing [SceneTree] methods."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSelect.xml
+msgid "Chooses between two input values."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSelect.xml
+msgid ""
+"Chooses between two input values based on a Boolean condition.\n"
+"[b]Input Ports:[/b]\n"
+"- Data (boolean): [code]cond[/code]\n"
+"- Data (variant): [code]a[/code]\n"
+"- Data (variant): [code]b[/code]\n"
+"[b]Output Ports:[/b]\n"
+"- Data (variant): [code]out[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSelect.xml
+msgid "The input variables' type."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSelf.xml
+msgid "Outputs a reference to the current instance."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSelf.xml
+msgid ""
+"Provides a reference to the node running the visual script.\n"
+"[b]Input Ports:[/b]\n"
+"none\n"
+"[b]Output Ports:[/b]\n"
+"- Data (object): [code]instance[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSequence.xml
+msgid "Executes a series of Sequence ports."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSequence.xml
+msgid ""
+"Steps through a series of one or more output Sequence ports. The "
+"[code]current[/code] data port outputs the currently executing item.\n"
+"[b]Input Ports:[/b]\n"
+"- Sequence: [code]in order[/code]\n"
+"[b]Output Ports:[/b]\n"
+"- Sequence: [code]1[/code]\n"
+"- Sequence: [code]2 - n[/code] (optional)\n"
+"- Data (int): [code]current[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSequence.xml
+msgid "The number of steps in the sequence."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSubCall.xml
+msgid "Calls a method called [code]_subcall[/code] in this object."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSubCall.xml
+msgid ""
+"[VisualScriptSubCall] will call method named [code]_subcall[/code] in the "
+"current script. It will fail if the method doesn't exist or the provided "
+"arguments are wrong."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSubCall.xml
+msgid "Called by this node."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSwitch.xml
+msgid "Branches program flow based on a given input's value."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptSwitch.xml
+msgid ""
+"Branches the flow based on an input's value. Use [b]Case Count[/b] in the "
+"Inspector to set the number of branches and each comparison's optional "
+"type.\n"
+"[b]Input Ports:[/b]\n"
+"- Sequence: [code]'input' is[/code]\n"
+"- Data (variant): [code]=[/code]\n"
+"- Data (variant): [code]=[/code] (optional)\n"
+"- Data (variant): [code]input[/code]\n"
+"[b]Output Ports:[/b]\n"
+"- Sequence\n"
+"- Sequence (optional)\n"
+"- Sequence: [code]done[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptTypeCast.xml
+msgid "A Visual Script node that casts the given value to another type."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptTypeCast.xml
+msgid ""
+"[VisualScriptTypeCast] will perform a type conversion to an [Object]-derived "
+"type."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptTypeCast.xml
+msgid ""
+"The target script class to be converted to. If none, only the [member "
+"base_type] will be used."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptTypeCast.xml
+msgid "The target type to be converted to."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptVariableGet.xml
+msgid "Gets a variable's value."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptVariableGet.xml
+msgid ""
+"Returns a variable's value. \"Var Name\" must be supplied, with an optional "
+"type.\n"
+"[b]Input Ports:[/b]\n"
+"none\n"
+"[b]Output Ports:[/b]\n"
+"- Data (variant): [code]value[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptVariableGet.xml
+#: modules/visual_script/doc_classes/VisualScriptVariableSet.xml
+msgid "The variable's name."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptVariableSet.xml
+msgid "Changes a variable's value."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptVariableSet.xml
+msgid ""
+"Changes a variable's value to the given input.\n"
+"[b]Input Ports:[/b]\n"
+"- Sequence\n"
+"- Data (variant): [code]set[/code]\n"
+"[b]Output Ports:[/b]\n"
+"- Sequence"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptWhile.xml
+msgid "Conditional loop."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptWhile.xml
+msgid ""
+"Loops while a condition is [code]true[/code]. Execution continues out the "
+"[code]exit[/code] Sequence port when the loop terminates.\n"
+"[b]Input Ports:[/b]\n"
+"- Sequence: [code]while(cond)[/code]\n"
+"- Data (bool): [code]cond[/code]\n"
+"[b]Output Ports:[/b]\n"
+"- Sequence: [code]repeat[/code]\n"
+"- Sequence: [code]exit[/code]"
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYield.xml
+msgid "A Visual Script node used to pause a function execution."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYield.xml
+msgid ""
+"[VisualScriptYield] will pause the function call and return "
+"[VisualScriptFunctionState], which can be used to resume the function."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYield.xml
+msgid ""
+"The mode to use for yielding. See [enum YieldMode] for available options."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYield.xml
+msgid "The time to wait when [member mode] is set to [constant YIELD_WAIT]."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYield.xml
+msgid "Yields during an idle frame."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYield.xml
+msgid "Yields during a physics frame."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYield.xml
+msgid "Yields a function and waits the given time."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+msgid "A Visual Script node yielding for a signal."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+msgid ""
+"[VisualScriptYieldSignal] will pause the function execution until the "
+"provided signal is emitted."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+msgid ""
+"[code]call_mode[/code] determines the target object to wait for the signal "
+"emission. See [enum CallMode] for options."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+msgid "The signal name to be waited for."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+msgid "A signal from this [Object] will be used."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+msgid "A signal from the given [Node] in the scene tree will be used."
+msgstr ""
+
+#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+msgid "A signal from an instanced node with the given type will be used."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Server for anything visible."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Server for anything visible. The visual server is the API backend for "
+"everything visible. The whole scene system mounts on it to display.\n"
+"The visual server is completely opaque, the internals are entirely "
+"implementation specific and cannot be accessed.\n"
+"The visual server can be used to bypass the scene system entirely.\n"
+"Resources are created using the [code]*_create[/code] functions.\n"
+"All objects are drawn to a viewport. You can use the [Viewport] attached to "
+"the [SceneTree] or you can create one yourself with [method "
+"viewport_create]. When using a custom scenario or canvas, the scenario or "
+"canvas needs to be attached to the viewport using [method "
+"viewport_set_scenario] or [method viewport_attach_canvas].\n"
+"In 3D, all visual objects must be associated with a scenario. The scenario "
+"is a visual representation of the world. If accessing the visual server from "
+"a running game, the scenario can be accessed from the scene tree from any "
+"[Spatial] node with [method Spatial.get_world]. Otherwise, a scenario can be "
+"created with [method scenario_create].\n"
+"Similarly, in 2D, a canvas is needed to draw all canvas items.\n"
+"In 3D, all visible objects are comprised of a resource and an instance. A "
+"resource can be a mesh, a particle system, a light, or any other 3D object. "
+"In order to be visible resources must be attached to an instance using "
+"[method instance_set_base]. The instance must also be attached to the "
+"scenario using [method instance_set_scenario] in order to be visible.\n"
+"In 2D, all visible objects are some form of canvas item. In order to be "
+"visible, a canvas item needs to be the child of a canvas attached to a "
+"viewport, or it needs to be the child of another canvas item that is "
+"eventually attached to the canvas."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "$DOCS_URL/tutorials/performance/using_servers.html"
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets images to be rendered in the window margin."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets margin size, where black bars (or images, if [method "
+"black_bars_set_images] was used) are rendered."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a camera and adds it to the VisualServer. It can be accessed with "
+"the RID that is returned. This RID will be used in all [code]camera_*[/code] "
+"VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the cull mask associated with this camera. The cull mask describes "
+"which 3D layers are rendered by this camera. Equivalent to [member Camera."
+"cull_mask]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the environment used by this camera. Equivalent to [member Camera."
+"environment]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets camera to use frustum projection. This mode allows adjusting the "
+"[code]offset[/code] argument to create \"tilted frustum\" effects."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets camera to use orthogonal projection, also known as orthographic "
+"projection. Objects remain the same size on the screen no matter how far "
+"away they are."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets camera to use perspective projection. Objects on the screen becomes "
+"smaller when they are far away."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets [Transform] of camera."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], preserves the horizontal aspect ratio which is "
+"equivalent to [constant Camera.KEEP_WIDTH]. If [code]false[/code], preserves "
+"the vertical aspect ratio which is equivalent to [constant Camera."
+"KEEP_HEIGHT]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a canvas and returns the assigned [RID]. It can be accessed with the "
+"RID that is returned. This RID will be used in all [code]canvas_*[/code] "
+"VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds a circle command to the [CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If ignore is [code]true[/code], the VisualServer does not perform clipping."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds a line command to the [CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds a mesh command to the [CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Adds a [MultiMesh] to the [CanvasItem]'s draw commands. Only affects its "
+"aabb at the moment."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Adds a nine patch image to the [CanvasItem]'s draw commands.\n"
+"See [NinePatchRect] for more explanation."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds a particle system to the [CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds a polygon to the [CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Adds a polyline, which is a line from multiple points with a width, to the "
+"[CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds a primitive to the [CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds a rectangle to the [CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Adds a [Transform2D] command to the [CanvasItem]'s draw commands.\n"
+"This sets the extra_matrix uniform when executed. This affects the later "
+"commands of the canvas item."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds a textured rect to the [CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Adds a texture rect with region setting to the [CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds a triangle array to the [CanvasItem]'s draw commands."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Clears the [CanvasItem] and removes all commands in it."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a new [CanvasItem] and returns its [RID]. It can be accessed with "
+"the RID that is returned. This RID will be used in all [code]canvas_item_*[/"
+"code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets clipping for the [CanvasItem]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the [CanvasItem] to copy a rect to the backbuffer."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Defines a custom drawing rectangle for the [CanvasItem]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Enables the use of distance fields for GUI elements that are rendering "
+"distance field based fonts."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets [CanvasItem] to be drawn behind its parent."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the index for the [CanvasItem]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"The light mask. See [LightOccluder2D] for more information on light masks."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a new material to the [CanvasItem]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the color that modulates the [CanvasItem] and its children."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the parent for the [CanvasItem]. The parent can be another canvas item, "
+"or it can be the root canvas that is attached to the viewport."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the color that modulates the [CanvasItem] without children."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets if [CanvasItem]'s children should be sorted by y-position."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the [CanvasItem]'s [Transform2D]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets if the [CanvasItem] uses its parent's material."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets if the canvas item (including its children) is visible."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If this is enabled, the Z index of the parent will be added to the "
+"children's Z index."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the [CanvasItem]'s Z index, i.e. its draw order (lower indexes are "
+"drawn first)."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Attaches the canvas light to the canvas. Removes it from its previous canvas."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a canvas light and adds it to the VisualServer. It can be accessed "
+"with the RID that is returned. This RID will be used in all "
+"[code]canvas_light_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Attaches a light occluder to the canvas. Removes it from its previous canvas."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a light occluder and adds it to the VisualServer. It can be accessed "
+"with the RID that is returned. This RID will be used in all "
+"[code]canvas_light_ocluder_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Enables or disables light occluder."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a light occluder's polygon."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a light occluder's [Transform2D]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the color for a light."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Enables or disables a canvas light."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a canvas light's energy."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a canvas light's height."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"The binary mask used to determine which layers this canvas light's shadows "
+"affects. See [LightOccluder2D] for more information on light masks."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The layer range that gets rendered with this light."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The mode of the light, see [enum CanvasLightMode] constants."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the texture's scale factor of the light. Equivalent to [member Light2D."
+"texture_scale]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the width of the shadow buffer, size gets scaled to the next power of "
+"two for this."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the color of the canvas light's shadow."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Enables or disables the canvas light's shadow."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the canvas light's shadow's filter, see [enum CanvasLightShadowFilter] "
+"constants."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the length of the shadow's gradient."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Smoothens the shadow. The lower, the smoother."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets texture to be used by light. Equivalent to [member Light2D.texture]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the offset of the light's texture. Equivalent to [member Light2D."
+"offset]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the canvas light's [Transform2D]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the Z range of objects that will be affected by this light. Equivalent "
+"to [member Light2D.range_z_min] and [member Light2D.range_z_max]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a new light occluder polygon and adds it to the VisualServer. It can "
+"be accessed with the RID that is returned. This RID will be used in all "
+"[code]canvas_occluder_polygon_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets an occluder polygons cull mode. See [enum "
+"CanvasOccluderPolygonCullMode] constants."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the shape of the occluder polygon."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the shape of the occluder polygon as lines."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"A copy of the canvas item will be drawn with a local offset of the mirroring "
+"[Vector2]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Modulates all colors in the given canvas."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a directional light and adds it to the VisualServer. It can be "
+"accessed with the RID that is returned. This RID can be used in most "
+"[code]light_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"To place in a scene, attach this directional light to an instance using "
+"[method instance_set_base] using the returned RID."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Draws a frame. [i]This method is deprecated[/i], please use [method "
+"force_draw] instead."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates an environment and adds it to the VisualServer. It can be accessed "
+"with the RID that is returned. This RID will be used in all "
+"[code]environment_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the values to be used with the \"Adjustment\" post-process effect. See "
+"[Environment] for more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the ambient light parameters. See [Environment] for more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the [i]BGMode[/i] of the environment. Equivalent to [member Environment."
+"background_mode]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Color displayed for clear areas of the scene (if using Custom color or Color"
+"+Sky background modes)."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the intensity of the background color."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the maximum layer to use if using Canvas background mode."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the values to be used with the \"DoF Far Blur\" post-process effect. "
+"See [Environment] for more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the values to be used with the \"DoF Near Blur\" post-process effect. "
+"See [Environment] for more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the variables to be used with the scene fog. See [Environment] for more "
+"details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the variables to be used with the fog depth effect. See [Environment] "
+"for more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the variables to be used with the fog height effect. See [Environment] "
+"for more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the variables to be used with the \"glow\" post-process effect. See "
+"[Environment] for more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the [Sky] to be used as the environment's background when using "
+"[i]BGMode[/i] sky. Equivalent to [member Environment.background_sky]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets a custom field of view for the background [Sky]. Equivalent to [member "
+"Environment.background_sky_custom_fov]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the rotation of the background [Sky] expressed as a [Basis]. Equivalent "
+"to [member Environment.background_sky_orientation]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the variables to be used with the \"Screen Space Ambient Occlusion "
+"(SSAO)\" post-process effect. See [Environment] for more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the variables to be used with the \"screen space reflections\" post-"
+"process effect. See [Environment] for more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the variables to be used with the \"tonemap\" post-process effect. See "
+"[Environment] for more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Removes buffers and clears testcubes."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Forces a frame to be drawn when the function is called. Drawing a frame "
+"updates all [Viewport]s that are set to update. Use with extreme caution."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Synchronizes threads."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Tries to free an object in the VisualServer."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a certain information, see [enum RenderInfo] for options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the id of the test cube. Creates one if none exists."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the id of the test texture. Creates one if none exists."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the name of the video adapter (e.g. \"GeForce GTX 1080/PCIe/"
+"SSE2\").\n"
+"[b]Note:[/b] When running a headless or server binary, this function returns "
+"an empty string."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the vendor of the video adapter (e.g. \"NVIDIA Corporation\").\n"
+"[b]Note:[/b] When running a headless or server binary, this function returns "
+"an empty string."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the id of a white texture. Creates one if none exists."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a GI probe and adds it to the VisualServer. It can be accessed with "
+"the RID that is returned. This RID will be used in all [code]gi_probe_*[/"
+"code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"To place in a scene, attach this GI probe to an instance using [method "
+"instance_set_base] using the returned RID."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the bias value for the GI probe. Bias is used to avoid self "
+"occlusion. Equivalent to [member GIProbeData.bias]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the axis-aligned bounding box that covers the full extent of the GI "
+"probe."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the cell size set by [method gi_probe_set_cell_size]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the data used by the GI probe."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the dynamic range set for this GI probe. Equivalent to [member "
+"GIProbe.dynamic_range]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the energy multiplier for this GI probe. Equivalent to [member "
+"GIProbe.energy]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the normal bias for this GI probe. Equivalent to [member GIProbe."
+"normal_bias]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the propagation value for this GI probe. Equivalent to [member "
+"GIProbe.propagation]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the Transform set by [method gi_probe_set_to_cell_xform]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns [code]true[/code] if the GI probe data associated with this GI probe "
+"is compressed. Equivalent to [member GIProbe.compress]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns [code]true[/code] if the GI probe is set to interior, meaning it "
+"does not account for sky light. Equivalent to [member GIProbe.interior]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the bias value to avoid self-occlusion. Equivalent to [member GIProbe."
+"bias]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the axis-aligned bounding box that covers the extent of the GI probe."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the size of individual cells within the GI probe."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the compression setting for the GI probe data. Compressed data will "
+"take up less space but may look worse. Equivalent to [member GIProbe."
+"compress]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the data to be used in the GI probe for lighting calculations. Normally "
+"this is created and called internally within the [GIProbe] node. You should "
+"not try to set this yourself."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the dynamic range of the GI probe. Dynamic range sets the limit for how "
+"bright lights can be. A smaller range captures greater detail but limits how "
+"bright lights can be. Equivalent to [member GIProbe.dynamic_range]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the energy multiplier for this GI probe. A higher energy makes the "
+"indirect light from the GI probe brighter. Equivalent to [member GIProbe."
+"energy]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the interior value of this GI probe. A GI probe set to interior does "
+"not include the sky when calculating lighting. Equivalent to [member GIProbe."
+"interior]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the normal bias for this GI probe. Normal bias behaves similar to the "
+"other form of bias and may help reduce self-occlusion. Equivalent to [member "
+"GIProbe.normal_bias]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the propagation of light within this GI probe. Equivalent to [member "
+"GIProbe.propagation]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the to cell [Transform] for this GI probe."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns [code]true[/code] if changes have been made to the VisualServer's "
+"data. [method draw] is usually called if this happens."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Not yet implemented. Always returns [code]false[/code]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns [code]true[/code] if the OS supports a certain feature. Features "
+"might be [code]s3tc[/code], [code]etc[/code], [code]etc2[/code], "
+"[code]pvrtc[/code] and [code]skinning_fallback[/code].\n"
+"When rendering with GLES2, returns [code]true[/code] with "
+"[code]skinning_fallback[/code] in case the hardware doesn't support the "
+"default GPU skinning process."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets up [ImmediateGeometry] internals to prepare for drawing. Equivalent to "
+"[method ImmediateGeometry.begin]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Clears everything that was set up between [method immediate_begin] and "
+"[method immediate_end]. Equivalent to [method ImmediateGeometry.clear]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the color to be used with next vertex. Equivalent to [method "
+"ImmediateGeometry.set_color]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates an immediate geometry and adds it to the VisualServer. It can be "
+"accessed with the RID that is returned. This RID will be used in all "
+"[code]immediate_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"To place in a scene, attach this immediate geometry to an instance using "
+"[method instance_set_base] using the returned RID."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Ends drawing the [ImmediateGeometry] and displays it. Equivalent to [method "
+"ImmediateGeometry.end]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the material assigned to the [ImmediateGeometry]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the normal to be used with next vertex. Equivalent to [method "
+"ImmediateGeometry.set_normal]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the material to be used to draw the [ImmediateGeometry]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the tangent to be used with next vertex. Equivalent to [method "
+"ImmediateGeometry.set_tangent]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the UV to be used with next vertex. Equivalent to [method "
+"ImmediateGeometry.set_uv]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the UV2 to be used with next vertex. Equivalent to [method "
+"ImmediateGeometry.set_uv2]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Adds the next vertex using the information provided in advance. Equivalent "
+"to [method ImmediateGeometry.add_vertex]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Adds the next vertex using the information provided in advance. This is a "
+"helper class that calls [method immediate_vertex] under the hood. Equivalent "
+"to [method ImmediateGeometry.add_vertex]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Initializes the visual server. This function is called internally by "
+"platform-dependent code during engine initialization. If called from a "
+"running game, it will not do anything."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Attaches a unique Object ID to instance. Object ID must be attached to "
+"instance for proper culling with [method instances_cull_aabb], [method "
+"instances_cull_convex], and [method instances_cull_ray]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Attaches a skeleton to an instance. Removes the previous skeleton from the "
+"instance."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a visual instance and adds it to the VisualServer. It can be "
+"accessed with the RID that is returned. This RID will be used in all "
+"[code]instance_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"An instance is a way of placing a 3D object in the scenario. Objects like "
+"particles, meshes, and reflection probes need to be associated with an "
+"instance to be visible in the scenario using [method instance_set_base]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a visual instance, adds it to the VisualServer, and sets both base "
+"and scenario. It can be accessed with the RID that is returned. This RID "
+"will be used in all [code]instance_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Not implemented in Godot 3.x."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the shadow casting setting to one of [enum ShadowCastingSetting]. "
+"Equivalent to [member GeometryInstance.cast_shadow]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the flag for a given [enum InstanceFlags]. See [enum InstanceFlags] for "
+"more details."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets a material that will be rendered for all surfaces on top of active "
+"materials for the mesh associated with this instance. Equivalent to [member "
+"GeometryInstance.material_overlay]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets a material that will override the material for all surfaces on the mesh "
+"associated with this instance. Equivalent to [member GeometryInstance."
+"material_override]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the base of the instance. A base can be any of the 3D objects that are "
+"created in the VisualServer that can be displayed. For example, any of the "
+"light types, mesh, multimesh, immediate geometry, particle system, "
+"reflection probe, lightmap capture, and the GI probe are all types that can "
+"be set as the base of an instance in order to be displayed in the scenario."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the weight for a given blend shape associated with this instance."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets a custom AABB to use when culling objects from the view frustum. "
+"Equivalent to [method GeometryInstance.set_custom_aabb]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Function not implemented in Godot 3.x."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets a margin to increase the size of the AABB when culling objects from the "
+"view frustum. This allows you to avoid culling objects that fall outside the "
+"view frustum. Equivalent to [member GeometryInstance.extra_cull_margin]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the render layers that this instance will be drawn to. Equivalent to "
+"[member VisualInstance.layers]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the scenario that the instance is in. The scenario is the 3D world that "
+"the objects will be displayed in."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the material of a specific surface. Equivalent to [method MeshInstance."
+"set_surface_material]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the world space transform of the instance. Equivalent to [member "
+"Spatial.transform]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the lightmap to use with this instance."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets whether an instance is drawn or not. Equivalent to [member Spatial."
+"visible]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns an array of object IDs intersecting with the provided AABB. Only "
+"visual 3D nodes are considered, such as [MeshInstance] or "
+"[DirectionalLight]. Use [method @GDScript.instance_from_id] to obtain the "
+"actual nodes. A scenario RID must be provided, which is available in the "
+"[World] you want to query. This forces an update for all resources queued to "
+"update.\n"
+"[b]Warning:[/b] This function is primarily intended for editor usage. For in-"
+"game use cases, prefer physics collision."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns an array of object IDs intersecting with the provided convex shape. "
+"Only visual 3D nodes are considered, such as [MeshInstance] or "
+"[DirectionalLight]. Use [method @GDScript.instance_from_id] to obtain the "
+"actual nodes. A scenario RID must be provided, which is available in the "
+"[World] you want to query. This forces an update for all resources queued to "
+"update.\n"
+"[b]Warning:[/b] This function is primarily intended for editor usage. For in-"
+"game use cases, prefer physics collision."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns an array of object IDs intersecting with the provided 3D ray. Only "
+"visual 3D nodes are considered, such as [MeshInstance] or "
+"[DirectionalLight]. Use [method @GDScript.instance_from_id] to obtain the "
+"actual nodes. A scenario RID must be provided, which is available in the "
+"[World] you want to query. This forces an update for all resources queued to "
+"update.\n"
+"[b]Warning:[/b] This function is primarily intended for editor usage. For in-"
+"game use cases, prefer physics collision."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], this directional light will blend between shadow map "
+"splits resulting in a smoother transition between them. Equivalent to "
+"[member DirectionalLight.directional_shadow_blend_splits]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the shadow depth range mode for this directional light. Equivalent to "
+"[member DirectionalLight.directional_shadow_depth_range]. See [enum "
+"LightDirectionalShadowDepthRangeMode] for options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the shadow mode for this directional light. Equivalent to [member "
+"DirectionalLight.directional_shadow_mode]. See [enum "
+"LightDirectionalShadowMode] for options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets whether to use vertical or horizontal detail for this omni light. This "
+"can be used to alleviate artifacts in the shadow map. Equivalent to [member "
+"OmniLight.omni_shadow_detail]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets whether to use a dual paraboloid or a cubemap for the shadow map. Dual "
+"paraboloid is faster but may suffer from artifacts. Equivalent to [member "
+"OmniLight.omni_shadow_mode]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the bake mode for this light, see [enum LightBakeMode] for options. The "
+"bake mode affects how the light will be baked in [BakedLightmap]s and "
+"[GIProbe]s."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the color of the light. Equivalent to [member Light.light_color]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the cull mask for this Light. Lights only affect objects in the "
+"selected layers. Equivalent to [member Light.light_cull_mask]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], light will subtract light instead of adding light. "
+"Equivalent to [member Light.light_negative]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the specified light parameter. See [enum LightParam] for options. "
+"Equivalent to [method Light.set_param]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], reverses the backface culling of the mesh. This can be "
+"useful when you have a flat mesh that has a light behind it. If you need to "
+"cast a shadow on both sides of the mesh, set the mesh to use double sided "
+"shadows with [method instance_geometry_set_cast_shadows_setting]. Equivalent "
+"to [member Light.shadow_reverse_cull_face]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], light will cast shadows. Equivalent to [member Light."
+"shadow_enabled]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the color of the shadow cast by the light. Equivalent to [member Light."
+"shadow_color]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets whether GI probes capture light information from this light. "
+"[i]Deprecated method.[/i] Use [method light_set_bake_mode] instead. This "
+"method is only kept for compatibility reasons and calls [method "
+"light_set_bake_mode] internally, setting the bake mode to [constant "
+"LIGHT_BAKE_DISABLED] or [constant LIGHT_BAKE_INDIRECT] depending on the "
+"given parameter."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a lightmap capture and adds it to the VisualServer. It can be "
+"accessed with the RID that is returned. This RID will be used in all "
+"[code]lightmap_capture_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"To place in a scene, attach this lightmap capture to an instance using "
+"[method instance_set_base] using the returned RID."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the size of the lightmap capture area."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the energy multiplier used by the lightmap capture."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the octree used by the lightmap capture."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the cell subdivision amount used by this lightmap capture's octree."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the cell transform for this lightmap capture's octree."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns [code]true[/code] if capture is in \"interior\" mode."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the size of the area covered by the lightmap capture. Equivalent to "
+"[member BakedLightmapData.bounds]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the energy multiplier for this lightmap capture. Equivalent to [member "
+"BakedLightmapData.energy]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the \"interior\" mode for this lightmap capture. Equivalent to [member "
+"BakedLightmapData.interior]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the octree to be used by this lightmap capture. This function is "
+"normally used by the [BakedLightmap] node. Equivalent to [member "
+"BakedLightmapData.octree]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the subdivision level of this lightmap capture's octree. Equivalent to "
+"[member BakedLightmapData.cell_subdiv]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the octree cell transform for this lightmap capture's octree. "
+"Equivalent to [member BakedLightmapData.cell_space_transform]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns a mesh of a sphere with the given amount of horizontal and vertical "
+"subdivisions."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates an empty material and adds it to the VisualServer. It can be "
+"accessed with the RID that is returned. This RID will be used in all "
+"[code]material_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the value of a certain material's parameter."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the default value for the param if available. Otherwise returns an "
+"empty [Variant]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the shader of a certain material's shader. Returns an empty RID if "
+"the material doesn't have a shader."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a material's line width."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets an object's next material."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a material's parameter."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a material's render priority."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a shader material's shader."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Adds a surface generated from the Arrays to a mesh. See [enum PrimitiveType] "
+"constants for types."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Removes all surfaces from a mesh."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a new mesh and adds it to the VisualServer. It can be accessed with "
+"the RID that is returned. This RID will be used in all [code]mesh_*[/code] "
+"VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"To place in a scene, attach this mesh to an instance using [method "
+"instance_set_base] using the returned RID."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's blend shape count."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's blend shape mode."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's custom aabb."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's number of surfaces."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Removes a mesh's surface."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a mesh's blend shape count."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a mesh's blend shape mode."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a mesh's custom aabb."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's surface's aabb."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's surface's vertex buffer."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's surface's amount of indices."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's surface's amount of vertices."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's surface's buffer arrays."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's surface's arrays for blend shapes."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the format of a mesh's surface."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Function is unused in Godot 3.x."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's surface's index buffer."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a mesh's surface's material."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the primitive type of a mesh's surface."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the aabb of a mesh's surface's skeleton."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a mesh's surface's material."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Updates a specific region of a vertex buffer for the specified surface. "
+"Warning: this function alters the vertex buffer directly with no safety "
+"mechanisms, you can easily corrupt your mesh."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Allocates space for the multimesh data. Format parameters determine how the "
+"data will be stored by OpenGL. See [enum MultimeshTransformFormat], [enum "
+"MultimeshColorFormat], and [enum MultimeshCustomDataFormat] for usage. "
+"Equivalent to [member MultiMesh.instance_count]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a new multimesh on the VisualServer and returns an [RID] handle. "
+"This RID will be used in all [code]multimesh_*[/code] VisualServer "
+"functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"To place in a scene, attach this multimesh to an instance using [method "
+"instance_set_base] using the returned RID."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Calculates and returns the axis-aligned bounding box that encloses all "
+"instances within the multimesh."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the number of instances allocated for this multimesh."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the RID of the mesh that will be used in drawing this multimesh."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the number of visible instances for this multimesh."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the color by which the specified instance will be modulated."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the custom data associated with the specified instance."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the [Transform] of the specified instance."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns the [Transform2D] of the specified instance. For use when the "
+"multimesh is set to use 2D transforms."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the color by which this instance will be modulated. Equivalent to "
+"[method MultiMesh.set_instance_color]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the custom data for this instance. Custom data is passed as a [Color], "
+"but is interpreted as a [code]vec4[/code] in the shader. Equivalent to "
+"[method MultiMesh.set_instance_custom_data]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the [Transform] for this instance. Equivalent to [method MultiMesh."
+"set_instance_transform]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the [Transform2D] for this instance. For use when multimesh is used in "
+"2D. Equivalent to [method MultiMesh.set_instance_transform_2d]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets all data related to the instances in one go. This is especially useful "
+"when loading the data from disk or preparing the data from GDNative.\n"
+"\n"
+"All data is packed in one large float array. An array may look like this: "
+"Transform for instance 1, color data for instance 1, custom data for "
+"instance 1, transform for instance 2, color data for instance 2, etc.\n"
+"\n"
+"[Transform] is stored as 12 floats, [Transform2D] is stored as 8 floats, "
+"[code]COLOR_8BIT[/code] / [code]CUSTOM_DATA_8BIT[/code] is stored as 1 float "
+"(4 bytes as is) and [code]COLOR_FLOAT[/code] / [code]CUSTOM_DATA_FLOAT[/"
+"code] is stored as 4 floats."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the mesh to be drawn by the multimesh. Equivalent to [member MultiMesh."
+"mesh]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the number of instances visible at a given time. If -1, all instances "
+"that have been allocated are drawn. Equivalent to [member MultiMesh."
+"visible_instance_count]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a new omni light and adds it to the VisualServer. It can be accessed "
+"with the RID that is returned. This RID can be used in most [code]light_*[/"
+"code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"To place in a scene, attach this omni light to an instance using [method "
+"instance_set_base] using the returned RID."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a particle system and adds it to the VisualServer. It can be "
+"accessed with the RID that is returned. This RID will be used in all "
+"[code]particles_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"To place in a scene, attach these particles to an instance using [method "
+"instance_set_base] using the returned RID."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Calculates and returns the axis-aligned bounding box that contains all the "
+"particles. Equivalent to [method Particles.capture_aabb]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns [code]true[/code] if particles are currently set to emitting."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns [code]true[/code] if particles are not emitting and particles are "
+"set to inactive."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Add particle system to list of particle systems that need to be updated. "
+"Update will take place on the next frame, or on the next call to [method "
+"instances_cull_aabb], [method instances_cull_convex], or [method "
+"instances_cull_ray]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Reset the particles on the next update. Equivalent to [method Particles."
+"restart]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the number of particles to be drawn and allocates the memory for them. "
+"Equivalent to [member Particles.amount]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets a custom axis-aligned bounding box for the particle system. Equivalent "
+"to [member Particles.visibility_aabb]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the draw order of the particles to one of the named enums from [enum "
+"ParticlesDrawOrder]. See [enum ParticlesDrawOrder] for options. Equivalent "
+"to [member Particles.draw_order]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the mesh to be used for the specified draw pass. Equivalent to [member "
+"Particles.draw_pass_1], [member Particles.draw_pass_2], [member Particles."
+"draw_pass_3], and [member Particles.draw_pass_4]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the number of draw passes to use. Equivalent to [member Particles."
+"draw_passes]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the [Transform] that will be used by the particles when they first emit."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], particles will emit over time. Setting to false does "
+"not reset the particles, but only stops their emission. Equivalent to "
+"[member Particles.emitting]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the explosiveness ratio. Equivalent to [member Particles.explosiveness]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the frame rate that the particle system rendering will be fixed to. "
+"Equivalent to [member Particles.fixed_fps]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], uses fractional delta which smooths the movement of "
+"the particles. Equivalent to [member Particles.fract_delta]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the lifetime of each particle in the system. Equivalent to [member "
+"Particles.lifetime]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], particles will emit once and then stop. Equivalent to "
+"[member Particles.one_shot]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the preprocess time for the particles' animation. This lets you delay "
+"starting an animation until after the particles have begun emitting. "
+"Equivalent to [member Particles.preprocess]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the material for processing the particles.\n"
+"[b]Note:[/b] This is not the material used to draw the materials. Equivalent "
+"to [member Particles.process_material]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the emission randomness ratio. This randomizes the emission of "
+"particles within their phase. Equivalent to [member Particles.randomness]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the speed scale of the particle system. Equivalent to [member Particles."
+"speed_scale]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], particles use local coordinates. If [code]false[/code] "
+"they use global coordinates. Equivalent to [member Particles.local_coords]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a reflection probe and adds it to the VisualServer. It can be "
+"accessed with the RID that is returned. This RID will be used in all "
+"[code]reflection_probe_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"To place in a scene, attach this reflection probe to an instance using "
+"[method instance_set_base] using the returned RID."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], reflections will ignore sky contribution. Equivalent "
+"to [member ReflectionProbe.interior_enable]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the render cull mask for this reflection probe. Only instances with a "
+"matching cull mask will be rendered by this probe. Equivalent to [member "
+"ReflectionProbe.cull_mask]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], uses box projection. This can make reflections look "
+"more correct in certain situations. Equivalent to [member ReflectionProbe."
+"box_projection]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], computes shadows in the reflection probe. This makes "
+"the reflection much slower to compute. Equivalent to [member ReflectionProbe."
+"enable_shadows]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the size of the area that the reflection probe will capture. Equivalent "
+"to [member ReflectionProbe.extents]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the intensity of the reflection probe. Intensity modulates the strength "
+"of the reflection. Equivalent to [member ReflectionProbe.intensity]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the ambient light color for this reflection probe when set to interior "
+"mode. Equivalent to [member ReflectionProbe.interior_ambient_color]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the energy multiplier for this reflection probes ambient light "
+"contribution when set to interior mode. Equivalent to [member "
+"ReflectionProbe.interior_ambient_energy]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the contribution value for how much the reflection affects the ambient "
+"light for this reflection probe when set to interior mode. Useful so that "
+"ambient light matches the color of the room. Equivalent to [member "
+"ReflectionProbe.interior_ambient_contrib]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the max distance away from the probe an object can be before it is "
+"culled. Equivalent to [member ReflectionProbe.max_distance]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the origin offset to be used when this reflection probe is in box "
+"project mode. Equivalent to [member ReflectionProbe.origin_offset]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets how often the reflection probe updates. Can either be once or every "
+"frame. See [enum ReflectionProbeUpdateMode] for options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Schedules a callback to the corresponding named [code]method[/code] on "
+"[code]where[/code] after a frame has been drawn.\n"
+"The callback method must use only 1 argument which will be called with "
+"[code]userdata[/code]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a scenario and adds it to the VisualServer. It can be accessed with "
+"the RID that is returned. This RID will be used in all [code]scenario_*[/"
+"code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"The scenario is the 3D world that all the visual instances exist in."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the [enum ScenarioDebugMode] for this scenario. See [enum "
+"ScenarioDebugMode] for options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the environment that will be used with this scenario."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the fallback environment to be used by this scenario. The fallback "
+"environment is used if no environment is set. Internally, this is used by "
+"the editor to provide a default environment."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the size of the reflection atlas shared by all reflection probes in "
+"this scenario."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets a boot image. The color defines the background color. If [code]scale[/"
+"code] is [code]true[/code], the image will be scaled to fit the screen size. "
+"If [code]use_filter[/code] is [code]true[/code], the image will be scaled "
+"with linear interpolation. If [code]use_filter[/code] is [code]false[/code], "
+"the image will be scaled with nearest-neighbor interpolation."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], the engine will generate wireframes for use with the "
+"wireframe debug mode."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the default clear color which is used when a specific clear color has "
+"not been selected."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If asynchronous shader compilation is enabled, this controls whether "
+"[constant SpatialMaterial.ASYNC_MODE_HIDDEN] is obeyed.\n"
+"For instance, you may want to enable this temporarily before taking a "
+"screenshot. This ensures everything is visible even if shaders with async "
+"mode [i]hidden[/i] are not ready yet.\n"
+"Reflection probes use this internally to ensure they capture everything "
+"regardless the shaders are ready or not."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the scale to apply to the passage of time for the shaders' [code]TIME[/"
+"code] builtin.\n"
+"The default value is [code]1.0[/code], which means [code]TIME[/code] will "
+"count the real time as it goes by, without narrowing or stretching it."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Enables or disables occlusion culling."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates an empty shader and adds it to the VisualServer. It can be accessed "
+"with the RID that is returned. This RID will be used in all [code]shader_*[/"
+"code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a shader's code."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a default texture from a shader searched by name."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the parameters of a shader."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a shader's code."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a shader's default texture. Overwrites the texture given by name."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Allocates the GPU buffers for this skeleton."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the [Transform] set for a specific bone of this skeleton."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the [Transform2D] set for a specific bone of this skeleton."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the [Transform] for a specific bone of this skeleton."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the [Transform2D] for a specific bone of this skeleton."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a skeleton and adds it to the VisualServer. It can be accessed with "
+"the RID that is returned. This RID will be used in all [code]skeleton_*[/"
+"code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the number of bones allocated for this skeleton."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates an empty sky and adds it to the VisualServer. It can be accessed "
+"with the RID that is returned. This RID will be used in all [code]sky_*[/"
+"code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a sky's texture."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a spot light and adds it to the VisualServer. It can be accessed "
+"with the RID that is returned. This RID can be used in most [code]light_*[/"
+"code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method.\n"
+"To place in a scene, attach this spot light to an instance using [method "
+"instance_set_base] using the returned RID."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Allocates the GPU memory for the texture."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Binds the texture to a texture slot."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates an empty texture and adds it to the VisualServer. It can be accessed "
+"with the RID that is returned. This RID will be used in all [code]texture_*[/"
+"code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates a texture, allocates the space for an image, and fills in the image."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns a list of all the textures and their information."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns a copy of a texture's image unless it's a CubeMap, in which case it "
+"returns the [RID] of the image at one of the cubes sides."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the depth of the texture."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the flags of a texture."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the format of the texture's image."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the texture's height."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the texture's path."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the opengl id of the texture's image."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the type of the texture, can be any of the [enum TextureType]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the texture's width."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the texture's image data. If it's a CubeMap, it sets the image data at "
+"a cube side."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets a part of the data for a texture. Warning: this function calls the "
+"underlying graphics API directly and may corrupt your texture if used "
+"improperly."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the texture's flags. See [enum TextureFlags] for options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the texture's path."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], sets internal processes to shrink all image data to "
+"half the size."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], the image will be stored in the texture's images array "
+"if overwritten."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a viewport's camera."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets a viewport's canvas."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Copies viewport to a region of the screen specified by [code]rect[/code]. If "
+"[member Viewport.render_direct_to_screen] is [code]true[/code], then "
+"viewport does not use a framebuffer and the contents of the viewport are "
+"rendered directly to screen. However, note that the root viewport is drawn "
+"last, therefore it will draw over the screen. Accordingly, you must set the "
+"root viewport to an area that does not cover the area that you have attached "
+"this viewport to.\n"
+"For example, you can set the root viewport to not render at all with the "
+"following code:\n"
+"[codeblock]\n"
+"func _ready():\n"
+" get_viewport().set_attach_to_screen_rect(Rect2())\n"
+" $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600))\n"
+"[/codeblock]\n"
+"Using this can result in significant optimization, especially on lower-end "
+"devices. However, it comes at the cost of having to manage your viewports "
+"manually. For a further optimization see, [method "
+"viewport_set_render_direct_to_screen]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Creates an empty viewport and adds it to the VisualServer. It can be "
+"accessed with the RID that is returned. This RID will be used in all "
+"[code]viewport_*[/code] VisualServer functions.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"VisualServer's [method free_rid] static method."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Detaches the viewport from the screen."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Returns a viewport's render information. For options, see the [enum "
+"ViewportRenderInfo] constants."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Returns the viewport's last rendered frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Detaches a viewport from a canvas and vice versa."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "If [code]true[/code], sets the viewport active, else sets it inactive."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the stacking order for a viewport's canvas.\n"
+"[code]layer[/code] is the actual canvas layer, while [code]sublayer[/code] "
+"specifies the stacking order of the canvas among those in the same layer."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the transformation of a viewport's canvas."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the clear mode of a viewport. See [enum ViewportClearMode] for options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the debug draw mode of a viewport. See [enum ViewportDebugDraw] for "
+"options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "If [code]true[/code], a viewport's 3D rendering is disabled."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], rendering of a viewport's environment is disabled."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the viewport's global transformation matrix."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "If [code]true[/code], the viewport renders to hdr."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "If [code]true[/code], the viewport's canvas is not rendered."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Currently unimplemented in Godot 3.x."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the anti-aliasing mode. See [enum ViewportMSAA] for options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the viewport's parent to another viewport."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], render the contents of the viewport directly to "
+"screen. This allows a low-level optimization where you can skip drawing a "
+"viewport to the root viewport. While this optimization can result in a "
+"significant increase in speed (especially on older devices), it comes at a "
+"cost of usability. When this is enabled, you cannot read from the viewport "
+"or from the [code]SCREEN_TEXTURE[/code]. You also lose the benefit of "
+"certain window settings, such as the various stretch modes. Another "
+"consequence to be aware of is that in 2D the rendering happens in window "
+"coordinates, so if you have a viewport that is double the size of the "
+"window, and you set this, then only the portion that fits within the window "
+"will be drawn, no automatic scaling is possible, even if your game scene is "
+"significantly larger than the window size."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets a viewport's scenario.\n"
+"The scenario contains information about the [enum ScenarioDebugMode], "
+"environment information, reflection atlas etc."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the shadow atlas quadrant's subdivision."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the size of the shadow atlas's images (used for omni and spot lights). "
+"The value will be rounded up to the nearest power of 2."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the sharpening [code]intensity[/code] for the [code]viewport[/code]. If "
+"set to a value greater than [code]0.0[/code], contrast-adaptive sharpening "
+"will be applied to the 3D viewport. This has a low performance cost and can "
+"be used to recover some of the sharpness lost from using FXAA. Values around "
+"[code]0.5[/code] generally give the best results. See also [method "
+"viewport_set_use_fxaa]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sets the viewport's width and height."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], the viewport renders its background as transparent."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets when the viewport should be updated. See [enum ViewportUpdateMode] "
+"constants for options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Sets the viewport's 2D/3D mode. See [enum ViewportUsage] constants for "
+"options."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], the viewport uses augmented or virtual reality "
+"technologies. See [ARVRInterface]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]true[/code], uses a fast post-processing filter to make banding "
+"significantly less visible. In some cases, debanding may introduce a "
+"slightly noticeable dithering pattern. It's recommended to enable debanding "
+"only when actually needed since the dithering pattern will make lossless-"
+"compressed screenshots larger.\n"
+"[b]Note:[/b] Only available on the GLES3 backend. [member Viewport.hdr] must "
+"also be [code]true[/code] for debanding to be effective."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Enables fast approximate antialiasing for this viewport. FXAA is a popular "
+"screen-space antialiasing method, which is fast but will make the image look "
+"blurry, especially at lower resolutions. It can still work relatively well "
+"at large resolutions such as 1440p and 4K. Some of the lost sharpness can be "
+"recovered by enabling contrast-adaptive sharpening (see [method "
+"viewport_set_sharpen_intensity])."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "If [code]true[/code], the viewport's rendering is flipped vertically."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"If [code]false[/code], disables rendering completely, but the engine logic "
+"is still being processed. You can call [method force_draw] to draw a frame "
+"even with rendering disabled."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Emitted at the end of the frame, after the VisualServer has finished "
+"updating all the Viewports."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Emitted at the beginning of the frame, before the VisualServer updates all "
+"the Viewports."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Marks an error that shows that the index array is empty."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Number of weights/bones per vertex."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The minimum Z-layer for canvas items."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The maximum Z-layer for canvas items."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Max number of glow levels that can be used with glow post-process effect."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Unused enum in Godot 3.x."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The minimum renderpriority of all materials."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The maximum renderpriority of all materials."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Marks the left side of a cubemap."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Marks the right side of a cubemap."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Marks the bottom side of a cubemap."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Marks the top side of a cubemap."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Marks the front side of a cubemap."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Marks the back side of a cubemap."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Normal texture with 2 dimensions, width and height."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Texture made up of six faces, can be looked up with a [code]vec3[/code] in "
+"shader."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "An array of 2-dimensional textures."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "A 3-dimensional texture with width, height, and depth."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Repeats the texture (instead of clamp to edge)."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Repeats the texture with alternate sections mirrored."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Default flags. [constant TEXTURE_FLAG_MIPMAPS], [constant "
+"TEXTURE_FLAG_REPEAT] and [constant TEXTURE_FLAG_FILTER] are enabled."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Shader is a 3D shader."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Shader is a 2D shader."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Shader is a particle shader."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Represents the size of the [enum ShaderMode] enum."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Array is a vertex array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Array is a normal array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Array is a tangent array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Array is a color array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Array is an UV coordinates array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Array is an UV coordinates array for the second UV coordinates."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Array contains bone information."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Array is weight information."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Array is index array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Flag used to mark a vertex array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Flag used to mark a normal array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Flag used to mark a tangent array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Flag used to mark a color array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Flag used to mark an UV coordinates array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Flag used to mark an UV coordinates array for the second UV coordinates."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Flag used to mark a bone information array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Flag used to mark a weights array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Flag used to mark an index array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Used to set flags [constant ARRAY_COMPRESS_NORMAL], [constant "
+"ARRAY_COMPRESS_TANGENT], [constant ARRAY_COMPRESS_COLOR], [constant "
+"ARRAY_COMPRESS_TEX_UV], [constant ARRAY_COMPRESS_TEX_UV2], [constant "
+"ARRAY_COMPRESS_WEIGHTS], and [constant "
+"ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION] quickly."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Primitive to draw consists of points."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Primitive to draw consists of lines."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Primitive to draw consists of a line strip from start to end."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Primitive to draw consists of a line loop (a line strip with a line between "
+"the last and the first vertex)."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Primitive to draw consists of triangles."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Primitive to draw consists of a triangle strip (the last 3 vertices are "
+"always combined to make a triangle)."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Primitive to draw consists of a triangle strip (the last 2 vertices are "
+"always combined with the first to make a triangle)."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Represents the size of the [enum PrimitiveType] enum."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Is a directional (sun) light."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Is an omni light."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Is a spot light."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The light's energy."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Secondary multiplier used with indirect light (light bounces)."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"The light's size, currently only used for soft shadows in baked lightmaps."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The light's influence on specularity."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The light's range."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The light's attenuation."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The spotlight's angle."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The spotlight's attenuation."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Scales the shadow color."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Max distance that shadows will be rendered."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Proportion of shadow atlas occupied by the first split."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Proportion of shadow atlas occupied by the second split."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Proportion of shadow atlas occupied by the third split. The fourth split "
+"occupies the rest."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Normal bias used to offset shadow lookup by object normal. Can be used to "
+"fix self-shadowing artifacts."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Bias the shadow lookup to fix self-shadowing artifacts."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Increases bias on further splits to fix self-shadowing that only occurs far "
+"away from the camera."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Represents the size of the [enum LightParam] enum."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use a dual paraboloid shadow map for omni lights."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Use a cubemap shadow map for omni lights. Slower but better quality than "
+"dual paraboloid."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use more detail vertically when computing shadow map."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use more detail horizontally when computing shadow map."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use orthogonal shadow projection for directional light."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use 2 splits for shadow projection when using directional light."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use 4 splits for shadow projection when using directional light."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Keeps shadows stable as camera moves but has lower effective resolution."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Optimize use of shadow maps, increasing the effective resolution. But may "
+"result in shadows moving or flickering slightly."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Do not update the viewport."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Update the viewport once then set to disabled."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Update the viewport whenever it is visible."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Always update the viewport."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The viewport is always cleared before drawing."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The viewport is never cleared before drawing."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"The viewport is cleared once, then the clear mode is set to [constant "
+"VIEWPORT_CLEAR_NEVER]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Multisample antialiasing is disabled."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Multisample antialiasing is set to 2×."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Multisample antialiasing is set to 4×."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Multisample antialiasing is set to 8×."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Multisample antialiasing is set to 16×."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Multisample antialiasing is set to 2× on external texture. Special mode for "
+"GLES2 Android VR (Oculus Quest and Go)."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Multisample antialiasing is set to 4× on external texture. Special mode for "
+"GLES2 Android VR (Oculus Quest and Go)."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The Viewport does not render 3D but samples."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The Viewport does not render 3D and does not sample."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The Viewport renders 3D with effects."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The Viewport renders 3D but without effects."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Number of objects drawn in a single frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Number of vertices drawn in a single frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Number of material changes during this frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Number of shader changes during this frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Number of surface changes during this frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Number of draw calls during this frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Number of 2d items drawn this frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Number of 2d draw calls during this frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Represents the size of the [enum ViewportRenderInfo] enum."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Debug draw is disabled. Default setting."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Debug draw sets objects to unshaded."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Overwrites clear color to [code](0,0,0,0)[/code]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Debug draw draws objects in wireframe."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Do not use a debug mode."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Draw all objects as wireframe models."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Draw all objects in a way that displays how much overdraw is occurring. "
+"Overdraw occurs when a section of pixels is drawn and shaded and then "
+"another object covers it up. To optimize a scene, you should reduce overdraw."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Draw all objects without shading. Equivalent to setting all objects shaders "
+"to [code]unshaded[/code]."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The instance does not have a type."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The instance is a mesh."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The instance is a multimesh."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The instance is an immediate geometry."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The instance is a particle emitter."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The instance is a light."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The instance is a reflection probe."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The instance is a GI probe."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The instance is a lightmap capture."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Represents the size of the [enum InstanceType] enum."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"A combination of the flags of geometry instances (mesh, multimesh, immediate "
+"and particles)."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Allows the instance to be used in baked lighting."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "When set, manually requests to draw geometry on next frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Represents the size of the [enum InstanceFlags] enum."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Disable shadows from this instance."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Cast shadows from this instance."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Disable backface culling when rendering the shadow of the object. This is "
+"slightly slower but may result in more correct shadows."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Only render the shadows from the object. The object itself will not be drawn."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The nine patch gets stretched where needed."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The nine patch gets filled with tiles where needed."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"The nine patch gets filled with tiles where needed and stretches them a bit "
+"if needed."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds light color additive to the canvas."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Adds light color subtractive to the canvas."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The light adds color depending on transparency."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The light adds color depending on mask."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Do not apply a filter to canvas light shadows."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use PCF3 filtering to filter canvas light shadows."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use PCF5 filtering to filter canvas light shadows."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use PCF7 filtering to filter canvas light shadows."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use PCF9 filtering to filter canvas light shadows."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use PCF13 filtering to filter canvas light shadows."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Culling of the canvas occluder is disabled."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Culling of the canvas occluder is clockwise."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Culling of the canvas occluder is counterclockwise."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The amount of objects in the frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The amount of vertices in the frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The amount of modified materials in the frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The amount of shader rebinds in the frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The amount of surface changes in the frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The amount of draw calls in frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The amount of 2d items in the frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "The amount of 2d draw calls in frame."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Hardware supports shaders. This enum is currently unused in Godot 3.x."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Hardware supports multithreading. This enum is currently unused in Godot 3.x."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use [Transform2D] to store MultiMesh transform."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use [Transform] to store MultiMesh transform."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "MultiMesh does not use per-instance color."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"MultiMesh color uses 8 bits per component. This packs the color into a "
+"single float."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "MultiMesh color uses a float per channel."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "MultiMesh does not use custom data."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"MultiMesh custom data uses 8 bits per component. This packs the 4-component "
+"custom data into a single float."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "MultiMesh custom data uses a float per component."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Reflection probe will update reflections once and then stop."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Reflection probe will update each frame. This mode is necessary to capture "
+"moving objects."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Draw particles in the order that they appear in the particles array."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sort particles based on their lifetime."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Sort particles based on their distance to the camera."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use the clear color as background."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use a specified color as the background."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use a sky resource for the background."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Use a custom color for background, but use a sky for shading and reflections."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Use a specified canvas layer as the background. This can be useful for "
+"instantiating a 2D scene in a 3D world."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Do not clear the background, use whatever was rendered last frame as the "
+"background."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Represents the size of the [enum EnvironmentBG] enum."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use lowest blur quality. Fastest, but may look bad."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use medium blur quality."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Used highest blur quality. Looks the best, but is the slowest."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Add the effect of the glow on top of the scene."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid ""
+"Blends the glow effect with the screen. Does not get as bright as additive."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Produces a subtle color disturbance around objects."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Shows the glow effect by itself without the underlying scene."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Output color as they came in."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use the Reinhard tonemapper."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use the filmic tonemapper."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use the ACES tonemapper."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Use the ACES Fitted tonemapper."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Lowest quality of screen space ambient occlusion."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Medium quality screen space ambient occlusion."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Highest quality screen space ambient occlusion."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Disables the blur set for SSAO. Will make SSAO look noisier."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Perform a 1x1 blur on the SSAO output."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Performs a 2x2 blur on the SSAO output."
+msgstr ""
+
+#: doc/classes/VisualServer.xml
+msgid "Performs a 3x3 blur on the SSAO output. Use this for smoothest SSAO."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "A custom shader program with a visual editor."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid ""
+"This class allows you to define a custom shader program that can be used for "
+"various materials to render objects.\n"
+"The visual shader editor creates the shader."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "Adds the specified node to the shader."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid ""
+"Returns [code]true[/code] if the specified nodes and ports can be connected "
+"together."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "Connects the specified nodes and ports."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid ""
+"Connects the specified nodes and ports, even if they can't be connected. "
+"Such connection is invalid and will not function properly."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid ""
+"Returns the shader node instance with specified [code]type[/code] and "
+"[code]id[/code]."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "Returns the list of connected nodes with the specified type."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "Returns the list of all nodes in the shader with the specified type."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "Returns the position of the specified node within the shader graph."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid ""
+"Returns [code]true[/code] if the specified node and port connection exist."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "Removes the specified node from the shader."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "Sets the mode of this shader."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "Sets the position of the specified node."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "The offset vector of the whole graph."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "A vertex shader, operating on vertices."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "A fragment shader, operating on fragments (pixels)."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "A shader for light calculations."
+msgstr ""
+
+#: doc/classes/VisualShader.xml
+msgid "Represents the size of the [enum Type] enum."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid "Base class for nodes in a visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid ""
+"Visual shader graphs consist of various nodes. Each node in the graph is a "
+"separate object and they are represented as a rectangular boxes with title "
+"and a set of properties. Each node has also connection ports that allow to "
+"connect it to another nodes and control the flow of the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid "$DOCS_URL/tutorials/shaders/visual_shaders.html"
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid ""
+"Returns an [Array] containing default values for all of the input ports of "
+"the node in the form [code][index0, value0, index1, value1, ...][/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid "Returns the default value of the input [code]port[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid ""
+"Sets the default input ports values using an [Array] of the form [code]"
+"[index0, value0, index1, value1, ...][/code]. For example: [code][0, "
+"Vector3(0, 0, 0), 1, Vector3(0, 0, 0)][/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid "Sets the default value for the selected input [code]port[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid ""
+"Sets the output port index which will be showed for preview. If set to "
+"[code]-1[/code] no port will be open for preview."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid ""
+"Emitted when the node requests an editor refresh. Currently called only in "
+"setter of [member VisualShaderNodeTexture.source], "
+"[VisualShaderNodeTexture], and [VisualShaderNodeCubeMap] (and their "
+"derivatives)."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid ""
+"Floating-point scalar. Translated to [code]float[/code] type in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid ""
+"3D vector of floating-point values. Translated to [code]vec3[/code] type in "
+"shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid "Boolean type. Translated to [code]bool[/code] type in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid "Transform type. Translated to [code]mat4[/code] type in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid ""
+"Sampler type. Translated to reference of sampler uniform in shader code. Can "
+"only be used for input ports in non-uniform nodes."
+msgstr ""
+
+#: doc/classes/VisualShaderNode.xml
+msgid "Represents the size of the [enum PortType] enum."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanConstant.xml
+msgid "A boolean constant to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanConstant.xml
+msgid ""
+"Has only one output port and no inputs.\n"
+"Translated to [code]bool[/code] in the shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanConstant.xml
+msgid "A boolean constant which represents a state of this node."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+msgid "A boolean uniform to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+msgid "Translated to [code]uniform bool[/code] in the shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorConstant.xml
+msgid "A [Color] constant to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorConstant.xml
+msgid ""
+"Has two output ports representing RGB and alpha channels of [Color].\n"
+"Translated to [code]vec3 rgb[/code] and [code]float alpha[/code] in the "
+"shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorConstant.xml
+msgid "A [Color] constant which represents a state of this node."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorFunc.xml
+msgid "A [Color] function to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorFunc.xml
+msgid ""
+"Accept a [Color] to the input port and transform it according to [member "
+"function]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorFunc.xml
+msgid ""
+"A function to be applied to the input color. See [enum Function] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorFunc.xml
+msgid ""
+"Converts the color to grayscale using the following formula:\n"
+"[codeblock]\n"
+"vec3 c = input;\n"
+"float max1 = max(c.r, c.g);\n"
+"float max2 = max(max1, c.b);\n"
+"float max3 = max(max1, max2);\n"
+"return vec3(max3, max3, max3);\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorFunc.xml
+msgid ""
+"Applies sepia tone effect using the following formula:\n"
+"[codeblock]\n"
+"vec3 c = input;\n"
+"float r = (c.r * 0.393) + (c.g * 0.769) + (c.b * 0.189);\n"
+"float g = (c.r * 0.349) + (c.g * 0.686) + (c.b * 0.168);\n"
+"float b = (c.r * 0.272) + (c.g * 0.534) + (c.b * 0.131);\n"
+"return vec3(r, g, b);\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid "A [Color] operator to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid "Applies [member operator] to two color inputs."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid ""
+"An operator to be applied to the inputs. See [enum Operator] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid ""
+"Produce a screen effect with the following formula:\n"
+"[codeblock]\n"
+"result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b);\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid ""
+"Produce a difference effect with the following formula:\n"
+"[codeblock]\n"
+"result = abs(a - b);\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid ""
+"Produce a darken effect with the following formula:\n"
+"[codeblock]\n"
+"result = min(a, b);\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid ""
+"Produce a lighten effect with the following formula:\n"
+"[codeblock]\n"
+"result = max(a, b);\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid ""
+"Produce an overlay effect with the following formula:\n"
+"[codeblock]\n"
+"for (int i = 0; i < 3; i++) {\n"
+" float base = a[i];\n"
+" float blend = b[i];\n"
+" if (base < 0.5) {\n"
+" result[i] = 2.0 * base * blend;\n"
+" } else {\n"
+" result[i] = 1.0 - 2.0 * (1.0 - blend) * (1.0 - base);\n"
+" }\n"
+"}\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid ""
+"Produce a dodge effect with the following formula:\n"
+"[codeblock]\n"
+"result = a / (vec3(1.0) - b);\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid ""
+"Produce a burn effect with the following formula:\n"
+"[codeblock]\n"
+"result = vec3(1.0) - (vec3(1.0) - a) / b;\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid ""
+"Produce a soft light effect with the following formula:\n"
+"[codeblock]\n"
+"for (int i = 0; i < 3; i++) {\n"
+" float base = a[i];\n"
+" float blend = b[i];\n"
+" if (base < 0.5) {\n"
+" result[i] = base * (blend + 0.5);\n"
+" } else {\n"
+" result[i] = 1.0 - (1.0 - base) * (1.0 - (blend - 0.5));\n"
+" }\n"
+"}\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorOp.xml
+msgid ""
+"Produce a hard light effect with the following formula:\n"
+"[codeblock]\n"
+"for (int i = 0; i < 3; i++) {\n"
+" float base = a[i];\n"
+" float blend = b[i];\n"
+" if (base < 0.5) {\n"
+" result[i] = base * (2.0 * blend);\n"
+" } else {\n"
+" result[i] = 1.0 - (1.0 - base) * (1.0 - 2.0 * (blend - 0.5));\n"
+" }\n"
+"}\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorUniform.xml
+msgid "A [Color] uniform to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeColorUniform.xml
+msgid "Translated to [code]uniform vec4[/code] in the shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid "A comparison function for common types within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid ""
+"Compares [code]a[/code] and [code]b[/code] of [member type] by [member "
+"function]. Returns a boolean scalar. Translates to [code]if[/code] "
+"instruction in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid ""
+"Extra condition which is applied if [member type] is set to [constant "
+"CTYPE_VECTOR]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid "A comparison function. See [enum Function] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid ""
+"The type to be used in the comparison. See [enum ComparisonType] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid "A floating-point scalar."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid "A 3D vector type."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid "A boolean type."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid "A transform ([code]mat4[/code]) type."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid "Comparison for equality ([code]a == b[/code])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid "Comparison for inequality ([code]a != b[/code])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid ""
+"Comparison for greater than ([code]a > b[/code]). Cannot be used if [member "
+"type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid ""
+"Comparison for greater than or equal ([code]a >= b[/code]). Cannot be used "
+"if [member type] set to [constant CTYPE_BOOLEAN] or [constant "
+"CTYPE_TRANSFORM]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid ""
+"Comparison for less than ([code]a < b[/code]). Cannot be used if [member "
+"type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid ""
+"Comparison for less than or equal ([code]a < b[/code]). Cannot be used if "
+"[member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid ""
+"The result will be true if all of component in vector satisfy the comparison "
+"condition."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCompare.xml
+msgid ""
+"The result will be true if any of component in vector satisfy the comparison "
+"condition."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMap.xml
+msgid "A [CubeMap] sampling node to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMap.xml
+msgid ""
+"Translated to [code]texture(cubemap, vec3)[/code] in the shader language. "
+"Returns a color vector and alpha channel as scalar."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMap.xml
+msgid ""
+"The [CubeMap] texture to sample when using [constant SOURCE_TEXTURE] as "
+"[member source]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMap.xml
+msgid ""
+"Defines which source should be used for the sampling. See [enum Source] for "
+"options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMap.xml
+#: doc/classes/VisualShaderNodeTextureUniform.xml
+msgid ""
+"Defines the type of data provided by the source texture. See [enum "
+"TextureType] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMap.xml
+msgid ""
+"Use the [CubeMap] set via [member cube_map]. If this is set to [member "
+"source], the [code]samplerCube[/code] port is ignored."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMap.xml
+msgid ""
+"Use the [CubeMap] sampler reference passed via the [code]samplerCube[/code] "
+"port. If this is set to [member source], the [member cube_map] texture is "
+"ignored."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMap.xml
+#: doc/classes/VisualShaderNodeTexture.xml
+#: doc/classes/VisualShaderNodeTextureUniform.xml
+msgid "No hints are added to the uniform declaration."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMap.xml
+#: doc/classes/VisualShaderNodeTexture.xml
+#: doc/classes/VisualShaderNodeTextureUniform.xml
+msgid ""
+"Adds [code]hint_albedo[/code] as hint to the uniform declaration for proper "
+"sRGB to linear conversion."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMap.xml
+#: doc/classes/VisualShaderNodeTexture.xml
+#: doc/classes/VisualShaderNodeTextureUniform.xml
+msgid ""
+"Adds [code]hint_normal[/code] as hint to the uniform declaration, which "
+"internally converts the texture for proper usage as normal map."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMapUniform.xml
+msgid "A [CubeMap] uniform node to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCubeMapUniform.xml
+msgid ""
+"Translated to [code]uniform samplerCube[/code] in the shader language. The "
+"output value can be used as port for [VisualShaderNodeCubeMap]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Virtual class to define custom [VisualShaderNode]s for use in the Visual "
+"Shader Editor."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"By inheriting this class you can create a custom [VisualShader] script addon "
+"which will be automatically added to the Visual Shader Editor. The "
+"[VisualShaderNode]'s behavior is defined by overriding the provided virtual "
+"methods.\n"
+"In order for the node to be registered as an editor addon, you must use the "
+"[code]tool[/code] keyword and provide a [code]class_name[/code] for your "
+"custom script. For example:\n"
+"[codeblock]\n"
+"tool\n"
+"extends VisualShaderNodeCustom\n"
+"class_name VisualShaderNodeNoise\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid "$DOCS_URL/tutorials/plugins/editor/visual_shader_plugins.html"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the category of the associated custom node in "
+"the Visual Shader Editor's members dialog. The path may look like "
+"[code]\"MyGame/MyFunctions/Noise\"[/code].\n"
+"Defining this method is [b]optional[/b]. If not overridden, the node will be "
+"filed under the \"Custom\" category."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the actual shader code of the associated "
+"custom node. The shader code should be returned as a string, which can have "
+"multiple lines (the [code]\"\"\"[/code] multiline string construct can be "
+"used for convenience).\n"
+"The [code]input_vars[/code] and [code]output_vars[/code] arrays contain the "
+"string names of the various input and output variables, as defined by "
+"[code]_get_input_*[/code] and [code]_get_output_*[/code] virtual methods in "
+"this class.\n"
+"The output ports can be assigned values in the shader code. For example, "
+"[code]return output_vars[0] + \" = \" + input_vars[0] + \";\"[/code].\n"
+"You can customize the generated code based on the shader [code]mode[/code] "
+"(see [enum Shader.Mode]) and/or [code]type[/code] (see [enum VisualShader."
+"Type]).\n"
+"Defining this method is [b]required[/b]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the description of the associated custom node "
+"in the Visual Shader Editor's members dialog.\n"
+"Defining this method is [b]optional[/b]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to add shader code on top of the global shader, to "
+"define your own standard library of reusable methods, varyings, constants, "
+"uniforms, etc. The shader code should be returned as a string, which can "
+"have multiple lines (the [code]\"\"\"[/code] multiline string construct can "
+"be used for convenience).\n"
+"Be careful with this functionality as it can cause name conflicts with other "
+"custom nodes, so be sure to give the defined entities unique names.\n"
+"You can customize the generated code based on the shader [code]mode[/code] "
+"(see [enum Shader.Mode]).\n"
+"Defining this method is [b]optional[/b]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the amount of input ports of the associated "
+"custom node.\n"
+"Defining this method is [b]required[/b]. If not overridden, the node has no "
+"input ports."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the names of input ports of the associated "
+"custom node. The names are used both for the input slots in the editor and "
+"as identifiers in the shader code, and are passed in the [code]input_vars[/"
+"code] array in [method _get_code].\n"
+"Defining this method is [b]optional[/b], but recommended. If not overridden, "
+"input ports are named as [code]\"in\" + str(port)[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the returned type of each input port of the "
+"associated custom node (see [enum VisualShaderNode.PortType] for possible "
+"types).\n"
+"Defining this method is [b]optional[/b], but recommended. If not overridden, "
+"input ports will return the [constant VisualShaderNode.PORT_TYPE_SCALAR] "
+"type."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the name of the associated custom node in the "
+"Visual Shader Editor's members dialog and graph.\n"
+"Defining this method is [b]optional[/b], but recommended. If not overridden, "
+"the node will be named as \"Unnamed\"."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the amount of output ports of the associated "
+"custom node.\n"
+"Defining this method is [b]required[/b]. If not overridden, the node has no "
+"output ports."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the names of output ports of the associated "
+"custom node. The names are used both for the output slots in the editor and "
+"as identifiers in the shader code, and are passed in the [code]output_vars[/"
+"code] array in [method _get_code].\n"
+"Defining this method is [b]optional[/b], but recommended. If not overridden, "
+"output ports are named as [code]\"out\" + str(port)[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the returned type of each output port of the "
+"associated custom node (see [enum VisualShaderNode.PortType] for possible "
+"types).\n"
+"Defining this method is [b]optional[/b], but recommended. If not overridden, "
+"output ports will return the [constant VisualShaderNode.PORT_TYPE_SCALAR] "
+"type."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the return icon of the associated custom node "
+"in the Visual Shader Editor's members dialog.\n"
+"Defining this method is [b]optional[/b]. If not overridden, no return icon "
+"is shown."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeCustom.xml
+msgid ""
+"Override this method to define the subcategory of the associated custom node "
+"in the Visual Shader Editor's members dialog.\n"
+"Defining this method is [b]optional[/b]. If not overridden, the node will be "
+"filed under the root of the main category (see [method _get_category])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeDeterminant.xml
+msgid ""
+"Calculates the determinant of a [Transform] within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeDeterminant.xml
+msgid "Translates to [code]determinant(x)[/code] in the shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeDotProduct.xml
+msgid "Calculates a dot product of two vectors within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeDotProduct.xml
+msgid "Translates to [code]dot(a, b)[/code] in the shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeExpression.xml
+msgid ""
+"A custom visual shader graph expression written in Godot Shading Language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeExpression.xml
+msgid ""
+"Custom Godot Shading Language expression, with a custom amount of input and "
+"output ports.\n"
+"The provided code is directly injected into the graph's matching shader "
+"function ([code]vertex[/code], [code]fragment[/code], or [code]light[/"
+"code]), so it cannot be used to declare functions, varyings, uniforms, or "
+"global constants. See [VisualShaderNodeGlobalExpression] for such global "
+"definitions."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeExpression.xml
+msgid ""
+"An expression in Godot Shading Language, which will be injected at the start "
+"of the graph's matching shader function ([code]vertex[/code], "
+"[code]fragment[/code], or [code]light[/code]), and thus cannot be used to "
+"declare functions, varyings, uniforms, or global constants."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeFaceForward.xml
+msgid ""
+"Returns the vector that points in the same direction as a reference vector "
+"within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeFaceForward.xml
+msgid ""
+"Translates to [code]faceforward(N, I, Nref)[/code] in the shader language. "
+"The function has three vector parameters: [code]N[/code], the vector to "
+"orient, [code]I[/code], the incident vector, and [code]Nref[/code], the "
+"reference vector. If the dot product of [code]I[/code] and [code]Nref[/code] "
+"is smaller than zero the return value is [code]N[/code]. Otherwise, [code]-"
+"N[/code] is returned."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeFresnel.xml
+msgid "A Fresnel effect to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeFresnel.xml
+msgid ""
+"Returns falloff based on the dot product of surface normal and view "
+"direction of camera (pass associated inputs to it)."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGlobalExpression.xml
+msgid ""
+"A custom global visual shader graph expression written in Godot Shading "
+"Language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGlobalExpression.xml
+msgid ""
+"Custom Godot Shader Language expression, which is placed on top of the "
+"generated shader. You can place various function definitions inside to call "
+"later in [VisualShaderNodeExpression]s (which are injected in the main "
+"shader functions). You can also declare varyings, uniforms and global "
+"constants."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Base class for a family of nodes with variable amount of input and output "
+"ports within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid "Currently, has no direct usage, use the derived classes instead."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Adds an input port with the specified [code]type[/code] (see [enum "
+"VisualShaderNode.PortType]) and [code]name[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Adds an output port with the specified [code]type[/code] (see [enum "
+"VisualShaderNode.PortType]) and [code]name[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid "Removes all previously specified input ports."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid "Removes all previously specified output ports."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Returns a free input port ID which can be used in [method add_input_port]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Returns a free output port ID which can be used in [method add_output_port]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Returns the number of input ports in use. Alternative for [method "
+"get_free_input_port_id]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Returns a [String] description of the input ports as a colon-separated list "
+"using the format [code]id,type,name;[/code] (see [method add_input_port])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Returns the number of output ports in use. Alternative for [method "
+"get_free_output_port_id]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Returns a [String] description of the output ports as a colon-separated list "
+"using the format [code]id,type,name;[/code] (see [method add_output_port])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid "Returns [code]true[/code] if the specified input port exists."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid "Returns [code]true[/code] if the specified output port exists."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Returns [code]true[/code] if the specified port name does not override an "
+"existed port name and is valid within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid "Removes the specified input port."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid "Removes the specified output port."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid "Renames the specified input port."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Sets the specified input port's type (see [enum VisualShaderNode.PortType])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Defines all input ports using a [String] formatted as a colon-separated "
+"list: [code]id,type,name;[/code] (see [method add_input_port])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid "Renames the specified output port."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Sets the specified output port's type (see [enum VisualShaderNode.PortType])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid ""
+"Defines all output ports using a [String] formatted as a colon-separated "
+"list: [code]id,type,name;[/code] (see [method add_output_port])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeGroupBase.xml
+msgid "The size of the node in the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeInput.xml
+msgid ""
+"Gives access to input variables (built-ins) available for the shader. See "
+"the shading reference for the list of available built-ins for each shader "
+"type (check [code]Tutorials[/code] section for link)."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeInput.xml
+msgid "$DOCS_URL/tutorials/shaders/shader_reference/index.html"
+msgstr ""
+
+#: doc/classes/VisualShaderNodeInput.xml
+msgid ""
+"One of the several input constants in lower-case style like: \"vertex"
+"\"([code]VERTEX[/code]) or \"point_size\"([code]POINT_SIZE[/code])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeIs.xml
+msgid ""
+"A boolean comparison operator to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeIs.xml
+msgid ""
+"Returns the boolean result of the comparison between [code]INF[/code] or "
+"[code]NaN[/code] and a scalar parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeIs.xml
+msgid "The comparison function. See [enum Function] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeIs.xml
+msgid "Comparison with [code]INF[/code] (Infinity)."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeIs.xml
+msgid ""
+"Comparison with [code]NaN[/code] (Not a Number; denotes invalid numeric "
+"results, e.g. division by zero)."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeOuterProduct.xml
+msgid ""
+"Calculates an outer product of two vectors within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeOuterProduct.xml
+msgid ""
+"[code]OuterProduct[/code] treats the first parameter [code]c[/code] as a "
+"column vector (matrix with one column) and the second parameter [code]r[/"
+"code] as a row vector (matrix with one row) and does a linear algebraic "
+"matrix multiply [code]c * r[/code], yielding a matrix whose number of rows "
+"is the number of components in [code]c[/code] and whose number of columns is "
+"the number of components in [code]r[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeOutput.xml
+msgid "Represents the output shader parameters within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeOutput.xml
+msgid ""
+"This visual shader node is present in all shader graphs in form of \"Output"
+"\" block with multiple output value ports."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarClamp.xml
+msgid "Clamps a scalar value within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarClamp.xml
+msgid ""
+"Constrains a value to lie between [code]min[/code] and [code]max[/code] "
+"values."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
+msgid "Calculates a scalar derivative within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
+#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
+msgid ""
+"This node is only available in [code]Fragment[/code] and [code]Light[/code] "
+"visual shaders."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
+msgid "The derivative type. See [enum Function] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
+#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
+msgid "Sum of absolute derivative in [code]x[/code] and [code]y[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
+#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
+msgid "Derivative in [code]x[/code] using local differencing."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
+#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
+msgid "Derivative in [code]y[/code] using local differencing."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarInterp.xml
+msgid ""
+"Linearly interpolates between two scalars within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarInterp.xml
+msgid "Translates to [code]mix(a, b, weight)[/code] in the shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarSmoothStep.xml
+msgid "Calculates a scalar SmoothStep function within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarSmoothStep.xml
+msgid ""
+"Translates to [code]smoothstep(edge0, edge1, x)[/code] in the shader "
+"language.\n"
+"Returns [code]0.0[/code] if [code]x[/code] is smaller than [code]edge0[/"
+"code] and [code]1.0[/code] if [code]x[/code] is larger than [code]edge1[/"
+"code]. Otherwise the return value is interpolated between [code]0.0[/code] "
+"and [code]1.0[/code] using Hermite polynomials."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarSwitch.xml
+msgid "A boolean/scalar function for use within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarSwitch.xml
+msgid ""
+"Returns an associated scalar if the provided boolean value is [code]true[/"
+"code] or [code]false[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeSwitch.xml
+msgid "A boolean/vector function for use within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeSwitch.xml
+msgid ""
+"Returns an associated vector if the provided boolean value is [code]true[/"
+"code] or [code]false[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid "Performs a texture lookup within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid ""
+"Performs a lookup operation on the provided texture, with support for "
+"multiple texture sources to choose from."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid "Determines the source for the lookup. See [enum Source] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid "The source texture, if needed for the selected [member source]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid ""
+"Specifies the type of the texture if [member source] is set to [constant "
+"SOURCE_TEXTURE]. See [enum TextureType] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid "Use the texture given as an argument for this function."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid "Use the current viewport's texture as the source."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid ""
+"Use the texture from this shader's texture built-in (e.g. a texture of a "
+"[Sprite])."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid "Use the texture from this shader's normal map built-in."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid "Use the depth texture available for this shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTexture.xml
+msgid "Use the texture provided in the input port for this function."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTextureUniform.xml
+msgid "Performs a uniform texture lookup within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTextureUniform.xml
+msgid ""
+"Performs a lookup operation on the texture provided as a uniform for the "
+"shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTextureUniform.xml
+msgid "Sets the default color if no texture is assigned to the uniform."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTextureUniform.xml
+msgid ""
+"Adds [code]hint_aniso[/code] as hint to the uniform declaration to use for a "
+"flowmap."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTextureUniform.xml
+msgid "Defaults to white color."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTextureUniform.xml
+msgid "Defaults to black color."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTextureUniformTriplanar.xml
+msgid ""
+"Performs a uniform texture lookup with triplanar within the visual shader "
+"graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTextureUniformTriplanar.xml
+msgid ""
+"Performs a lookup operation on the texture provided as a uniform for the "
+"shader, with support for triplanar mapping."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformCompose.xml
+msgid ""
+"Composes a [Transform] from four [Vector3]s within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformCompose.xml
+msgid ""
+"Creates a 4x4 transform matrix using four vectors of type [code]vec3[/code]. "
+"Each vector is one row in the matrix and the last column is a [code]vec4(0, "
+"0, 0, 1)[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformConstant.xml
+msgid "A [Transform] constant for use within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformConstant.xml
+msgid "A constant [Transform], which can be used as an input node."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformConstant.xml
+msgid "A [Transform] constant which represents the state of this node."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformDecompose.xml
+msgid ""
+"Decomposes a [Transform] into four [Vector3]s within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformDecompose.xml
+msgid ""
+"Takes a 4x4 transform matrix and decomposes it into four [code]vec3[/code] "
+"values, one from each row of the matrix."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformFunc.xml
+msgid "Computes a [Transform] function within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformFunc.xml
+msgid "Computes an inverse or transpose function on the provided [Transform]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformFunc.xml
+msgid "The function to be computed. See [enum Function] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformFunc.xml
+msgid "Perform the inverse operation on the [Transform] matrix."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformFunc.xml
+msgid "Perform the transpose operation on the [Transform] matrix."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformMult.xml
+msgid "Multiplies [Transform] by [Transform] within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformMult.xml
+msgid ""
+"A multiplication operation on two transforms (4x4 matrices), with support "
+"for different multiplication operators."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformMult.xml
+msgid ""
+"The multiplication type to be performed on the transforms. See [enum "
+"Operator] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformMult.xml
+msgid "Multiplies transform [code]a[/code] by the transform [code]b[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformMult.xml
+msgid "Multiplies transform [code]b[/code] by the transform [code]a[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformMult.xml
+msgid ""
+"Performs a component-wise multiplication of transform [code]a[/code] by the "
+"transform [code]b[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformMult.xml
+msgid ""
+"Performs a component-wise multiplication of transform [code]b[/code] by the "
+"transform [code]a[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+msgid "A [Transform] uniform for use within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+msgid "Translated to [code]uniform mat4[/code] in the shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformVecMult.xml
+msgid ""
+"Multiplies a [Transform] and a [Vector3] within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformVecMult.xml
+msgid ""
+"A multiplication operation on a transform (4x4 matrix) and a vector, with "
+"support for different multiplication operators."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformVecMult.xml
+msgid ""
+"The multiplication type to be performed. See [enum Operator] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformVecMult.xml
+msgid "Multiplies transform [code]a[/code] by the vector [code]b[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformVecMult.xml
+msgid "Multiplies vector [code]b[/code] by the transform [code]a[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformVecMult.xml
+msgid ""
+"Multiplies transform [code]a[/code] by the vector [code]b[/code], skipping "
+"the last row and column of the transform."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeTransformVecMult.xml
+msgid ""
+"Multiplies vector [code]b[/code] by the transform [code]a[/code], skipping "
+"the last row and column of the transform."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeUniform.xml
+msgid "A base type for the uniforms within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeUniform.xml
+msgid ""
+"A uniform represents a variable in the shader which is set externally, i.e. "
+"from the [ShaderMaterial]. Uniforms are exposed as properties in the "
+"[ShaderMaterial] and can be assigned from the inspector or from a script."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeUniform.xml
+msgid ""
+"Name of the uniform, by which it can be accessed through the "
+"[ShaderMaterial] properties."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeUniformRef.xml
+msgid "A reference to an existing [VisualShaderNodeUniform]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeUniformRef.xml
+msgid ""
+"Creating a reference to a [VisualShaderNodeUniform] allows you to reuse this "
+"uniform in different shaders or shader stages easily."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeUniformRef.xml
+msgid "The name of the uniform which this reference points to."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVec3Constant.xml
+msgid "A [Vector3] constant to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVec3Constant.xml
+msgid "A constant [Vector3], which can be used as an input node."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVec3Constant.xml
+msgid "A [Vector3] constant which represents the state of this node."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A [Vector3] uniform to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Translated to [code]uniform vec3[/code] in the shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorClamp.xml
+msgid "Clamps a vector value within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorClamp.xml
+msgid ""
+"Constrains a value to lie between [code]min[/code] and [code]max[/code] "
+"values. The operation is performed on each component of the vector "
+"individually."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorCompose.xml
+msgid "Composes a [Vector3] from three scalars within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorCompose.xml
+msgid ""
+"Creates a [code]vec3[/code] using three scalar values that can be provided "
+"from separate inputs."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorDecompose.xml
+msgid ""
+"Decomposes a [Vector3] into three scalars within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorDecompose.xml
+msgid ""
+"Takes a [code]vec3[/code] and decomposes it into three scalar values that "
+"can be used as separate inputs."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
+msgid "Calculates a vector derivative within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
+msgid "A derivative type. See [enum Function] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorDistance.xml
+msgid ""
+"Returns the distance between two points. To be used within the visual shader "
+"graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorDistance.xml
+msgid ""
+"Calculates distance from point represented by vector [code]p0[/code] to "
+"vector [code]p1[/code].\n"
+"Translated to [code]distance(p0, p1)[/code] in the shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "A vector function to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "A visual shader node able to perform different functions using vectors."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "The function to be performed. See [enum Function] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid ""
+"Normalizes the vector so that it has a length of [code]1[/code] but points "
+"in the same direction."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Clamps the value between [code]0.0[/code] and [code]1.0[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the opposite value of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns [code]1/vector[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Converts RGB vector to HSV equivalent."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Converts HSV vector to RGB equivalent."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the absolute value of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the arc-cosine of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the inverse hyperbolic cosine of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the arc-sine of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the inverse hyperbolic sine of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the arc-tangent of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the inverse hyperbolic tangent of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid ""
+"Finds the nearest integer that is greater than or equal to the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the cosine of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the hyperbolic cosine of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Converts a quantity in radians to degrees."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Base-e Exponential."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Base-2 Exponential."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Finds the nearest integer less than or equal to the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Computes the fractional part of the argument."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the inverse of the square root of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Natural logarithm."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Base-2 logarithm."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Converts a quantity in degrees to radians."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Finds the nearest integer to the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Finds the nearest even integer to the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid ""
+"Extracts the sign of the parameter, i.e. returns [code]-1[/code] if the "
+"parameter is negative, [code]1[/code] if it's positive and [code]0[/code] "
+"otherwise."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the sine of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the hyperbolic sine of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the square root of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the tangent of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns the hyperbolic tangent of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid ""
+"Returns a value equal to the nearest integer to the parameter whose absolute "
+"value is not larger than the absolute value of the parameter."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorFunc.xml
+msgid "Returns [code]1.0 - vector[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorInterp.xml
+msgid ""
+"Linearly interpolates between two vectors within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorInterp.xml
+msgid ""
+"Translates to [code]mix(a, b, weight)[/code] in the shader language, where "
+"[code]weight[/code] is a [Vector3] with weights for each component."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorLen.xml
+msgid "Returns the length of a [Vector3] within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorLen.xml
+msgid "Translated to [code]length(p0)[/code] in the shader language."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "A vector operator to be used within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid ""
+"A visual shader node for use of vector operators. Operates on vector "
+"[code]a[/code] and vector [code]b[/code]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "The operator to be used. See [enum Operator] for options."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "Adds two vectors."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "Subtracts a vector from a vector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "Multiplies two vectors."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "Divides vector by vector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "Returns the remainder of the two vectors."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid ""
+"Returns the value of the first parameter raised to the power of the second, "
+"for each component of the vectors."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "Returns the greater of two values, for each component of the vectors."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "Returns the lesser of two values, for each component of the vectors."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "Calculates the cross product of two vectors."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid "Returns the arc-tangent of the parameters."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid ""
+"Returns the vector that points in the direction of reflection. [code]a[/"
+"code] is incident vector and [code]b[/code] is the normal vector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorOp.xml
+msgid ""
+"Vector step operator. Returns [code]0.0[/code] if [code]a[/code] is smaller "
+"than [code]b[/code] and [code]1.0[/code] otherwise."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorRefract.xml
+msgid ""
+"Returns the [Vector3] that points in the direction of refraction. For use "
+"within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorRefract.xml
+msgid ""
+"Translated to [code]refract(I, N, eta)[/code] in the shader language, where "
+"[code]I[/code] is the incident vector, [code]N[/code] is the normal vector "
+"and [code]eta[/code] is the ratio of the indices of the refraction."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorScalarMix.xml
+msgid ""
+"Linearly interpolates between two vectors using a scalar. For use within the "
+"visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorScalarMix.xml
+msgid ""
+"Translates to [code]mix(a, b, weight)[/code] in the shader language, where "
+"[code]a[/code] and [code]b[/code] are vectors and [code]weight[/code] is a "
+"scalar."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml
+msgid ""
+"Calculates a vector SmoothStep function using scalar within the visual "
+"shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml
+msgid ""
+"Translates to [code]smoothstep(edge0, edge1, x)[/code] in the shader "
+"language, where [code]x[/code] is a scalar.\n"
+"Returns [code]0.0[/code] if [code]x[/code] is smaller than [code]edge0[/"
+"code] and [code]1.0[/code] if [code]x[/code] is larger than [code]edge1[/"
+"code]. Otherwise the return value is interpolated between [code]0.0[/code] "
+"and [code]1.0[/code] using Hermite polynomials."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorScalarStep.xml
+msgid "Calculates a vector Step function within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorScalarStep.xml
+msgid ""
+"Translates to [code]step(edge, x)[/code] in the shader language.\n"
+"Returns [code]0.0[/code] if [code]x[/code] is smaller than [code]edge[/code] "
+"and [code]1.0[/code] otherwise."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorSmoothStep.xml
+msgid "Calculates a vector SmoothStep function within the visual shader graph."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeVectorSmoothStep.xml
+msgid ""
+"Translates to [code]smoothstep(edge0, edge1, x)[/code] in the shader "
+"language, where [code]x[/code] is a vector.\n"
+"Returns [code]0.0[/code] if [code]x[/code] is smaller than [code]edge0[/"
+"code] and [code]1.0[/code] if [code]x[/code] is larger than [code]edge1[/"
+"code]. Otherwise the return value is interpolated between [code]0.0[/code] "
+"and [code]1.0[/code] using Hermite polynomials."
+msgstr ""
+
+#: doc/classes/VScrollBar.xml
+msgid "Vertical scroll bar."
+msgstr ""
+
+#: doc/classes/VScrollBar.xml
+msgid ""
+"Vertical version of [ScrollBar], which goes from top (min) to bottom (max)."
+msgstr ""
+
+#: doc/classes/VScrollBar.xml
+msgid ""
+"Icon used as a button to scroll the [ScrollBar] up. Supports custom step "
+"using the [member ScrollBar.custom_step] property."
+msgstr ""
+
+#: doc/classes/VScrollBar.xml
+msgid ""
+"Icon used as a button to scroll the [ScrollBar] down. Supports custom step "
+"using the [member ScrollBar.custom_step] property."
+msgstr ""
+
+#: doc/classes/VSeparator.xml
+msgid "Vertical version of [Separator]."
+msgstr ""
+
+#: doc/classes/VSeparator.xml
+msgid ""
+"Vertical version of [Separator]. Even though it looks vertical, it is used "
+"to separate objects horizontally."
+msgstr ""
+
+#: doc/classes/VSeparator.xml
+msgid ""
+"The width of the area covered by the separator. Effectively works like a "
+"minimum width."
+msgstr ""
+
+#: doc/classes/VSeparator.xml
+msgid ""
+"The style for the separator line. Works best with [StyleBoxLine] (remember "
+"to enable [member StyleBoxLine.vertical])."
+msgstr ""
+
+#: doc/classes/VSlider.xml
+msgid "Vertical slider."
+msgstr ""
+
+#: doc/classes/VSlider.xml
+msgid ""
+"Vertical slider. See [Slider]. This one goes from bottom (min) to top "
+"(max).\n"
+"[b]Note:[/b] The [signal Range.changed] and [signal Range.value_changed] "
+"signals are part of the [Range] class which this class inherits from."
+msgstr ""
+
+#: doc/classes/VSlider.xml
+msgid "The background of the area below the grabber."
+msgstr ""
+
+#: doc/classes/VSlider.xml
+msgid ""
+"The background for the whole slider. Determines the width of the "
+"[code]grabber_area[/code]."
+msgstr ""
+
+#: doc/classes/VSplitContainer.xml
+msgid "Vertical split container."
+msgstr ""
+
+#: doc/classes/VSplitContainer.xml
+msgid ""
+"Vertical split container. See [SplitContainer]. This goes from top to bottom."
+msgstr ""
+
+#: doc/classes/WeakRef.xml
+msgid ""
+"Holds an [Object], but does not contribute to the reference count if the "
+"object is a reference."
+msgstr ""
+
+#: doc/classes/WeakRef.xml
+msgid ""
+"A weakref can hold a [Reference], without contributing to the reference "
+"counter. A weakref can be created from an [Object] using [method @GDScript."
+"weakref]. If this object is not a reference, weakref still works, however, "
+"it does not have any effect on the object. Weakrefs are useful in cases "
+"where multiple classes have variables that refer to each other. Without "
+"weakrefs, using these classes could lead to memory leaks, since both "
+"references keep each other from being released. Making part of the variables "
+"a weakref can prevent this cyclic dependency, and allows the references to "
+"be released."
+msgstr ""
+
+#: doc/classes/WeakRef.xml
+msgid "Returns the [Object] this weakref is referring to."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid "Closes this data channel, notifying the other peer."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"Returns the number of bytes currently queued to be sent over this channel."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"Returns the id assigned to this channel during creation (or auto-assigned "
+"during negotiation).\n"
+"If the channel is not negotiated out-of-band the id will only be available "
+"after the connection is established (will return [code]65535[/code] until "
+"then)."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid "Returns the label assigned to this channel during creation."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"Returns the [code]maxPacketLifeTime[/code] value assigned to this channel "
+"during creation.\n"
+"Will be [code]65535[/code] if not specified."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"Returns the [code]maxRetransmits[/code] value assigned to this channel "
+"during creation.\n"
+"Will be [code]65535[/code] if not specified."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"Returns the sub-protocol assigned to this channel during creation. An empty "
+"string if not specified."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid "Returns the current state of this channel, see [enum ChannelState]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"Returns [code]true[/code] if this channel was created with out-of-band "
+"configuration."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"Returns [code]true[/code] if this channel was created with ordering enabled "
+"(default)."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid "Reserved, but not used for now."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"Returns [code]true[/code] if the last received packet was transferred as "
+"text. See [member write_mode]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"The transfer mode to use when sending outgoing packet. Either text or binary."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"Tells the channel to send data over this channel as text. An external peer "
+"(non-Godot) would receive this as a string."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"Tells the channel to send data over this channel as binary. An external peer "
+"(non-Godot) would receive this as array buffer or blob."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid "The channel was created, but it's still trying to connect."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid "The channel is currently open, and data can flow over it."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid ""
+"The channel is being closed, no new messages will be accepted, but those "
+"already in queue will be flushed."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
+msgid "The channel was closed, or connection failed."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml
+msgid ""
+"A simple interface to create a peer-to-peer mesh network composed of "
+"[WebRTCPeerConnection] that is compatible with the [MultiplayerAPI]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml
+msgid ""
+"This class constructs a full mesh of [WebRTCPeerConnection] (one connection "
+"for each peer) that can be used as a [member MultiplayerAPI.network_peer].\n"
+"You can add each [WebRTCPeerConnection] via [method add_peer] or remove them "
+"via [method remove_peer]. Peers must be added in [constant "
+"WebRTCPeerConnection.STATE_NEW] state to allow it to create the appropriate "
+"channels. This class will not create offers nor set descriptions, it will "
+"only poll them, and notify connections and disconnections.\n"
+"[signal NetworkedMultiplayerPeer.connection_succeeded] and [signal "
+"NetworkedMultiplayerPeer.server_disconnected] will not be emitted unless "
+"[code]server_compatibility[/code] is [code]true[/code] in [method "
+"initialize]. Beside that data transfer works like in a "
+"[NetworkedMultiplayerPeer]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml
+msgid ""
+"Add a new peer to the mesh with the given [code]peer_id[/code]. The "
+"[WebRTCPeerConnection] must be in state [constant WebRTCPeerConnection."
+"STATE_NEW].\n"
+"Three channels will be created for reliable, unreliable, and ordered "
+"transport. The value of [code]unreliable_lifetime[/code] will be passed to "
+"the [code]maxPacketLifetime[/code] option when creating unreliable and "
+"ordered channels (see [method WebRTCPeerConnection.create_data_channel])."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml
+msgid "Close all the add peer connections and channels, freeing all resources."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml
+msgid ""
+"Return a dictionary representation of the peer with given [code]peer_id[/"
+"code] with three keys. [code]connection[/code] containing the "
+"[WebRTCPeerConnection] to this peer, [code]channels[/code] an array of three "
+"[WebRTCDataChannel], and [code]connected[/code] a boolean representing if "
+"the peer connection is currently connected (all three channels are open)."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml
+msgid ""
+"Returns a dictionary which keys are the peer ids and values the peer "
+"representation as in [method get_peer]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml
+msgid ""
+"Returns [code]true[/code] if the given [code]peer_id[/code] is in the peers "
+"map (it might not be connected though)."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml
+msgid ""
+"Initialize the multiplayer peer with the given [code]peer_id[/code] (must be "
+"between 1 and 2147483647).\n"
+"If [code]server_compatibilty[/code] is [code]false[/code] (default), the "
+"multiplayer peer will be immediately in state [constant "
+"NetworkedMultiplayerPeer.CONNECTION_CONNECTED] and [signal "
+"NetworkedMultiplayerPeer.connection_succeeded] will not be emitted.\n"
+"If [code]server_compatibilty[/code] is [code]true[/code] the peer will "
+"suppress all [signal NetworkedMultiplayerPeer.peer_connected] signals until "
+"a peer with id [constant NetworkedMultiplayerPeer.TARGET_PEER_SERVER] "
+"connects and then emit [signal NetworkedMultiplayerPeer."
+"connection_succeeded]. After that the signal [signal "
+"NetworkedMultiplayerPeer.peer_connected] will be emitted for every already "
+"connected peer, and any new peer that might connect. If the server peer "
+"disconnects after that, signal [signal NetworkedMultiplayerPeer."
+"server_disconnected] will be emitted and state will become [constant "
+"NetworkedMultiplayerPeer.CONNECTION_CONNECTED]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml
+msgid ""
+"Remove the peer with given [code]peer_id[/code] from the mesh. If the peer "
+"was connected, and [signal NetworkedMultiplayerPeer.peer_connected] was "
+"emitted for it, then [signal NetworkedMultiplayerPeer.peer_disconnected] "
+"will be emitted."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid "Interface to a WebRTC peer connection."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"A WebRTC connection between the local computer and a remote peer. Provides "
+"an interface to connect, maintain and monitor the connection.\n"
+"Setting up a WebRTC connection between two peers from now on) may not seem a "
+"trivial task, but it can be broken down into 3 main steps:\n"
+"- The peer that wants to initiate the connection ([code]A[/code] from now "
+"on) creates an offer and send it to the other peer ([code]B[/code] from now "
+"on).\n"
+"- [code]B[/code] receives the offer, generate and answer, and sends it to "
+"[code]A[/code]).\n"
+"- [code]A[/code] and [code]B[/code] then generates and exchange ICE "
+"candidates with each other.\n"
+"After these steps, the connection should become connected. Keep on reading "
+"or look into the tutorial for more information."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Add an ice candidate generated by a remote peer (and received over the "
+"signaling server). See [signal ice_candidate_created]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Close the peer connection and all data channels associated with it.\n"
+"[b]Note:[/b] You cannot reuse this object for a new connection unless you "
+"call [method initialize]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Returns a new [WebRTCDataChannel] (or [code]null[/code] on failure) with "
+"given [code]label[/code] and optionally configured via the [code]options[/"
+"code] dictionary. This method can only be called when the connection is in "
+"state [constant STATE_NEW].\n"
+"There are two ways to create a working data channel: either call [method "
+"create_data_channel] on only one of the peer and listen to [signal "
+"data_channel_received] on the other, or call [method create_data_channel] on "
+"both peers, with the same values, and the [code]negotiated[/code] option set "
+"to [code]true[/code].\n"
+"Valid [code]options[/code] are:\n"
+"[codeblock]\n"
+"{\n"
+" \"negotiated\": true, # When set to true (default off), means the "
+"channel is negotiated out of band. \"id\" must be set too. "
+"\"data_channel_received\" will not be called.\n"
+" \"id\": 1, # When \"negotiated\" is true this value must also be set to "
+"the same value on both peer.\n"
+"\n"
+" # Only one of maxRetransmits and maxPacketLifeTime can be specified, not "
+"both. They make the channel unreliable (but also better at real time).\n"
+" \"maxRetransmits\": 1, # Specify the maximum number of attempt the peer "
+"will make to retransmits packets if they are not acknowledged.\n"
+" \"maxPacketLifeTime\": 100, # Specify the maximum amount of time before "
+"giving up retransmitions of unacknowledged packets (in milliseconds).\n"
+" \"ordered\": true, # When in unreliable mode (i.e. either "
+"\"maxRetransmits\" or \"maxPacketLifetime\" is set), \"ordered\" (true by "
+"default) specify if packet ordering is to be enforced.\n"
+"\n"
+" \"protocol\": \"my-custom-protocol\", # A custom sub-protocol string for "
+"this channel.\n"
+"}\n"
+"[/codeblock]\n"
+"[b]Note:[/b] You must keep a reference to channels created this way, or it "
+"will be closed."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Creates a new SDP offer to start a WebRTC connection with a remote peer. At "
+"least one [WebRTCDataChannel] must have been created before calling this "
+"method.\n"
+"If this functions returns [constant OK], [signal "
+"session_description_created] will be called when the session is ready to be "
+"sent."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid "Returns the connection state. See [enum ConnectionState]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Re-initialize this peer connection, closing any previously active "
+"connection, and going back to state [constant STATE_NEW]. A dictionary of "
+"[code]options[/code] can be passed to configure the peer connection.\n"
+"Valid [code]options[/code] are:\n"
+"[codeblock]\n"
+"{\n"
+" \"iceServers\": [\n"
+" {\n"
+" \"urls\": [ \"stun:stun.example.com:3478\" ], # One or more STUN "
+"servers.\n"
+" },\n"
+" {\n"
+" \"urls\": [ \"turn:turn.example.com:3478\" ], # One or more TURN "
+"servers.\n"
+" \"username\": \"a_username\", # Optional username for the TURN "
+"server.\n"
+" \"credential\": \"a_password\", # Optional password for the TURN "
+"server.\n"
+" }\n"
+" ]\n"
+"}\n"
+"[/codeblock]"
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Call this method frequently (e.g. in [method Node._process] or [method Node."
+"_physics_process]) to properly receive signals."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Sets the SDP description of the local peer. This should be called in "
+"response to [signal session_description_created].\n"
+"After calling this function the peer will start emitting [signal "
+"ice_candidate_created] (unless an [enum Error] different from [constant OK] "
+"is returned)."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Sets the SDP description of the remote peer. This should be called with the "
+"values generated by a remote peer and received over the signaling server.\n"
+"If [code]type[/code] is [code]offer[/code] the peer will emit [signal "
+"session_description_created] with the appropriate answer.\n"
+"If [code]type[/code] is [code]answer[/code] the peer will start emitting "
+"[signal ice_candidate_created]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Emitted when a new in-band channel is received, i.e. when the channel was "
+"created with [code]negotiated: false[/code] (default).\n"
+"The object will be an instance of [WebRTCDataChannel]. You must keep a "
+"reference of it or it will be closed automatically. See [method "
+"create_data_channel]."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Emitted when a new ICE candidate has been created. The three parameters are "
+"meant to be passed to the remote peer over the signaling server."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"Emitted after a successful call to [method create_offer] or [method "
+"set_remote_description] (when it generates an answer). The parameters are "
+"meant to be passed to [method set_local_description] on this object, and "
+"sent to the remote peer over the signaling server."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"The connection is new, data channels and an offer can be created in this "
+"state."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"The peer is connecting, ICE is in progress, none of the transports has "
+"failed."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid "The peer is connected, all ICE transports are connected."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid "At least one ICE transport is disconnected."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid "One or more of the ICE transports failed."
+msgstr ""
+
+#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+msgid ""
+"The peer connection is closed (after calling [method close] for example)."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid "A WebSocket client implementation."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid ""
+"This class implements a WebSocket client compatible with any RFC 6455-"
+"compliant WebSocket server.\n"
+"This client can be optionally used as a network peer for the "
+"[MultiplayerAPI].\n"
+"After starting the client ([method connect_to_url]), you will need to "
+"[method NetworkedMultiplayerPeer.poll] it at regular intervals (e.g. inside "
+"[method Node._process]).\n"
+"You will receive appropriate signals when connecting, disconnecting, or when "
+"new data is available."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid ""
+"Connects to the given URL requesting one of the given [code]protocols[/code] "
+"as sub-protocol. If the list empty (default), no sub-protocol will be "
+"requested.\n"
+"If [code]true[/code] is passed as [code]gd_mp_api[/code], the client will "
+"behave like a network peer for the [MultiplayerAPI], connections to non-"
+"Godot servers will not work, and [signal data_received] will not be "
+"emitted.\n"
+"If [code]false[/code] is passed instead (default), you must call "
+"[PacketPeer] functions ([code]put_packet[/code], [code]get_packet[/code], "
+"etc.) on the [WebSocketPeer] returned via [code]get_peer(1)[/code] and not "
+"on this object directly (e.g. [code]get_peer(1).put_packet(data)[/code]).\n"
+"You can optionally pass a list of [code]custom_headers[/code] to be added to "
+"the handshake HTTP request.\n"
+"[b]Note:[/b] To avoid mixed content warnings or errors in HTML5, you may "
+"have to use a [code]url[/code] that starts with [code]wss://[/code] (secure) "
+"instead of [code]ws://[/code]. When doing so, make sure to use the fully "
+"qualified domain name that matches the one defined in the server's SSL "
+"certificate. Do not connect directly via the IP address for [code]wss://[/"
+"code] connections, as it won't match with the SSL certificate.\n"
+"[b]Note:[/b] Specifying [code]custom_headers[/code] is not supported in "
+"HTML5 exports due to browsers restrictions."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid ""
+"Disconnects this client from the connected host. See [method WebSocketPeer."
+"close] for more information."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid "Return the IP address of the currently connected host."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid "Return the IP port of the currently connected host."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid ""
+"If specified, this [X509Certificate] will be the only one accepted when "
+"connecting to an SSL host. Any other certificate provided by the server will "
+"be regarded as invalid.\n"
+"[b]Note:[/b] Specifying a custom [code]trusted_ssl_certificate[/code] is not "
+"supported in HTML5 exports due to browsers restrictions."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid ""
+"If [code]true[/code], SSL certificate verification is enabled.\n"
+"[b]Note:[/b] You must specify the certificates to be used in the Project "
+"Settings for it to work when exported."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid ""
+"Emitted when the connection to the server is closed. [code]was_clean_close[/"
+"code] will be [code]true[/code] if the connection was shutdown cleanly."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid "Emitted when the connection to the server fails."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid ""
+"Emitted when a connection with the server is established, [code]protocol[/"
+"code] will contain the sub-protocol agreed with the server."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid ""
+"Emitted when a WebSocket message is received.\n"
+"[b]Note:[/b] This signal is [i]not[/i] emitted when used as high-level "
+"multiplayer peer."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketClient.xml
+msgid ""
+"Emitted when the server requests a clean close. You should keep polling "
+"until you get a [signal connection_closed] signal to achieve the clean "
+"close. See [method WebSocketPeer.close] for more details."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
+msgid "Base class for WebSocket server and client."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
+msgid ""
+"Base class for WebSocket server and client, allowing them to be used as "
+"network peer for the [MultiplayerAPI]."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
+msgid ""
+"Returns the [WebSocketPeer] associated to the given [code]peer_id[/code]."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
+msgid ""
+"Configures the buffer sizes for this WebSocket peer. Default values can be "
+"specified in the Project Settings under [code]network/limits[/code]. For "
+"server, values are meant per connected peer.\n"
+"The first two parameters define the size and queued packets limits of the "
+"input buffer, the last two of the output buffer.\n"
+"Buffer sizes are expressed in KiB, so [code]4 = 2^12 = 4096 bytes[/code]. "
+"All parameters will be rounded up to the nearest power of two.\n"
+"[b]Note:[/b] HTML5 exports only use the input buffer since the output one is "
+"managed by browsers."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
+msgid ""
+"Emitted when a packet is received from a peer.\n"
+"[b]Note:[/b] This signal is only emitted when the client or server is "
+"configured to use Godot multiplayer API."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid "A class representing a specific WebSocket connection."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid ""
+"This class represents a specific WebSocket connection, allowing you to do "
+"lower level operations with it.\n"
+"You can choose to write to the socket in binary or text mode, and you can "
+"recognize the mode used for writing by the other peer."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid ""
+"Closes this WebSocket connection. [code]code[/code] is the status code for "
+"the closure (see RFC 6455 section 7.4 for a list of valid status codes). "
+"[code]reason[/code] is the human readable reason for closing the connection "
+"(can be any UTF-8 string that's smaller than 123 bytes).\n"
+"[b]Note:[/b] To achieve a clean close, you will need to keep polling until "
+"either [signal WebSocketClient.connection_closed] or [signal WebSocketServer."
+"client_disconnected] is received.\n"
+"[b]Note:[/b] The HTML5 export might not support all status codes. Please "
+"refer to browser-specific documentation for more details."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid ""
+"Returns the IP address of the connected peer.\n"
+"[b]Note:[/b] Not available in the HTML5 export."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid ""
+"Returns the remote port of the connected peer.\n"
+"[b]Note:[/b] Not available in the HTML5 export."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid ""
+"Returns the current amount of data in the outbound websocket buffer. [b]Note:"
+"[/b] HTML5 exports use WebSocket.bufferedAmount, while other platforms use "
+"an internal buffer."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid "Gets the current selected write mode. See [enum WriteMode]."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid "Returns [code]true[/code] if this peer is currently connected."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid ""
+"Disable Nagle's algorithm on the underling TCP socket (default). See [method "
+"StreamPeerTCP.set_no_delay] for more information.\n"
+"[b]Note:[/b] Not available in the HTML5 export."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid "Sets the socket to use the given [enum WriteMode]."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid ""
+"Returns [code]true[/code] if the last received packet was sent as a text "
+"payload. See [enum WriteMode]."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid ""
+"Specifies that WebSockets messages should be transferred as text payload "
+"(only valid UTF-8 is allowed)."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketPeer.xml
+msgid ""
+"Specifies that WebSockets messages should be transferred as binary payload "
+"(any byte combination is allowed)."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid "A WebSocket server implementation."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"This class implements a WebSocket server that can also support the high-"
+"level multiplayer API.\n"
+"After starting the server ([method listen]), you will need to [method "
+"NetworkedMultiplayerPeer.poll] it at regular intervals (e.g. inside [method "
+"Node._process]). When clients connect, disconnect, or send data, you will "
+"receive the appropriate signal.\n"
+"[b]Note:[/b] Not available in HTML5 exports."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"Disconnects the peer identified by [code]id[/code] from the server. See "
+"[method WebSocketPeer.close] for more information."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid "Returns [code]true[/code] if a peer with the given ID is connected."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"Returns [code]true[/code] if the server is actively listening on a port."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"Starts listening on the given port.\n"
+"You can specify the desired subprotocols via the \"protocols\" array. If the "
+"list empty (default), no sub-protocol will be requested.\n"
+"If [code]true[/code] is passed as [code]gd_mp_api[/code], the server will "
+"behave like a network peer for the [MultiplayerAPI], connections from non-"
+"Godot clients will not work, and [signal data_received] will not be "
+"emitted.\n"
+"If [code]false[/code] is passed instead (default), you must call "
+"[PacketPeer] functions ([code]put_packet[/code], [code]get_packet[/code], "
+"etc.), on the [WebSocketPeer] returned via [code]get_peer(id)[/code] to "
+"communicate with the peer with given [code]id[/code] (e.g. "
+"[code]get_peer(id).get_available_packet_count[/code])."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid "Stops the server and clear its state."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"When not set to [code]*[/code] will restrict incoming connections to the "
+"specified IP address. Setting [code]bind_ip[/code] to [code]127.0.0.1[/code] "
+"will cause the server to listen only to the local host."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"When using SSL (see [member private_key] and [member ssl_certificate]), you "
+"can set this to a valid [X509Certificate] to be provided as additional CA "
+"chain information during the SSL handshake."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"The time in seconds before a pending client (i.e. a client that has not yet "
+"finished the HTTP handshake) is considered stale and forcefully disconnected."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"When set to a valid [CryptoKey] (along with [member ssl_certificate]) will "
+"cause the server to require SSL instead of regular TCP (i.e. the [code]wss://"
+"[/code] protocol)."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"When set to a valid [X509Certificate] (along with [member private_key]) will "
+"cause the server to require SSL instead of regular TCP (i.e. the [code]wss://"
+"[/code] protocol)."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"Emitted when a client requests a clean close. You should keep polling until "
+"you get a [signal client_disconnected] signal with the same [code]id[/code] "
+"to achieve the clean close. See [method WebSocketPeer.close] for more "
+"details."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"Emitted when a new client connects. \"protocol\" will be the sub-protocol "
+"agreed with the client."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"Emitted when a client disconnects. [code]was_clean_close[/code] will be "
+"[code]true[/code] if the connection was shutdown cleanly."
+msgstr ""
+
+#: modules/websocket/doc_classes/WebSocketServer.xml
+msgid ""
+"Emitted when a new message is received.\n"
+"[b]Note:[/b] This signal is [i]not[/i] emitted when used as high-level "
+"multiplayer peer."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid "AR/VR interface using WebXR."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"WebXR is an open standard that allows creating VR and AR applications that "
+"run in the web browser.\n"
+"As such, this interface is only available when running in an HTML5 export.\n"
+"WebXR supports a wide range of devices, from the very capable (like Valve "
+"Index, HTC Vive, Oculus Rift and Quest) down to the much less capable (like "
+"Google Cardboard, Oculus Go, GearVR, or plain smartphones).\n"
+"Since WebXR is based on Javascript, it makes extensive use of callbacks, "
+"which means that [WebXRInterface] is forced to use signals, where other AR/"
+"VR interfaces would instead use functions that return a result immediately. "
+"This makes [WebXRInterface] quite a bit more complicated to initialize than "
+"other AR/VR interfaces.\n"
+"Here's the minimum code required to start an immersive VR session:\n"
+"[codeblock]\n"
+"extends Spatial\n"
+"\n"
+"var webxr_interface\n"
+"var vr_supported = false\n"
+"\n"
+"func _ready():\n"
+" # We assume this node has a button as a child.\n"
+" # This button is for the user to consent to entering immersive VR mode.\n"
+" $Button.connect(\"pressed\", self, \"_on_Button_pressed\")\n"
+"\n"
+" webxr_interface = ARVRServer.find_interface(\"WebXR\")\n"
+" if webxr_interface:\n"
+" # WebXR uses a lot of asynchronous callbacks, so we connect to "
+"various\n"
+" # signals in order to receive them.\n"
+" webxr_interface.connect(\"session_supported\", self, "
+"\"_webxr_session_supported\")\n"
+" webxr_interface.connect(\"session_started\", self, "
+"\"_webxr_session_started\")\n"
+" webxr_interface.connect(\"session_ended\", self, "
+"\"_webxr_session_ended\")\n"
+" webxr_interface.connect(\"session_failed\", self, "
+"\"_webxr_session_failed\")\n"
+"\n"
+" # This returns immediately - our _webxr_session_supported() method\n"
+" # (which we connected to the \"session_supported\" signal above) "
+"will\n"
+" # be called sometime later to let us know if it's supported or not.\n"
+" webxr_interface.is_session_supported(\"immersive-vr\")\n"
+"\n"
+"func _webxr_session_supported(session_mode, supported):\n"
+" if session_mode == 'immersive-vr':\n"
+" vr_supported = supported\n"
+"\n"
+"func _on_Button_pressed():\n"
+" if not vr_supported:\n"
+" OS.alert(\"Your browser doesn't support VR\")\n"
+" return\n"
+"\n"
+" # We want an immersive VR session, as opposed to AR ('immersive-ar') or "
+"a\n"
+" # simple 3DoF viewer ('viewer').\n"
+" webxr_interface.session_mode = 'immersive-vr'\n"
+" # 'bounded-floor' is room scale, 'local-floor' is a standing or sitting\n"
+" # experience (it puts you 1.6m above the ground if you have 3DoF "
+"headset),\n"
+" # whereas as 'local' puts you down at the ARVROrigin.\n"
+" # This list means it'll first try to request 'bounded-floor', then\n"
+" # fallback on 'local-floor' and ultimately 'local', if nothing else is\n"
+" # supported.\n"
+" webxr_interface.requested_reference_space_types = 'bounded-floor, local-"
+"floor, local'\n"
+" # In order to use 'local-floor' or 'bounded-floor' we must also\n"
+" # mark the features as required or optional.\n"
+" webxr_interface.required_features = 'local-floor'\n"
+" webxr_interface.optional_features = 'bounded-floor'\n"
+"\n"
+" # This will return false if we're unable to even request the session,\n"
+" # however, it can still fail asynchronously later in the process, so we\n"
+" # only know if it's really succeeded or failed when our\n"
+" # _webxr_session_started() or _webxr_session_failed() methods are "
+"called.\n"
+" if not webxr_interface.initialize():\n"
+" OS.alert(\"Failed to initialize\")\n"
+" return\n"
+"\n"
+"func _webxr_session_started():\n"
+" $Button.visible = false\n"
+" # This tells Godot to start rendering to the headset.\n"
+" get_viewport().arvr = true\n"
+" # This will be the reference space type you ultimately got, out of the\n"
+" # types that you requested above. This is useful if you want the game "
+"to\n"
+" # work a little differently in 'bounded-floor' versus 'local-floor'.\n"
+" print (\"Reference space type: \" + webxr_interface."
+"reference_space_type)\n"
+"\n"
+"func _webxr_session_ended():\n"
+" $Button.visible = true\n"
+" # If the user exits immersive mode, then we tell Godot to render to the "
+"web\n"
+" # page again.\n"
+" get_viewport().arvr = false\n"
+"\n"
+"func _webxr_session_failed(message):\n"
+" OS.alert(\"Failed to initialize: \" + message)\n"
+"[/codeblock]\n"
+"There are several ways to handle \"controller\" input:\n"
+"- Using [ARVRController] nodes and their [signal ARVRController."
+"button_pressed] and [signal ARVRController.button_release] signals. This is "
+"how controllers are typically handled in AR/VR apps in Godot, however, this "
+"will only work with advanced VR controllers like the Oculus Touch or Index "
+"controllers, for example. The buttons codes are defined by [url=https://"
+"immersive-web.github.io/webxr-gamepads-module/#xr-standard-gamepad-"
+"mapping]Section 3.3 of the WebXR Gamepads Module[/url].\n"
+"- Using [method Node._unhandled_input] and [InputEventJoypadButton] or "
+"[InputEventJoypadMotion]. This works the same as normal joypads, except the "
+"[member InputEvent.device] starts at 100, so the left controller is 100 and "
+"the right controller is 101, and the button codes are also defined by "
+"[url=https://immersive-web.github.io/webxr-gamepads-module/#xr-standard-"
+"gamepad-mapping]Section 3.3 of the WebXR Gamepads Module[/url].\n"
+"- Using the [signal select], [signal squeeze] and related signals. This "
+"method will work for both advanced VR controllers, and non-traditional "
+"\"controllers\" like a tap on the screen, a spoken voice command or a button "
+"press on the device itself. The [code]controller_id[/code] passed to these "
+"signals is the same id as used in [member ARVRController.controller_id].\n"
+"You can use one or all of these methods to allow your game or app to support "
+"a wider or narrower set of devices and input methods, or to allow more "
+"advanced interations with more advanced devices."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid "https://www.snopekgames.com/blog/2020/how-make-vr-game-webxr-godot"
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Gets an [ARVRPositionalTracker] for the given [code]controller_id[/code].\n"
+"In the context of WebXR, a \"controller\" can be an advanced VR controller "
+"like the Oculus Touch or Index controllers, or even a tap on the screen, a "
+"spoken voice command or a button press on the device itself. When a non-"
+"traditional controller is used, interpret the position and orientation of "
+"the [ARVRPositionalTracker] as a ray pointing at the object the user wishes "
+"to interact with.\n"
+"Use this method to get information about the controller that triggered one "
+"of these signals:\n"
+"- [signal selectstart]\n"
+"- [signal select]\n"
+"- [signal selectend]\n"
+"- [signal squeezestart]\n"
+"- [signal squeeze]\n"
+"- [signal squeezestart]"
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Checks if the given [code]session_mode[/code] is supported by the user's "
+"browser.\n"
+"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
+"API/XRSessionMode]WebXR's XRSessionMode[/url], including: [code]\"immersive-"
+"vr\"[/code], [code]\"immersive-ar\"[/code], and [code]\"inline\"[/code].\n"
+"This method returns nothing, instead it emits the [signal session_supported] "
+"signal with the result."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"The vertices of a polygon which defines the boundaries of the user's play "
+"area.\n"
+"This will only be available if [member reference_space_type] is "
+"[code]\"bounded-floor\"[/code] and only on certain browsers and devices that "
+"support it.\n"
+"The [signal reference_space_reset] signal may indicate when this changes."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"A comma-seperated list of optional features used by [method ARVRInterface."
+"initialize] when setting up the WebXR session.\n"
+"If a user's browser or device doesn't support one of the given features, "
+"initialization will continue, but you won't be able to use the requested "
+"feature.\n"
+"This doesn't have any effect on the interface when already initialized.\n"
+"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
+"API/XRReferenceSpaceType]WebXR's XRReferenceSpaceType[/url]. If you want to "
+"use a particular reference space type, it must be listed in either [member "
+"required_features] or [member optional_features]."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"The reference space type (from the list of requested types set in the "
+"[member requested_reference_space_types] property), that was ultimately used "
+"by [method ARVRInterface.initialize] when setting up the WebXR session.\n"
+"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
+"API/XRReferenceSpaceType]WebXR's XRReferenceSpaceType[/url]. If you want to "
+"use a particular reference space type, it must be listed in either [member "
+"required_features] or [member optional_features]."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"A comma-seperated list of reference space types used by [method "
+"ARVRInterface.initialize] when setting up the WebXR session.\n"
+"The reference space types are requested in order, and the first on supported "
+"by the users device or browser will be used. The [member "
+"reference_space_type] property contains the reference space type that was "
+"ultimately used.\n"
+"This doesn't have any effect on the interface when already initialized.\n"
+"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
+"API/XRReferenceSpaceType]WebXR's XRReferenceSpaceType[/url]. If you want to "
+"use a particular reference space type, it must be listed in either [member "
+"required_features] or [member optional_features]."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"A comma-seperated list of required features used by [method ARVRInterface."
+"initialize] when setting up the WebXR session.\n"
+"If a user's browser or device doesn't support one of the given features, "
+"initialization will fail and [signal session_failed] will be emitted.\n"
+"This doesn't have any effect on the interface when already initialized.\n"
+"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
+"API/XRReferenceSpaceType]WebXR's XRReferenceSpaceType[/url]. If you want to "
+"use a particular reference space type, it must be listed in either [member "
+"required_features] or [member optional_features]."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"The session mode used by [method ARVRInterface.initialize] when setting up "
+"the WebXR session.\n"
+"This doesn't have any effect on the interface when already initialized.\n"
+"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
+"API/XRSessionMode]WebXR's XRSessionMode[/url], including: [code]\"immersive-"
+"vr\"[/code], [code]\"immersive-ar\"[/code], and [code]\"inline\"[/code]."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Indicates if the WebXR session's imagery is visible to the user.\n"
+"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
+"API/XRVisibilityState]WebXR's XRVisibilityState[/url], including "
+"[code]\"hidden\"[/code], [code]\"visible\"[/code], and [code]\"visible-"
+"blurred\"[/code]."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted to indicate that the reference space has been reset or "
+"reconfigured.\n"
+"When (or whether) this is emitted depends on the user's browser or device, "
+"but may include when the user has changed the dimensions of their play space "
+"(which you may be able to access via [member bounds_geometry]) or pressed/"
+"held a button to recenter their position.\n"
+"See [url=https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace/"
+"reset_event]WebXR's XRReferenceSpace reset event[/url] for more information."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted after one of the \"controllers\" has finished its \"primary action"
+"\".\n"
+"Use [method get_controller] to get more information about the controller."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted when one of the \"controllers\" has finished its \"primary action"
+"\".\n"
+"Use [method get_controller] to get more information about the controller."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted when one of the \"controllers\" has started its \"primary action\".\n"
+"Use [method get_controller] to get more information about the controller."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted when the user ends the WebXR session (which can be done using UI "
+"from the browser or device).\n"
+"At this point, you should do [code]get_viewport().arvr = false[/code] to "
+"instruct Godot to resume rendering to the screen."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted by [method ARVRInterface.initialize] if the session fails to start.\n"
+"[code]message[/code] may optionally contain an error message from WebXR, or "
+"an empty string if no message is available."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted by [method ARVRInterface.initialize] if the session is successfully "
+"started.\n"
+"At this point, it's safe to do [code]get_viewport().arvr = true[/code] to "
+"instruct Godot to start rendering to the AR/VR device."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted by [method is_session_supported] to indicate if the given "
+"[code]session_mode[/code] is supported or not."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted after one of the \"controllers\" has finished its \"primary squeeze "
+"action\".\n"
+"Use [method get_controller] to get more information about the controller."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted when one of the \"controllers\" has finished its \"primary squeeze "
+"action\".\n"
+"Use [method get_controller] to get more information about the controller."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid ""
+"Emitted when one of the \"controllers\" has started its \"primary squeeze "
+"action\".\n"
+"Use [method get_controller] to get more information about the controller."
+msgstr ""
+
+#: modules/webxr/doc_classes/WebXRInterface.xml
+msgid "Emitted when [member visibility_state] has changed."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid "Base class for window dialogs."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid ""
+"Windowdialog is the base class for all window-based dialogs. It's a by-"
+"default toplevel [Control] that draws a window decoration and allows motion "
+"and resizing."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid ""
+"Returns the close [TextureButton].\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it "
+"may cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid "If [code]true[/code], the user can resize the window."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid "The text displayed in the window's title bar."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid "The color of the title text."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid "The horizontal offset of the close button."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid ""
+"The thickness of the border that can be dragged when scaling the window (if "
+"[member resizable] is enabled)."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid "The vertical offset of the title text."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid "The font used to draw the title."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid "The icon for the close button."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid ""
+"The icon used for the close button when it's hovered with the mouse cursor."
+msgstr ""
+
+#: doc/classes/WindowDialog.xml
+msgid ""
+"The style for both the content background of the [WindowDialog] and the "
+"title bar. The title bar is created with a top border and an expand margin "
+"using the [code]panel[/code] stylebox."
+msgstr ""
+
+#: doc/classes/World.xml
+msgid "Class that has everything pertaining to a world."
+msgstr ""
+
+#: doc/classes/World.xml
+msgid ""
+"Class that has everything pertaining to a world. A physics space, a visual "
+"scenario and a sound space. Spatial nodes register their resources into the "
+"current world."
+msgstr ""
+
+#: doc/classes/World.xml
+msgid ""
+"Direct access to the world's physics 3D space state. Used for querying "
+"current and potential collisions."
+msgstr ""
+
+#: doc/classes/World.xml
+msgid "The World's [Environment]."
+msgstr ""
+
+#: doc/classes/World.xml
+msgid ""
+"The World's fallback_environment will be used if the World's [Environment] "
+"fails or is missing."
+msgstr ""
+
+#: doc/classes/World.xml
+msgid "The World's visual scenario."
+msgstr ""
+
+#: doc/classes/World.xml
+msgid "The World's physics space."
+msgstr ""
+
+#: doc/classes/World2D.xml
+msgid "Class that has everything pertaining to a 2D world."
+msgstr ""
+
+#: doc/classes/World2D.xml
+msgid ""
+"Class that has everything pertaining to a 2D world. A physics space, a "
+"visual scenario and a sound space. 2D nodes register their resources into "
+"the current 2D world."
+msgstr ""
+
+#: doc/classes/World2D.xml
+msgid ""
+"The [RID] of this world's canvas resource. Used by the [VisualServer] for 2D "
+"drawing."
+msgstr ""
+
+#: doc/classes/World2D.xml
+msgid ""
+"Direct access to the world's physics 2D space state. Used for querying "
+"current and potential collisions. When using multi-threaded physics, access "
+"is limited to [code]_physics_process(delta)[/code] in the main thread."
+msgstr ""
+
+#: doc/classes/World2D.xml
+msgid ""
+"The [RID] of this world's physics space resource. Used by the "
+"[Physics2DServer] for 2D physics, treating it as both a space and an area."
+msgstr ""
+
+#: doc/classes/WorldEnvironment.xml
+msgid ""
+"Default environment properties for the entire scene (post-processing "
+"effects, lighting and background settings)."
+msgstr ""
+
+#: doc/classes/WorldEnvironment.xml
+msgid ""
+"The [WorldEnvironment] node is used to configure the default [Environment] "
+"for the scene.\n"
+"The parameters defined in the [WorldEnvironment] can be overridden by an "
+"[Environment] node set on the current [Camera]. Additionally, only one "
+"[WorldEnvironment] may be instanced in a given scene at a time.\n"
+"The [WorldEnvironment] allows the user to specify default lighting "
+"parameters (e.g. ambient lighting), various post-processing effects (e.g. "
+"SSAO, DOF, Tonemapping), and how to draw the background (e.g. solid color, "
+"skybox). Usually, these are added in order to improve the realism/color "
+"balance of the scene."
+msgstr ""
+
+#: doc/classes/WorldEnvironment.xml
+msgid ""
+"The [Environment] resource used by this [WorldEnvironment], defining the "
+"default properties."
+msgstr ""
+
+#: doc/classes/X509Certificate.xml
+msgid "An X509 certificate (e.g. for SSL)."
+msgstr ""
+
+#: doc/classes/X509Certificate.xml
+msgid ""
+"The X509Certificate class represents an X509 certificate. Certificates can "
+"be loaded and saved like any other [Resource].\n"
+"They can be used as the server certificate in [method StreamPeerSSL."
+"accept_stream] (along with the proper [CryptoKey]), and to specify the only "
+"certificate that should be accepted when connecting to an SSL server via "
+"[method StreamPeerSSL.connect_to_stream].\n"
+"[b]Note:[/b] Not available in HTML5 exports."
+msgstr ""
+
+#: doc/classes/X509Certificate.xml
+msgid "Loads a certificate from [code]path[/code] (\"*.crt\" file)."
+msgstr ""
+
+#: doc/classes/X509Certificate.xml
+msgid ""
+"Saves a certificate to the given [code]path[/code] (should be a \"*.crt\" "
+"file)."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Low-level class for creating parsers for [url=https://en.wikipedia.org/wiki/"
+"XML]XML[/url] files."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"This class can serve as base to make custom XML parsers. Since XML is a very "
+"flexible standard, this interface is low-level so it can be applied to any "
+"possible schema."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "Gets the amount of attributes in the current element."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Gets the name of the attribute specified by the index in [code]idx[/code] "
+"argument."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Gets the value of the attribute specified by the index in [code]idx[/code] "
+"argument."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "Gets the current line in the parsed file (currently not implemented)."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Gets the value of a certain attribute of the current element by name. This "
+"will raise an error if the element has no such attribute."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Gets the value of a certain attribute of the current element by name. This "
+"will return an empty [String] if the attribute is not found."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Gets the contents of a text node. This will raise an error in any other type "
+"of node."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Gets the name of the current element node. This will raise an error if the "
+"current node type is neither [constant NODE_ELEMENT] nor [constant "
+"NODE_ELEMENT_END]."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Gets the byte offset of the current node since the beginning of the file or "
+"buffer."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Gets the type of the current node. Compare with [enum NodeType] constants."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "Check whether the current element has a certain attribute."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Check whether the current element is empty (this only works for completely "
+"empty tags, e.g. [code]<element \\>[/code])."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "Opens an XML file for parsing. This returns an error code."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "Opens an XML raw buffer for parsing. This returns an error code."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "Reads the next node of the file. This returns an error code."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Moves the buffer cursor to a certain offset (since the beginning) and read "
+"the next node there. This returns an error code."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid ""
+"Skips the current section. If the node contains other elements, they will be "
+"ignored and the cursor will go to the closing of the current element."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "There's no node (no file or buffer opened)."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "Element (tag)."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "End of element."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "Text node."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "Comment node."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "CDATA content."
+msgstr ""
+
+#: doc/classes/XMLParser.xml
+msgid "Unknown node."
+msgstr ""
+
+#: doc/classes/YSort.xml
+msgid "Sort all child nodes based on their Y positions."
+msgstr ""
+
+#: doc/classes/YSort.xml
+msgid ""
+"Sort all child nodes based on their Y positions. The child node must inherit "
+"from [CanvasItem] for it to be sorted. Nodes that have a higher Y position "
+"will be drawn later, so they will appear on top of nodes that have a lower Y "
+"position.\n"
+"Nesting of YSort nodes is possible. Children YSort nodes will be sorted in "
+"the same space as the parent YSort, allowing to better organize a scene or "
+"divide it in multiple ones, yet keep the unique sorting."
+msgstr ""
+
+#: doc/classes/YSort.xml
+msgid ""
+"If [code]true[/code], child nodes are sorted, otherwise sorting is disabled."
+msgstr ""
diff --git a/doc/translations/nl.po b/doc/translations/nl.po
index 2e5675b5e1..f3b757ffba 100644
--- a/doc/translations/nl.po
+++ b/doc/translations/nl.po
@@ -1,6 +1,6 @@
# Dutch translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Stijn Hinlopen <f.a.hinlopen@gmail.com>, 2020.
@@ -62,6 +62,71 @@ msgstr "Eigenschapbeschrijvingen"
msgid "Method Descriptions"
msgstr "Methodebeschrijvingen"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Eigenschapbeschrijvingen"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Ingebouwde GDScript functies."
@@ -510,16 +575,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -569,8 +642,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -579,7 +655,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -587,7 +666,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1426,7 +1506,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2937,31 +3025,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7025,7 +7190,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11929,7 +12097,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11994,11 +12162,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12006,7 +12176,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12014,15 +12186,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12030,7 +12202,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12118,8 +12290,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12129,17 +12302,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12150,16 +12329,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12171,27 +12356,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12311,7 +12508,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12370,7 +12569,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12728,8 +12928,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12778,6 +12978,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13277,6 +13483,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13703,9 +13910,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13948,7 +14155,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14616,7 +14825,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16634,7 +16843,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17951,7 +18162,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19470,6 +19681,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19487,11 +19705,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19571,8 +19791,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20015,10 +20246,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20067,7 +20297,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20237,8 +20469,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20247,7 +20479,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21322,6 +21556,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21798,10 +22040,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22281,7 +22525,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22916,7 +23160,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23851,14 +24095,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -23934,7 +24178,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26050,6 +26294,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26278,7 +26528,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26301,7 +26551,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28587,7 +28837,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28608,7 +28862,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28627,8 +28885,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28641,7 +28908,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28959,7 +29235,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28987,7 +29267,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29182,6 +29466,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29198,15 +29579,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29810,9 +30193,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30743,6 +31126,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33959,16 +34365,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -33989,10 +34392,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34008,25 +34408,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34043,14 +34434,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34059,35 +34447,389 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34186,10 +34928,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34348,22 +35086,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34462,6 +35290,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37793,7 +38687,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42387,16 +43283,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42458,12 +43354,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42544,10 +43434,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45995,7 +46881,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46038,8 +46924,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46051,6 +46938,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46910,12 +47810,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47044,15 +47944,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48316,14 +49207,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49370,7 +50253,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49553,7 +50436,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49660,7 +50543,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51726,7 +52609,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51750,19 +52633,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53460,7 +54362,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54145,6 +55047,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57357,7 +58269,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57379,9 +58291,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58483,17 +59397,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58513,10 +59427,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58640,25 +59554,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60812,9 +61707,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60869,9 +61764,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60912,10 +61807,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60936,12 +61831,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60950,17 +61847,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61060,21 +61957,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61098,12 +61989,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61130,20 +62015,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61155,19 +62030,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61861,10 +62723,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61980,6 +62844,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62498,7 +63374,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67471,6 +68347,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68305,6 +69197,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/pl.po b/doc/translations/pl.po
index a1f982d807..460b6640f5 100644
--- a/doc/translations/pl.po
+++ b/doc/translations/pl.po
@@ -1,6 +1,6 @@
# Polish translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Tomek <kobewi4e@gmail.com>, 2020, 2021.
@@ -17,12 +17,13 @@
# Dominik Mielcarek <fogbpl@gmail.com>, 2021.
# CXVMNER <cxvmner@gmail.com>, 2021.
# Tomasz Piechocki <t.piechocki@yahoo.com>, 2021.
+# DeiranZ <jwabik322@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-12-09 23:13+0000\n"
-"Last-Translator: Tomasz Piechocki <t.piechocki@yahoo.com>\n"
+"PO-Revision-Date: 2022-01-07 12:18+0000\n"
+"Last-Translator: DeiranZ <jwabik322@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot-class-reference/pl/>\n"
"Language: pl\n"
@@ -31,7 +32,7 @@ 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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -73,6 +74,71 @@ msgstr "Opisy właściwości"
msgid "Method Descriptions"
msgstr "Opisy metod"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Opisy właściwości"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Wbudowane funkcje GDScript."
@@ -733,27 +799,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"Zwraca znormalizowaną wartość biorąc pod uwagę podany zakres. Jest to "
-"odwrotność [method lerp].\n"
-"[codeblock]\n"
-"var middle = lerp(20, 30, 0.75)\n"
-"# `middle` ma teraz 27.5.\n"
-"# Teraz, przyjmijmy że zapomnieliśmy oryginalnego mnożnika i chcemy go "
-"przywrócić.\n"
-"var ratio = inverse_lerp(20, 30, 27.5)\n"
-"# `ratio` ma teraz 0.75.\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -826,8 +890,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -836,7 +903,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"Interpoluje liniowo pomiędzy dwoma wartościami poprzez znormalizowaną "
"wartość. Jest to odwrotność [method inverse_lerp].\n"
@@ -851,11 +921,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1173,7 +1245,7 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Like [method print], but prints only when used in debug mode."
-msgstr ""
+msgstr "Jak [method print], ale wypisuje tylko w trybie debugowania."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1184,6 +1256,12 @@ msgid ""
"Frame 0 - res://test.gd:16 in function '_process'\n"
"[/codeblock]"
msgstr ""
+"Wypisuje zrzut stosu w miejscu kodu, działa tylko przy uruchamianiu z "
+"włączonym debuggerem.\n"
+"Wynik w konsoli wyglądać może tak:\n"
+"[codeblock]\n"
+"Frame 0 - res://test.gd:16 in function '_process'\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1193,6 +1271,11 @@ msgid ""
"printerr(\"prints to stderr\")\n"
"[/codeblock]"
msgstr ""
+"Wypisuje do standardowej linii błędów jeden lub więcej argumentów jako "
+"string, w najlepszy możliwy sposób.\n"
+"[codeblock]\n"
+"printerr(\"wypisuje do stderr\")\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1207,6 +1290,16 @@ msgid ""
"prints to the terminal. If you need to print in the editor, use another "
"method, such as [method print]."
msgstr ""
+"Wypisuje do konsoli jeden lub więcej argumentów jako string, w najlepszy "
+"możliwy sposób. Nie tworzy nowej linii na końcu.\n"
+"[codeblock]\n"
+"printraw(\"A\")\n"
+"printraw(\"B\")\n"
+"# Wypisuje AB\n"
+"[/codeblock]\n"
+"[b]Notka:[/b] W zwiÄ…zku z ograniczeniami wbudowanej konsoli Godota, wypisuje "
+"się to tylko w terminalu. Jeżeli potrzebujesz wypisu w edytorze, skorzystaj "
+"z innej metody, jak [method print]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1216,6 +1309,11 @@ msgid ""
"prints(\"A\", \"B\", \"C\") # Prints A B C\n"
"[/codeblock]"
msgstr ""
+"Wypisuje do konsoli jeden lub więcej argumentów ze spacją pomiędzy każdym "
+"argumentem.\n"
+"[codeblock]\n"
+"prints(\"A\", \"B\", \"C\") # Wypisuje A B C\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1808,10 +1906,20 @@ msgstr "Singleton [Marshalls]."
#: doc/classes/@GlobalScope.xml
#, fuzzy
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr "Singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
msgstr "Singleton [NavigationMeshGenerator]."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "Singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
msgstr "Singleton [OS]."
@@ -3334,31 +3442,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7430,7 +7615,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -12340,7 +12528,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12411,11 +12599,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12423,23 +12613,27 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Liczy iloczyn wektorowy tego wektora oraz [code]with[/code]."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr ""
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "Liczy iloczyn wektorowy tego wektora oraz [code]with[/code]."
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12447,7 +12641,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12535,8 +12729,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12546,17 +12741,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12567,16 +12768,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12588,27 +12795,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12728,7 +12947,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12787,7 +13008,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -13145,8 +13367,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -13195,6 +13417,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13694,6 +13922,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -14121,9 +14350,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14366,7 +14595,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -15034,8 +15265,11 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
+"Jeśli [code]true[/code], potomne węzły są sortowane. W innym przypadku jest "
+"wyłączone."
#: doc/classes/ColorPicker.xml
msgid ""
@@ -17052,7 +17286,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18369,7 +18605,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19895,6 +20131,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19912,11 +20155,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19996,8 +20241,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20440,10 +20696,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20492,7 +20747,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20662,8 +20919,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20672,7 +20929,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21750,6 +22009,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -22226,10 +22493,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22709,7 +22978,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -23344,7 +23613,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -24280,14 +24549,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -24363,7 +24632,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26492,6 +26761,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26720,7 +26995,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26743,7 +27018,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -29032,7 +29307,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29053,7 +29332,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29072,8 +29355,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29086,7 +29378,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29404,7 +29705,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29432,7 +29737,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29627,6 +29936,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29643,15 +30049,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -30259,9 +30667,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -31198,6 +31606,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr "Węzeł Kinematic body 2D."
@@ -34424,16 +34855,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34454,10 +34882,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34473,25 +34898,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34508,14 +34924,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34524,35 +34937,414 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+"Zwraca [code]true[/code] jeśli postać jest na ścianie. Aktualizację się w "
+"skrypcie ,podczas wywołania [method move_and_slide]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Zwraca tangens parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Zwraca sinus parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Zwraca przeciwieństwo parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Zwraca przeciwieństwo parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Zwraca sinus parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Zwraca przeciwieństwo parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Zwraca arcus sinus parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+"Jeśli [code]true[/code], potomne węzły są sortowane. W innym przypadku jest "
+"wyłączone."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Zwraca arcus sinus parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Zwraca sinus parametru."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "Singleton [NavigationMeshGenerator]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "Liczy iloczyn wektorowy tego wektora oraz [code]b[/code]."
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Zwraca arcus sinus parametru."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+"Zwraca [code]true[/code] jeśli postać jest na ścianie. Aktualizację się w "
+"skrypcie ,podczas wywołania [method move_and_slide]."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+"Zwraca [code]true[/code] jeśli postać jest na ścianie. Aktualizację się w "
+"skrypcie ,podczas wywołania [method move_and_slide]."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Zwraca arcus sinus parametru."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34652,10 +35444,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34818,25 +35606,115 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
msgstr "Singleton [NavigationMeshGenerator]."
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
#: doc/classes/NavigationPolygon.xml
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
@@ -34933,6 +35811,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Zwraca odwrotność pierwiastka kwadratowego z parametru."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Zwraca arcus sinus parametru."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Zwraca sinus parametru."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -38270,7 +39217,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42901,16 +43850,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42972,12 +43921,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -43058,10 +44001,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46510,7 +47449,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46553,8 +47492,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46566,6 +47506,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47430,12 +48383,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47567,15 +48520,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48838,14 +49782,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49892,7 +50828,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -50075,7 +51011,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -50182,7 +51118,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -52252,7 +53188,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -52276,19 +53212,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53989,7 +54944,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54674,6 +55629,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57902,7 +58867,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57924,9 +58889,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -59028,17 +59995,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -59058,10 +60025,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -59185,25 +60152,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -61359,9 +62307,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -61416,9 +62364,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61459,10 +62407,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61483,12 +62431,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "Liczy iloczyn wektorowy tego wektora oraz [code]b[/code]."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61497,17 +62448,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61609,21 +62560,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "Zwraca minimalny kÄ…t w radianach tego wektora."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "Liczy iloczyn wektorowy tego wektora oraz [code]b[/code]."
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61647,12 +62592,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61679,20 +62618,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61704,19 +62633,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -62416,10 +63332,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62538,6 +63456,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -63056,7 +63986,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -68058,6 +68988,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68894,6 +69840,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Zwraca sinus parametru."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/pt.po b/doc/translations/pt.po
index 4caeaa51cd..b11d10ee96 100644
--- a/doc/translations/pt.po
+++ b/doc/translations/pt.po
@@ -1,15 +1,17 @@
# Portuguese translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Reubens Sanders <reubensst@protonmail.com>, 2021.
+# ssantos <ssantos@web.de>, 2022.
+# Felipe SiFa <felipe@logus.digital>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-12-16 13:42+0000\n"
-"Last-Translator: Reubens Sanders <reubensst@protonmail.com>\n"
+"PO-Revision-Date: 2022-01-07 12:18+0000\n"
+"Last-Translator: Felipe SiFa <felipe@logus.digital>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/"
"godot-class-reference/pt/>\n"
"Language: pt\n"
@@ -17,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -59,6 +61,71 @@ msgstr "Descrições de propriedades"
msgid "Method Descriptions"
msgstr "Descrições de Métodos"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Descrições de propriedades"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Funções GDScript Integradas."
@@ -193,6 +260,30 @@ msgid ""
"a message with clarifying details\n"
"[/codeblock]"
msgstr ""
+"Afirma que [code]condition[/code] (condição) é [code]true[/code]. Se "
+"[code]condition[/code] é [code]false[/code], um erro é gerado. Ao executar a "
+"partir do editor, o programa também será interrompido, até que o retome. "
+"Isso pode ser usado como uma forma mais forte de [method push_error] para "
+"reportar erros aos programadores do projeto ou para utilizadores de add-"
+"ons.\n"
+"[b]Obs.:[/b] Por motivos de desempenho, o código inserido no [method assert] "
+"só é executado em compilações de depuração ou quando o projeto é executado a "
+"partir do editor. Não insira código com efeitos colaterais dentro de um "
+"[method assert], senão o projeto terá um comportamento diferente quando "
+"exportado em modo de lançamento.\n"
+"O argumento opcional [code]message[/code], se dado, é mostrado em "
+"complemento à mensagem genérica \"Assertion failed\". Pode usar isso para "
+"fornecer detalhes adicionais do porquê a afirmação falhou.\n"
+"[codeblock]\n"
+"# Imagine que queremos que a velocidade se situe sempre entre 0 e 20.\n"
+"var speed = -10\n"
+"assert(speed < 20) # True, o programa irá continuar\n"
+"assert(speed >= 0) # False, o programa irá parar\n"
+"assert(speed >= 0 && speed < 20) # Também pode combinar os dois parâmetros "
+"condicionais numa verificação\n"
+"assert(speed < 20, \"speed = %f, mas o limite de velocidade é 20\" % speed) "
+"# Mostra uma mensagem com mais detalhes\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -205,6 +296,14 @@ msgid ""
"a = atan(0.5) # a is 0.463648\n"
"[/codeblock]"
msgstr ""
+"Retorna o arco tangent de [code]s[/code] em radianos. Use-o para obter o "
+"ângulo de uma tangente de ângulo na trigonometria: [code]atan(tan(angle)) == "
+"angle[/code].\n"
+"O método não deve saber em qual quadrante o ângulo deverá cair. Veja [method "
+"atan2] se tiver [code]y[/code] e [code]x[/code].\n"
+"[codeblock]\n"
+"a = atan(0.5) # a is 0.463648\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -216,6 +315,13 @@ msgid ""
"a = atan2(0, -1) # a is 3.141593\n"
"[/codeblock]"
msgstr ""
+"Retorna o arco tangente de [code]y/x[/code] em radianos. Use para ter o "
+"ângulo da tangente [code]y/x[/code]. Para computar o valor, o método leva em "
+"consideração o sinal de ambos os argumentos para determinar o quadrante.\n"
+"Importante: A coordenada Y vem primeiro, por convenção.\n"
+"[codeblock]\n"
+"a = atan2(0, -1) # a é 3.141593\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -225,6 +331,12 @@ msgid ""
"not use this option if the serialized object comes from untrusted sources to "
"avoid potential security threats (remote code execution)."
msgstr ""
+"Decodifica um array de bytes num valor. Quando [code]allow_objects[/code] é "
+"[code]true[/code] decodificar objetos é permitido.\n"
+"[b]AVISO:[/b] Objetos desserializados podem conter código que pode ser "
+"executado. Não use esta opção se o objeto serializado vier de fontes não "
+"confiáveis para evitar potenciais ameaças à segurança (execução remota de "
+"código)."
#: modules/gdscript/doc_classes/@GDScript.xml
#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
@@ -233,6 +345,9 @@ msgid ""
"axis) to the polar coordinate system (a distance from the origin and an "
"angle)."
msgstr ""
+"Converte um ponto 2D expresso no sistema de coordenadas cartesiano (eixos X "
+"e Y) para o sistema de coordenadas polar (uma distância da origem e um "
+"ângulo)."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -244,6 +359,13 @@ msgid ""
"[/codeblock]\n"
"See also [method floor], [method round], [method stepify], and [int]."
msgstr ""
+"Arredonda [code]s[/code] para cima (em direção ao infinito positivo), "
+"retornando o menor número inteiro que não seja menor que [code]s[/code].\n"
+"[codeblock]\n"
+"a = ceil(1.45) # a é 2.0\n"
+"a = ceil(1.001) # a é 2.0\n"
+"[/codeblock]\n"
+"Veja também [method floor], [method round], [method stepify] e [int]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -256,6 +378,14 @@ msgid ""
"[/codeblock]\n"
"This is the inverse of [method ord]."
msgstr ""
+"Retorna um caractere como uma String de um dado code point Unicode (que é "
+"compatível com ASCII code);\n"
+"[codeblock]\n"
+"a = char(65) # a é \"A\"\n"
+"a = char(65 + 32) # a é \"a\"\n"
+"a = char(8364) # a é \"€\"\n"
+"[/codeblock]\n"
+"Isso é o inverso de [method ord]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -267,6 +397,13 @@ msgid ""
"a = clamp(15, 1, 20) # a is 15\n"
"[/codeblock]"
msgstr ""
+"Fixa [code]value[/code] e retorna um valor não inferior a [code]min[/code] e "
+"não superior a [code]max[/code].\n"
+"[codeblock]\n"
+"a = clamp(1000, 1, 20) # a é 20\n"
+"a = clamp(-10, 1, 20) # a é 1\n"
+"a = clamp(15, 1, 20) # a é 15\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -281,6 +418,16 @@ msgid ""
"print(a.length())\n"
"[/codeblock]"
msgstr ""
+"Converte um tipo para outro da melhor forma possível. O parâmetro "
+"[code]type[/code] usa os valores [enum Variant.Type].\n"
+"[codeblock]\n"
+"a = Vector2(1, 0)\n"
+"# Printa 1\n"
+"print(a.length())\n"
+"a = convert(a, TYPE_STRING)\n"
+"# Printa 6, já que \"(1, 0)\" possui 6 caracteres.\n"
+"print(a.length())\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -290,6 +437,11 @@ msgid ""
"a = cos(PI) # a is -1.0\n"
"[/codeblock]"
msgstr ""
+"Retorna o cosseno do ângulo [code]s[/code] em radianos.\n"
+"[codeblock]\n"
+"a = cos(TAU) # a é 1.0\n"
+"a = cos(PI) # a é -1.0\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -298,14 +450,18 @@ msgid ""
"print(cosh(1)) # Prints 1.543081\n"
"[/codeblock]"
msgstr ""
+"Retorna o cosseno hiperbólico de [code]s[/code] em radianos.\n"
+"[codeblock]\n"
+"print(cosh(1)) # Imprime 1.543081\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Converts from decibels to linear energy (audio)."
-msgstr ""
+msgstr "Converte de decibéis para energia linear (áudio)."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Deprecated alias for [method step_decimals]."
-msgstr ""
+msgstr "Apelido descontinuado para [method step_decimals]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -317,6 +473,13 @@ msgid ""
"a = dectime(60, 10, 0.1)) # a is 59.0\n"
"[/codeblock]"
msgstr ""
+"[b]Nota:[/b] [code]dectime[/code] foi depreciado e será removido no Godot "
+"4.0, por favor use [method move_toward] em vez disso.\n"
+"Retorna o resultado de [code]value[/code] decrescido por [code]step[/code] * "
+"[code]amount[/code].\n"
+"[codeblock]\n"
+"a = dectime(60, 10, 0.1)) # a é 59.0\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -346,12 +509,18 @@ msgid ""
"r = deg2rad(180) # r is 3.141593\n"
"[/codeblock]"
msgstr ""
+"Converte um ângulo expresso em graus para radianos.\n"
+"[codeblock]\n"
+"r = deg2rad(180) # r é 3.141593\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
"Converts a dictionary (previously created with [method inst2dict]) back to "
"an instance. Useful for deserializing."
msgstr ""
+"Converte uma instância pré-convertida num dicionário (com [method "
+"inst2dict]), de volta numa instância. Útil para desserialização."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -373,6 +542,23 @@ msgid ""
"See also [method smoothstep]. If you need to perform more advanced "
"transitions, use [Tween] or [AnimationPlayer]."
msgstr ""
+"Retorna um valor \"suavizado\" de [code]x[/code] baseado numa função de "
+"atenuação definida com [code]curve[/code]. Essa função de atenuação é "
+"baseada num exponente. [code]curve[/code] pode ser qualquer número de ponto "
+"flutuante, com valores específicos resultando nos seguintes comportamentos:\n"
+"[codeblock]\n"
+"- Menor que -1.0 (exclusivo): Ease in-out\n"
+"- 1.0: Linear\n"
+"- Entre -1.0 e 0.0 (exclusivo): Ease out-in\n"
+"- 0.0: Constant\n"
+"- Entre 0.0 e 1.0 (exclusivo): Ease in\n"
+"- 1.0: Linear\n"
+"- Maior que 1.0 (exclusivo): Ease out\n"
+"[/codeblock]\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/3.4/img/"
+"ease_cheatsheet.png]tabela de exemplos para ease() curve[/url]\n"
+"Veja também [method smoothstep]. Se precisa fazer transições mais avançadas, "
+"use [Tween] ou [AnimationPlayer]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -385,6 +571,14 @@ msgid ""
"a = exp(2) # Approximately 7.39\n"
"[/codeblock]"
msgstr ""
+"Função exponencial natural. Eleva a constante matemática [b]e[/b] à potência "
+"de [code]s[/code] e retorna o valor dele.\n"
+"[b]e[/b] tem um valor aproximado de 2.71828 que pode ser obtido com "
+"[code]exp(1)[/code].\n"
+"Caso queira expoentes para bases diferentes, use o método [method pow].\n"
+"[codeblock]\n"
+"a = exp(2) # Aproximadamente 7.39\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -400,6 +594,17 @@ msgid ""
"[code]s[/code] is a non-negative number, you can use [code]int(s)[/code] "
"directly."
msgstr ""
+"Arredonda [code]s[/code] para baixo (em direção ao infinito negativo), "
+"retornando o maior número inteiro que não seja superior a [code]s[/code].\n"
+"[codeblock]\n"
+"a = floor(2.45) # a é 2.0\n"
+"a = floor(2.99) # a é 2.0\n"
+"a = floor(-2.99) # a é -3.0\n"
+"[/codeblock]\n"
+"Veja também [method ceil], [method round], [method stepify] e [int].\n"
+"[b]Nota:[/b] Este método retorna uma float. Se precisar de um inteiro e "
+"[code]s[/code] não é um número negativo, pode usar [code]int(s)[/code] "
+"diretamente."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -410,6 +615,12 @@ msgid ""
"[/codeblock]\n"
"For the integer remainder operation, use the % operator."
msgstr ""
+"Retorna o resto em ponto flutuante de [code]a/b[/code], mantendo o sinal de "
+"[code]a[/code].\n"
+"[codeblock]\n"
+"r = fmod(7, 5.5) # r é 1.5\n"
+"[/codeblock]\n"
+"Para a operação de resto inteiro, use o operador %."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -431,6 +642,23 @@ msgid ""
" 1.5 0.0 0.0\n"
"[/codeblock]"
msgstr ""
+"Retorna o módulo de ponto flutuante de [code] a / b [/code] que envolve "
+"igualmente em positivo e negativo.\n"
+"[codeblock]\n"
+"for i in 7:\n"
+" var x = 0.5 * i - 1.5\n"
+" print(\"%4.1f %4.1f %4.1f\" % [x, fmod(x, 1.5), fposmod(x, 1.5)])\n"
+"[/codeblock]\n"
+"Produz:\n"
+"[codeblock]\n"
+"-1.5 -0.0 0.0\n"
+"-1.0 -1.0 0.5\n"
+"-0.5 -0.5 1.0\n"
+" 0.0 0.0 0.0\n"
+" 0.5 0.5 0.5\n"
+" 1.0 1.0 1.0\n"
+" 1.5 0.0 0.0\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -446,6 +674,17 @@ msgid ""
"print(a.call_func()) # Prints bar\n"
"[/codeblock]"
msgstr ""
+"Retorna uma referência à função especificada [code]funcname[/code] no nó "
+"[code]instância[/code]. Como as funções não são objetos de primeira classe "
+"no GDscript, use [code]funcref[/code] para armazenar um [FuncRef] numa "
+"variável e chama-lá mais tarde.\n"
+"[codeblock]\n"
+"func foo ():\n"
+"return (\"bar\")\n"
+"\n"
+"a = funcref (self, \"foo\")\n"
+"print (a.call_func ()) # Printa \"bar\"\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -466,6 +705,22 @@ msgid ""
"source:res://script.gd}, {function:_ready, line:6, source:res://script.gd}]\n"
"[/codeblock]"
msgstr ""
+"Retorna uma list de dicionários representando a pilha de chamada atual.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" foo()\n"
+"\n"
+"func foo():\n"
+" bar()\n"
+"\n"
+"func bar():\n"
+" print(get_stack())\n"
+"[/codeblock]\n"
+"iria imprimir\n"
+"[codeblock]\n"
+"[{function:bar, line:12, source:res://script.gd}, {function:foo, line:9, "
+"source:res://script.gd}, {function:_ready, line:6, source:res://script.gd}]\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -474,6 +729,10 @@ msgid ""
"print(hash(\"a\")) # Prints 177670\n"
"[/codeblock]"
msgstr ""
+"Retorna o hash inteiro da variável passada.\n"
+"[codeblock]\n"
+"print(hash(\"a\")) # Prints 177670\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -492,6 +751,20 @@ msgid ""
"[, res://test.gd, bar]\n"
"[/codeblock]"
msgstr ""
+"Retorna a instância passada convertida num dicionário (útil para "
+"serializar).\n"
+"[codeblock]\n"
+"var foo = \"bar\"\n"
+"func _ready():\n"
+" var d = inst2dict(self)\n"
+" print(d.keys())\n"
+" print(d.values())\n"
+"[/codeblock]\n"
+"Imprime:\n"
+"[codeblock]\n"
+"[@subpath, @path, foo]\n"
+"[, res://test.gd, bar]\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -505,19 +778,36 @@ msgid ""
" print(inst.foo) # Prints bar\n"
"[/codeblock]"
msgstr ""
+"Retorna o Object que corresponde ao [code]instance_id[/code]. Todos os "
+"Objects possuem um ID de instância único.\n"
+"[codeblock]\n"
+"var foo = \"bar\"\n"
+"func _ready():\n"
+" var id = get_instance_id()\n"
+" var inst = instance_from_id(id)\n"
+" print(inst.foo) # Prints bar\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -529,23 +819,34 @@ msgid ""
"magnitude of the numbers.\n"
"Infinity values of the same sign are considered equal."
msgstr ""
+"Retorna [code]true[/code] se [code]a[/code] e [code]b[/code] são "
+"aproximadamente iguais.\n"
+"Aqui, aproximadamente igual significa que [code]a[/code] e [code]b[/code] "
+"estão a um pequeno epsilon interno um do outro, que escala de acordo com a "
+"magnitude dos números.\n"
+"Valores infinitos com o mesmo sinal são considerados iguais."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
"Returns whether [code]s[/code] is an infinity value (either positive "
"infinity or negative infinity)."
msgstr ""
+"Retorna se [code]s[/code] é um valor infinitos (seja infinito positivo ou "
+"infinito negativo)."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
"Returns whether [code]instance[/code] is a valid object (e.g. has not been "
"deleted from memory)."
msgstr ""
+"Retorna se [code]instance[/code] é um objeto válido (e.g. não foi excluído "
+"da memória)."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
"Returns whether [code]s[/code] is a NaN (\"Not a Number\" or invalid) value."
msgstr ""
+"Retorna se [code]s[/code] é um valor NaN (\"Not a Number\" ou inválido)."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -553,6 +854,9 @@ msgid ""
"This method is faster than using [method is_equal_approx] with one value as "
"zero."
msgstr ""
+"Retorna [code]true[/code] se [code]s[/code] é zero ou quase zero.\n"
+"Este método é mais rápido que utilizar [method is_equal_approx] com um valor "
+"igual a zero."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -564,11 +868,24 @@ msgid ""
"len(a) # Returns 4\n"
"[/codeblock]"
msgstr ""
+"Retorna o comprimento da Variant [code]var[/code]. Comprimento é a contagem "
+"de caracteres de uma String, contagem de elementos de uma Array, o tamanho "
+"de um Dicionario, etc.\n"
+"[b]Note:[/b] Gera um erro fatal se Variant não puder retornar um "
+"comprimento.\n"
+"[codeblock]\n"
+"a = [1, 2, 3, 4]\n"
+"len(a) # Retorna 4\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -577,15 +894,31 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
+msgstr ""
+"Interpola linearmente entre dois valores através de um valor normalizado. "
+"Este método é o oposto do método [method inverse_lerp].\n"
+"Se os argumentos [code]from[/code] e [code]to[/code] forem do tipo [int] ou "
+"[float], o retorno é um valor do tipo [float].\n"
+"Se ambos são vetores de mesmo tipo ([Vector2], [Vector3] ou [Color]), o "
+"valor retornado será do mesmo tipo ([code]lerp[/code] então chamará o método "
+"[code]lerp[/code] do tipo de vetor em questão).\n"
+"[codeblock]\n"
+"lerp(0, 4, 0.75) # Retorna 3.0\n"
+"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Retorna Vector2(2, 3.5)\n"
"[/codeblock]"
-msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -596,6 +929,19 @@ msgid ""
" elapsed += delta\n"
"[/codeblock]"
msgstr ""
+"Faz a interpolação linear entre dois ângulos (em radianos) por um valor "
+"normalizado.\n"
+"Semelhante à [method lerp], mas faz a interpolação corretamente quando os "
+"ângulos passam através de [constant @GDScript.TAU].\n"
+"[codeblock]\n"
+"extends Sprite\n"
+"var elapsed = 0.0\n"
+"func _process(delta):\n"
+" var min_angle = deg2rad(0.0)\n"
+" var max_angle = deg2rad(90.0)\n"
+" rotation = lerp_angle(min_angle, max_angle, elapsed)\n"
+" elapsed += delta\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -612,6 +958,18 @@ msgid ""
"linear2db($Slider.value))\n"
"[/codeblock]"
msgstr ""
+"Converte energia linear para decibéis (áudio). Esse método pode ser usado "
+"para implementar barras de volume que se comportam de maneira esperada "
+"(porque volume não é linear). Exemplo:\n"
+"[codeblock]\n"
+"# \"Slider\" se refere a um nó que herda de Range como um HSlider ou "
+"VSlider.\n"
+"# O intervalo dele deve ser configurado para ir de 0 até 1.\n"
+"# Mude o nome do barramento de áudio se gostaria de mudar o volume apenas de "
+"um barramento específico.\n"
+"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), "
+"linear2db($Slider.value))\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -635,6 +993,25 @@ msgid ""
"This method is a simplified version of [method ResourceLoader.load], which "
"can be used for more advanced scenarios."
msgstr ""
+"Carrega um recurso do sistema de ficheiros localizado em [code]path[/code]. "
+"O recurso é carregado durante a chamada do método (a não ser que seja "
+"referenciado em algum outro lugar como em outro script ou na cena), o que "
+"pode causar um breve atraso, especialmente ao carregar cenas. Para evitar "
+"atrasos desnecessários ao carregar algo várias vezes, salve o recurso numa "
+"variável ou use [method preload].\n"
+"[b]Nota:[/b] Caminhos de recursos podem ser obtidos clicando com o botão "
+"direito num recurso no painel Ficheiros e escolhendo \"Copiar Caminho\" ou "
+"arrastando um ficheiro do painel Ficheiros para dentro do script.\n"
+"[codeblock]\n"
+"# Carrega uma cena chamada \"main\" localizada na raíz da pasta do projeto, "
+"e a salva numa variável.\n"
+"var main = load(\"res://main.tscn\") # main irá conter um recurso "
+"PackedScene.\n"
+"[/codeblock]\n"
+"[b]Importante:[/b] O caminho deve ser absoluto, um caminho local irá "
+"retornar [code]null[/code].\n"
+"Esse método é uma versão simplificada de [method ResourceLoader.load], que "
+"pode ser usado em situações mais avançadas."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -648,6 +1025,15 @@ msgid ""
"[b]Note:[/b] The logarithm of [code]0[/code] returns [code]-inf[/code], "
"while negative values return [code]-nan[/code]."
msgstr ""
+"Logaritmo natural. A quantidade de tempo necessária para atingir um certo "
+"nível de crescimento contínuo.\n"
+"[b]Nota:[/b] Esta não é a mesma função \"log\" como na maioria das "
+"calculadoras, que usa um logaritmo de base 10.\n"
+"[codeblock]\n"
+"log(10) # Retorna 2,302585\n"
+"[/codeblock]\n"
+"[b]Nota:[/b] O logaritmo de [code]0[/code] retorna [code]-inf[/code], "
+"enquanto valores negativos retornam [code]-nan[/code]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -657,6 +1043,11 @@ msgid ""
"max(-3.99, -4) # Returns -3.99\n"
"[/codeblock]"
msgstr ""
+"Retorna o valor máximo entre dois valores.\n"
+"[codeblock]\n"
+"max(1, 2) # Retorna 2\n"
+"max(-3.99, -4) # Retorna -3.99\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -666,6 +1057,11 @@ msgid ""
"min(-3.99, -4) # Returns -4\n"
"[/codeblock]"
msgstr ""
+"Retorna o menor entre dois valores.\n"
+"[codeblock]\n"
+"min(1, 2) # Retorna 1\n"
+"min(-3.99, -4) # Retorna -4\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -678,6 +1074,14 @@ msgid ""
"move_toward(10, 5, -1.5) # Returns 11.5\n"
"[/codeblock]"
msgstr ""
+"Move [code]from[/code] até [code]to[/code] pelo valor de [code]delta[/"
+"code].\n"
+"Use um valor [code]delta[/code] negativo para mover na outra direção.\n"
+"[codeblock]\n"
+"move_toward(5, 10, 4) # Retorna 9\n"
+"move_toward(10, 5, 4) # Retorna 6\n"
+"move_toward(10, 5, -1.5) # Retorna 11.5\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -698,6 +1102,22 @@ msgid ""
"[code]0[/code] rather than [code]1[/code] for non-positive values of "
"[code]value[/code] (in reality, 1 is the smallest integer power of 2)."
msgstr ""
+"Retorna a potência igual ou maior mais próxima de 2 para o valor inteiro "
+"[code]value[/code].\n"
+"Em outras palavras, retorna o menor valor [code]a[/code] onde [code]a = "
+"pow(2, n)[/code] de modo que [code]value <= a[/code] para algum número "
+"inteiro não negativo [code]n[/code].\n"
+"[codeblock]\n"
+"nearest_po2(3) # Retorna 4\n"
+"nearest_po2(4) # Retorna 4\n"
+"nearest_po2(5) # Retorna 8\n"
+"\n"
+"nearest_po2(0) # Retorna 0 (o que pode ser indesejado)\n"
+"nearest_po2(-1) # Retorna 0 (o que pode ser indesejado)\n"
+"[/codeblock]\n"
+"[b]AVISO:[/b] Por conta da forma que é implementada, essa função retorna "
+"[code]0[/code] ao invés de [code]1[/code] para valores não positivos de "
+"[code]value[/code] (na verdade, 1 é a menor potência inteira de 2)."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -710,6 +1130,14 @@ msgid ""
"[/codeblock]\n"
"This is the inverse of [method char]."
msgstr ""
+"Retorna um número inteiro que representa o ponto de código Unicode do "
+"caractere Unicode fornecido [code]char[/code].\n"
+"[codeblock]\n"
+"a = ord(\"A\") # a é igual a 65\n"
+"a = ord(\"a\") # a é igual a 97\n"
+"a = ord(\"€\") # a é igual a 8364\n"
+"[/codeblock]\n"
+"Este é o inverso de [method char]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -731,6 +1159,24 @@ msgid ""
"[/codeblock]\n"
"See also [JSON] for an alternative way to parse JSON text."
msgstr ""
+"Converte texto JSON para uma Variant. (Use [method typeof] para verificar se "
+"o tipo da Variant é o esperado.)\n"
+"[b]Nota:[/b] A especificação JSON não define tipos integer (números "
+"inteiros) ou float (números reais), mas apenas um tipo numérico [i]number[/"
+"i]. Portanto, ao interpretar um texto JSON todos os valores numéricos serão "
+"convertidos para o tipo [float].\n"
+"[b]Nota:[/b] Objetos JSON não preservam a ordem de chaves igual os "
+"Dictionary do Godot, então, não pode depender que chaves estejam numa certa "
+"ordem se um dicionário for construído de JSON. Por outro lado, listas JSON "
+"retém a ordem dos elementos dele:\n"
+"[codeblock]\n"
+"var p = JSON.parse('[\"hello\", \"world\", \"!\"]')\n"
+"if typeof(p.result) == TYPE_ARRAY:\n"
+" print(p.result[0]) # Imprime \"hello\"\n"
+"else:\n"
+" push_error(\"Resultados inesperados.\")\n"
+"[/codeblock]\n"
+"Veja também [JSON] para uma forma alternativa de interpretar textos JSON."
#: modules/gdscript/doc_classes/@GDScript.xml
#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
@@ -739,6 +1185,9 @@ msgid ""
"from the origin [code]r[/code] and an angle [code]th[/code]) to the "
"cartesian coordinate system (X and Y axis)."
msgstr ""
+"Converte um ponto 2D expresso no sistema de coordenadas polar (uma distância "
+"da origem [code]r[/code] e um ângulo [code]th[/code]) para o sistema de "
+"coordenadas cartesiano (Eixos X e Y)."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -759,6 +1208,22 @@ msgid ""
" 3 0 0\n"
"[/codeblock]"
msgstr ""
+"Retorna o módulo inteiro de [code]a/b[/code] que segue na mesma direção no "
+"positivo e negativo.\n"
+"[codeblock]\n"
+"for i in range(-3, 4):\n"
+" print(\"%2d %2d %2d\" % [i, i % 3, posmod(i, 3)])\n"
+"[/codeblock]\n"
+"Produz:\n"
+"[codeblock]\n"
+"-3 0 0\n"
+"-2 -2 1\n"
+"-1 -1 2\n"
+" 0 0 0\n"
+" 1 1 1\n"
+" 2 2 2\n"
+" 3 0 0\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -768,6 +1233,11 @@ msgid ""
"pow(2, 5) # Returns 32.0\n"
"[/codeblock]"
msgstr ""
+"Retorna o resultado de [code]base[/code] elevado à potência [code]exp[/"
+"code].\n"
+"[codeblock]\n"
+"pow(2, 5) # Retorna 32\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -784,6 +1254,18 @@ msgid ""
"var diamond = preload(\"res://diamond.tscn\").instance()\n"
"[/codeblock]"
msgstr ""
+"Retorna um [Resource] do sistema de ficheiros localizado em [code]path[/"
+"code]. O recurso é carregado durante a interpretação do script, isto é, "
+"carrega com o script e [method preload] age como referência ao recurso. Note "
+"que esse método requer um caminho absoluto. Se quiser carregar um recurso de "
+"um caminho dinâmico/variável, use [method load].\n"
+"[b]Nota:[/b] Caminhos de recursos podem ser obtidos clicando com o botão "
+"direito num recurso no painel Ficheiros e escolhendo \"Copiar Caminho\" ou "
+"arrastando um ficheiro do painel Ficheiros para dentro do script.\n"
+"[codeblock]\n"
+"# Instanciar a cena.\n"
+"var diamond = preload(\"res://diamond.tscn\").instance()\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -798,10 +1280,21 @@ msgid ""
"distinguishes them from print messages used for debugging purposes, while "
"also displaying a stack trace when an error or warning is printed."
msgstr ""
+"Converte um ou mais argumentos de qualquer tipo para string da melhor "
+"maneira possível e imprime no console\n"
+"[codeblock]\n"
+"a = [1, 2, 3]\n"
+"print(\"a\", \"=\", a) # Imprime a=[1, 2, 3]\n"
+"[/codeblock]\n"
+"[b]Nota:[/b] Considere usar [method push_error] e [method push_warning] para "
+"imprimir mensagens de erro e aviso ao invés de [method print]. Isso os "
+"distinguirá de impressões com propósito de depuração e também mostrará um "
+"rastreamento de pilha quando um erro ou aviso é impresso ."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Like [method print], but prints only when used in debug mode."
msgstr ""
+"Igual [method print], mas só imprime quando usado em modo de depuração."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -812,6 +1305,12 @@ msgid ""
"Frame 0 - res://test.gd:16 in function '_process'\n"
"[/codeblock]"
msgstr ""
+"Imprime a pilha de chamadas no local do código, só funciona com o depurador "
+"ativado.\n"
+"Saída no console vai parecer assim:\n"
+"[codeblock]\n"
+"Frame 0 - res://test.gd:16 in function '_process'\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -821,6 +1320,11 @@ msgid ""
"printerr(\"prints to stderr\")\n"
"[/codeblock]"
msgstr ""
+"Imprime um ou mais argumentos da melhor forma possível como um erro no "
+"console.\n"
+"[codeblock]\n"
+"printerr(\"imprime para o stderr\")\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -835,6 +1339,16 @@ msgid ""
"prints to the terminal. If you need to print in the editor, use another "
"method, such as [method print]."
msgstr ""
+"Imprime um ou mais argumentos da melhor forma possível para o console. Uma "
+"nova linha não será adicionada ao fim.\n"
+"[codeblock]\n"
+"printraw(\"A\")\n"
+"printraw(\"B\")\n"
+"# Imprime AB\n"
+"[/codeblock]\n"
+"[b]Nota:[/b] Por conta de limitações com o console integrado do Godot, esse "
+"método só imprime para o terminal. Se precisar imprimir ao editor, use outro "
+"método, como o [method print]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -844,6 +1358,11 @@ msgid ""
"prints(\"A\", \"B\", \"C\") # Prints A B C\n"
"[/codeblock]"
msgstr ""
+"Imprime um ou mais argumentos para o console com um espaço entre cada "
+"argumento.\n"
+"[codeblock]\n"
+"prints(\"A\", \"B\", \"C\") # imprime A B C\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -853,6 +1372,11 @@ msgid ""
"printt(\"A\", \"B\", \"C\") # Prints A B C\n"
"[/codeblock]"
msgstr ""
+"Imprime um ou mais argumentos para o console com um caractere de tabulação "
+"entre cada argumento.\n"
+"[codeblock]\n"
+"printt(\"A\", \"B\", \"C\") # Imprime A\tB\tC\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -866,6 +1390,15 @@ msgid ""
"print an error message and pause project execution in debug builds, use "
"[code]assert(false, \"test error\")[/code] instead."
msgstr ""
+"Envia uma mensagem de erro para o depurador integrado do Godot e para o "
+"terminal do sistema operacional.\n"
+"[codeblock]\n"
+"push_error(\"test error\") # Imprime \"test error\" para o depurador e o "
+"terminal como uma chamada de erro\n"
+"[/codeblock]\n"
+"[b]Nota:[/b] Erros impressos desse jeito não pausam a execução do projeto. "
+"Para imprimir uma mensagem de erro e pausar a execução do projeto em builds "
+"de debug, use [code]assert(false, \"test error\")[/code] ao invés."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -876,6 +1409,12 @@ msgid ""
"terminal as warning call\n"
"[/codeblock]"
msgstr ""
+"Envia uma mensagem de aviso para o depurador integrado do Godot e para o "
+"terminal do sistema operacional.\n"
+"[codeblock]\n"
+"push_warning(\"test warning\") # Imprime \"test warning\" para o depurador e "
+"o terminal como uma chamada de aviso\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -884,6 +1423,10 @@ msgid ""
"rad2deg(0.523599) # Returns 30.0\n"
"[/codeblock]"
msgstr ""
+"Converte um ângulo representado em radianos para graus.\n"
+"[codeblock]\n"
+"rad2deg(0.523599) # Retorna 30.0\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -893,6 +1436,12 @@ msgid ""
"prints(rand_range(0, 1), rand_range(0, 1)) # Prints e.g. 0.135591 0.405263\n"
"[/codeblock]"
msgstr ""
+"Intervalo aleatório, retorna qualquer número real entre [code]from[/code] e "
+"[code]to[/code].\n"
+"[codeblock]\n"
+"prints(rand_range(0, 1), rand_range(0, 1)) # Imprime por exemplo 0.135591 "
+"0.405263\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -901,6 +1450,10 @@ msgid ""
"pseudo random number generator. The internal state of the current "
"implementation is 64 bits."
msgstr ""
+"Aleatório por semente: passe um [code]seed[/code] e uma lista com ambos "
+"número e nova semente é retornada. \"Semente\" aqui refere-se ao estado "
+"interno do gerador de números pseudo-aleatório. O estado interno da "
+"implementação atual é 64 bits."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -909,6 +1462,10 @@ msgid ""
"randf() # Returns e.g. 0.375671\n"
"[/codeblock]"
msgstr ""
+"Retorna um número real aleatório no intervalo [code][0, 1][/code].\n"
+"[codeblock]\n"
+"randf() # Retorna por exemplo 0.375671\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -922,6 +1479,15 @@ msgid ""
"randi() % 100 + 1 # Returns random integer between 1 and 100\n"
"[/codeblock]"
msgstr ""
+"Devolve um número inteiro aleatório sem sinal de 32 bits. Use o resto para "
+"obter um valor aleatório no intervalo [code][0, N - 1][/code] (onde N é "
+"menor que 2^32).\n"
+"[codeblock].\n"
+"randi() # Retorna um inteiro aleatório entre 0 e 2^32 - 1\n"
+"randi() % 20 # Retorna um número inteiro aleatório entre 0 e 19\n"
+"randi() % 100 # Retorna um número inteiro aleatório entre 0 e 99\n"
+"randi() % 100 + 1 # Retorna um inteiro aleatório entre 1 e 100\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -932,6 +1498,12 @@ msgid ""
" randomize()\n"
"[/codeblock]"
msgstr ""
+"Randomiza a semente (ou o estado interno) do gerador de números aleatórios. "
+"Implementação atual ressemea usando um número baseado no tempo.\n"
+"[codeblock]\n"
+"func _ready():\n"
+"\trandomize()\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -983,6 +1555,11 @@ msgid ""
"range_lerp(75, 0, 100, -1, 1) # Returns 0.5\n"
"[/codeblock]"
msgstr ""
+"Mapeia um [code]value[/code] do intervalo [code][istart, istop][/code] para "
+"o intervalo [code][ostart, ostop][/code].\n"
+"[codeblock]\n"
+"range_lerp(75, 0, 100, -1, 1) # Retorna 0.5\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1004,6 +1581,11 @@ msgid ""
"seed(my_seed.hash())\n"
"[/codeblock]"
msgstr ""
+"Define a semente para o gerador de números aleatórios.\n"
+"[codeblock]\n"
+"my_seed = \"Godot Rocks\"\n"
+"seed(my_seed.hash())\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1015,6 +1597,13 @@ msgid ""
"sign(6) # Returns 1\n"
"[/codeblock]"
msgstr ""
+"Retorna o sinal de [code]s[/code]: -1 ou 1. Retorna 0 se [code]s[/code] for "
+"0.\n"
+"[codeblock]\n"
+"sign(-6) # Retorna -1\n"
+"sign(0) # Retorna 0\n"
+"sign(6) # Retorna 1\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1023,6 +1612,10 @@ msgid ""
"sin(0.523599) # Returns 0.5\n"
"[/codeblock]"
msgstr ""
+"Retorna o seno do ângulo [code]s[/code] em radianos.\n"
+"[codeblock]\n"
+"sin(0.523599) # Retorna 0.5\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1032,6 +1625,11 @@ msgid ""
"sinh(a) # Returns 0.75\n"
"[/codeblock]"
msgstr ""
+"Retorna o seno hiperbólico de [code]s[/code].\n"
+"[codeblock]\n"
+"a = log(2.0) # Retorna 0.693147\n"
+"sinh(a) # Retorna 0.75\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1116,6 +1714,13 @@ msgid ""
"print(b[\"a\"]) # Prints 1\n"
"[/codeblock]"
msgstr ""
+"Converte um string formatado que foi retornado por [method var2str] para o "
+"valor original.\n"
+"[codeblock]\n"
+"a = '{ \"a\": 1, \"b\": 2 }'\n"
+"b = str2var(a)\n"
+"print(b[\"a\"]) # Imprime 1\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1124,6 +1729,10 @@ msgid ""
"tan(deg2rad(45)) # Returns 1\n"
"[/codeblock]"
msgstr ""
+"Retorna a tangente do ângulo [code]s[/code] em radianos.\n"
+"[codeblock]\n"
+"tan(deg2rad(45)) # Retorna 1\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1151,6 +1760,21 @@ msgid ""
"text will convert all numerical values to [float] types.\n"
"See also [JSON] for an alternative way to convert a [Variant] to JSON text."
msgstr ""
+"Converte uma [Variant] [code]var[/code] para texto JSON e retorna o "
+"resultado. Útil para serializar dados para guardar ou enviar pela rede.\n"
+"[codeblock]\n"
+"# Ambos números a seguir são inteiros\n"
+"a = { \"a\": 1, \"b\": 2 }\n"
+"b = to_json(a)\n"
+"print(b) # {\"a\":1, \"b\":2}\n"
+"# Ambos números acima são floats, mesmo se são exibidos sem pontos "
+"decimais.\n"
+"[/codeblock]\n"
+"[b]Nota:[/b] A especificação JSON não define os tipos inteiro ou float, mas "
+"apenas um tipo [i]number[/i]. Portanto, converter uma [Variant] para texto "
+"JSON converterá todos os valores numéricos para tipos [float].\n"
+"Veja também [JSON] para uma forma alternativa de converter uma [Variant] "
+"para texto JSON."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1173,6 +1797,15 @@ msgid ""
" print(\"unexpected results\")\n"
"[/codeblock]"
msgstr ""
+"Retorna o tipo interno do objeto Variant fornecido, usando os valores em "
+"[enum Variant.Type].\n"
+"[codeblock]\n"
+"p = parse_json('[\"a\", \"b\", \"c\"]')\n"
+"if typeof(p) == TYPE_ARRAY:\n"
+" print(p[0]) # Imprime a\n"
+"else:\n"
+" print(\"unexpected results\")\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1187,6 +1820,16 @@ msgid ""
" push_error(\"Invalid JSON: \" + v)\n"
"[/codeblock]"
msgstr ""
+"Verifica se [code]json[/code] contém dados JSON válidos. Retorna um String "
+"vazio se válido, ou uma mensagem de erro caso contrário.\n"
+"[codeblock]\n"
+"j = to_json([1, 2, 3])\n"
+"v = validate_json(j)\n"
+"if not v:\n"
+" print(\"Valid JSON.\")\n"
+"else:\n"
+" push_error(\"Invalid JSON: \" + v)\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1194,6 +1837,9 @@ msgid ""
"[code]true[/code] encoding objects is allowed (and can potentially include "
"code)."
msgstr ""
+"Codifica o valor de uma variável como uma lista de bytes. Quando "
+"[code]full_objects[/code] for [code]true[/code] a codificação de objetos "
+"será permitida (e pode incluir código)."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1211,6 +1857,19 @@ msgid ""
"}\n"
"[/codeblock]"
msgstr ""
+"Converte uma Variant [code]var[/code] para um string formatado que pode ser "
+"convertido de volta com [method str2var].\n"
+"[codeblock]\n"
+"a = { \"a\": 1, \"b\": 2 }\n"
+"print(var2str(a))\n"
+"[/codeblock]\n"
+"imprime\n"
+"[codeblock]\n"
+"{\n"
+"\"a\": 1,\n"
+"\"b\": 2\n"
+"}\n"
+"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1221,6 +1880,12 @@ msgid ""
"something else. However, until the object is actually destroyed the weak "
"reference may return the object even if there are no strong references to it."
msgstr ""
+"Retorna uma referência fraca a um objeto.\n"
+"Uma referência fraca a um objeto não é suficiente para mantê-lo em memória: "
+"quando as únicas referências a um referente são referências fracas, a coleta "
+"de lixo estará livre para destruir o referente e reusar a memória para algo "
+"diferente. Entretanto, até o objeto for realmente destruído a referência "
+"fraca pode retornar o objeto, mesmo se não houverem referências fortes a ele."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1244,6 +1909,25 @@ msgid ""
"[code]wrapf[/code] is more flexible than using the [method fposmod] approach "
"by giving the user control over the minimum value."
msgstr ""
+"Envolve [code]value[/code] de ponto flutuante entre [code]min[/code] e "
+"[code]max[/code].\n"
+"Útil para criar comportamentos como loops e superfícies infinitas.\n"
+"[codeblock]\n"
+"# Loop infinito entre 5.0 e 9.9\n"
+"value = wrapf(value + 0.1, 5.0, 10.0)\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# Rotação infinita (em radianos)\n"
+"angle = wrapf(angle + 0.1, 0.0, TAU)\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# Rotação infinita (em radianos)\n"
+"angle = wrapf(angle + 0.1, -PI, PI)\n"
+"[/codeblock]\n"
+"[b]Nota:[/b] Se [code]min[/code] for [code]0[/code], isso é equivalente a "
+"[method fposmod], então prefira o uso dele.\n"
+"[code]wrapf[/code] é mais flexível que usar [method fposmod] dando ao "
+"utilizador o controle sobre o valor mínimo."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1263,6 +1947,21 @@ msgid ""
"[code]wrapi[/code] is more flexible than using the [method posmod] approach "
"by giving the user control over the minimum value."
msgstr ""
+"Envolve um [code]value[/code] inteiro entre [code]min[/code] e [code]max[/"
+"code].\n"
+"Útil para a criação de loops ou superfícies infinitas.\n"
+"[codeblock]\n"
+"# Loop infinito entre 5 e 9\n"
+"frame = wrapi(frame + 1, 5, 10)\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# o resultado é -2\n"
+"var resultado = wrapi(-6, -5, -1)\n"
+"[/codeblock]\n"
+"[b]Nota:[/b] Se [code]min[/code] for [code]0[/code], isso é equivalente a "
+"[method posmod], então prefira o uso dele.\n"
+"[code]wrapi[/code] é mais flexível que usar [method posmod] dando ao "
+"utilizador o controle sobre o valor mínimo."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1308,18 +2007,63 @@ msgid ""
"[code]GDScriptFunctionState[/code]. Notice [code]yield(get_tree(), "
"\"idle_frame\")[/code] from the above example."
msgstr ""
+"Para a execução da função e retorna o atual estado suspenso para a função de "
+"chamada.\n"
+"Da função de chamada, chama [method GDScriptFunctionState.resume] no estado "
+"para resumir a execução. Isso invalida o estado. De dentro da função "
+"retomada, [code]yield()[/code] retorna o que quer que tenha sido passado na "
+"chamada de [code]resume()[/code].\n"
+"Se passados um objeto e um sinal, a execução é retomada quando o objeto "
+"emite o sinal passado. Nesse caso, [code]yield()[/code] retorna o argumento "
+"passado em [code]emit_signal()[/code] se o sinal receber somente um "
+"argumento, ou um array contendo todos os argumentos passados para "
+"[code]emit_signal()[/code] se o sinal receber múltiplos argumentos.\n"
+"Também pode usar [code]yield[/code] para esperar uma função terminar:\n"
+"[codeblock]\n"
+"func _ready():\n"
+" yield(countdown(), \"completed\") # esperando até que a função "
+"countdown() termine\n"
+" print('Ready')\n"
+"\n"
+"func countdown():\n"
+" yield(get_tree(), \"idle_frame\") # retorna um objeto "
+"GDScriptFunctionState para _ready()\n"
+" print(3)\n"
+" yield(get_tree().create_timer(1.0), \"timeout\")\n"
+" print(2)\n"
+" yield(get_tree().create_timer(1.0), \"timeout\")\n"
+" print(1)\n"
+" yield(get_tree().create_timer(1.0), \"timeout\")\n"
+"\n"
+"# imprime:\n"
+"# 3\n"
+"# 2\n"
+"# 1\n"
+"# Ready\n"
+"[/codeblock]\n"
+"Quando estiver usando yield() numa função, o sinal [code]completed[/code] "
+"será emitido automaticamente quando a função retornar. Isso pode, portanto, "
+"ser usado como parâmetro para o [code]signal[/code] do método [code]yield[/"
+"code] que está sendo retomado.\n"
+"Para usar yield() numa função, a função resultante também precisa retornar "
+"um [code]GDScriptFunctionState[/code]. Note o [code]yield(get_tree(), "
+"\"idle_frame\")[/code] no exemplo acima."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
"Constant that represents how many times the diameter of a circle fits around "
"its perimeter. This is equivalent to [code]TAU / 2[/code]."
msgstr ""
+"Constante que representa quantas vezes o diâmetro de um círculo se encaixa "
+"em torno do perímetro dele. Isto equivale a [code]TAU / 2[/code]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
"The circle constant, the circumference of the unit circle in radians. This "
"is equivalent to [code]PI * 2[/code], or 360 degrees in rotations."
msgstr ""
+"A constante do círculo, a circunferência do círculo unitário em radianos. "
+"Isto é equivalente a [code]PI * 2[/code] ou 360 graus em rotações."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1334,6 +2078,16 @@ msgid ""
"code] will not result in [constant INF] and will result in a run-time error "
"instead."
msgstr ""
+"Ponto flutuante positivo infinito. Esse é o resultado de uma divisão em "
+"ponto flutuante quando o divisor é [code]0.0[/code]. Para infinito negativo, "
+"use [code]-INF[/code]. Dividir por [code]-0.0[/code] irá resultar num "
+"infinito negativo se o numerador for positivo, então, dividir por [code]0.0[/"
+"code] não é o mesmo que dividir por [code]-0.0[/code] (mesmo que [code]0.0 "
+"== -0.0[/code] retorne [code]true[/code]).\n"
+"[b]Note:[/b] Infinito numérico é apenas um conceito para números em ponto "
+"flutuante e não tem equivalente para inteiros. Dividir um número inteiro por "
+"[code]0[/code] não resultará em [constant INF] e resultará num erro em tempo "
+"de execução."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1347,10 +2101,19 @@ msgid ""
"[code]0[/code] will not result in [constant NAN] and will result in a run-"
"time error instead."
msgstr ""
+"\"Not a Number\" (Não é um número), um valor de ponto-flutuante inválido. "
+"[constant NAN] tem propriedades especiais, incluindo que ele não é igual a "
+"ele mesmo ([code]NAN == NAN[/code] retorna [code]false[/code]). Ele é o "
+"retorno de algumas operações inválidas, como dividir o ponto flutuante "
+"[code]0.0[/code] por [code]0.0[/code].\n"
+"[b]Nota:[/b] \"Not a Number\" é apenas um conceito com números de ponto "
+"flutuante e não tem equivalência para inteiros. Dividir um inteiro [code]0[/"
+"code] por [code]0[/code] não vai resultar [constant NAN] ao invés disso "
+"resultará num erro de execução."
#: doc/classes/@GlobalScope.xml
msgid "Global scope constants and variables."
-msgstr ""
+msgstr "Constantes e variáveis de escopo global."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -1366,19 +2129,19 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "The [AudioServer] singleton."
-msgstr ""
+msgstr "O singleton [AudioServer]."
#: doc/classes/@GlobalScope.xml
msgid "The [CameraServer] singleton."
-msgstr ""
+msgstr "O singleton [CameraServer]."
#: doc/classes/@GlobalScope.xml
msgid "The [ClassDB] singleton."
-msgstr ""
+msgstr "O singleton [ClassDB]."
#: doc/classes/@GlobalScope.xml
msgid "The [Engine] singleton."
-msgstr ""
+msgstr "O singleton [Engine]."
#: doc/classes/@GlobalScope.xml
msgid "The [Geometry] singleton."
@@ -1386,47 +2149,62 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "The [IP] singleton."
-msgstr ""
+msgstr "O singleton [IP]."
#: doc/classes/@GlobalScope.xml
msgid "The [Input] singleton."
-msgstr ""
+msgstr "O singleton [Input]."
#: doc/classes/@GlobalScope.xml
msgid "The [InputMap] singleton."
-msgstr ""
+msgstr "O singleton [InputMap]."
#: doc/classes/@GlobalScope.xml
msgid "The [JSON] singleton."
-msgstr ""
+msgstr "O singleton [JSON]."
#: doc/classes/@GlobalScope.xml
msgid ""
"The [JavaClassWrapper] singleton.\n"
"[b]Note:[/b] Only implemented on Android."
msgstr ""
+"O singleton [JavaClassWrapper].\n"
+"[b]Nota:[/b] Implementado apenas no Android."
#: doc/classes/@GlobalScope.xml
msgid ""
"The [JavaScript] singleton.\n"
"[b]Note:[/b] Only implemented on HTML5."
msgstr ""
+"O singleton [JavaScript].\n"
+"[b]Nota:[/b] Implementado apenas em HTML5."
#: doc/classes/@GlobalScope.xml
msgid "The [Marshalls] singleton."
-msgstr ""
+msgstr "O singleton [Marshalls]."
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
-msgstr ""
+#, fuzzy
+msgid "The [Navigation2DServer] singleton."
+msgstr "O singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr "O singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "O singleton [TranslationServer]."
#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
-msgstr ""
+msgstr "O singleton [OS]."
#: doc/classes/@GlobalScope.xml
msgid "The [Performance] singleton."
-msgstr ""
+msgstr "O singleton [Performance]."
#: doc/classes/@GlobalScope.xml
msgid "The [Physics2DServer] singleton."
@@ -1438,15 +2216,15 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "The [ProjectSettings] singleton."
-msgstr ""
+msgstr "O singleton [ProjectSettings]."
#: doc/classes/@GlobalScope.xml
msgid "The [ResourceLoader] singleton."
-msgstr ""
+msgstr "O singleton [ResourceLoader]."
#: doc/classes/@GlobalScope.xml
msgid "The [ResourceSaver] singleton."
-msgstr ""
+msgstr "O singleton [ResourceSaver]."
#: doc/classes/@GlobalScope.xml
msgid "The [Time] singleton."
@@ -1454,11 +2232,11 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "The [TranslationServer] singleton."
-msgstr ""
+msgstr "O singleton [TranslationServer]."
#: doc/classes/@GlobalScope.xml
msgid "The [VisualScriptEditor] singleton."
-msgstr ""
+msgstr "O singleton [VisualScriptEditor]."
#: doc/classes/@GlobalScope.xml
msgid "The [VisualServer] singleton."
@@ -1467,71 +2245,90 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Left margin, usually used for [Control] or [StyleBox]-derived classes."
msgstr ""
+"Margem esquerda, geralmente usada para classes derivadas de [Control] ou "
+"[StyleBox]."
#: doc/classes/@GlobalScope.xml
msgid "Top margin, usually used for [Control] or [StyleBox]-derived classes."
msgstr ""
+"Margem superior, geralmente usada para classes derivadas de [Control] ou "
+"[StyleBox]."
#: doc/classes/@GlobalScope.xml
msgid "Right margin, usually used for [Control] or [StyleBox]-derived classes."
msgstr ""
+"Margem direita, geralmente usada para classes derivadas de [Control] ou "
+"[StyleBox]."
#: doc/classes/@GlobalScope.xml
msgid ""
"Bottom margin, usually used for [Control] or [StyleBox]-derived classes."
msgstr ""
+"Margem inferior, geralmente usada para classes derivadas de [Control] ou "
+"[StyleBox]."
#: doc/classes/@GlobalScope.xml
msgid "Top-left corner."
-msgstr ""
+msgstr "Canto superior esquerdo."
#: doc/classes/@GlobalScope.xml
msgid "Top-right corner."
-msgstr ""
+msgstr "Canto superior direito."
#: doc/classes/@GlobalScope.xml
msgid "Bottom-right corner."
-msgstr ""
+msgstr "Canto inferior direito."
#: doc/classes/@GlobalScope.xml
msgid "Bottom-left corner."
-msgstr ""
+msgstr "Canto inferior esquerdo."
#: doc/classes/@GlobalScope.xml
msgid ""
"General vertical alignment, usually used for [Separator], [ScrollBar], "
"[Slider], etc."
msgstr ""
+"Alinhamento vertical geral, normalmente usado para [Separator], [ScrollBar], "
+"[Slider], etc."
#: doc/classes/@GlobalScope.xml
msgid ""
"General horizontal alignment, usually used for [Separator], [ScrollBar], "
"[Slider], etc."
msgstr ""
+"Alinhamento horizontal geral, normalmente usado para [Separator], "
+"[ScrollBar], [Slider], etc."
#: doc/classes/@GlobalScope.xml
msgid "Horizontal left alignment, usually for text-derived classes."
msgstr ""
+"Alinhamento horizontal à esquerda, geralmente para classes derivadas de "
+"texto."
#: doc/classes/@GlobalScope.xml
msgid "Horizontal center alignment, usually for text-derived classes."
msgstr ""
+"Alinhamento horizontal central, geralmente para classes derivadas de texto."
#: doc/classes/@GlobalScope.xml
msgid "Horizontal right alignment, usually for text-derived classes."
msgstr ""
+"Alinhamento horizontal à direita, geralmente para classes derivadas de texto."
#: doc/classes/@GlobalScope.xml
msgid "Vertical top alignment, usually for text-derived classes."
msgstr ""
+"Alinhamento vertical superior, geralmente para classes derivadas de texto."
#: doc/classes/@GlobalScope.xml
msgid "Vertical center alignment, usually for text-derived classes."
msgstr ""
+"Alinhamento vertical central, geralmente para classes derivadas de texto."
#: doc/classes/@GlobalScope.xml
msgid "Vertical bottom alignment, usually for text-derived classes."
msgstr ""
+"Alinhamento vertical inferior, geralmente para classes derivadas de texto."
#: doc/classes/@GlobalScope.xml
msgid "Scancodes with this bit applied are non-printable."
@@ -1539,11 +2336,11 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Escape key."
-msgstr ""
+msgstr "Tecla Escape."
#: doc/classes/@GlobalScope.xml
msgid "Tab key."
-msgstr ""
+msgstr "Tecla Tab."
#: doc/classes/@GlobalScope.xml
msgid "Shift+Tab key."
@@ -1551,260 +2348,260 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Backspace key."
-msgstr ""
+msgstr "Tecla Backspace."
#: doc/classes/@GlobalScope.xml
msgid "Return key (on the main keyboard)."
-msgstr ""
+msgstr "Tecla Return (no teclado principal)."
#: doc/classes/@GlobalScope.xml
msgid "Enter key on the numeric keypad."
-msgstr ""
+msgstr "Tecla Enter no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Insert key."
-msgstr ""
+msgstr "Tecla Insert."
#: doc/classes/@GlobalScope.xml
msgid "Delete key."
-msgstr ""
+msgstr "Tecla Delete."
#: doc/classes/@GlobalScope.xml
msgid "Pause key."
-msgstr ""
+msgstr "Tecla Pause."
#: doc/classes/@GlobalScope.xml
msgid "Print Screen key."
-msgstr ""
+msgstr "Tecla Print Screen."
#: doc/classes/@GlobalScope.xml
msgid "System Request key."
-msgstr ""
+msgstr "Tecla System Request."
#: doc/classes/@GlobalScope.xml
msgid "Clear key."
-msgstr ""
+msgstr "Tecla Clear."
#: doc/classes/@GlobalScope.xml
msgid "Home key."
-msgstr ""
+msgstr "Tecla Home."
#: doc/classes/@GlobalScope.xml
msgid "End key."
-msgstr ""
+msgstr "Tecla End."
#: doc/classes/@GlobalScope.xml
msgid "Left arrow key."
-msgstr ""
+msgstr "Seta para a esquerda."
#: doc/classes/@GlobalScope.xml
msgid "Up arrow key."
-msgstr ""
+msgstr "Seta para cima."
#: doc/classes/@GlobalScope.xml
msgid "Right arrow key."
-msgstr ""
+msgstr "Seta para a direita."
#: doc/classes/@GlobalScope.xml
msgid "Down arrow key."
-msgstr ""
+msgstr "Seta para baixo."
#: doc/classes/@GlobalScope.xml
msgid "Page Up key."
-msgstr ""
+msgstr "Tecla Page Up."
#: doc/classes/@GlobalScope.xml
msgid "Page Down key."
-msgstr ""
+msgstr "Tecla Page Down."
#: doc/classes/@GlobalScope.xml
msgid "Shift key."
-msgstr ""
+msgstr "Tecla Shift."
#: doc/classes/@GlobalScope.xml
msgid "Control key."
-msgstr ""
+msgstr "Tecla Control."
#: doc/classes/@GlobalScope.xml
msgid "Meta key."
-msgstr ""
+msgstr "Tecla Meta."
#: doc/classes/@GlobalScope.xml
msgid "Alt key."
-msgstr ""
+msgstr "Tecla Alt."
#: doc/classes/@GlobalScope.xml
msgid "Caps Lock key."
-msgstr ""
+msgstr "Tecla Caps Lock."
#: doc/classes/@GlobalScope.xml
msgid "Num Lock key."
-msgstr ""
+msgstr "Tecla Num Lock."
#: doc/classes/@GlobalScope.xml
msgid "Scroll Lock key."
-msgstr ""
+msgstr "Tecla Scroll Lock."
#: doc/classes/@GlobalScope.xml
msgid "F1 key."
-msgstr ""
+msgstr "Tecla F1."
#: doc/classes/@GlobalScope.xml
msgid "F2 key."
-msgstr ""
+msgstr "Tecla F2."
#: doc/classes/@GlobalScope.xml
msgid "F3 key."
-msgstr ""
+msgstr "Tecla F3."
#: doc/classes/@GlobalScope.xml
msgid "F4 key."
-msgstr ""
+msgstr "Tecla F4."
#: doc/classes/@GlobalScope.xml
msgid "F5 key."
-msgstr ""
+msgstr "Tecla F5."
#: doc/classes/@GlobalScope.xml
msgid "F6 key."
-msgstr ""
+msgstr "Tecla F6."
#: doc/classes/@GlobalScope.xml
msgid "F7 key."
-msgstr ""
+msgstr "Tecla F7."
#: doc/classes/@GlobalScope.xml
msgid "F8 key."
-msgstr ""
+msgstr "Tecla F8."
#: doc/classes/@GlobalScope.xml
msgid "F9 key."
-msgstr ""
+msgstr "Tecla F9."
#: doc/classes/@GlobalScope.xml
msgid "F10 key."
-msgstr ""
+msgstr "Tecla F10."
#: doc/classes/@GlobalScope.xml
msgid "F11 key."
-msgstr ""
+msgstr "Tecla F11."
#: doc/classes/@GlobalScope.xml
msgid "F12 key."
-msgstr ""
+msgstr "Tecla F12."
#: doc/classes/@GlobalScope.xml
msgid "F13 key."
-msgstr ""
+msgstr "Tecla F13."
#: doc/classes/@GlobalScope.xml
msgid "F14 key."
-msgstr ""
+msgstr "Tecla F14."
#: doc/classes/@GlobalScope.xml
msgid "F15 key."
-msgstr ""
+msgstr "Tecla F15."
#: doc/classes/@GlobalScope.xml
msgid "F16 key."
-msgstr ""
+msgstr "Tecla F16."
#: doc/classes/@GlobalScope.xml
msgid "Multiply (*) key on the numeric keypad."
-msgstr ""
+msgstr "Tecla de multiplicação (*) no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Divide (/) key on the numeric keypad."
-msgstr ""
+msgstr "Tecla de divisão (/) no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Subtract (-) key on the numeric keypad."
-msgstr ""
+msgstr "Tecla de subtração (-) no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Period (.) key on the numeric keypad."
-msgstr ""
+msgstr "Tecla de ponto (.) No teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Add (+) key on the numeric keypad."
-msgstr ""
+msgstr "Tecla de adição (+) no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Number 0 on the numeric keypad."
-msgstr ""
+msgstr "Número 0 no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Number 1 on the numeric keypad."
-msgstr ""
+msgstr "Número 1 no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Number 2 on the numeric keypad."
-msgstr ""
+msgstr "Número 2 no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Number 3 on the numeric keypad."
-msgstr ""
+msgstr "Número 3 no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Number 4 on the numeric keypad."
-msgstr ""
+msgstr "Número 4 no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Number 5 on the numeric keypad."
-msgstr ""
+msgstr "Número 5 no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Number 6 on the numeric keypad."
-msgstr ""
+msgstr "Número 6 no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Number 7 on the numeric keypad."
-msgstr ""
+msgstr "Número 7 no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Number 8 on the numeric keypad."
-msgstr ""
+msgstr "Número 8 no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Number 9 on the numeric keypad."
-msgstr ""
+msgstr "Número 9 no teclado numérico."
#: doc/classes/@GlobalScope.xml
msgid "Left Super key (Windows key)."
-msgstr ""
+msgstr "Tecla Super esquerda (tecla Windows)."
#: doc/classes/@GlobalScope.xml
msgid "Right Super key (Windows key)."
-msgstr ""
+msgstr "Tecla Super direita (tecla Windows)."
#: doc/classes/@GlobalScope.xml
msgid "Context menu key."
-msgstr ""
+msgstr "Tecla de menu de contexto."
#: doc/classes/@GlobalScope.xml
msgid "Left Hyper key."
-msgstr ""
+msgstr "Tecla Hyper esquerda."
#: doc/classes/@GlobalScope.xml
msgid "Right Hyper key."
-msgstr ""
+msgstr "Tecla Hyper direita."
#: doc/classes/@GlobalScope.xml
msgid "Help key."
-msgstr ""
+msgstr "Tecla Help."
#: doc/classes/@GlobalScope.xml
msgid "Left Direction key."
-msgstr ""
+msgstr "Tecla de direção esquerda."
#: doc/classes/@GlobalScope.xml
msgid "Right Direction key."
-msgstr ""
+msgstr "Tecla de direção direita."
#: doc/classes/@GlobalScope.xml
msgid ""
"Media back key. Not to be confused with the Back button on an Android device."
-msgstr ""
+msgstr "Tecla Voltar Media. Não confundir com tecla Voltar no device Android."
#: doc/classes/@GlobalScope.xml
msgid "Media forward key."
@@ -1812,7 +2609,7 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Media stop key."
-msgstr ""
+msgstr "Tecla de parada de mídia."
#: doc/classes/@GlobalScope.xml
msgid "Media refresh key."
@@ -1820,711 +2617,711 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Volume down key."
-msgstr ""
+msgstr "Tecla de diminuir o volume."
#: doc/classes/@GlobalScope.xml
msgid "Mute volume key."
-msgstr ""
+msgstr "Tecla de volume mudo."
#: doc/classes/@GlobalScope.xml
msgid "Volume up key."
-msgstr ""
+msgstr "Tecla de aumentar o volume."
#: doc/classes/@GlobalScope.xml
msgid "Bass Boost key."
-msgstr ""
+msgstr "Tecla Bass Boost."
#: doc/classes/@GlobalScope.xml
msgid "Bass up key."
-msgstr ""
+msgstr "Tecla de aumentar grave."
#: doc/classes/@GlobalScope.xml
msgid "Bass down key."
-msgstr ""
+msgstr "Tecla de diminuir grave."
#: doc/classes/@GlobalScope.xml
msgid "Treble up key."
-msgstr ""
+msgstr "Tecla de aumentar agudo."
#: doc/classes/@GlobalScope.xml
msgid "Treble down key."
-msgstr ""
+msgstr "Tecla de diminuir agudo."
#: doc/classes/@GlobalScope.xml
msgid "Media play key."
-msgstr ""
+msgstr "Tecla de reprodução de mídia."
#: doc/classes/@GlobalScope.xml
msgid "Previous song key."
-msgstr ""
+msgstr "Tecla de música anterior."
#: doc/classes/@GlobalScope.xml
msgid "Next song key."
-msgstr ""
+msgstr "Tecla de próxima música."
#: doc/classes/@GlobalScope.xml
msgid "Media record key."
-msgstr ""
+msgstr "Tecla de gravação de mídia."
#: doc/classes/@GlobalScope.xml
msgid "Home page key."
-msgstr ""
+msgstr "Tecla de página inicial."
#: doc/classes/@GlobalScope.xml
msgid "Favorites key."
-msgstr ""
+msgstr "Tecla de favoritos."
#: doc/classes/@GlobalScope.xml
msgid "Search key."
-msgstr ""
+msgstr "Tecla de pesquisa."
#: doc/classes/@GlobalScope.xml
msgid "Standby key."
-msgstr ""
+msgstr "Tecla Standby."
#: doc/classes/@GlobalScope.xml
msgid "Open URL / Launch Browser key."
-msgstr ""
+msgstr "Tecla de Abrir URL / Iniciar Navegador."
#: doc/classes/@GlobalScope.xml
msgid "Launch Mail key."
-msgstr ""
+msgstr "Tecla de inicialização de Mail."
#: doc/classes/@GlobalScope.xml
msgid "Launch Media key."
-msgstr ""
+msgstr "Tecla de inicialização de mídia."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut 0 key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho 0."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut 1 key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho 1."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut 2 key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho 2."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut 3 key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho 3."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut 4 key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho 4."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut 5 key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho 5."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut 6 key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho 6."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut 7 key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho 7."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut 8 key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho 8."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut 9 key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho 9."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut A key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho A."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut B key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho B."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut C key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho C."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut D key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho D."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut E key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho E."
#: doc/classes/@GlobalScope.xml
msgid "Launch Shortcut F key."
-msgstr ""
+msgstr "Tecla de iniciar Atalho F."
#: doc/classes/@GlobalScope.xml
msgid "Unknown key."
-msgstr ""
+msgstr "Tecla desconhecida."
#: doc/classes/@GlobalScope.xml
msgid "Space key."
-msgstr ""
+msgstr "Tecla de espaço."
#: doc/classes/@GlobalScope.xml
msgid "! key."
-msgstr ""
+msgstr "Tecla !."
#: doc/classes/@GlobalScope.xml
msgid "\" key."
-msgstr ""
+msgstr "Tecla \"."
#: doc/classes/@GlobalScope.xml
msgid "# key."
-msgstr ""
+msgstr "Tecla #."
#: doc/classes/@GlobalScope.xml
msgid "$ key."
-msgstr ""
+msgstr "Tecla $."
#: doc/classes/@GlobalScope.xml
msgid "% key."
-msgstr ""
+msgstr "Tecla %."
#: doc/classes/@GlobalScope.xml
msgid "& key."
-msgstr ""
+msgstr "Tecla &."
#: doc/classes/@GlobalScope.xml
msgid "' key."
-msgstr ""
+msgstr "Tecla '."
#: doc/classes/@GlobalScope.xml
msgid "( key."
-msgstr ""
+msgstr "Tecla (."
#: doc/classes/@GlobalScope.xml
msgid ") key."
-msgstr ""
+msgstr "Tecla )."
#: doc/classes/@GlobalScope.xml
msgid "* key."
-msgstr ""
+msgstr "Tecla *."
#: doc/classes/@GlobalScope.xml
msgid "+ key."
-msgstr ""
+msgstr "Tecla +."
#: doc/classes/@GlobalScope.xml
msgid ", key."
-msgstr ""
+msgstr "Tecla ,."
#: doc/classes/@GlobalScope.xml
msgid "- key."
-msgstr ""
+msgstr "Tecla -."
#: doc/classes/@GlobalScope.xml
msgid ". key."
-msgstr ""
+msgstr "Tecla .."
#: doc/classes/@GlobalScope.xml
msgid "/ key."
-msgstr ""
+msgstr "Tecla /."
#: doc/classes/@GlobalScope.xml
msgid "Number 0."
-msgstr ""
+msgstr "Número 0."
#: doc/classes/@GlobalScope.xml
msgid "Number 1."
-msgstr ""
+msgstr "Número 1."
#: doc/classes/@GlobalScope.xml
msgid "Number 2."
-msgstr ""
+msgstr "Número 2."
#: doc/classes/@GlobalScope.xml
msgid "Number 3."
-msgstr ""
+msgstr "Número 3."
#: doc/classes/@GlobalScope.xml
msgid "Number 4."
-msgstr ""
+msgstr "Número 4."
#: doc/classes/@GlobalScope.xml
msgid "Number 5."
-msgstr ""
+msgstr "Número 5."
#: doc/classes/@GlobalScope.xml
msgid "Number 6."
-msgstr ""
+msgstr "Número 6."
#: doc/classes/@GlobalScope.xml
msgid "Number 7."
-msgstr ""
+msgstr "Número 7."
#: doc/classes/@GlobalScope.xml
msgid "Number 8."
-msgstr ""
+msgstr "Número 8."
#: doc/classes/@GlobalScope.xml
msgid "Number 9."
-msgstr ""
+msgstr "Número 9."
#: doc/classes/@GlobalScope.xml
msgid ": key."
-msgstr ""
+msgstr "Tecla :."
#: doc/classes/@GlobalScope.xml
msgid "; key."
-msgstr ""
+msgstr "Tecla ;."
#: doc/classes/@GlobalScope.xml
msgid "< key."
-msgstr ""
+msgstr "Tecla <."
#: doc/classes/@GlobalScope.xml
msgid "= key."
-msgstr ""
+msgstr "Tecla =."
#: doc/classes/@GlobalScope.xml
msgid "> key."
-msgstr ""
+msgstr "Tecla >."
#: doc/classes/@GlobalScope.xml
msgid "? key."
-msgstr ""
+msgstr "Tecla ?."
#: doc/classes/@GlobalScope.xml
msgid "@ key."
-msgstr ""
+msgstr "Tecla @."
#: doc/classes/@GlobalScope.xml
msgid "A key."
-msgstr ""
+msgstr "Tecla A."
#: doc/classes/@GlobalScope.xml
msgid "B key."
-msgstr ""
+msgstr "Tecla B."
#: doc/classes/@GlobalScope.xml
msgid "C key."
-msgstr ""
+msgstr "Tecla C."
#: doc/classes/@GlobalScope.xml
msgid "D key."
-msgstr ""
+msgstr "Tecla D."
#: doc/classes/@GlobalScope.xml
msgid "E key."
-msgstr ""
+msgstr "Tecla E."
#: doc/classes/@GlobalScope.xml
msgid "F key."
-msgstr ""
+msgstr "Tecla F."
#: doc/classes/@GlobalScope.xml
msgid "G key."
-msgstr ""
+msgstr "Tecla G."
#: doc/classes/@GlobalScope.xml
msgid "H key."
-msgstr ""
+msgstr "Tecla H."
#: doc/classes/@GlobalScope.xml
msgid "I key."
-msgstr ""
+msgstr "Tecla I."
#: doc/classes/@GlobalScope.xml
msgid "J key."
-msgstr ""
+msgstr "Tecla J."
#: doc/classes/@GlobalScope.xml
msgid "K key."
-msgstr ""
+msgstr "Tecla K."
#: doc/classes/@GlobalScope.xml
msgid "L key."
-msgstr ""
+msgstr "Tecla L."
#: doc/classes/@GlobalScope.xml
msgid "M key."
-msgstr ""
+msgstr "Tecla M."
#: doc/classes/@GlobalScope.xml
msgid "N key."
-msgstr ""
+msgstr "Tecla N."
#: doc/classes/@GlobalScope.xml
msgid "O key."
-msgstr ""
+msgstr "Chave O."
#: doc/classes/@GlobalScope.xml
msgid "P key."
-msgstr ""
+msgstr "Tecla P."
#: doc/classes/@GlobalScope.xml
msgid "Q key."
-msgstr ""
+msgstr "Tecla Q."
#: doc/classes/@GlobalScope.xml
msgid "R key."
-msgstr ""
+msgstr "Tecla R."
#: doc/classes/@GlobalScope.xml
msgid "S key."
-msgstr ""
+msgstr "Tecla S."
#: doc/classes/@GlobalScope.xml
msgid "T key."
-msgstr ""
+msgstr "Tecla T."
#: doc/classes/@GlobalScope.xml
msgid "U key."
-msgstr ""
+msgstr "Tecla U."
#: doc/classes/@GlobalScope.xml
msgid "V key."
-msgstr ""
+msgstr "Tecla V."
#: doc/classes/@GlobalScope.xml
msgid "W key."
-msgstr ""
+msgstr "Tecla W."
#: doc/classes/@GlobalScope.xml
msgid "X key."
-msgstr ""
+msgstr "Tecla X."
#: doc/classes/@GlobalScope.xml
msgid "Y key."
-msgstr ""
+msgstr "Tecla Y."
#: doc/classes/@GlobalScope.xml
msgid "Z key."
-msgstr ""
+msgstr "Tecla Z."
#: doc/classes/@GlobalScope.xml
msgid "[ key."
-msgstr ""
+msgstr "Tecla [."
#: doc/classes/@GlobalScope.xml
msgid "\\ key."
-msgstr ""
+msgstr "Tecla \\."
#: doc/classes/@GlobalScope.xml
msgid "] key."
-msgstr ""
+msgstr "Tecla ]."
#: doc/classes/@GlobalScope.xml
msgid "^ key."
-msgstr ""
+msgstr "Tecla ^."
#: doc/classes/@GlobalScope.xml
msgid "_ key."
-msgstr ""
+msgstr "Tecla _."
#: doc/classes/@GlobalScope.xml
msgid "` key."
-msgstr ""
+msgstr "Tecla `."
#: doc/classes/@GlobalScope.xml
msgid "{ key."
-msgstr ""
+msgstr "Tecla {."
#: doc/classes/@GlobalScope.xml
msgid "| key."
-msgstr ""
+msgstr "Tecla |."
#: doc/classes/@GlobalScope.xml
msgid "} key."
-msgstr ""
+msgstr "Tecla }."
#: doc/classes/@GlobalScope.xml
msgid "~ key."
-msgstr ""
+msgstr "Tecla ~."
#: doc/classes/@GlobalScope.xml
msgid "Non-breakable space key."
-msgstr ""
+msgstr "Tecla de espaço não quebrável."
#: doc/classes/@GlobalScope.xml
msgid "¡ key."
-msgstr ""
+msgstr "Tecla ¡."
#: doc/classes/@GlobalScope.xml
msgid "¢ key."
-msgstr ""
+msgstr "Tecla ¢."
#: doc/classes/@GlobalScope.xml
msgid "£ key."
-msgstr ""
+msgstr "Tecla £."
#: doc/classes/@GlobalScope.xml
msgid "¤ key."
-msgstr ""
+msgstr "Tecla ¤."
#: doc/classes/@GlobalScope.xml
msgid "Â¥ key."
-msgstr ""
+msgstr "Tecla ¥."
#: doc/classes/@GlobalScope.xml
msgid "¦ key."
-msgstr ""
+msgstr "Tecla ¦."
#: doc/classes/@GlobalScope.xml
msgid "§ key."
-msgstr ""
+msgstr "Tecla §."
#: doc/classes/@GlobalScope.xml
msgid "¨ key."
-msgstr ""
+msgstr "Tecla ¨."
#: doc/classes/@GlobalScope.xml
msgid "© key."
-msgstr ""
+msgstr "Tecla ©."
#: doc/classes/@GlobalScope.xml
msgid "ª key."
-msgstr ""
+msgstr "Tecla ª."
#: doc/classes/@GlobalScope.xml
msgid "« key."
-msgstr ""
+msgstr "Tecla «."
#: doc/classes/@GlobalScope.xml
msgid "¬ key."
-msgstr ""
+msgstr "Tecla ¬."
#: doc/classes/@GlobalScope.xml
msgid "Soft hyphen key."
-msgstr ""
+msgstr "Tecla de hífen suave."
#: doc/classes/@GlobalScope.xml
msgid "® key."
-msgstr ""
+msgstr "Tecla ®."
#: doc/classes/@GlobalScope.xml
msgid "¯ key."
-msgstr ""
+msgstr "Tecla ¯."
#: doc/classes/@GlobalScope.xml
msgid "° key."
-msgstr ""
+msgstr "Tecla °."
#: doc/classes/@GlobalScope.xml
msgid "± key."
-msgstr ""
+msgstr "Tecla ±."
#: doc/classes/@GlobalScope.xml
msgid "² key."
-msgstr ""
+msgstr "Tecla ²."
#: doc/classes/@GlobalScope.xml
msgid "³ key."
-msgstr ""
+msgstr "Tecla ³."
#: doc/classes/@GlobalScope.xml
msgid "´ key."
-msgstr ""
+msgstr "Tecla ´."
#: doc/classes/@GlobalScope.xml
msgid "µ key."
-msgstr ""
+msgstr "Tecla µ."
#: doc/classes/@GlobalScope.xml
msgid "¶ key."
-msgstr ""
+msgstr "Tecla ¶."
#: doc/classes/@GlobalScope.xml
msgid "· key."
-msgstr ""
+msgstr "Tecla ·."
#: doc/classes/@GlobalScope.xml
msgid "¸ key."
-msgstr ""
+msgstr "Tecla ¸."
#: doc/classes/@GlobalScope.xml
msgid "¹ key."
-msgstr ""
+msgstr "Tecla ¹."
#: doc/classes/@GlobalScope.xml
msgid "º key."
-msgstr ""
+msgstr "Tecla º."
#: doc/classes/@GlobalScope.xml
msgid "» key."
-msgstr ""
+msgstr "Tecla »."
#: doc/classes/@GlobalScope.xml
msgid "¼ key."
-msgstr ""
+msgstr "Tecla ¼."
#: doc/classes/@GlobalScope.xml
msgid "½ key."
-msgstr ""
+msgstr "Tecla ½."
#: doc/classes/@GlobalScope.xml
msgid "¾ key."
-msgstr ""
+msgstr "Tecla ¾."
#: doc/classes/@GlobalScope.xml
msgid "¿ key."
-msgstr ""
+msgstr "Tecla ¿."
#: doc/classes/@GlobalScope.xml
msgid "À key."
-msgstr ""
+msgstr "Tecla À."
#: doc/classes/@GlobalScope.xml
msgid "Ã key."
-msgstr ""
+msgstr "Tecla Ã."
#: doc/classes/@GlobalScope.xml
msgid "Â key."
-msgstr ""
+msgstr "Tecla Â."
#: doc/classes/@GlobalScope.xml
msgid "Ã key."
-msgstr ""
+msgstr "Tecla Ã."
#: doc/classes/@GlobalScope.xml
msgid "Ä key."
-msgstr ""
+msgstr "Tecla Ä."
#: doc/classes/@GlobalScope.xml
msgid "Ã… key."
-msgstr ""
+msgstr "Tecla Ã…."
#: doc/classes/@GlobalScope.xml
msgid "Æ key."
-msgstr ""
+msgstr "Tecla Æ."
#: doc/classes/@GlobalScope.xml
msgid "Ç key."
-msgstr ""
+msgstr "Tecla Ç."
#: doc/classes/@GlobalScope.xml
msgid "È key."
-msgstr ""
+msgstr "Tecla È."
#: doc/classes/@GlobalScope.xml
msgid "É key."
-msgstr ""
+msgstr "Tecla É."
#: doc/classes/@GlobalScope.xml
msgid "Ê key."
-msgstr ""
+msgstr "Tecla Ê."
#: doc/classes/@GlobalScope.xml
msgid "Ë key."
-msgstr ""
+msgstr "Tecla Ë."
#: doc/classes/@GlobalScope.xml
msgid "Ì key."
-msgstr ""
+msgstr "Tecla Ì."
#: doc/classes/@GlobalScope.xml
msgid "Ã key."
-msgstr ""
+msgstr "Tecla Ã."
#: doc/classes/@GlobalScope.xml
msgid "ÃŽ key."
-msgstr ""
+msgstr "Tecla ÃŽ."
#: doc/classes/@GlobalScope.xml
msgid "Ã key."
-msgstr ""
+msgstr "Tecla Ã."
#: doc/classes/@GlobalScope.xml
msgid "Ã key."
-msgstr ""
+msgstr "Tecla Ã."
#: doc/classes/@GlobalScope.xml
msgid "Ñ key."
-msgstr ""
+msgstr "Tecla Ñ."
#: doc/classes/@GlobalScope.xml
msgid "Ã’ key."
-msgstr ""
+msgstr "Tecla Ã’."
#: doc/classes/@GlobalScope.xml
msgid "Ó key."
-msgstr ""
+msgstr "Tecla Ó."
#: doc/classes/@GlobalScope.xml
msgid "Ô key."
-msgstr ""
+msgstr "Tecla Ô."
#: doc/classes/@GlobalScope.xml
msgid "Õ key."
-msgstr ""
+msgstr "Tecla Õ."
#: doc/classes/@GlobalScope.xml
msgid "Ö key."
-msgstr ""
+msgstr "Chave Ö."
#: doc/classes/@GlobalScope.xml
msgid "× key."
-msgstr ""
+msgstr "Tecla ×."
#: doc/classes/@GlobalScope.xml
msgid "Ø key."
-msgstr ""
+msgstr "Tecla Ø."
#: doc/classes/@GlobalScope.xml
msgid "Ù key."
-msgstr ""
+msgstr "Tecla Ù."
#: doc/classes/@GlobalScope.xml
msgid "Ú key."
-msgstr ""
+msgstr "Tecla Ú."
#: doc/classes/@GlobalScope.xml
msgid "Û key."
-msgstr ""
+msgstr "Tecla Û."
#: doc/classes/@GlobalScope.xml
msgid "Ü key."
-msgstr ""
+msgstr "Tecla Ü."
#: doc/classes/@GlobalScope.xml
msgid "Ã key."
-msgstr ""
+msgstr "Tecla Ã."
#: doc/classes/@GlobalScope.xml
msgid "Þ key."
-msgstr ""
+msgstr "Tecla Þ."
#: doc/classes/@GlobalScope.xml
msgid "ß key."
-msgstr ""
+msgstr "Tecla ß."
#: doc/classes/@GlobalScope.xml
msgid "÷ key."
-msgstr ""
+msgstr "Tecla ÷."
#: doc/classes/@GlobalScope.xml
msgid "ÿ key."
-msgstr ""
+msgstr "Tecla ÿ."
#: doc/classes/@GlobalScope.xml
msgid "Key Code mask."
-msgstr ""
+msgstr "Máscara do código da tecla."
#: doc/classes/@GlobalScope.xml
msgid "Modifier key mask."
-msgstr ""
+msgstr "Tecla modificadora da máscara."
#: doc/classes/@GlobalScope.xml
msgid "Shift key mask."
-msgstr ""
+msgstr "Máscara da tecla Shift."
#: doc/classes/@GlobalScope.xml
msgid "Alt key mask."
-msgstr ""
+msgstr "Máscara da tecla Alt."
#: doc/classes/@GlobalScope.xml
msgid "Meta key mask."
-msgstr ""
+msgstr "Máscara da tecla Meta."
#: doc/classes/@GlobalScope.xml
msgid "Ctrl key mask."
-msgstr ""
+msgstr "Máscara da tecla CTRL."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -2533,186 +3330,191 @@ msgid ""
"mask should be preferred to [constant KEY_MASK_META] or [constant "
"KEY_MASK_CTRL] for system shortcuts as it handles all platforms correctly."
msgstr ""
+"Máscara da tecla Command. No macOS, esse é o equivalente para [constant "
+"KEY_MASK_META]. Em outras plataformas, esse é o equivalente para [constant "
+"KEY_MASK_CTRL]. Essa máscara deve ser usada em relação a [constant "
+"KEY_MASK_META] ou [constant KEY_MASK_CTRL] para que os atalhos sejam "
+"reconhecidos por todas as plataformas corretamente."
#: doc/classes/@GlobalScope.xml
msgid "Keypad key mask."
-msgstr ""
+msgstr "Máscara da tecla Keypad."
#: doc/classes/@GlobalScope.xml
msgid "Group Switch key mask."
-msgstr ""
+msgstr "Máscara da tecla Group Switch."
#: doc/classes/@GlobalScope.xml
msgid "Left mouse button."
-msgstr ""
+msgstr "Botão esquerdo do mouse."
#: doc/classes/@GlobalScope.xml
msgid "Right mouse button."
-msgstr ""
+msgstr "Botão direito do mouse."
#: doc/classes/@GlobalScope.xml
msgid "Middle mouse button."
-msgstr ""
+msgstr "Botão central do mouse."
#: doc/classes/@GlobalScope.xml
msgid "Extra mouse button 1 (only present on some mice)."
-msgstr ""
+msgstr "Primeiro botão extra do mouse (disponível em apenas alguns mouses)."
#: doc/classes/@GlobalScope.xml
msgid "Extra mouse button 2 (only present on some mice)."
-msgstr ""
+msgstr "Segundo botão extra do mouse (disponível em apenas alguns mouses)."
#: doc/classes/@GlobalScope.xml
msgid "Mouse wheel up."
-msgstr ""
+msgstr "Roda do mouse para cima."
#: doc/classes/@GlobalScope.xml
msgid "Mouse wheel down."
-msgstr ""
+msgstr "Roda do mouse para baixo."
#: doc/classes/@GlobalScope.xml
msgid "Mouse wheel left button (only present on some mice)."
-msgstr ""
+msgstr "Botão esquerdo da roda do mouse (disponível em apenas alguns mouses)."
#: doc/classes/@GlobalScope.xml
msgid "Mouse wheel right button (only present on some mice)."
-msgstr ""
+msgstr "Botão direito da roda do mouse (disponível em apenas alguns mouses)."
#: doc/classes/@GlobalScope.xml
msgid "Left mouse button mask."
-msgstr ""
+msgstr "Máscara do botão esquerdo do mouse."
#: doc/classes/@GlobalScope.xml
msgid "Right mouse button mask."
-msgstr ""
+msgstr "Máscara do botão direito do mouse."
#: doc/classes/@GlobalScope.xml
msgid "Middle mouse button mask."
-msgstr ""
+msgstr "Máscara do botão central do mouse."
#: doc/classes/@GlobalScope.xml
msgid "Extra mouse button 1 mask."
-msgstr ""
+msgstr "Máscara do primeiro botão extra do mouse."
#: doc/classes/@GlobalScope.xml
msgid "Extra mouse button 2 mask."
-msgstr ""
+msgstr "Máscara do segundo botão extra do mouse."
#: doc/classes/@GlobalScope.xml
msgid "Invalid button or axis."
-msgstr ""
+msgstr "Botão ou eixo inválido."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 0."
-msgstr ""
+msgstr "Botão 0 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 1."
-msgstr ""
+msgstr "Botão 1 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 2."
-msgstr ""
+msgstr "Botão 2 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 3."
-msgstr ""
+msgstr "Botão 3 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 4."
-msgstr ""
+msgstr "Botão 4 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 5."
-msgstr ""
+msgstr "Botão 5 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 6."
-msgstr ""
+msgstr "Botão 6 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 7."
-msgstr ""
+msgstr "Botão 7 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 8."
-msgstr ""
+msgstr "Botão 8 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 9."
-msgstr ""
+msgstr "Botão 9 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 10."
-msgstr ""
+msgstr "Botão 10 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 11."
-msgstr ""
+msgstr "Botão 11 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 12."
-msgstr ""
+msgstr "Botão 12 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 13."
-msgstr ""
+msgstr "Botão 13 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 14."
-msgstr ""
+msgstr "Botão 14 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 15."
-msgstr ""
+msgstr "Botão 15 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 16."
-msgstr ""
+msgstr "Botão 16 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 17."
-msgstr ""
+msgstr "Botão 17 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 18."
-msgstr ""
+msgstr "Botão 18 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 19."
-msgstr ""
+msgstr "Botão 19 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 20."
-msgstr ""
+msgstr "Botão 20 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 21."
-msgstr ""
+msgstr "Botão 21 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button 22."
-msgstr ""
+msgstr "Botão 22 do controle."
#: doc/classes/@GlobalScope.xml
msgid "Represents the maximum number of joystick buttons supported."
-msgstr ""
+msgstr "Representa a quantidade máxima de botões de joystick suportados."
#: doc/classes/@GlobalScope.xml
msgid "DualShock circle button."
-msgstr ""
+msgstr "Botão Círculo do DualShock."
#: doc/classes/@GlobalScope.xml
msgid "DualShock X button."
-msgstr ""
+msgstr "Botão X do DualShock."
#: doc/classes/@GlobalScope.xml
msgid "DualShock square button."
-msgstr ""
+msgstr "Botão quadrado do DualShock."
#: doc/classes/@GlobalScope.xml
msgid "DualShock triangle button."
-msgstr ""
+msgstr "Botão triângulo do Dualshock."
#: doc/classes/@GlobalScope.xml
msgid "Xbox controller B button."
@@ -2748,59 +3550,65 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Grip (side) buttons on a VR controller."
-msgstr ""
+msgstr "Botões laterais num controle VR."
#: doc/classes/@GlobalScope.xml
msgid "Push down on the touchpad or main joystick on a VR controller."
-msgstr ""
+msgstr "Aperte o touchpad ou o joystick principal num controle VR."
#: doc/classes/@GlobalScope.xml
msgid "Trigger on a VR controller."
-msgstr ""
+msgstr "Gatilho num controle VR."
#: doc/classes/@GlobalScope.xml
msgid ""
"A button on the right Oculus Touch controller, X button on the left "
"controller (also when used in OpenVR)."
msgstr ""
+"Um botão no controle Oculus Touch direto, botão X no controle esquerdo "
+"(também quando usado no OpenVR)."
#: doc/classes/@GlobalScope.xml
msgid ""
"B button on the right Oculus Touch controller, Y button on the left "
"controller (also when used in OpenVR)."
msgstr ""
+"Botão B no lado direito do controle Oculus Touch, botão Y no lado esquerdo "
+"do controle (também usado no OpenVR)."
#: doc/classes/@GlobalScope.xml
msgid "Menu button on either Oculus Touch controller."
-msgstr ""
+msgstr "Botão menu em ambos os controles Oculus Touch."
#: doc/classes/@GlobalScope.xml
msgid "Menu button in OpenVR (Except when Oculus Touch controllers are used)."
msgstr ""
+"Botão menu no OpenVR (Exceto quando os controles Oculus Touch estão sendo "
+"usados)."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button Select."
-msgstr ""
+msgstr "Botão Select do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad button Start."
-msgstr ""
+msgstr "Botão Start do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad DPad up."
-msgstr ""
+msgstr "Botão cima no direcional do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad DPad down."
-msgstr ""
+msgstr "Botão baixo no direcional do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad DPad left."
-msgstr ""
+msgstr "Botão esquerdo no direcional do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad DPad right."
-msgstr ""
+msgstr "Botão direito no direcional do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL guide button."
@@ -2808,7 +3616,7 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL miscellaneous button."
-msgstr ""
+msgstr "Botão diverso SDL do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL paddle 1 button."
@@ -2836,11 +3644,11 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left trigger."
-msgstr ""
+msgstr "Gatilho esquerdo do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left stick click."
-msgstr ""
+msgstr "Clique na alavanca esquerda do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right Shoulder button."
@@ -2848,67 +3656,67 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right trigger."
-msgstr ""
+msgstr "Gatilho direito do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right stick click."
-msgstr ""
+msgstr "Clique na alavanca direita do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left stick horizontal axis."
-msgstr ""
+msgstr "Eixo horizontal da alavanca esquerda do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left stick vertical axis."
-msgstr ""
+msgstr "Eixo vertical da alavanca esquerda do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right stick horizontal axis."
-msgstr ""
+msgstr "Eixo horizontal da alavanca direita do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right stick vertical axis."
-msgstr ""
+msgstr "Eixo vertical da alavanca direita do controle."
#: doc/classes/@GlobalScope.xml
msgid "Generic gamepad axis 4."
-msgstr ""
+msgstr "Eixo 4 do controle genérico."
#: doc/classes/@GlobalScope.xml
msgid "Generic gamepad axis 5."
-msgstr ""
+msgstr "Eixo 5 do controle genérico."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left trigger analog axis."
-msgstr ""
+msgstr "Eixo analógico do gatilho esquerdo do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right trigger analog axis."
-msgstr ""
+msgstr "Eixo analógico do gatilho direito do controle."
#: doc/classes/@GlobalScope.xml
msgid "Generic gamepad axis 8."
-msgstr ""
+msgstr "Eixo 8 do controle genérico."
#: doc/classes/@GlobalScope.xml
msgid "Generic gamepad axis 9."
-msgstr ""
+msgstr "Eixo 9 do controle genérico."
#: doc/classes/@GlobalScope.xml
msgid "Represents the maximum number of joystick axes supported."
-msgstr ""
+msgstr "Representa a quantidade máxima de eixos suportados no joystick."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left analog trigger."
-msgstr ""
+msgstr "Gatilho analógico esquerdo do controle."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right analog trigger."
-msgstr ""
+msgstr "Gatilho analógico direito do controle."
#: doc/classes/@GlobalScope.xml
msgid "VR Controller analog trigger."
-msgstr ""
+msgstr "Gatilho analógico do controle VR."
#: doc/classes/@GlobalScope.xml
msgid "VR Controller analog grip (side buttons)."
@@ -2919,39 +3727,120 @@ msgid ""
"OpenVR touchpad X axis (Joystick axis on Oculus Touch and Windows MR "
"controllers)."
msgstr ""
+"Eixo X do touchpad OpenVR (eixo do controle nos controles Oculus Touch e "
+"Windows MR)."
#: doc/classes/@GlobalScope.xml
msgid ""
"OpenVR touchpad Y axis (Joystick axis on Oculus Touch and Windows MR "
"controllers)."
msgstr ""
+"Eixo Y do touchpad OpenVR (eixo do controle nos controles Oculus Touch e "
+"Windows MR)."
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid "MIDI stop message. Stop the current sequence."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2973,7 +3862,7 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Generic error."
-msgstr ""
+msgstr "Erro genérico."
#: doc/classes/@GlobalScope.xml
msgid "Unavailable error."
@@ -3005,15 +3894,15 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "File: Bad path error."
-msgstr ""
+msgstr "Ficheiro: Erro caminho incorreto."
#: doc/classes/@GlobalScope.xml
msgid "File: No permission error."
-msgstr ""
+msgstr "Aquivo: Erro sem permissão."
#: doc/classes/@GlobalScope.xml
msgid "File: Already in use error."
-msgstr ""
+msgstr "Ficheiro: Erro ficheiro já em uso."
#: doc/classes/@GlobalScope.xml
msgid "File: Can't open error."
@@ -3077,7 +3966,7 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Connection error."
-msgstr ""
+msgstr "Erro de conexão."
#: doc/classes/@GlobalScope.xml
msgid "Can't acquire resource error."
@@ -3113,11 +4002,11 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Compilation failed error."
-msgstr ""
+msgstr "Erro de compilação fracassada."
#: doc/classes/@GlobalScope.xml
msgid "Method not found error."
-msgstr ""
+msgstr "Erro de método não encontrado."
#: doc/classes/@GlobalScope.xml
msgid "Linking failed error."
@@ -3133,7 +4022,7 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Invalid declaration error."
-msgstr ""
+msgstr "Erro de declaração inválida."
#: doc/classes/@GlobalScope.xml
msgid "Duplicate symbol error."
@@ -3153,7 +4042,7 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Help error."
-msgstr ""
+msgstr "Erro de ajuda."
#: doc/classes/@GlobalScope.xml
msgid "Bug error."
@@ -3314,7 +4203,7 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "The property can be checked in the editor inspector."
-msgstr ""
+msgstr "A propriedade pode ser checada no inspetor do editor."
#: doc/classes/@GlobalScope.xml
msgid "The property is checked in the editor inspector."
@@ -3388,111 +4277,111 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Variable is [code]null[/code]."
-msgstr ""
+msgstr "Variável é [code]null[/code]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [bool]."
-msgstr ""
+msgstr "Variável é do tipo [bool]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [int]."
-msgstr ""
+msgstr "Variável é do tipo [int]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [float] (real)."
-msgstr ""
+msgstr "Variável é do tipo [float] (real)."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [String]."
-msgstr ""
+msgstr "Variável é do tipo [String]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Vector2]."
-msgstr ""
+msgstr "Variável é do tipo [Vector2]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Rect2]."
-msgstr ""
+msgstr "Variável é do tipo [Rect2]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Vector3]."
-msgstr ""
+msgstr "Variável é do tipo [Vector3]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Transform2D]."
-msgstr ""
+msgstr "Variável é do tipo [Transform2D]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Plane]."
-msgstr ""
+msgstr "Variável é do tipo [Plane]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Quat]."
-msgstr ""
+msgstr "Variável é do tipo [Quat]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [AABB]."
-msgstr ""
+msgstr "Variável é do tipo [AABB]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Basis]."
-msgstr ""
+msgstr "Variável é do tipo [Basis]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Transform]."
-msgstr ""
+msgstr "Variável é do tipo [Transform]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Color]."
-msgstr ""
+msgstr "Variável é do tipo [Color]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [NodePath]."
-msgstr ""
+msgstr "Variável é do tipo [NodePath]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [RID]."
-msgstr ""
+msgstr "Variável é do tipo [RID]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Object]."
-msgstr ""
+msgstr "Variável é do tipo [Object]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Dictionary]."
-msgstr ""
+msgstr "Variável é do tipo [Dictionary]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Array]."
-msgstr ""
+msgstr "Variável é do tipo [Array]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolByteArray]."
-msgstr ""
+msgstr "Variável é do tipo [PoolByteArray]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolIntArray]."
-msgstr ""
+msgstr "Variável é do tipo [PoolIntArray]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolRealArray]."
-msgstr ""
+msgstr "Variável é do tipo [PoolRealArray]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolStringArray]."
-msgstr ""
+msgstr "Variável é do tipo [PoolStringArray]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolVector2Array]."
-msgstr ""
+msgstr "Variável é do tipo [PoolVector2Array]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolVector3Array]."
-msgstr ""
+msgstr "Variável é do tipo [PoolVector3Array]."
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolColorArray]."
-msgstr ""
+msgstr "Variável é do tipo [PoolColorArray]."
#: doc/classes/@GlobalScope.xml
msgid "Represents the size of the [enum Variant.Type] enum."
@@ -3520,11 +4409,11 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Greater than or equal operator ([code]>=[/code])."
-msgstr ""
+msgstr "Operador igual ou maior que ([code]>=[/code])."
#: doc/classes/@GlobalScope.xml
msgid "Addition operator ([code]+[/code])."
-msgstr ""
+msgstr "Operador de adição ([code]+[/code])."
#: doc/classes/@GlobalScope.xml
msgid "Subtraction operator ([code]-[/code])."
@@ -3532,11 +4421,11 @@ msgstr ""
#: doc/classes/@GlobalScope.xml
msgid "Multiplication operator ([code]*[/code])."
-msgstr ""
+msgstr "Operador de multiplicação ([code]*[/code])."
#: doc/classes/@GlobalScope.xml
msgid "Division operator ([code]/[/code])."
-msgstr ""
+msgstr "Operador de divisão ([code]/[/code])."
#: doc/classes/@GlobalScope.xml
msgid "Unary negation operator ([code]-[/code])."
@@ -3866,6 +4755,8 @@ msgstr ""
#: doc/classes/AcceptDialog.xml
msgid "Emitted when a custom button is pressed. See [method add_button]."
msgstr ""
+"Emitido quando um botão personalizado é pressionado. Veja [method "
+"add_button]."
#: doc/classes/AESContext.xml
msgid "Interface to low level AES encryption features."
@@ -3960,7 +4851,7 @@ msgstr ""
#: doc/classes/AnimatedSprite.xml
msgid "Sprite node that can use multiple textures for animation."
-msgstr ""
+msgstr "Nó Sprite que pode usar várias texturas para animação."
#: doc/classes/AnimatedSprite.xml
msgid ""
@@ -4006,19 +4897,19 @@ msgstr ""
#: doc/classes/AnimatedSprite.xml doc/classes/SpriteBase3D.xml
msgid "If [code]true[/code], texture will be centered."
-msgstr ""
+msgstr "Se [code]true[/code], a texture será centralizada."
#: doc/classes/AnimatedSprite.xml doc/classes/Sprite.xml
#: doc/classes/SpriteBase3D.xml doc/classes/TextureButton.xml
#: doc/classes/TextureRect.xml
msgid "If [code]true[/code], texture is flipped horizontally."
-msgstr ""
+msgstr "Se [code]true[/code], a textura será invertida horizontalmente."
#: doc/classes/AnimatedSprite.xml doc/classes/Sprite.xml
#: doc/classes/SpriteBase3D.xml doc/classes/TextureButton.xml
#: doc/classes/TextureRect.xml
msgid "If [code]true[/code], texture is flipped vertically."
-msgstr ""
+msgstr "Se [code]true[/code], a textura será invertida verticalmente."
#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
msgid "The displayed animation frame's index."
@@ -4026,7 +4917,7 @@ msgstr ""
#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
msgid "The [SpriteFrames] resource containing the animation(s)."
-msgstr ""
+msgstr "O recurso [SpriteFrames] que contém a(s) animação(ões)."
#: doc/classes/AnimatedSprite.xml doc/classes/Sprite.xml
#: doc/classes/SpriteBase3D.xml
@@ -4039,7 +4930,7 @@ msgstr ""
#: doc/classes/AnimatedSprite.xml
msgid "The animation speed is multiplied by this value."
-msgstr ""
+msgstr "A velocidade da animação é multiplicada por este valor."
#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
msgid ""
@@ -4050,7 +4941,7 @@ msgstr ""
#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
msgid "Emitted when [member frame] changed."
-msgstr ""
+msgstr "Emitido quando [member frame] muda."
#: doc/classes/AnimatedSprite3D.xml
msgid ""
@@ -4062,6 +4953,8 @@ msgid ""
"Animations are created using a [SpriteFrames] resource, which can be "
"configured in the editor via the SpriteFrames panel."
msgstr ""
+"As animações são criadas usando um recurso [SpriteFrames], que pode ser "
+"configurado no editor através do painel SpriteFrames."
#: doc/classes/AnimatedSprite3D.xml
msgid "Returns [code]true[/code] if an animation is currently being played."
@@ -4204,7 +5097,7 @@ msgstr ""
#: doc/classes/Animation.xml
msgid "Adds a track to the Animation."
-msgstr ""
+msgstr "Adiciona uma trilha à Animação."
#: doc/classes/Animation.xml
msgid ""
@@ -4412,7 +5305,7 @@ msgstr ""
#: doc/classes/Animation.xml
msgid "Gets the type of a track."
-msgstr ""
+msgstr "Obtém o tipo de uma trilha."
#: doc/classes/Animation.xml
msgid "Insert a generic key in a given track."
@@ -4431,7 +5324,7 @@ msgstr ""
#: doc/classes/Animation.xml
msgid "Moves a track down."
-msgstr ""
+msgstr "Move uma trilha para baixo."
#: doc/classes/Animation.xml
msgid ""
@@ -4441,7 +5334,7 @@ msgstr ""
#: doc/classes/Animation.xml
msgid "Moves a track up."
-msgstr ""
+msgstr "Move uma trilha para cima."
#: doc/classes/Animation.xml
msgid "Removes a key by index in a given track."
@@ -4576,6 +5469,9 @@ msgid ""
"also be used to animate sub-properties of vectors and colors (e.g. alpha "
"value of a [Color])."
msgstr ""
+"As trilhas de Bézier são usadas para interpolar um valor usando curvas "
+"personalizadas. Elas também podem ser usadas para animar subpropriedades de "
+"vetores e cores (por exemplo, o valor alfa de uma [Cor])."
#: doc/classes/Animation.xml
msgid ""
@@ -4594,11 +5490,11 @@ msgstr ""
#: doc/classes/Animation.xml
msgid "Linear interpolation."
-msgstr ""
+msgstr "Interpolação linear."
#: doc/classes/Animation.xml
msgid "Cubic interpolation."
-msgstr ""
+msgstr "Interpolação cúbica."
#: doc/classes/Animation.xml
msgid "Update between keyframes."
@@ -4620,7 +5516,7 @@ msgstr ""
#: doc/classes/AnimationNode.xml
msgid "Base resource for [AnimationTree] nodes."
-msgstr ""
+msgstr "Recurso base para nós [AnimationTree]."
#: doc/classes/AnimationNode.xml
msgid ""
@@ -5109,6 +6005,9 @@ msgid ""
"This node may contain a sub-tree of any other blend type nodes, such as mix, "
"blend2, blend3, one shot, etc. This is one of the most commonly used roots."
msgstr ""
+"Este nó pode conter uma \"subárvore\" de qualquer outro tipo de nó de "
+"mistura, como mix, blend2, blend3, one shot, etc. Esta é uma das raízes mais "
+"comumente usadas."
#: doc/classes/AnimationNodeBlendTree.xml
msgid ""
@@ -5140,18 +6039,20 @@ msgid ""
"Returns [code]true[/code] if a sub-node with specified [code]name[/code] "
"exists."
msgstr ""
+"Retorna [code]true[/code] se um subnó com um [code]name[/code] especificado "
+"existe."
#: doc/classes/AnimationNodeBlendTree.xml
msgid "Removes a sub-node."
-msgstr ""
+msgstr "Remove um subnó."
#: doc/classes/AnimationNodeBlendTree.xml
msgid "Changes the name of a sub-node."
-msgstr ""
+msgstr "Muda o nome de um subnó."
#: doc/classes/AnimationNodeBlendTree.xml
msgid "Modifies the position of a sub-node."
-msgstr ""
+msgstr "Modifica a posição de um subnó."
#: doc/classes/AnimationNodeBlendTree.xml
msgid "The global offset of all sub-nodes."
@@ -5404,7 +6305,7 @@ msgstr ""
#: doc/classes/AnimationNodeStateMachineTransition.xml
msgid "The transition type."
-msgstr ""
+msgstr "O tipo de transição."
#: doc/classes/AnimationNodeStateMachineTransition.xml
msgid "The time to cross-fade between this state and the next."
@@ -5733,11 +6634,11 @@ msgstr ""
#: doc/classes/AnimationPlayer.xml
msgid "Notifies when an animation finished playing."
-msgstr ""
+msgstr "Notifica quando uma animação termina de reproduzir."
#: doc/classes/AnimationPlayer.xml
msgid "Notifies when an animation starts playing."
-msgstr ""
+msgstr "Notifica quando uma animação começa a reproduzir."
#: doc/classes/AnimationPlayer.xml
msgid ""
@@ -5993,7 +6894,7 @@ msgstr ""
#: doc/classes/AnimationTreePlayer.xml
msgid "Check if a node exists (by name)."
-msgstr ""
+msgstr "Checa se um nó existe (pelo nome)."
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -6100,7 +7001,7 @@ msgstr ""
#: doc/classes/AnimationTreePlayer.xml
msgid "Resets this [AnimationTreePlayer]."
-msgstr ""
+msgstr "Reseta este [AnimationTreePlayer]."
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -6209,7 +7110,7 @@ msgstr ""
#: doc/classes/AnimationTreePlayer.xml
msgid "Animation node."
-msgstr ""
+msgstr "Nó de animação."
#: doc/classes/AnimationTreePlayer.xml
msgid "OneShot node."
@@ -6221,15 +7122,15 @@ msgstr ""
#: doc/classes/AnimationTreePlayer.xml
msgid "Blend2 node."
-msgstr ""
+msgstr "Nó Blend2."
#: doc/classes/AnimationTreePlayer.xml
msgid "Blend3 node."
-msgstr ""
+msgstr "Nó Blend3."
#: doc/classes/AnimationTreePlayer.xml
msgid "Blend4 node."
-msgstr ""
+msgstr "Nó Blend4."
#: doc/classes/AnimationTreePlayer.xml
msgid "TimeScale node."
@@ -6241,7 +7142,7 @@ msgstr ""
#: doc/classes/AnimationTreePlayer.xml
msgid "Transition node."
-msgstr ""
+msgstr "Nó de transição."
#: doc/classes/Area.xml
msgid "3D area for detection and physics and audio influence."
@@ -7002,7 +7903,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -7486,11 +8390,11 @@ msgstr ""
#: doc/classes/ARVRController.xml
msgid "Emitted when a button on this controller is pressed."
-msgstr ""
+msgstr "Emitido quando um botão é pressionado neste controle."
#: doc/classes/ARVRController.xml
msgid "Emitted when a button on this controller is released."
-msgstr ""
+msgstr "Emitido quando um botão é solto neste controle."
#: doc/classes/ARVRController.xml
msgid ""
@@ -7573,7 +8477,7 @@ msgstr ""
#: doc/classes/ARVRInterface.xml
msgid "Turns the interface off."
-msgstr ""
+msgstr "Desliga a interface."
#: doc/classes/ARVRInterface.xml
msgid "On an AR interface, [code]true[/code] if anchor detection is enabled."
@@ -7901,7 +8805,7 @@ msgstr ""
#: doc/classes/ARVRServer.xml
msgid "Removes this interface."
-msgstr ""
+msgstr "Remove esta interface."
#: doc/classes/ARVRServer.xml
msgid "Removes this positional tracker."
@@ -7919,11 +8823,11 @@ msgstr ""
#: doc/classes/ARVRServer.xml
msgid "Emitted when a new interface has been added."
-msgstr ""
+msgstr "Emitido quando uma nova interface é adicionada."
#: doc/classes/ARVRServer.xml
msgid "Emitted when an interface is removed."
-msgstr ""
+msgstr "Emitido quando uma interface é removida."
#: doc/classes/ARVRServer.xml
msgid ""
@@ -8641,7 +9545,7 @@ msgstr ""
#: doc/classes/AudioEffectChorus.xml
msgid "The voice's volume."
-msgstr ""
+msgstr "O volume da voz."
#: doc/classes/AudioEffectChorus.xml
msgid "The voice's pan level."
@@ -8653,7 +9557,7 @@ msgstr ""
#: doc/classes/AudioEffectChorus.xml
msgid "The amount of voices in the effect."
-msgstr ""
+msgstr "A quantidade de vozes no efeito."
#: doc/classes/AudioEffectChorus.xml
msgid "The effect's processed signal."
@@ -8816,7 +9720,7 @@ msgstr ""
#: doc/classes/AudioEffectDistortion.xml
msgid "Distortion power. Value can range from 0 to 1."
-msgstr ""
+msgstr "Poder de distorção. O valor pode variar de 0 a 1."
#: doc/classes/AudioEffectDistortion.xml
msgid ""
@@ -8826,7 +9730,7 @@ msgstr ""
#: doc/classes/AudioEffectDistortion.xml
msgid "Distortion type."
-msgstr ""
+msgstr "Tipo de distorção."
#: doc/classes/AudioEffectDistortion.xml
msgid ""
@@ -9542,7 +10446,7 @@ msgstr ""
#: doc/classes/AudioServer.xml
msgid "Emitted when the [AudioBusLayout] changes."
-msgstr ""
+msgstr "Emitido quando o [AudioBusLayout] muda."
#: doc/classes/AudioServer.xml
msgid "Two or fewer speakers were detected."
@@ -9738,7 +10642,7 @@ msgstr ""
#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
#: doc/classes/AudioStreamPlayer3D.xml
msgid "Stops the audio."
-msgstr ""
+msgstr "Para o áudio."
#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
msgid "If [code]true[/code], audio plays when added to scene tree."
@@ -9764,7 +10668,7 @@ msgstr ""
#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
#: doc/classes/AudioStreamPlayer3D.xml
msgid "If [code]true[/code], audio is playing."
-msgstr ""
+msgstr "Se [code]true[/code], o áudio está sendo reproduzido."
#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
msgid "The [AudioStream] object to be played."
@@ -9778,20 +10682,20 @@ msgstr ""
#: doc/classes/AudioStreamPlayer.xml
msgid "Volume of sound, in dB."
-msgstr ""
+msgstr "Volume do som, em dB."
#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
#: doc/classes/AudioStreamPlayer3D.xml
msgid "Emitted when the audio stops playing."
-msgstr ""
+msgstr "Emitido quando o áudio para de reproduzir."
#: doc/classes/AudioStreamPlayer.xml
msgid "The audio will be played only on the first channel."
-msgstr ""
+msgstr "O áudio será tocado somente no primeiro canal."
#: doc/classes/AudioStreamPlayer.xml
msgid "The audio will be played on all surround channels."
-msgstr ""
+msgstr "O áudio será reproduzido em todos os canais surround."
#: doc/classes/AudioStreamPlayer.xml
msgid ""
@@ -9800,7 +10704,7 @@ msgstr ""
#: doc/classes/AudioStreamPlayer2D.xml
msgid "Plays positional sound in 2D space."
-msgstr ""
+msgstr "Reproduz um som posicional em espaço 2D."
#: doc/classes/AudioStreamPlayer2D.xml
msgid ""
@@ -9846,7 +10750,7 @@ msgstr ""
#: doc/classes/AudioStreamPlayer3D.xml
msgid "Plays positional sound in 3D space."
-msgstr ""
+msgstr "Reproduz um som posicional em espaço 3D."
#: doc/classes/AudioStreamPlayer3D.xml
msgid ""
@@ -10099,11 +11003,11 @@ msgstr ""
#: doc/classes/AudioStreamSample.xml
msgid "8-bit audio codec."
-msgstr ""
+msgstr "Codec de áudio 8-bits."
#: doc/classes/AudioStreamSample.xml
msgid "16-bit audio codec."
-msgstr ""
+msgstr "Codec de áudio 16-bits."
#: doc/classes/AudioStreamSample.xml
msgid "Audio is compressed using IMA ADPCM."
@@ -10111,7 +11015,7 @@ msgstr ""
#: doc/classes/AudioStreamSample.xml
msgid "Audio does not loop."
-msgstr ""
+msgstr "O áudio não repete."
#: doc/classes/AudioStreamSample.xml
msgid ""
@@ -10383,7 +11287,7 @@ msgstr ""
#: doc/classes/BakedLightmap.xml doc/classes/SpatialMaterial.xml
msgid "Currently unused."
-msgstr ""
+msgstr "Atualmente inutilizado."
#: doc/classes/BakedLightmap.xml
msgid "Returns when the baker cannot save per-mesh textures to file."
@@ -10517,7 +11421,7 @@ msgstr ""
#: doc/classes/BaseButton.xml
msgid "[ButtonGroup] associated to the button."
-msgstr ""
+msgstr "[ButtonGroup] associado ao botão."
#: doc/classes/BaseButton.xml
msgid ""
@@ -10556,11 +11460,11 @@ msgstr ""
#: doc/classes/BaseButton.xml
msgid "Emitted when the button starts being held down."
-msgstr ""
+msgstr "Emitido quando um botão começa a ser pressionado."
#: doc/classes/BaseButton.xml
msgid "Emitted when the button stops being held down."
-msgstr ""
+msgstr "Emitido quando um botão para de ser pressionado."
#: doc/classes/BaseButton.xml
msgid ""
@@ -10853,6 +11757,10 @@ msgid ""
"that position is equal to [code]threshold[/code] or less, and [code]true[/"
"code] in other case."
msgstr ""
+"Cria um bitmap que corresponde às dimensões de imagem fornecidas, cada "
+"elemento do bitmap é definido como [code]false[/code] se o valor alfa da "
+"imagem nessa posição for igual a [code]threshold[/code] ou menos e "
+"[code]true[/code] em outro caso."
#: doc/classes/BitMap.xml
msgid "Returns bitmap's value at the specified position."
@@ -11155,7 +12063,7 @@ msgstr ""
#: doc/classes/Button.xml
msgid "Standard themed Button."
-msgstr ""
+msgstr "Botão temático padrão."
#: doc/classes/Button.xml
msgid ""
@@ -11227,19 +12135,19 @@ msgstr ""
#: doc/classes/Button.xml
msgid "Align the text to the left."
-msgstr ""
+msgstr "Alinha o texto pela esquerda."
#: doc/classes/Button.xml
msgid "Align the text to the center."
-msgstr ""
+msgstr "Alinha o texto pelo centro."
#: doc/classes/Button.xml
msgid "Align the text to the right."
-msgstr ""
+msgstr "Alinha o texto pela direita."
#: doc/classes/Button.xml
msgid "Default text [Color] of the [Button]."
-msgstr ""
+msgstr "[Color] do texto padrão do [Button]."
#: doc/classes/Button.xml
msgid "Text [Color] used when the [Button] is disabled."
@@ -11293,7 +12201,7 @@ msgstr ""
#: doc/classes/ButtonGroup.xml
msgid "Group of Buttons."
-msgstr ""
+msgstr "Grupo de botões."
#: doc/classes/ButtonGroup.xml
msgid ""
@@ -11314,7 +12222,7 @@ msgstr ""
#: doc/classes/ButtonGroup.xml
msgid "Emitted when one of the buttons of the group is pressed."
-msgstr ""
+msgstr "Emitido quando um dos botões do grupo é pressionado."
#: doc/classes/Camera.xml
msgid "Camera node, displays from a point of view."
@@ -11600,7 +12508,7 @@ msgstr ""
#: doc/classes/Camera2D.xml
msgid "Camera node for 2D scenes."
-msgstr ""
+msgstr "Nó de câmara para cenas 2D."
#: doc/classes/Camera2D.xml
msgid ""
@@ -11761,6 +12669,7 @@ msgstr ""
msgid ""
"If [code]true[/code], draws the camera's limits rectangle in the editor."
msgstr ""
+"Se [code]true[/code], desenha o retângulo dos limites da câmara no editor."
#: doc/classes/Camera2D.xml
msgid ""
@@ -11877,7 +12786,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11924,7 +12833,7 @@ msgstr ""
#: doc/classes/CameraFeed.xml
msgid "Unspecified position."
-msgstr ""
+msgstr "Posição não especificada."
#: doc/classes/CameraFeed.xml
msgid "Camera is mounted at the front of the device."
@@ -11942,11 +12851,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11954,23 +12865,27 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Retorna o nome do nó em [code]idx[/code]."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr ""
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "Retorna o tipo do nó em at [code]idx[/code]."
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11978,7 +12893,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12018,7 +12933,7 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid "Base class of anything 2D."
-msgstr ""
+msgstr "Classe base de qualquer coisa 2D."
#: doc/classes/CanvasItem.xml
msgid ""
@@ -12064,8 +12979,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12075,17 +12991,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12096,16 +13018,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12117,27 +13045,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12225,7 +13165,7 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid "Returns the global position of the mouse."
-msgstr ""
+msgstr "Retorna a posição global do mouse."
#: doc/classes/CanvasItem.xml
msgid "Returns the global transform matrix of this item."
@@ -12257,7 +13197,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12316,7 +13258,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12338,7 +13281,7 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid "The color applied to textures on this [CanvasItem]."
-msgstr ""
+msgstr "A cor aplicada às texturas neste [CanvasItem]."
#: doc/classes/CanvasItem.xml
msgid ""
@@ -12348,11 +13291,11 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid "If [code]true[/code], the object draws behind its parent."
-msgstr ""
+msgstr "Se [code]true[/code], o objeto é desenhado por trás do pai dele."
#: doc/classes/CanvasItem.xml
msgid "If [code]true[/code], the object draws on top of its parent."
-msgstr ""
+msgstr "Se [code]true[/code], o objeto é desenhado por cima do pai dele."
#: doc/classes/CanvasItem.xml
msgid ""
@@ -12396,24 +13339,28 @@ msgid ""
"Mix blending mode. Colors are assumed to be independent of the alpha "
"(opacity) value."
msgstr ""
+"Modo de mesclagem 'Mistura'. As cores são consideradas independentes do "
+"valor alfa (opacidade)."
#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
msgid "Additive blending mode."
-msgstr ""
+msgstr "Modo de mesclagem aditivo."
#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
msgid "Subtractive blending mode."
-msgstr ""
+msgstr "Modo de mesclagem subtrativo."
#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
msgid "Multiplicative blending mode."
-msgstr ""
+msgstr "Modo de mesclagem multiplicativo."
#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
msgid ""
"Mix blending mode. Colors are assumed to be premultiplied by the alpha "
"(opacity) value."
msgstr ""
+"Modo de mesclagem 'Mistura'. As cores são consideradas previamente "
+"multiplicadas pelo valor alfa (opacidade)."
#: doc/classes/CanvasItem.xml
msgid ""
@@ -12447,7 +13394,7 @@ msgstr ""
#: doc/classes/CanvasItemMaterial.xml
msgid "A material for [CanvasItem]s."
-msgstr ""
+msgstr "Um material para [CanvasItem]s."
#: doc/classes/CanvasItemMaterial.xml
msgid ""
@@ -12504,18 +13451,20 @@ msgid ""
"Render the material using both light and non-light sensitive material "
"properties."
msgstr ""
+"Renderizar o material utilizando propriedades de material sensíveis e não "
+"sensíveis à luz."
#: doc/classes/CanvasItemMaterial.xml
msgid "Render the material as if there were no light."
-msgstr ""
+msgstr "Renderizar o material como se não houvesse luz."
#: doc/classes/CanvasItemMaterial.xml
msgid "Render the material as if there were only light."
-msgstr ""
+msgstr "Renderizar o material como se houvesse apenas luz."
#: doc/classes/CanvasLayer.xml
msgid "Canvas drawing layer."
-msgstr ""
+msgstr "Camada para desenhar no ecrã."
#: doc/classes/CanvasLayer.xml
msgid ""
@@ -12526,6 +13475,13 @@ msgid ""
"index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or "
"above), or backgrounds (in layer -1 or below)."
msgstr ""
+"Camada para desenhar no ecrã. Nós [CanvasItem] que sejam filhos diretos ou "
+"indiretos de um nó [CanvasLayer] serão desenhados nessa camada. A camada é "
+"um índice numérico que define a ordem de renderização. A cena 2D padrão é "
+"desenhada com um índice 0, então um nó [CanvasLayer] com índice -1 será "
+"desenhado embaixo e um com índice 1 será desenhado acima. Isso é muito útil "
+"para menus e informações (na camada 1 ou acima), ou planos de fundo (na "
+"camada -1 ou abaixo)."
#: doc/classes/CanvasLayer.xml
msgid "$DOCS_URL/tutorials/2d/canvas_layers.html"
@@ -12533,19 +13489,22 @@ msgstr ""
#: doc/classes/CanvasLayer.xml
msgid "Returns the RID of the canvas used by this layer."
-msgstr ""
+msgstr "Retorna o RID do ecrã usada por essa camada."
#: doc/classes/CanvasLayer.xml
msgid ""
"The custom [Viewport] node assigned to the [CanvasLayer]. If [code]null[/"
"code], uses the default viewport instead."
msgstr ""
+"O nó [Viewport] designado ao [CanvasLayer]. Se for [code]null[/code], usa o "
+"[Viewport] padrão da janela."
#: doc/classes/CanvasLayer.xml
msgid ""
"Sets the layer to follow the viewport in order to simulate a pseudo 3D "
"effect."
msgstr ""
+"Define que a camada irá seguir a janela para simular um efeito pseudo-3D."
#: doc/classes/CanvasLayer.xml
msgid ""
@@ -12553,30 +13512,35 @@ msgid ""
"into the foreground should have increasing scales, while layers moving into "
"the background should have decreasing scales."
msgstr ""
+"Redimensiona a camada ao usar [member follow_viewport_enable]. Camadas "
+"movendo em primeiro plano devem ter escalas crescentes, enquanto camadas do "
+"plano de fundo devem ter escalas decrescentes."
#: doc/classes/CanvasLayer.xml
msgid "Layer index for draw order. Lower values are drawn first."
msgstr ""
+"Ãndice da camada para ordem de renderização. Valores menores são desenhados "
+"primeiro."
#: doc/classes/CanvasLayer.xml
msgid "The layer's base offset."
-msgstr ""
+msgstr "O deslocamento base da camada."
#: doc/classes/CanvasLayer.xml
msgid "The layer's rotation in radians."
-msgstr ""
+msgstr "A rotação da camada em radianos."
#: doc/classes/CanvasLayer.xml
msgid "The layer's rotation in degrees."
-msgstr ""
+msgstr "A rotação da camada em graus."
#: doc/classes/CanvasLayer.xml
msgid "The layer's scale."
-msgstr ""
+msgstr "O tamanho da camada."
#: doc/classes/CanvasLayer.xml
msgid "The layer's transform."
-msgstr ""
+msgstr "A transformação da camada."
#: doc/classes/CanvasModulate.xml
msgid "Tint the entire canvas."
@@ -12617,11 +13581,11 @@ msgstr ""
#: doc/classes/CapsuleShape.xml
msgid "Capsule shape for collisions."
-msgstr ""
+msgstr "Formato de cápsula para colisões."
#: doc/classes/CapsuleShape.xml doc/classes/CapsuleShape2D.xml
msgid "The capsule's height."
-msgstr ""
+msgstr "A altura da cápsula."
#: doc/classes/CapsuleShape.xml doc/classes/CapsuleShape2D.xml
msgid "The capsule's radius."
@@ -12629,11 +13593,11 @@ msgstr ""
#: doc/classes/CapsuleShape2D.xml
msgid "Capsule shape for 2D collisions."
-msgstr ""
+msgstr "Formato de cápsula para colisões 2D."
#: doc/classes/CenterContainer.xml
msgid "Keeps children controls centered."
-msgstr ""
+msgstr "Mantém os controles dos filhos centralizados."
#: doc/classes/CenterContainer.xml
msgid ""
@@ -12667,11 +13631,12 @@ msgstr ""
msgid ""
"https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project"
msgstr ""
+"https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project"
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12720,6 +13685,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -12939,7 +13910,7 @@ msgstr ""
#: doc/classes/CircleShape2D.xml
msgid "Circular shape for 2D collisions."
-msgstr ""
+msgstr "Formato circular para colisões 2D."
#: doc/classes/CircleShape2D.xml
msgid ""
@@ -13076,7 +14047,7 @@ msgstr ""
#: doc/classes/ClassDB.xml
msgid "Returns the names of all the classes available."
-msgstr ""
+msgstr "Retorna os nomes de todas as classes disponíveis."
#: doc/classes/ClassDB.xml
msgid ""
@@ -13180,7 +14151,7 @@ msgstr ""
#: doc/classes/CollisionObject.xml
msgid "Base node for collision objects."
-msgstr ""
+msgstr "Nó base para objetos de colisão."
#: doc/classes/CollisionObject.xml
msgid ""
@@ -13219,8 +14190,9 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
-msgstr ""
+msgstr "Retorna o [RID] do objeto."
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
msgid ""
@@ -13350,7 +14322,7 @@ msgstr ""
#: doc/classes/CollisionObject2D.xml
msgid "Base node for 2D collision objects."
-msgstr ""
+msgstr "Nó base para objetos de colisão 2D."
#: doc/classes/CollisionObject2D.xml
msgid ""
@@ -13488,7 +14460,7 @@ msgstr ""
#: doc/classes/CollisionPolygon.xml
msgid "If [code]true[/code], no collision will be produced."
-msgstr ""
+msgstr "Se [code]true[/code], não se produzirá colisões."
#: doc/classes/CollisionPolygon.xml
msgid ""
@@ -13508,7 +14480,7 @@ msgstr ""
#: doc/classes/CollisionPolygon2D.xml
msgid "Defines a 2D collision polygon."
-msgstr ""
+msgstr "Define um polígono de colisão 2D."
#: doc/classes/CollisionPolygon2D.xml
msgid ""
@@ -13641,9 +14613,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13720,6 +14692,14 @@ msgid ""
"var blended_color = bg.blend(fg) # Brown with alpha of 75%\n"
"[/codeblock]"
msgstr ""
+"Retorna uma nova cor resultante da mistura dessa cor com outra. Se a cor for "
+"opaca, o resultado também será opaco. A segunda cor pode ter uma faixa de "
+"valores alfa.\n"
+"[codeblock]\n"
+"var bg = Color(0.0, 1.0, 0.0, 0.5) # Verde com o valor alfa em 50%\n"
+"var fg = Color(1.0, 0.0, 0.0, 0.5) # Vermelho com o valor alfa em 50%\n"
+"var blended_color = bg.blend(fg) # Marrom com o valor alfa em 75%\n"
+"[/codeblock]"
#: doc/classes/Color.xml
msgid ""
@@ -13883,7 +14863,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -13956,7 +14938,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Black color."
-msgstr ""
+msgstr "Cor Preta."
#: doc/classes/Color.xml
msgid "Blanche almond color."
@@ -13964,7 +14946,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Blue color."
-msgstr ""
+msgstr "Cor azul."
#: doc/classes/Color.xml
msgid "Blue violet color."
@@ -13972,7 +14954,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Brown color."
-msgstr ""
+msgstr "Cor marrom."
#: doc/classes/Color.xml
msgid "Burly wood color."
@@ -14120,7 +15102,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Gold color."
-msgstr ""
+msgstr "Cor dourada."
#: doc/classes/Color.xml
msgid "Goldenrod color."
@@ -14128,11 +15110,11 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Gray color."
-msgstr ""
+msgstr "Cor cinzento."
#: doc/classes/Color.xml
msgid "Green color."
-msgstr ""
+msgstr "Cor verde."
#: doc/classes/Color.xml
msgid "Green yellow color."
@@ -14180,7 +15162,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Light blue color."
-msgstr ""
+msgstr "Cor azul claro."
#: doc/classes/Color.xml
msgid "Light coral color."
@@ -14244,7 +15226,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Magenta color."
-msgstr ""
+msgstr "Cor magenta."
#: doc/classes/Color.xml
msgid "Maroon color."
@@ -14364,7 +15346,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Pink color."
-msgstr ""
+msgstr "Cor rosa."
#: doc/classes/Color.xml
msgid "Plum color."
@@ -14376,7 +15358,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Purple color."
-msgstr ""
+msgstr "Cor roxa."
#: doc/classes/Color.xml
msgid "Rebecca purple color."
@@ -14384,7 +15366,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Red color."
-msgstr ""
+msgstr "Cor vermelha."
#: doc/classes/Color.xml
msgid "Rosy brown color."
@@ -14420,7 +15402,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Silver color."
-msgstr ""
+msgstr "Cor prata."
#: doc/classes/Color.xml
msgid "Sky blue color."
@@ -14496,7 +15478,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "White color."
-msgstr ""
+msgstr "Cor branca."
#: doc/classes/Color.xml
msgid "White smoke color."
@@ -14504,7 +15486,7 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Yellow color."
-msgstr ""
+msgstr "Cor amarela."
#: doc/classes/Color.xml
msgid "Yellow green color."
@@ -14551,8 +15533,9 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
-msgstr ""
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
+msgstr "Se [code]true[/code], o objeto é desenhado por cima do pai dele."
#: doc/classes/ColorPicker.xml
msgid ""
@@ -14579,7 +15562,7 @@ msgstr ""
#: doc/classes/ColorPicker.xml
msgid "Emitted when the color is changed."
-msgstr ""
+msgstr "Emitido quando a cor muda."
#: doc/classes/ColorPicker.xml
msgid "Emitted when a preset is added."
@@ -14664,7 +15647,7 @@ msgstr ""
#: doc/classes/ColorPickerButton.xml
msgid "Emitted when the color changes."
-msgstr ""
+msgstr "Emitido quando a cor muda."
#: doc/classes/ColorPickerButton.xml
msgid ""
@@ -14674,7 +15657,7 @@ msgstr ""
#: doc/classes/ColorPickerButton.xml
msgid "Emitted when the [ColorPicker] is closed."
-msgstr ""
+msgstr "Emitido quando o [ColorPicker] é fechado."
#: doc/classes/ColorPickerButton.xml
msgid "Default text [Color] of the [ColorPickerButton]."
@@ -14736,7 +15719,7 @@ msgstr ""
#: doc/classes/ColorRect.xml
msgid "Colored rectangle."
-msgstr ""
+msgstr "Retângulo colorido."
#: doc/classes/ColorRect.xml
msgid ""
@@ -15050,7 +16033,7 @@ msgstr ""
#: doc/classes/Container.xml
msgid "Base node for containers."
-msgstr ""
+msgstr "Nó base para os containers."
#: doc/classes/Container.xml
msgid ""
@@ -15073,7 +16056,7 @@ msgstr ""
#: doc/classes/Container.xml
msgid "Emitted when sorting the children is needed."
-msgstr ""
+msgstr "Emitido quando se é necessário organizar os filhos."
#: doc/classes/Container.xml
msgid ""
@@ -15485,7 +16468,7 @@ msgstr ""
#: doc/classes/Control.xml
msgid "Returns the rotation (in radians)."
-msgstr ""
+msgstr "Retorna a rotação (em radianos)."
#: doc/classes/Control.xml
msgid ""
@@ -16005,6 +16988,8 @@ msgid ""
"The node's global position, relative to the world (usually to the top-left "
"corner of the window)."
msgstr ""
+"A posição global do nó, em relação ao mundo (geralmente no canto superior "
+"esquerdo da janela)."
#: doc/classes/Control.xml
msgid ""
@@ -16089,19 +17074,19 @@ msgstr ""
#: doc/classes/Control.xml
msgid "Emitted when the node gains keyboard focus."
-msgstr ""
+msgstr "Emitido quando o nó ganha foco do teclado."
#: doc/classes/Control.xml
msgid "Emitted when the node loses keyboard focus."
-msgstr ""
+msgstr "Emitido quando o nó perde foco do teclado."
#: doc/classes/Control.xml
msgid "Emitted when the node receives an [InputEvent]."
-msgstr ""
+msgstr "Emitido quando o nó recebe um [InputEvent]."
#: doc/classes/Control.xml
msgid "Emitted when the node's minimum size changes."
-msgstr ""
+msgstr "Emitido quando o tamanho mínimo do nó muda."
#: doc/classes/Control.xml
msgid "Emitted when a modal [Control] is closed. See [method show_modal]."
@@ -16128,7 +17113,7 @@ msgstr ""
#: doc/classes/Control.xml
msgid "Emitted when the control changes size."
-msgstr ""
+msgstr "Emitido quando o controle muda de tamanho."
#: doc/classes/Control.xml
msgid ""
@@ -16158,11 +17143,11 @@ msgstr ""
#: doc/classes/Control.xml
msgid "Sent when the mouse pointer enters the node."
-msgstr ""
+msgstr "Enviado quando o ponteiro do mouse entra no nó."
#: doc/classes/Control.xml
msgid "Sent when the mouse pointer exits the node."
-msgstr ""
+msgstr "Enviado quando o ponteiro do mouse sai do nó."
#: doc/classes/Control.xml
msgid "Sent when the node grabs focus."
@@ -16410,19 +17395,19 @@ msgstr ""
#: doc/classes/Control.xml
msgid "The control will be resized to its minimum size."
-msgstr ""
+msgstr "O controle será redimensionado ao seu tamanho mínimo."
#: doc/classes/Control.xml
msgid "The control's width will not change."
-msgstr ""
+msgstr "A largura do controle não irá mudar."
#: doc/classes/Control.xml
msgid "The control's height will not change."
-msgstr ""
+msgstr "A altura do controle não irá mudar."
#: doc/classes/Control.xml
msgid "The control's size will not change."
-msgstr ""
+msgstr "O tamanho do controle não irá mudar."
#: doc/classes/Control.xml
msgid ""
@@ -16565,7 +17550,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -16608,7 +17595,7 @@ msgstr ""
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
msgid "Restarts the particle emitter."
-msgstr ""
+msgstr "Reinicia o emissor de partículas."
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
msgid "Sets the base value of the parameter specified by [enum Parameter]."
@@ -16682,7 +17669,7 @@ msgstr ""
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/ParticlesMaterial.xml
msgid "Particle animation speed."
-msgstr ""
+msgstr "Velocidade da animação das partículas."
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
msgid "Each particle's animation speed will vary along this [Curve]."
@@ -17100,15 +18087,17 @@ msgstr ""
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
msgid "Use with [method set_particle_flag] to set [member flag_align_y]."
-msgstr ""
+msgstr "Use com [method set_particle_flag] para definir [member flag_align_y]."
#: doc/classes/CPUParticles.xml
msgid "Use with [method set_particle_flag] to set [member flag_rotate_y]."
msgstr ""
+"Use com [method set_particle_flag] para definir [member flag_rotate_y]."
#: doc/classes/CPUParticles.xml
msgid "Use with [method set_particle_flag] to set [member flag_disable_z]."
msgstr ""
+"Use com [method set_particle_flag] para definir [member flag_disable_z]."
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/GeometryInstance.xml doc/classes/ParticlesMaterial.xml
@@ -17155,7 +18144,7 @@ msgstr ""
#: doc/classes/CPUParticles2D.xml
msgid "CPU-based 2D particle emitter."
-msgstr ""
+msgstr "Emissor de partículas 2D baseado em CPU."
#: doc/classes/CPUParticles2D.xml
msgid ""
@@ -17233,6 +18222,8 @@ msgstr ""
#: doc/classes/CPUParticles2D.xml doc/classes/Particles2D.xml
msgid "Particle texture. If [code]null[/code], particles will be squares."
msgstr ""
+"A textura das partículas. Se [code]null[/code], as partículas serão "
+"quadrados."
#: doc/classes/CPUParticles2D.xml
msgid "Present for consistency with 3D particle nodes, not used in 2D."
@@ -17246,7 +18237,7 @@ msgstr ""
#: doc/classes/CPUParticles2D.xml
msgid "Particles will be emitted in the area of a rectangle."
-msgstr ""
+msgstr "As partículas serão emitidas na área do retângulo."
#: doc/classes/Crypto.xml
msgid "Access to advanced cryptographic functionalities."
@@ -17478,7 +18469,7 @@ msgstr ""
#: modules/csg/doc_classes/CSGCylinder.xml
msgid "The height of the cylinder."
-msgstr ""
+msgstr "A altura do cilindro."
#: modules/csg/doc_classes/CSGCylinder.xml
msgid "The material used to render the cylinder."
@@ -17879,7 +18870,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -17900,7 +18891,7 @@ msgstr ""
#: doc/classes/CubeMap.xml
msgid "Returns the [CubeMap]'s height."
-msgstr ""
+msgstr "Retorna a altura do [CubeMap]."
#: doc/classes/CubeMap.xml
msgid ""
@@ -18114,7 +19105,7 @@ msgstr ""
#: doc/classes/Curve.xml
msgid "A mathematic curve."
-msgstr ""
+msgstr "Uma curva matemática."
#: doc/classes/Curve.xml
msgid ""
@@ -18144,7 +19135,7 @@ msgstr ""
#: doc/classes/Curve.xml doc/classes/Curve2D.xml doc/classes/Curve3D.xml
msgid "Removes all points from the curve."
-msgstr ""
+msgstr "Remove todos os pontos da curva."
#: doc/classes/Curve.xml doc/classes/Curve2D.xml doc/classes/Curve3D.xml
msgid "Returns the number of points describing the curve."
@@ -18537,7 +19528,7 @@ msgstr ""
#: doc/classes/CurveTexture.xml
msgid "A texture that shows a curve."
-msgstr ""
+msgstr "Uma textura que exibe uma curva."
#: doc/classes/CurveTexture.xml
msgid ""
@@ -18551,7 +19542,7 @@ msgstr ""
#: doc/classes/CurveTexture.xml
msgid "The width of the texture."
-msgstr ""
+msgstr "A largura de uma textura."
#: doc/classes/CylinderMesh.xml
msgid "Class representing a cylindrical [PrimitiveMesh]."
@@ -18603,7 +19594,7 @@ msgstr ""
#: doc/classes/CylinderShape.xml
msgid "The cylinder's height."
-msgstr ""
+msgstr "A altura do cilindro."
#: doc/classes/CylinderShape.xml
msgid "The cylinder's radius."
@@ -19330,7 +20321,7 @@ msgstr ""
#: doc/classes/DynamicFont.xml
msgid "The font size in pixels."
-msgstr ""
+msgstr "O tamanho da fonte em pixels."
#: doc/classes/DynamicFont.xml
msgid ""
@@ -19389,6 +20380,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19406,11 +20404,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19490,8 +20490,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19713,15 +20724,15 @@ msgstr ""
#: doc/classes/EditorFileDialog.xml
msgid "Emitted when a directory is selected."
-msgstr ""
+msgstr "Emitido quando um diretório é selecionado."
#: doc/classes/EditorFileDialog.xml
msgid "Emitted when a file is selected."
-msgstr ""
+msgstr "Emitido quando um ficheiro é selecionado."
#: doc/classes/EditorFileDialog.xml
msgid "Emitted when multiple files are selected."
-msgstr ""
+msgstr "Emitido quando múltiplos ficheiros são selecionados."
#: doc/classes/EditorFileDialog.xml
msgid ""
@@ -19934,10 +20945,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -19986,7 +20996,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20116,7 +21128,7 @@ msgstr ""
#: doc/classes/EditorInspector.xml
msgid "Emitted when a property is edited in the inspector."
-msgstr ""
+msgstr "Emitido quando uma propriedade é editada no inspetor."
#: doc/classes/EditorInspector.xml
msgid ""
@@ -20127,7 +21139,7 @@ msgstr ""
#: doc/classes/EditorInspector.xml
msgid "Emitted when a property is selected in the inspector."
-msgstr ""
+msgstr "Emitido quando uma propriedade é selecionada no inspetor."
#: doc/classes/EditorInspector.xml
msgid ""
@@ -20139,7 +21151,7 @@ msgstr ""
#: doc/classes/EditorInspector.xml
msgid "Emitted when a resource is selected in the inspector."
-msgstr ""
+msgstr "Emitido quando um recurso é selecionado no inspetor."
#: doc/classes/EditorInspector.xml
msgid ""
@@ -20153,8 +21165,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20163,7 +21175,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -20364,7 +21378,7 @@ msgstr ""
#: doc/classes/EditorInterface.xml
msgid "Plays the currently active scene."
-msgstr ""
+msgstr "Reproduz a cena atualmente ativa."
#: doc/classes/EditorInterface.xml
msgid "Plays the scene specified by its filepath."
@@ -20372,7 +21386,7 @@ msgstr ""
#: doc/classes/EditorInterface.xml
msgid "Plays the main scene."
-msgstr ""
+msgstr "Reproduz a cena principal."
#: doc/classes/EditorInterface.xml
msgid "Reloads the scene at the given path."
@@ -20386,7 +21400,7 @@ msgstr ""
#: doc/classes/EditorInterface.xml
msgid "Saves the scene as a file at [code]path[/code]."
-msgstr ""
+msgstr "Salva a cena como um ficheiro em [code]path[/code]."
#: doc/classes/EditorInterface.xml
msgid ""
@@ -20909,6 +21923,8 @@ msgid ""
"Emitted when user closes a scene. The argument is file path to a closed "
"scene."
msgstr ""
+"Emitido quando o utilizador fecha uma cena. O argumento é um caminho de "
+"ficheiro para uma cena fechada."
#: doc/classes/EditorPlugin.xml
msgid "Represents the size of the [enum DockSlot] enum."
@@ -21015,7 +22031,7 @@ msgstr ""
#: doc/classes/EditorProperty.xml
msgid "Emitted when a property was checked. Used internally."
-msgstr ""
+msgstr "Emitido quando uma propriedade é checada. Usado internamente."
#: doc/classes/EditorProperty.xml
msgid ""
@@ -21043,7 +22059,7 @@ msgstr ""
#: doc/classes/EditorProperty.xml
msgid "Emitted when selected. Used internally."
-msgstr ""
+msgstr "Emitido quando selecionado. Usado internamente."
#: doc/classes/EditorResourcePicker.xml
msgid "Godot editor's control for selecting [Resource] type properties."
@@ -21233,6 +22249,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21402,7 +22426,7 @@ msgstr ""
#: doc/classes/EditorSelection.xml
msgid "Clear the selection."
-msgstr ""
+msgstr "Limpa a seleção."
#: doc/classes/EditorSelection.xml
msgid "Gets the list of selected nodes."
@@ -21421,7 +22445,7 @@ msgstr ""
#: doc/classes/EditorSelection.xml
msgid "Emitted when the selection changes."
-msgstr ""
+msgstr "Emitido quando a seleção muda."
#: doc/classes/EditorSettings.xml
msgid "Object that holds the project-independent editor settings."
@@ -21537,7 +22561,7 @@ msgstr ""
#: doc/classes/EditorSettings.xml
msgid "Sets the list of favorite files and directories for this project."
-msgstr ""
+msgstr "Define a lista de ficheiros e diretórios favoritos para este projeto."
#: doc/classes/EditorSettings.xml
msgid ""
@@ -21706,10 +22730,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22046,7 +23072,7 @@ msgstr ""
#: doc/classes/Engine.xml
msgid "Returns Godot license text."
-msgstr ""
+msgstr "Retorna o texto da licença do Godot."
#: doc/classes/Engine.xml
msgid "Returns the main loop object (see [MainLoop] and [SceneTree])."
@@ -22186,7 +23212,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22292,7 +23318,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid "The ambient light's [Color]."
-msgstr ""
+msgstr "A [Color] da luz do ambiente."
#: doc/classes/Environment.xml
msgid ""
@@ -22815,7 +23841,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -22942,7 +23968,7 @@ msgstr ""
#: doc/classes/ExternalTexture.xml
msgid "External texture size."
-msgstr ""
+msgstr "Tamanho da textura externa."
#: doc/classes/File.xml
msgid "Type to handle file reading and writing operations."
@@ -23096,7 +24122,7 @@ msgstr ""
#: doc/classes/File.xml
msgid "Returns the size of the file in bytes."
-msgstr ""
+msgstr "Retorna o tamanho do ficheiro em bytes."
#: doc/classes/File.xml
msgid ""
@@ -23471,7 +24497,7 @@ msgstr ""
#: doc/classes/FileDialog.xml
msgid "Emitted when the user selects a directory."
-msgstr ""
+msgstr "Emitido quando o utilizador seleciona um diretório."
#: doc/classes/FileDialog.xml
msgid ""
@@ -23481,7 +24507,7 @@ msgstr ""
#: doc/classes/FileDialog.xml
msgid "Emitted when the user selects multiple files."
-msgstr ""
+msgstr "Emitido quando o utilizador seleciona múltiplos ficheiros."
#: doc/classes/FileDialog.xml
msgid "The dialog allows selecting one, and only one file."
@@ -23537,11 +24563,11 @@ msgstr ""
#: doc/classes/FileDialog.xml
msgid "Custom icon for files."
-msgstr ""
+msgstr "Ãcone personalizado para ficheiros."
#: doc/classes/FileDialog.xml
msgid "Custom icon for folders."
-msgstr ""
+msgstr "Ãcone personalizado para diretórios."
#: doc/classes/FileDialog.xml
msgid "Custom icon for the parent folder arrow."
@@ -23749,11 +24775,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -23826,7 +24852,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -25363,7 +26389,7 @@ msgstr ""
#: doc/classes/GraphEdit.xml
msgid "Emitted when the user presses [code]Ctrl + C[/code]."
-msgstr ""
+msgstr "Emitido quando o utilizador pressiona [code]Ctrl + C[/code]."
#: doc/classes/GraphEdit.xml
msgid "Emitted when a GraphNode is attempted to be removed from the GraphEdit."
@@ -25387,7 +26413,7 @@ msgstr ""
#: doc/classes/GraphEdit.xml
msgid "Emitted when the user presses [code]Ctrl + V[/code]."
-msgstr ""
+msgstr "Emitido quando o utilizador pressiona [code]Ctrl + V[/code]."
#: doc/classes/GraphEdit.xml
msgid ""
@@ -25790,7 +26816,7 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid "Node for 3D tile-based maps."
-msgstr ""
+msgstr "Nó para mapas 3D baseados em mosaicos."
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
@@ -25938,6 +26964,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26166,7 +27198,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26189,7 +27221,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -26282,7 +27314,7 @@ msgstr ""
#: doc/classes/HSeparator.xml
msgid "Horizontal separator."
-msgstr ""
+msgstr "Separador horizontal."
#: doc/classes/HSeparator.xml
msgid ""
@@ -27469,11 +28501,11 @@ msgstr ""
#: doc/classes/Image.xml
msgid "Flips the image horizontally."
-msgstr ""
+msgstr "Inverte a imagem horizontalmente."
#: doc/classes/Image.xml
msgid "Flips the image vertically."
-msgstr ""
+msgstr "Inverte a imagem verticalmente."
#: doc/classes/Image.xml
msgid ""
@@ -27494,11 +28526,11 @@ msgstr ""
#: doc/classes/Image.xml
msgid "Returns the image's format. See [enum Format] constants."
-msgstr ""
+msgstr "Retorna o formato da imagem. Veja os constantes [enum Format]."
#: doc/classes/Image.xml
msgid "Returns the image's height."
-msgstr ""
+msgstr "Retorna a altura da imagem."
#: doc/classes/Image.xml
msgid ""
@@ -27540,7 +28572,7 @@ msgstr ""
#: doc/classes/Image.xml
msgid "Returns the image's width."
-msgstr ""
+msgstr "Retorna a largura da imagem."
#: doc/classes/Image.xml
msgid "Returns [code]true[/code] if the image has generated mipmaps."
@@ -28024,7 +29056,7 @@ msgstr ""
#: doc/classes/Image.xml
msgid "Image does not have alpha."
-msgstr ""
+msgstr "A imagem não contém alfa."
#: doc/classes/Image.xml
msgid "Image stores alpha in a single bit."
@@ -28032,27 +29064,27 @@ msgstr ""
#: doc/classes/Image.xml
msgid "Image uses alpha."
-msgstr ""
+msgstr "A Imagem usa alpha."
#: doc/classes/Image.xml
msgid "Use S3TC compression."
-msgstr ""
+msgstr "Use a compressão S3TC."
#: doc/classes/Image.xml
msgid "Use PVRTC2 compression."
-msgstr ""
+msgstr "Use a compressão PVRTC2."
#: doc/classes/Image.xml
msgid "Use PVRTC4 compression."
-msgstr ""
+msgstr "Use a compressão PVRTC4."
#: doc/classes/Image.xml
msgid "Use ETC compression."
-msgstr ""
+msgstr "Use a compressão ETC."
#: doc/classes/Image.xml
msgid "Use ETC2 compression."
-msgstr ""
+msgstr "Use a compressão ETC2."
#: doc/classes/Image.xml
msgid ""
@@ -28072,7 +29104,7 @@ msgstr ""
#: doc/classes/ImageTexture.xml
msgid "A [Texture] based on an [Image]."
-msgstr ""
+msgstr "Uma [Texture] baseada numa [Image]."
#: doc/classes/ImageTexture.xml
msgid ""
@@ -28463,7 +29495,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28484,7 +29520,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28503,8 +29543,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28517,7 +29566,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28833,7 +29891,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28861,7 +29923,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29053,6 +30119,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29069,15 +30232,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29255,6 +30420,10 @@ msgid ""
"code with [method add_action] and [method action_add_event]. See [method "
"Node._input]."
msgstr ""
+"Gere todo [InputEventAction] que pode ser criado/modificado no menu de "
+"configurações do projeto [b]Projeto > Configurações do Projeto > Mapa de "
+"Entrada[/b] ou em código com [method add_action] e [method "
+"action_add_event]. Veja [method Node._input]."
#: doc/classes/InputMap.xml
msgid "$DOCS_URL/tutorials/inputs/inputevent.html#inputmap"
@@ -29613,7 +30782,7 @@ msgstr ""
#: doc/classes/ItemList.xml
msgid "Removes all items from the list."
-msgstr ""
+msgstr "Remove todos os itens da lista."
#: doc/classes/ItemList.xml
msgid ""
@@ -29675,9 +30844,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -29917,7 +31086,7 @@ msgstr ""
#: doc/classes/ItemList.xml
msgid "Icon is drawn above the text."
-msgstr ""
+msgstr "O ícone é desenhado por cima do texto."
#: doc/classes/ItemList.xml
msgid "Icon is drawn to the left of the text."
@@ -29925,7 +31094,7 @@ msgstr ""
#: doc/classes/ItemList.xml
msgid "Only allow selecting a single item."
-msgstr ""
+msgstr "Permite que somente um item seja selecionado."
#: doc/classes/ItemList.xml
msgid "Allows selecting multiple items by holding Ctrl or Shift."
@@ -29933,7 +31102,7 @@ msgstr ""
#: doc/classes/ItemList.xml doc/classes/Tree.xml
msgid "Default text [Color] of the item."
-msgstr ""
+msgstr "[Color] padrão do texto do item."
#: doc/classes/ItemList.xml doc/classes/Tree.xml
msgid "Text [Color] used when the item is selected."
@@ -29947,23 +31116,23 @@ msgstr ""
#: doc/classes/ItemList.xml
msgid "The horizontal spacing between items."
-msgstr ""
+msgstr "O espaço horizontal entre os itens."
#: doc/classes/ItemList.xml
msgid "The spacing between item's icon and text."
-msgstr ""
+msgstr "O espaço entre o ícone e o texto do item."
#: doc/classes/ItemList.xml
msgid "The vertical spacing between each line of text."
-msgstr ""
+msgstr "O espaço vertical entre cada linha de texto."
#: doc/classes/ItemList.xml
msgid "The vertical spacing between items."
-msgstr ""
+msgstr "O espaço vertical entre os itens."
#: doc/classes/ItemList.xml doc/classes/Tree.xml
msgid "[Font] of the item's text."
-msgstr ""
+msgstr "[Font] do texto do item."
#: doc/classes/ItemList.xml
msgid ""
@@ -30598,6 +31767,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -30849,7 +32041,7 @@ msgstr ""
#: doc/classes/Label.xml
msgid "Returns the font size in pixels."
-msgstr ""
+msgstr "Retorna o tamanho da fonte em pixels."
#: doc/classes/Label.xml
msgid ""
@@ -30951,7 +32143,7 @@ msgstr ""
#: doc/classes/Label.xml
msgid "Default text [Color] of the [Label]."
-msgstr ""
+msgstr "[Color] padrão do texto do [Label]."
#: doc/classes/Label.xml
msgid "[Color] of the text's shadow effect."
@@ -31424,7 +32616,7 @@ msgstr ""
#: doc/classes/Line2D.xml
msgid "A 2D line."
-msgstr ""
+msgstr "Uma linha 2D."
#: doc/classes/Line2D.xml
msgid ""
@@ -31450,11 +32642,11 @@ msgstr ""
#: doc/classes/Line2D.xml
msgid "Removes all points from the line."
-msgstr ""
+msgstr "Remove todos os pontos da linha."
#: doc/classes/Line2D.xml
msgid "Returns the Line2D's amount of points."
-msgstr ""
+msgstr "Retorna a quantidade de pontos de uma Line2D."
#: doc/classes/Line2D.xml
msgid "Returns point [code]i[/code]'s position."
@@ -31534,7 +32726,7 @@ msgstr ""
#: doc/classes/Line2D.xml
msgid "The line's width."
-msgstr ""
+msgstr "A largura da linha."
#: doc/classes/Line2D.xml
msgid ""
@@ -31808,7 +33000,7 @@ msgstr ""
#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
msgid "Emitted when the text changes."
-msgstr ""
+msgstr "Emitido quando o texto muda."
#: doc/classes/LineEdit.xml
msgid "Emitted when the user presses [constant KEY_ENTER] on the [LineEdit]."
@@ -31836,7 +33028,7 @@ msgstr ""
#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
msgid "Copies the selected text."
-msgstr ""
+msgstr "Copia o texto selecionado."
#: doc/classes/LineEdit.xml
msgid ""
@@ -31880,7 +33072,7 @@ msgstr ""
#: doc/classes/LineEdit.xml
msgid "Default font color."
-msgstr ""
+msgstr "Cor padrão da fonte."
#: doc/classes/LineEdit.xml
msgid "Font color for selected text (inside the selection rectangle)."
@@ -32128,7 +33320,7 @@ msgstr ""
#: doc/classes/MainLoop.xml
msgid "Called before the program exits."
-msgstr ""
+msgstr "Chamada antes do programa fechar."
#: doc/classes/MainLoop.xml
msgid ""
@@ -32475,7 +33667,7 @@ msgstr ""
#: doc/classes/MenuButton.xml
msgid "Default text [Color] of the [MenuButton]."
-msgstr ""
+msgstr "[Color] padrão do texto do [MenuButton]."
#: doc/classes/MenuButton.xml
msgid "Text [Color] used when the [MenuButton] is disabled."
@@ -33120,7 +34312,7 @@ msgstr ""
#: doc/classes/MeshInstance2D.xml doc/classes/MultiMeshInstance2D.xml
msgid "Emitted when the [member texture] is changed."
-msgstr ""
+msgstr "Emitido quando a [member texture] muda."
#: doc/classes/MeshLibrary.xml
msgid "Library of meshes."
@@ -33192,7 +34384,7 @@ msgstr ""
#: doc/classes/MeshLibrary.xml
msgid "Removes the item."
-msgstr ""
+msgstr "Remove o item."
#: doc/classes/MeshLibrary.xml
msgid "Sets the item's mesh."
@@ -33796,16 +34988,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33825,10 +35014,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33844,25 +35030,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33879,14 +35056,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -33894,35 +35068,406 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Creates the agent."
+msgstr "Retorna a escala."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Retorna a tangente do parâmetro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Retorna a posição global do mouse."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Define a cor da borda."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Retorna a altura da textura."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Retorna a raiz quadrada do parâmetro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Destroys the given RID."
+msgstr "Retorna o [RID] do objeto."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Retorna o tamanho da textura."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Retorna a câmara 3D ativa."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Define a cor da borda."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "Retorna a posição global do mouse."
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Returns the path from start to finish in global coordinates."
+msgstr "Retorna a rotação (em radianos)."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The radius of the agent."
+msgstr "A cor do texto."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Notifies when the final location is reached."
+msgstr "Notifica quando uma animação termina de reproduzir."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34021,10 +35566,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34183,22 +35724,115 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+#, fuzzy
+msgid "Clears the navigation mesh."
+msgstr "Limpa a seleção."
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+#, fuzzy
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr "Notifica quando uma animação começa a reproduzir."
+
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr "Notifica quando uma animação começa a reproduzir."
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34297,6 +35931,74 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Retorna a largura da imagem."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Para o áudio."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -34323,7 +36025,7 @@ msgstr ""
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid "http://enet.bespin.org/usergroup0.html"
-msgstr ""
+msgstr "http://enet.bespin.org/usergroup0.html"
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
@@ -34610,11 +36312,11 @@ msgstr ""
#: doc/classes/NetworkedMultiplayerPeer.xml
msgid "Emitted when a connection attempt fails."
-msgstr ""
+msgstr "Emitido quando uma tentativa de conexão falha."
#: doc/classes/NetworkedMultiplayerPeer.xml
msgid "Emitted when a connection attempt succeeds."
-msgstr ""
+msgstr "Emitido quando uma tentativa de conexão tem sucesso."
#: doc/classes/NetworkedMultiplayerPeer.xml
msgid "Emitted by the server when a client connects."
@@ -34761,7 +36463,7 @@ msgstr ""
#: doc/classes/NinePatchRect.xml
msgid "Emitted when the node's texture changes."
-msgstr ""
+msgstr "Emitido quando a textura de um nó muda."
#: doc/classes/NinePatchRect.xml
msgid ""
@@ -35696,15 +37398,15 @@ msgstr ""
#: doc/classes/Node.xml
msgid "Emitted when the node is ready."
-msgstr ""
+msgstr "Emitido quando o nó está preparado."
#: doc/classes/Node.xml
msgid "Emitted when the node is renamed."
-msgstr ""
+msgstr "Emitido quando o nó é renomeado."
#: doc/classes/Node.xml
msgid "Emitted when the node enters the tree."
-msgstr ""
+msgstr "Emitido quando o nó entra na árvore."
#: doc/classes/Node.xml
msgid "Emitted after the node exits the tree and is no longer active."
@@ -36640,7 +38342,7 @@ msgstr ""
#: doc/classes/Object.xml
msgid "Emitted whenever the object's script is changed."
-msgstr ""
+msgstr "Emitido cada vez que o script do objeto muda."
#: doc/classes/Object.xml
msgid "Called right when the object is initialized. Not available in script."
@@ -37610,7 +39312,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -37811,6 +39515,8 @@ msgid ""
"Returns [code]true[/code] if the platform has a virtual keyboard, "
"[code]false[/code] otherwise."
msgstr ""
+"Retorna [code]true[/code] se a plataforma possuir um teclado virtual, "
+"[code]false[/code] caso contrário."
#: doc/classes/OS.xml
msgid "Hides the virtual keyboard if it is shown, does nothing otherwise."
@@ -38253,79 +39959,79 @@ msgstr ""
#: doc/classes/OS.xml
msgid "Sunday."
-msgstr ""
+msgstr "Domingo."
#: doc/classes/OS.xml
msgid "Monday."
-msgstr ""
+msgstr "Segunda-Feira."
#: doc/classes/OS.xml
msgid "Tuesday."
-msgstr ""
+msgstr "Terça-Feira."
#: doc/classes/OS.xml
msgid "Wednesday."
-msgstr ""
+msgstr "Quarta-Feira."
#: doc/classes/OS.xml
msgid "Thursday."
-msgstr ""
+msgstr "Quinta-Feira."
#: doc/classes/OS.xml
msgid "Friday."
-msgstr ""
+msgstr "Sexta-Feira."
#: doc/classes/OS.xml
msgid "Saturday."
-msgstr ""
+msgstr "Sábado."
#: doc/classes/OS.xml
msgid "January."
-msgstr ""
+msgstr "Janeiro."
#: doc/classes/OS.xml
msgid "February."
-msgstr ""
+msgstr "Fevereiro."
#: doc/classes/OS.xml
msgid "March."
-msgstr ""
+msgstr "Março."
#: doc/classes/OS.xml
msgid "April."
-msgstr ""
+msgstr "Abril."
#: doc/classes/OS.xml
msgid "May."
-msgstr ""
+msgstr "Maio."
#: doc/classes/OS.xml
msgid "June."
-msgstr ""
+msgstr "Junho."
#: doc/classes/OS.xml
msgid "July."
-msgstr ""
+msgstr "Julho."
#: doc/classes/OS.xml
msgid "August."
-msgstr ""
+msgstr "Agosto."
#: doc/classes/OS.xml
msgid "September."
-msgstr ""
+msgstr "Setembro."
#: doc/classes/OS.xml
msgid "October."
-msgstr ""
+msgstr "Outubro."
#: doc/classes/OS.xml
msgid "November."
-msgstr ""
+msgstr "Novembro."
#: doc/classes/OS.xml
msgid "December."
-msgstr ""
+msgstr "Dezembro."
#: doc/classes/OS.xml
msgid ""
@@ -39459,7 +41165,7 @@ msgstr ""
#: doc/classes/Path.xml
msgid "Emitted when the [member curve] changes."
-msgstr ""
+msgstr "Emitido quando a [member curve] muda."
#: doc/classes/Path2D.xml
msgid "Contains a [Curve2D] path for [PathFollow2D] nodes to follow."
@@ -42197,16 +43903,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42268,12 +43974,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42354,10 +44054,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -42555,7 +44251,7 @@ msgstr ""
#: doc/classes/Popup.xml
msgid "Emitted when a popup is hidden."
-msgstr ""
+msgstr "Emitido quando um popup é ocultado."
#: doc/classes/Popup.xml
msgid "Notification sent right after the popup is shown."
@@ -43309,7 +45005,7 @@ msgstr ""
#: doc/classes/ProceduralSky.xml
msgid "The sun's color."
-msgstr ""
+msgstr "A cor do sol."
#: doc/classes/ProceduralSky.xml
msgid ""
@@ -43373,11 +45069,11 @@ msgstr ""
#: doc/classes/ProgressBar.xml
msgid "The color of the text."
-msgstr ""
+msgstr "A cor do texto."
#: doc/classes/ProgressBar.xml
msgid "The color of the text's shadow."
-msgstr ""
+msgstr "A cor da sombra do texto."
#: doc/classes/ProgressBar.xml
msgid ""
@@ -44513,211 +46209,211 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 1."
-msgstr ""
+msgstr "Nome opcional para a camada 1 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 10."
-msgstr ""
+msgstr "Nome opcional para a camada 10 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 11."
-msgstr ""
+msgstr "Nome opcional para a camada 11 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 12."
-msgstr ""
+msgstr "Nome opcional para a camada 12 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 13."
-msgstr ""
+msgstr "Nome opcional para a camada 13 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 14."
-msgstr ""
+msgstr "Nome opcional para a camada 14 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 15."
-msgstr ""
+msgstr "Nome opcional para a camada 15 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 16."
-msgstr ""
+msgstr "Nome opcional para a camada 16 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 17."
-msgstr ""
+msgstr "Nome opcional para a camada 17 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 18."
-msgstr ""
+msgstr "Nome opcional para a camada 18 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 19."
-msgstr ""
+msgstr "Nome opcional para a camada 19 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 2."
-msgstr ""
+msgstr "Nome opcional para a camada 2 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 20."
-msgstr ""
+msgstr "Nome opcional para a camada 20 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 21."
-msgstr ""
+msgstr "Nome opcional para a camada 21 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 22."
-msgstr ""
+msgstr "Nome opcional para a camada 22 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 23."
-msgstr ""
+msgstr "Nome opcional para a camada 23 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 24."
-msgstr ""
+msgstr "Nome opcional para a camada 24 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 25."
-msgstr ""
+msgstr "Nome opcional para a camada 25 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 26."
-msgstr ""
+msgstr "Nome opcional para a camada 26 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 27."
-msgstr ""
+msgstr "Nome opcional para a camada 27 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 28."
-msgstr ""
+msgstr "Nome opcional para a camada 28 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 29."
-msgstr ""
+msgstr "Nome opcional para a camada 29 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 3."
-msgstr ""
+msgstr "Nome opcional para a camada 3 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 30."
-msgstr ""
+msgstr "Nome opcional para a camada 30 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 31."
-msgstr ""
+msgstr "Nome opcional para a camada 31 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 32."
-msgstr ""
+msgstr "Nome opcional para a camada 32 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 4."
-msgstr ""
+msgstr "Nome opcional para a camada 4 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 5."
-msgstr ""
+msgstr "Nome opcional para a camada 5 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 6."
-msgstr ""
+msgstr "Nome opcional para a camada 6 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 7."
-msgstr ""
+msgstr "Nome opcional para a camada 7 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 8."
-msgstr ""
+msgstr "Nome opcional para a camada 8 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D physics layer 9."
-msgstr ""
+msgstr "Nome opcional para a camada 9 da física 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 1."
-msgstr ""
+msgstr "Nome opcional para a camada 1 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 10."
-msgstr ""
+msgstr "Nome opcional para a camada 10 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 11."
-msgstr ""
+msgstr "Nome opcional para a camada 11 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 12."
-msgstr ""
+msgstr "Nome opcional para a camada 12 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 13."
-msgstr ""
+msgstr "Nome opcional para a camada 13 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 14."
-msgstr ""
+msgstr "Nome opcional para a camada 14 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 15."
-msgstr ""
+msgstr "Nome opcional para a camada 15 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 16."
-msgstr ""
+msgstr "Nome opcional para a camada 16 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 17."
-msgstr ""
+msgstr "Nome opcional para a camada 17 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 18."
-msgstr ""
+msgstr "Nome opcional para a camada 18 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 19."
-msgstr ""
+msgstr "Nome opcional para a camada 19 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 2."
-msgstr ""
+msgstr "Nome opcional para a camada 2 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 20."
-msgstr ""
+msgstr "Nome opcional para a camada 20 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 3."
-msgstr ""
+msgstr "Nome opcional para a camada 3 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 4."
-msgstr ""
+msgstr "Nome opcional para a camada 4 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 5."
-msgstr ""
+msgstr "Nome opcional para a camada 5 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 6."
-msgstr ""
+msgstr "Nome opcional para a camada 6 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 7."
-msgstr ""
+msgstr "Nome opcional para a camada 7 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 8."
-msgstr ""
+msgstr "Nome opcional para a camada 8 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 2D render layer 9."
-msgstr ""
+msgstr "Nome opcional para a camada 9 da renderização 2D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D physics layer 1."
@@ -44849,83 +46545,83 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 1."
-msgstr ""
+msgstr "Nome opcional para a camada 1 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 10."
-msgstr ""
+msgstr "Nome opcional para a camada 10 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 11."
-msgstr ""
+msgstr "Nome opcional para a camada 11 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 12."
-msgstr ""
+msgstr "Nome opcional para a camada 12 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 13."
-msgstr ""
+msgstr "Nome opcional para a camada 13 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 14"
-msgstr ""
+msgstr "Nome opcional para a camada 14 da renderização 3D"
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 15."
-msgstr ""
+msgstr "Nome opcional para a camada 15 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 16."
-msgstr ""
+msgstr "Nome opcional para a camada 16 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 17."
-msgstr ""
+msgstr "Nome opcional para a camada 17 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 18."
-msgstr ""
+msgstr "Nome opcional para a camada 18 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 19."
-msgstr ""
+msgstr "Nome opcional para a camada 19 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 2."
-msgstr ""
+msgstr "Nome opcional para a camada 2 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 20."
-msgstr ""
+msgstr "Nome opcional para a camada 20 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 3."
-msgstr ""
+msgstr "Nome opcional para a camada 3 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 4."
-msgstr ""
+msgstr "Nome opcional para a camada 4 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 5."
-msgstr ""
+msgstr "Nome opcional para a camada 5 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 6."
-msgstr ""
+msgstr "Nome opcional para a camada 6 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 7."
-msgstr ""
+msgstr "Nome opcional para a camada 7 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 8."
-msgstr ""
+msgstr "Nome opcional para a camada 8 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid "Optional name for the 3D render layer 9."
-msgstr ""
+msgstr "Nome opcional para a camada 9 da renderização 3D."
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -45804,7 +47500,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45847,8 +47543,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -45860,6 +47557,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46325,7 +48035,7 @@ msgstr ""
#: doc/classes/Quat.xml
msgid "Quaternion."
-msgstr ""
+msgstr "Quatérnio."
#: doc/classes/Quat.xml
msgid ""
@@ -46674,7 +48384,7 @@ msgstr ""
#: doc/classes/Range.xml
msgid "Emitted when [member value] changes."
-msgstr ""
+msgstr "Emitido quando [member value] muda."
#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid "Query the closest object intersecting a ray."
@@ -46714,12 +48424,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46848,15 +48558,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48115,14 +49816,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -48394,7 +50087,7 @@ msgstr ""
#: doc/classes/RichTextLabel.xml
msgid "The default text color."
-msgstr ""
+msgstr "A cor padrão do texto."
#: doc/classes/RichTextLabel.xml
msgid ""
@@ -48404,7 +50097,7 @@ msgstr ""
#: doc/classes/RichTextLabel.xml
msgid "The color of the font's shadow."
-msgstr ""
+msgstr "A cor da sombra da fonte."
#: doc/classes/RichTextLabel.xml
msgid "The color of the selection box."
@@ -48412,7 +50105,7 @@ msgstr ""
#: doc/classes/RichTextLabel.xml
msgid "The vertical space between lines."
-msgstr ""
+msgstr "O espaço vertical entre linhas."
#: doc/classes/RichTextLabel.xml
msgid ""
@@ -48454,7 +50147,7 @@ msgstr ""
#: doc/classes/RichTextLabel.xml
msgid "The default text font."
-msgstr ""
+msgstr "A fonte padrão do texto."
#: doc/classes/RichTextLabel.xml
msgid "The background The background used when the [RichTextLabel] is focused."
@@ -49167,7 +50860,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49350,7 +51043,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49457,7 +51150,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -49577,7 +51270,7 @@ msgstr ""
#: doc/classes/SceneState.xml
msgid "Returns the name of the node at [code]idx[/code]."
-msgstr ""
+msgstr "Retorna o nome do nó em [code]idx[/code]."
#: doc/classes/SceneState.xml
msgid ""
@@ -49615,7 +51308,7 @@ msgstr ""
#: doc/classes/SceneState.xml
msgid "Returns the type of the node at [code]idx[/code]."
-msgstr ""
+msgstr "Retorna o tipo do nó em at [code]idx[/code]."
#: doc/classes/SceneState.xml
msgid ""
@@ -49764,7 +51457,7 @@ msgstr ""
#: doc/classes/SceneTree.xml
msgid "Returns the number of nodes in this [SceneTree]."
-msgstr ""
+msgstr "Retorna o número de nós nesta [SceneTree]."
#: doc/classes/SceneTree.xml
msgid "Returns a list of all nodes assigned to the given group."
@@ -49865,7 +51558,7 @@ msgstr ""
#: doc/classes/SceneTree.xml
msgid "The current scene."
-msgstr ""
+msgstr "A cena atual."
#: doc/classes/SceneTree.xml
msgid ""
@@ -49998,14 +51691,16 @@ msgid ""
"Emitted when a node's configuration changed. Only emitted in [code]tool[/"
"code] mode."
msgstr ""
+"Emitido quando a configuração de um nó muda. Só é emitido no modo "
+"[code]tool[/code]."
#: doc/classes/SceneTree.xml
msgid "Emitted whenever a node is removed from the [SceneTree]."
-msgstr ""
+msgstr "Emitido cada vez que um nó é removido da [SceneTree]."
#: doc/classes/SceneTree.xml
msgid "Emitted whenever a node is renamed."
-msgstr ""
+msgstr "Emitido cada vez que um nó é renomeado."
#: doc/classes/SceneTree.xml
msgid ""
@@ -50116,7 +51811,7 @@ msgstr ""
#: doc/classes/SceneTreeTimer.xml doc/classes/Timer.xml
msgid "Emitted when the timer reaches 0."
-msgstr ""
+msgstr "Emitido quando o cronômetro chega ao 0."
#: doc/classes/Script.xml
msgid "A class stored as a resource."
@@ -50137,19 +51832,19 @@ msgstr ""
#: doc/classes/Script.xml
msgid "Returns [code]true[/code] if the script can be instanced."
-msgstr ""
+msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
#: doc/classes/Script.xml
msgid "Returns the script directly inherited by this script."
-msgstr ""
+msgstr "Retorna o script herdado diretamente por este script."
#: doc/classes/Script.xml
msgid "Returns the script's base type."
-msgstr ""
+msgstr "Retorna o tipo base de um script."
#: doc/classes/Script.xml
msgid "Returns the default value of the specified property."
-msgstr ""
+msgstr "Retorna o valor padrão da propriedade especificada."
#: doc/classes/Script.xml
msgid "Returns a dictionary containing constant names and their values."
@@ -50157,11 +51852,11 @@ msgstr ""
#: doc/classes/Script.xml
msgid "Returns the list of methods in this [Script]."
-msgstr ""
+msgstr "Retorna a lista de métodos neste [Script]."
#: doc/classes/Script.xml
msgid "Returns the list of properties in this [Script]."
-msgstr ""
+msgstr "Retorna a lista de propriedades neste [Script]."
#: doc/classes/Script.xml
msgid "Returns the list of user signals defined in this [Script]."
@@ -50223,7 +51918,7 @@ msgstr ""
#: doc/classes/ScriptCreateDialog.xml
msgid "Emitted when the user clicks the OK button."
-msgstr ""
+msgstr "Emitido quando o utilizador clica no botão de OK."
#: doc/classes/ScriptEditor.xml
msgid "Godot editor's script editor."
@@ -50507,7 +52202,7 @@ msgstr ""
#: doc/classes/ShaderMaterial.xml
msgid "A material that uses a custom [Shader] program."
-msgstr ""
+msgstr "Um material que utiliza um programa [Shader] personalizado."
#: doc/classes/ShaderMaterial.xml
msgid ""
@@ -50546,7 +52241,7 @@ msgstr ""
#: doc/classes/ShaderMaterial.xml
msgid "The [Shader] program used to render this material."
-msgstr ""
+msgstr "O programa [Shader] usado para renderizar este material."
#: doc/classes/Shape.xml
msgid "Base class for all 3D shape resources."
@@ -50575,11 +52270,12 @@ msgstr ""
#: doc/classes/Shape2D.xml
msgid "Base class for all 2D shapes."
-msgstr ""
+msgstr "Classe base para todas as formas 2D."
#: doc/classes/Shape2D.xml
msgid "Base class for all 2D shapes. All 2D shape types inherit from this."
msgstr ""
+"Classe base para todos os formatos 2D. Todos os formatos 2D herdam disto."
#: doc/classes/Shape2D.xml
msgid ""
@@ -50695,7 +52391,7 @@ msgstr ""
#: doc/classes/Skeleton.xml
msgid "Clear all the bones in this skeleton."
-msgstr ""
+msgstr "Limpa todos os ossos neste esqueleto."
#: doc/classes/Skeleton.xml
msgid "Returns the bone index that matches [code]name[/code] as its name."
@@ -50764,7 +52460,7 @@ msgstr ""
#: doc/classes/Skeleton2D.xml
msgid "Skeleton for 2D characters and animated objects."
-msgstr ""
+msgstr "Esqueleto para personagens 2D e objetos animados."
#: doc/classes/Skeleton2D.xml
msgid ""
@@ -51143,7 +52839,7 @@ msgstr ""
#: doc/classes/SoftBody.xml
msgid "The SoftBody's mass."
-msgstr ""
+msgstr "A massa do SoftBody."
#: doc/classes/Spatial.xml
msgid "Most basic 3D game object, parent of all 3D-related nodes."
@@ -51422,7 +53118,7 @@ msgstr ""
#: doc/classes/Spatial.xml
msgid "Emitted when node visibility changes."
-msgstr ""
+msgstr "Emitido quando a visibilidade de um nó muda."
#: doc/classes/Spatial.xml
msgid ""
@@ -51464,7 +53160,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid "Default 3D rendering material."
-msgstr ""
+msgstr "Material de renderização 3D padrão."
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -51503,7 +53199,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51518,7 +53214,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid "The material's base color."
-msgstr ""
+msgstr "A cor base do material."
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -51527,19 +53223,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -51826,6 +53541,10 @@ msgid ""
"areas are transparent. Useful for overlaying shadows onto a camera feed in "
"AR."
msgstr ""
+"Se [code]true[/code], ativa o modo de renderização \"sombra para opacidade"
+"\", em que a iluminação modifica o alfa de forma que as áreas sombreadas "
+"serão opacas e as áreas não sombreadas serão transparentes. Útil para "
+"sobrepor sombras em imagens de câmara em RA (Realidade Aumentada)."
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -51904,7 +53623,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid "Threshold at which the alpha scissor will discard values."
-msgstr ""
+msgstr "Limiar no qual a tesoura alfa descartará os valores."
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -52305,6 +54024,8 @@ msgid ""
"Default blend mode. The color of the object is blended over the background "
"based on the object's alpha value."
msgstr ""
+"Modo de mistura padrão. A cor do objeto é mesclada sobre o fundo com base no "
+"valor alfa do objeto."
#: doc/classes/SpatialMaterial.xml
msgid "The color of the object is added to the background."
@@ -52518,7 +54239,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid "Used to read from the alpha channel of a texture."
-msgstr ""
+msgstr "Usado para ler o canal alfa de uma textura."
#: doc/classes/SpatialMaterial.xml
msgid "Adds the emission color to the color from the emission texture."
@@ -52537,6 +54258,8 @@ msgid ""
"Smoothly fades the object out based on each pixel's distance from the camera "
"using the alpha channel."
msgstr ""
+"Esmaece suavemente o objeto com base na distância de cada pixel da câmara "
+"usando o canal alfa."
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -52545,6 +54268,11 @@ msgid ""
"smoothly fade without enabling transparency. On certain hardware this can be "
"faster than [constant DISTANCE_FADE_PIXEL_ALPHA]."
msgstr ""
+"Desvanece suavemente o objeto com base na distância de cada pixel da câmara "
+"usando uma abordagem de matização (\"dithering\"). A matização descarta os "
+"pixels com base num padrão definido para desaparecer suavemente sem ativar a "
+"transparência. Em certos hardwares, isso pode ser mais rápido do que "
+"[constant DISTANCE_FADE_PIXEL_ALPHA]."
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -52553,6 +54281,11 @@ msgid ""
"smoothly fade without enabling transparency. On certain hardware this can be "
"faster than [constant DISTANCE_FADE_PIXEL_ALPHA]."
msgstr ""
+"Desvanece suavemente o objeto com base na distância do objeto da câmara "
+"usando uma abordagem de matização (\"dithering\"). A matização descarta os "
+"pixels com base num padrão definido para desaparecer suavemente sem ativar a "
+"transparência. Em certos hardwares, isso pode ser mais rápido do que "
+"[constant DISTANCE_FADE_PIXEL_ALPHA]."
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -52795,7 +54528,7 @@ msgstr ""
#: doc/classes/SpringArm.xml
msgid "Returns the spring arm's current length."
-msgstr ""
+msgstr "Retorna o comprimento atual do braço da mola."
#: doc/classes/SpringArm.xml
msgid ""
@@ -52889,7 +54622,7 @@ msgstr ""
#: doc/classes/Sprite.xml doc/classes/Sprite3D.xml
msgid "The number of columns in the sprite sheet."
-msgstr ""
+msgstr "O número de colunas numa folha de sprites."
#: doc/classes/Sprite.xml
msgid ""
@@ -52926,15 +54659,15 @@ msgstr ""
#: doc/classes/Sprite.xml doc/classes/Sprite3D.xml
msgid "Emitted when the [member frame] changes."
-msgstr ""
+msgstr "Emitido quando o [member frame] muda."
#: doc/classes/Sprite.xml
msgid "Emitted when the [member texture] changes."
-msgstr ""
+msgstr "Emitido quando a [member texture] muda."
#: doc/classes/Sprite3D.xml
msgid "2D sprite node in a 3D world."
-msgstr ""
+msgstr "Nó de sprite 2D num mundo 3D."
#: doc/classes/Sprite3D.xml
msgid ""
@@ -53097,7 +54830,7 @@ msgstr ""
#: doc/classes/SpriteFrames.xml
msgid "Changes the animation's name to [code]newname[/code]."
-msgstr ""
+msgstr "Muda o nome da animação para [code]newname[/code]."
#: doc/classes/SpriteFrames.xml
msgid "If [code]true[/code], the animation will loop."
@@ -53237,7 +54970,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -53919,6 +55652,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -54485,7 +56228,7 @@ msgstr ""
#: doc/classes/StyleBoxFlat.xml
msgid "Sets the color of the border."
-msgstr ""
+msgstr "Define a cor da borda."
#: doc/classes/StyleBoxFlat.xml
msgid "Border width for the bottom border."
@@ -54584,7 +56327,7 @@ msgstr ""
#: doc/classes/StyleBoxFlat.xml
msgid "The shadow size in pixels."
-msgstr ""
+msgstr "O tamanho da sombra em pixels."
#: doc/classes/StyleBoxLine.xml
msgid "[StyleBox] that displays a single line."
@@ -54598,7 +56341,7 @@ msgstr ""
#: doc/classes/StyleBoxLine.xml
msgid "The line's color."
-msgstr ""
+msgstr "A cor da linha."
#: doc/classes/StyleBoxLine.xml
msgid ""
@@ -55013,6 +56756,8 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is hidden."
msgstr ""
+"Retorna [code]true[/code] se a guia no índice [code]tab_idx[/code] estiver "
+"oculta."
#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
msgid ""
@@ -55117,11 +56862,11 @@ msgstr ""
#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
msgid "Emitted when switching to another tab."
-msgstr ""
+msgstr "Emitido quando mudando para outra guia."
#: doc/classes/TabContainer.xml
msgid "Emitted when a tab is selected, even if it is the current tab."
-msgstr ""
+msgstr "Emitido quando uma guia é selecionada, mesmo se for a guia atual."
#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
msgid "Align the tabs to the left."
@@ -55225,7 +56970,7 @@ msgstr ""
#: doc/classes/Tabs.xml
msgid "Adds a new tab."
-msgstr ""
+msgstr "Adiciona uma nova guia."
#: doc/classes/Tabs.xml
msgid "Moves the scroll view to make the tab visible."
@@ -55321,7 +57066,7 @@ msgstr ""
#: doc/classes/Tabs.xml
msgid "Emitted when a tab is closed."
-msgstr ""
+msgstr "Emitido quando uma taba é fechada."
#: doc/classes/Tabs.xml
msgid "Emitted when a tab is hovered by the mouse."
@@ -55373,7 +57118,7 @@ msgstr ""
#: doc/classes/TCP_Server.xml
msgid "A TCP server."
-msgstr ""
+msgstr "Um servidor TCP."
#: doc/classes/TCP_Server.xml
msgid ""
@@ -55512,7 +57257,7 @@ msgstr ""
#: doc/classes/TextEdit.xml
msgid "Returns the text of a specific line."
-msgstr ""
+msgstr "Retorna o texto de uma linha específica."
#: doc/classes/TextEdit.xml
msgid ""
@@ -55889,7 +57634,7 @@ msgstr ""
#: doc/classes/TextEdit.xml
msgid "Emitted when the cursor changes."
-msgstr ""
+msgstr "Emitido quando o cursor muda."
#: doc/classes/TextEdit.xml
msgid "Emitted when the info icon is clicked."
@@ -55953,7 +57698,7 @@ msgstr ""
#: doc/classes/TextEdit.xml
msgid "Sets the font [Color]."
-msgstr ""
+msgstr "Define a [Color] da fonte."
#: doc/classes/TextEdit.xml
msgid ""
@@ -55987,7 +57732,7 @@ msgstr ""
#: doc/classes/TextEdit.xml
msgid "Sets the default [Font]."
-msgstr ""
+msgstr "Define a [Font] padrão."
#: doc/classes/TextEdit.xml
msgid "Sets a custom [Texture] for tab text characters."
@@ -56004,7 +57749,7 @@ msgstr ""
#: doc/classes/Texture.xml
msgid "Texture for 2D and 3D."
-msgstr ""
+msgstr "Textura para 2D e 3D."
#: doc/classes/Texture.xml
msgid ""
@@ -56045,15 +57790,15 @@ msgstr ""
#: doc/classes/Texture.xml
msgid "Returns the texture height."
-msgstr ""
+msgstr "Retorna a altura da textura."
#: doc/classes/Texture.xml
msgid "Returns the texture size."
-msgstr ""
+msgstr "Retorna o tamanho da textura."
#: doc/classes/Texture.xml
msgid "Returns the texture width."
-msgstr ""
+msgstr "Retorna a largura da textura."
#: doc/classes/Texture.xml
msgid "Returns [code]true[/code] if this [Texture] has an alpha channel."
@@ -56287,7 +58032,7 @@ msgstr ""
#: doc/classes/TextureLayered.xml
msgid "Base class for 3D texture types."
-msgstr ""
+msgstr "Classe base para tipos de textura 3D."
#: doc/classes/TextureLayered.xml
msgid ""
@@ -56347,7 +58092,7 @@ msgstr ""
#: doc/classes/TextureLayered.xml
msgid "Specifies which [enum Flags] apply to this texture."
-msgstr ""
+msgstr "Especifica quais [enum Flags] se aplicam à esta textura."
#: doc/classes/TextureLayered.xml
msgid ""
@@ -56539,7 +58284,7 @@ msgstr ""
#: doc/classes/TextureRect.xml
msgid "Control for drawing textures."
-msgstr ""
+msgstr "Controle para desenhar texturas."
#: doc/classes/TextureRect.xml
msgid ""
@@ -56564,7 +58309,7 @@ msgstr ""
#: doc/classes/TextureRect.xml
msgid "The node's [Texture] resource."
-msgstr ""
+msgstr "O recurso [Texture] de um nó."
#: doc/classes/TextureRect.xml
msgid ""
@@ -56600,7 +58345,7 @@ msgstr ""
#: doc/classes/Theme.xml
msgid "Clears all values on the theme."
-msgstr ""
+msgstr "Limpa todos os valores no tema."
#: doc/classes/Theme.xml
msgid ""
@@ -56624,6 +58369,7 @@ msgstr ""
msgid ""
"Clears the icon at [code]name[/code] if the theme has [code]node_type[/code]."
msgstr ""
+"Limpa o ícone em [code]name[/code] se o tema tiver [code]node_type[/code]."
#: doc/classes/Theme.xml
msgid ""
@@ -57125,7 +58871,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57147,9 +58893,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58173,7 +59921,7 @@ msgstr ""
#: doc/classes/TouchScreenButton.xml
msgid "The button's shape."
-msgstr ""
+msgstr "O formato do botão."
#: doc/classes/TouchScreenButton.xml
msgid ""
@@ -58192,15 +59940,15 @@ msgstr ""
#: doc/classes/TouchScreenButton.xml
msgid "Emitted when the button is pressed (down)."
-msgstr ""
+msgstr "Emitido quando o botão é pressionado (baixo)."
#: doc/classes/TouchScreenButton.xml
msgid "Emitted when the button is released (up)."
-msgstr ""
+msgstr "Emitido quando o botão é solto (cima)."
#: doc/classes/TouchScreenButton.xml
msgid "Always visible."
-msgstr ""
+msgstr "Sempre visível."
#: doc/classes/TouchScreenButton.xml
msgid "Visible on touch screens only."
@@ -58251,17 +59999,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58281,10 +60029,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58404,26 +60152,7 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid "Returns the scale."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
+msgstr "Retorna a escala."
#: doc/classes/Transform2D.xml
msgid ""
@@ -58500,7 +60229,7 @@ msgstr ""
#: doc/classes/Translation.xml
msgid "Erases a message."
-msgstr ""
+msgstr "Apaga uma mensagem."
#: doc/classes/Translation.xml
msgid "Returns a message's translation."
@@ -58751,7 +60480,7 @@ msgstr ""
#: doc/classes/Tree.xml
msgid "Sets the title of a column."
-msgstr ""
+msgstr "Define o título de uma coluna."
#: doc/classes/Tree.xml
msgid ""
@@ -58844,19 +60573,19 @@ msgstr ""
#: doc/classes/Tree.xml
msgid "Emitted when an item is edited."
-msgstr ""
+msgstr "Emitido quando um item é editado."
#: doc/classes/Tree.xml
msgid "Emitted when an item is edited using the right mouse button."
-msgstr ""
+msgstr "Emitido quando um item é editado com botão direito do mouse."
#: doc/classes/Tree.xml
msgid "Emitted when an item is selected with the right mouse button."
-msgstr ""
+msgstr "Emitido quando um item é selecionado com o botão direito do mouse."
#: doc/classes/Tree.xml
msgid "Emitted when an item is selected."
-msgstr ""
+msgstr "Emitido quando um item é selecionado."
#: doc/classes/Tree.xml
msgid ""
@@ -58867,6 +60596,8 @@ msgstr ""
#: doc/classes/Tree.xml
msgid "Emitted when a left mouse button click does not select any item."
msgstr ""
+"Emitido quando um clique com o botão esquerdo do mouse não seleciona nenhum "
+"item."
#: doc/classes/Tree.xml
msgid ""
@@ -59622,7 +61353,7 @@ msgstr ""
#: doc/classes/Tween.xml
msgid "Stops animating all tweens."
-msgstr ""
+msgstr "Para de animar todos os tweens."
#: doc/classes/Tween.xml
msgid ""
@@ -59674,11 +61405,11 @@ msgstr ""
#: doc/classes/Tween.xml
msgid "Emitted when a tween ends."
-msgstr ""
+msgstr "Emitido quando um tween termina."
#: doc/classes/Tween.xml
msgid "Emitted when a tween starts."
-msgstr ""
+msgstr "Emitido quando um tween começa."
#: doc/classes/Tween.xml
msgid "Emitted at each step of the animation."
@@ -60200,7 +61931,7 @@ msgstr ""
#: modules/upnp/doc_classes/UPNP.xml
msgid "The action failed."
-msgstr ""
+msgstr "A ação falhou."
#: modules/upnp/doc_classes/UPNP.xml
msgid ""
@@ -60264,15 +61995,15 @@ msgstr ""
#: modules/upnp/doc_classes/UPNP.xml
msgid "Invalid duration."
-msgstr ""
+msgstr "Duração inválida."
#: modules/upnp/doc_classes/UPNP.xml
msgid "Invalid arguments."
-msgstr ""
+msgstr "Argumentos inválidos."
#: modules/upnp/doc_classes/UPNP.xml
msgid "Invalid response."
-msgstr ""
+msgstr "Resposta inválida."
#: modules/upnp/doc_classes/UPNP.xml
msgid "Invalid parameter."
@@ -60280,7 +62011,7 @@ msgstr ""
#: modules/upnp/doc_classes/UPNP.xml modules/upnp/doc_classes/UPNPDevice.xml
msgid "HTTP error."
-msgstr ""
+msgstr "Erro HTTP."
#: modules/upnp/doc_classes/UPNP.xml
msgid "Socket error."
@@ -60367,11 +62098,11 @@ msgstr ""
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Service type."
-msgstr ""
+msgstr "Tipo de serviço."
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "OK."
-msgstr ""
+msgstr "OK."
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Empty HTTP response."
@@ -60387,7 +62118,7 @@ msgstr ""
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Disconnected."
-msgstr ""
+msgstr "Desconectado."
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Unknown device."
@@ -60395,7 +62126,7 @@ msgstr ""
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Invalid control."
-msgstr ""
+msgstr "Controle inválido."
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Memory allocation error."
@@ -60509,7 +62240,7 @@ msgstr ""
#: doc/classes/Vector2.xml
msgid "Vector used for 2D math."
-msgstr ""
+msgstr "Vetor utilizado para matemática 2D."
#: doc/classes/Vector2.xml
msgid ""
@@ -60575,9 +62306,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60590,7 +62321,7 @@ msgstr ""
#: doc/classes/Vector2.xml
msgid "Returns the cross product of this vector and [code]with[/code]."
-msgstr ""
+msgstr "Retorna o produto cruzado deste vetor e [code]com[/code]."
#: doc/classes/Vector2.xml
msgid ""
@@ -60632,9 +62363,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60650,10 +62381,12 @@ msgid ""
"Returns [code]true[/code] if the vector is normalized, [code]false[/code] "
"otherwise."
msgstr ""
+"Retorna [code]true[/code] se o vetor for normalizado, [code]false[/code] "
+"caso contrário."
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid "Returns the length (magnitude) of this vector."
-msgstr ""
+msgstr "Retorna o comprimento (magnitude) deste vetor."
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -60675,10 +62408,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60699,12 +62432,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "Retorna o produto cruzado deste vetor e [code]b[/code]."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60713,17 +62449,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60803,7 +62539,7 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid "Vector used for 3D math."
-msgstr ""
+msgstr "Vetor utilizado para matemática 3D."
#: doc/classes/Vector3.xml
msgid ""
@@ -60823,21 +62559,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
-msgstr ""
+msgstr "Retorna o produto cruzado deste vetor e [code]b[/code]."
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -60861,12 +62591,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -60893,20 +62617,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -60918,19 +62632,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61288,15 +62989,15 @@ msgstr ""
#: doc/classes/VideoPlayer.xml
msgid "Audio volume as a linear value."
-msgstr ""
+msgstr "Volume do áudio como um valor linear."
#: doc/classes/VideoPlayer.xml
msgid "Audio volume in dB."
-msgstr ""
+msgstr "Volume do áudio em dB."
#: doc/classes/VideoPlayer.xml
msgid "Emitted when playback is finished."
-msgstr ""
+msgstr "Emitido quando a reprodução termina."
#: doc/classes/VideoStream.xml
msgid "Base resource for video streams."
@@ -61445,7 +63146,7 @@ msgstr ""
#: doc/classes/Viewport.xml
msgid "Returns the active 3D camera."
-msgstr ""
+msgstr "Retorna a câmara 3D ativa."
#: doc/classes/Viewport.xml
msgid "Returns the total transform of the viewport."
@@ -61620,10 +63321,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61739,6 +63442,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -61846,7 +63561,7 @@ msgstr ""
#: doc/classes/Viewport.xml
msgid "Objects are displayed normally."
-msgstr ""
+msgstr "Objetos são exibidos normalmente."
#: doc/classes/Viewport.xml
msgid "Objects are displayed without light information."
@@ -62127,7 +63842,7 @@ msgstr ""
#: doc/classes/VisibilityNotifier.xml
msgid "Emitted when the VisibilityNotifier enters the screen."
-msgstr ""
+msgstr "Emitido quando o VisibilityNotifier entra na tela."
#: doc/classes/VisibilityNotifier.xml
msgid "Emitted when the VisibilityNotifier exits the screen."
@@ -62161,11 +63876,11 @@ msgstr ""
#: doc/classes/VisibilityNotifier2D.xml
msgid "Emitted when the VisibilityNotifier2D enters the screen."
-msgstr ""
+msgstr "Emitido quando o VisibilityNotifier2D entra na tela."
#: doc/classes/VisibilityNotifier2D.xml
msgid "Emitted when the VisibilityNotifier2D exits the screen."
-msgstr ""
+msgstr "Emitido quando o VisibilityNotifier2D sai da tela."
#: doc/classes/VisibilityNotifier2D.xml
msgid "Emitted when the VisibilityNotifier2D enters a [Viewport]'s view."
@@ -62256,7 +63971,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -62336,7 +64051,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Returns a node's position in pixels."
-msgstr ""
+msgstr "Retorna a posição de um nó em pixels."
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Returns the default (initial) value of a variable."
@@ -62386,7 +64101,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Remove a specific node."
-msgstr ""
+msgstr "Remove um nó específico."
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Remove a variable with the given name."
@@ -62394,15 +64109,15 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Change the name of a custom signal."
-msgstr ""
+msgstr "Muda o nome de um sinal customizado."
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Change the name of a function."
-msgstr ""
+msgstr "Muda o nome de uma função."
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Change the name of a variable."
-msgstr ""
+msgstr "Muda o nome de uma variável."
#: modules/visual_script/doc_classes/VisualScript.xml
msgid ""
@@ -62428,7 +64143,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Position a node on the screen."
-msgstr ""
+msgstr "Posiciona um nó na tela."
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Change the default (initial) value of a variable."
@@ -62860,11 +64575,11 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScriptConstant.xml
msgid "The constant's type."
-msgstr ""
+msgstr "O tipo do constante."
#: modules/visual_script/doc_classes/VisualScriptConstant.xml
msgid "The constant's value."
-msgstr ""
+msgstr "O valor do constante."
#: modules/visual_script/doc_classes/VisualScriptConstructor.xml
msgid "A Visual Script node which calls a base type constructor."
@@ -62886,11 +64601,11 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
msgid "Return the node's title."
-msgstr ""
+msgstr "Retorna o título do nó."
#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
msgid "Return the node's category."
-msgstr ""
+msgstr "Retorna a categoria do nó."
#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
msgid "Return the count of input value ports."
@@ -63275,7 +64990,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScriptInputAction.xml
msgid "Name of the action."
-msgstr ""
+msgstr "Nome da ação."
#: modules/visual_script/doc_classes/VisualScriptInputAction.xml
msgid "State of the action to check. See [enum Mode] for options."
@@ -63359,7 +65074,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml
msgid "Gets a local variable's value."
-msgstr ""
+msgstr "Obtém o valor de uma variável local."
#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml
msgid ""
@@ -63374,16 +65089,16 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml
#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
msgid "The local variable's type."
-msgstr ""
+msgstr "O tipo da variável local."
#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml
#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
msgid "The local variable's name."
-msgstr ""
+msgstr "O nome da variável local."
#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
msgid "Changes a local variable's value."
-msgstr ""
+msgstr "Muda o valor de uma variável local."
#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
msgid ""
@@ -63526,7 +65241,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScriptPreload.xml
msgid "The [Resource] to load."
-msgstr ""
+msgstr "O [Resource] para carregar."
#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
msgid "A Visual Script node returning a value of a property from an [Object]."
@@ -63741,7 +65456,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScriptSceneNode.xml
msgid "Node reference."
-msgstr ""
+msgstr "Referência de nó."
#: modules/visual_script/doc_classes/VisualScriptSceneNode.xml
msgid ""
@@ -63825,7 +65540,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScriptSubCall.xml
msgid "Called by this node."
-msgstr ""
+msgstr "Chamado por este nó."
#: modules/visual_script/doc_classes/VisualScriptSwitch.xml
msgid "Branches program flow based on a given input's value."
@@ -63869,7 +65584,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScriptVariableGet.xml
msgid "Gets a variable's value."
-msgstr ""
+msgstr "Obtém o valor de uma variável."
#: modules/visual_script/doc_classes/VisualScriptVariableGet.xml
msgid ""
@@ -63884,11 +65599,11 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScriptVariableGet.xml
#: modules/visual_script/doc_classes/VisualScriptVariableSet.xml
msgid "The variable's name."
-msgstr ""
+msgstr "Muda o nome de uma variável."
#: modules/visual_script/doc_classes/VisualScriptVariableSet.xml
msgid "Changes a variable's value."
-msgstr ""
+msgstr "Muda o valor de uma variável."
#: modules/visual_script/doc_classes/VisualScriptVariableSet.xml
msgid ""
@@ -64915,7 +66630,7 @@ msgstr ""
#: doc/classes/VisualServer.xml
msgid "Function not implemented in Godot 3.x."
-msgstr ""
+msgstr "Função não implementada no Godot 3.x."
#: doc/classes/VisualServer.xml
msgid ""
@@ -65784,7 +67499,7 @@ msgstr ""
#: doc/classes/VisualServer.xml
msgid "Returns the parameters of a shader."
-msgstr ""
+msgstr "Retorna os parâmetros de uma shader."
#: doc/classes/VisualServer.xml
msgid "Sets a shader's code."
@@ -65913,7 +67628,7 @@ msgstr ""
#: doc/classes/VisualServer.xml
msgid "Returns the texture's width."
-msgstr ""
+msgstr "Retorna a largura da textura."
#: doc/classes/VisualServer.xml
msgid ""
@@ -65950,7 +67665,7 @@ msgstr ""
#: doc/classes/VisualServer.xml
msgid "Sets a viewport's camera."
-msgstr ""
+msgstr "Define a câmara de um viewport."
#: doc/classes/VisualServer.xml
msgid "Sets a viewport's canvas."
@@ -66417,7 +68132,7 @@ msgstr ""
#: doc/classes/VisualServer.xml
msgid "The light's energy."
-msgstr ""
+msgstr "A energia da luz."
#: doc/classes/VisualServer.xml
msgid "Secondary multiplier used with indirect light (light bounces)."
@@ -66533,7 +68248,7 @@ msgstr ""
#: doc/classes/VisualServer.xml
msgid "Do not update the viewport."
-msgstr ""
+msgstr "Não atualize o viewport."
#: doc/classes/VisualServer.xml
msgid "Update the viewport once then set to disabled."
@@ -67222,6 +68937,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -67429,7 +69160,7 @@ msgstr ""
#: doc/classes/VisualShaderNodeCompare.xml
msgid "A boolean type."
-msgstr ""
+msgstr "Um tipo boleano."
#: doc/classes/VisualShaderNodeCompare.xml
msgid "A transform ([code]mat4[/code]) type."
@@ -67774,6 +69505,8 @@ msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
msgstr ""
+"Retorna decaimento com base no produto escalar da normal da superfície com a "
+"direção de visão da câmara (passe as entradas associadas a ele)."
#: doc/classes/VisualShaderNodeGlobalExpression.xml
msgid ""
@@ -68050,6 +69783,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Retorna o tamanho do ficheiro em bytes."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
@@ -68413,7 +70193,7 @@ msgstr ""
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the opposite value of the parameter."
-msgstr ""
+msgstr "Retorna o valor oposto do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns [code]1/vector[/code]."
@@ -68421,96 +70201,96 @@ msgstr ""
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Converts RGB vector to HSV equivalent."
-msgstr ""
+msgstr "Converter vetor RGB para um HSV equivalente."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Converts HSV vector to RGB equivalent."
-msgstr ""
+msgstr "Converter vetor HSV para um RGB equivalente."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the absolute value of the parameter."
-msgstr ""
+msgstr "Retorna o valor absoluto do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the arc-cosine of the parameter."
-msgstr ""
+msgstr "Retorna o arco-cosseno do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the inverse hyperbolic cosine of the parameter."
-msgstr ""
+msgstr "Retorna o cosseno hiperbólico inverso do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the arc-sine of the parameter."
-msgstr ""
+msgstr "Retorna o arco-seno do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the inverse hyperbolic sine of the parameter."
-msgstr ""
+msgstr "Retorna o seno hiperbólico inverso do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the arc-tangent of the parameter."
-msgstr ""
+msgstr "Retorna o arco-tangente do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the inverse hyperbolic tangent of the parameter."
-msgstr ""
+msgstr "Retorna a tangente hiperbólica inversa do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid ""
"Finds the nearest integer that is greater than or equal to the parameter."
-msgstr ""
+msgstr "Encontra o inteiro mais próximo que é maior ou igual ao parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the cosine of the parameter."
-msgstr ""
+msgstr "Retorna o cosseno do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the hyperbolic cosine of the parameter."
-msgstr ""
+msgstr "Retorna o cosseno hiperbólico do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Converts a quantity in radians to degrees."
-msgstr ""
+msgstr "Converte um valor em radianos para graus."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Base-e Exponential."
-msgstr ""
+msgstr "Exponencial de base e."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Base-2 Exponential."
-msgstr ""
+msgstr "Exponencial de base 2."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Finds the nearest integer less than or equal to the parameter."
-msgstr ""
+msgstr "Encontra o inteiro mais próximo que é menor ou igual ao parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Computes the fractional part of the argument."
-msgstr ""
+msgstr "Calcula a parte fracional do argumento."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the inverse of the square root of the parameter."
-msgstr ""
+msgstr "Retorna o inverso da raiz quadrada do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Natural logarithm."
-msgstr ""
+msgstr "Logaritmo natural."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Base-2 logarithm."
-msgstr ""
+msgstr "Logaritmo de base 2."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Converts a quantity in degrees to radians."
-msgstr ""
+msgstr "Converte uma quantidade em graus para radianos."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Finds the nearest integer to the parameter."
-msgstr ""
+msgstr "Encontra o inteiro mais próximo do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Finds the nearest even integer to the parameter."
-msgstr ""
+msgstr "Encontra o número inteiro par mais próximo do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid ""
@@ -68521,23 +70301,23 @@ msgstr ""
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the sine of the parameter."
-msgstr ""
+msgstr "Retorna o seno do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the hyperbolic sine of the parameter."
-msgstr ""
+msgstr "Retorna o seno hiperbólico do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the square root of the parameter."
-msgstr ""
+msgstr "Retorna a raiz quadrada do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the tangent of the parameter."
-msgstr ""
+msgstr "Retorna a tangente do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid "Returns the hyperbolic tangent of the parameter."
-msgstr ""
+msgstr "Retorna a tangente hiperbólica do parâmetro."
#: doc/classes/VisualShaderNodeVectorFunc.xml
msgid ""
@@ -68559,6 +70339,8 @@ msgid ""
"Translates to [code]mix(a, b, weight)[/code] in the shader language, where "
"[code]weight[/code] is a [Vector3] with weights for each component."
msgstr ""
+"Traduz para [code]mix(a, b, peso)[/code] na linguagem shader, onde "
+"[code]weight[/code] é um [Vector3] com pesos para cada componente."
#: doc/classes/VisualShaderNodeVectorLen.xml
msgid "Returns the length of a [Vector3] within the visual shader graph."
@@ -68584,23 +70366,23 @@ msgstr ""
#: doc/classes/VisualShaderNodeVectorOp.xml
msgid "Adds two vectors."
-msgstr ""
+msgstr "Soma dois vetores."
#: doc/classes/VisualShaderNodeVectorOp.xml
msgid "Subtracts a vector from a vector."
-msgstr ""
+msgstr "Subtrai um vetor de outro vetor."
#: doc/classes/VisualShaderNodeVectorOp.xml
msgid "Multiplies two vectors."
-msgstr ""
+msgstr "Multiplica dois vetores."
#: doc/classes/VisualShaderNodeVectorOp.xml
msgid "Divides vector by vector."
-msgstr ""
+msgstr "Divide vetor por vetor."
#: doc/classes/VisualShaderNodeVectorOp.xml
msgid "Returns the remainder of the two vectors."
-msgstr ""
+msgstr "Retorna o resto dos dois vetores."
#: doc/classes/VisualShaderNodeVectorOp.xml
msgid ""
@@ -68618,11 +70400,11 @@ msgstr ""
#: doc/classes/VisualShaderNodeVectorOp.xml
msgid "Calculates the cross product of two vectors."
-msgstr ""
+msgstr "Calcula o produto vetorial de dois vetores."
#: doc/classes/VisualShaderNodeVectorOp.xml
msgid "Returns the arc-tangent of the parameters."
-msgstr ""
+msgstr "Retorna o arco-tangente dos parâmetros."
#: doc/classes/VisualShaderNodeVectorOp.xml
msgid ""
@@ -68901,7 +70683,7 @@ msgstr ""
#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
msgid "The channel was closed, or connection failed."
-msgstr ""
+msgstr "O canal foi fechado, ou a conexão falhou."
#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml
msgid ""
@@ -69258,7 +71040,7 @@ msgstr ""
#: modules/websocket/doc_classes/WebSocketClient.xml
msgid "Emitted when the connection to the server fails."
-msgstr ""
+msgstr "Emitido quando uma conexão ao servidor falha."
#: modules/websocket/doc_classes/WebSocketClient.xml
msgid ""
@@ -69837,7 +71619,7 @@ msgstr ""
#: modules/webxr/doc_classes/WebXRInterface.xml
msgid "Emitted when [member visibility_state] has changed."
-msgstr ""
+msgstr "Emitido quando [member visibility_state] muda."
#: doc/classes/WindowDialog.xml
msgid "Base class for window dialogs."
@@ -69868,7 +71650,7 @@ msgstr ""
#: doc/classes/WindowDialog.xml
msgid "The color of the title text."
-msgstr ""
+msgstr "A cor do texto de título."
#: doc/classes/WindowDialog.xml
msgid "The horizontal offset of the close button."
@@ -70035,7 +71817,7 @@ msgstr ""
#: doc/classes/XMLParser.xml
msgid "Gets the amount of attributes in the current element."
-msgstr ""
+msgstr "Obtém a quantidade de atributos no elemento atual."
#: doc/classes/XMLParser.xml
msgid ""
@@ -70101,7 +71883,7 @@ msgstr ""
#: doc/classes/XMLParser.xml
msgid "Opens an XML file for parsing. This returns an error code."
-msgstr ""
+msgstr "Abre um ficheiro XML para análise. Isto devolve um código de erro."
#: doc/classes/XMLParser.xml
msgid "Opens an XML raw buffer for parsing. This returns an error code."
@@ -70109,7 +71891,7 @@ msgstr ""
#: doc/classes/XMLParser.xml
msgid "Reads the next node of the file. This returns an error code."
-msgstr ""
+msgstr "Lê o próximo nó do ficheiro. Isto retorna um código de erro."
#: doc/classes/XMLParser.xml
msgid ""
@@ -70133,27 +71915,27 @@ msgstr ""
#: doc/classes/XMLParser.xml
msgid "End of element."
-msgstr ""
+msgstr "Fim do elemento."
#: doc/classes/XMLParser.xml
msgid "Text node."
-msgstr ""
+msgstr "Nó de texto."
#: doc/classes/XMLParser.xml
msgid "Comment node."
-msgstr ""
+msgstr "Nó de comentário."
#: doc/classes/XMLParser.xml
msgid "CDATA content."
-msgstr ""
+msgstr "Conteúdo CDATA."
#: doc/classes/XMLParser.xml
msgid "Unknown node."
-msgstr ""
+msgstr "Nó desconhecido."
#: doc/classes/YSort.xml
msgid "Sort all child nodes based on their Y positions."
-msgstr ""
+msgstr "Ordena todos os nós filhos baseado em suas posições Y."
#: doc/classes/YSort.xml
msgid ""
@@ -70170,3 +71952,5 @@ msgstr ""
msgid ""
"If [code]true[/code], child nodes are sorted, otherwise sorting is disabled."
msgstr ""
+"Se [code]true[/code], os nós filhos são organizados, do contrário, a "
+"organização é desativada."
diff --git a/doc/translations/pt_BR.po b/doc/translations/pt_BR.po
index ce7edb5664..aa55ec1a2f 100644
--- a/doc/translations/pt_BR.po
+++ b/doc/translations/pt_BR.po
@@ -1,6 +1,6 @@
# Portuguese (Brazil) translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# José Paulo <jose.paulo1919@gmail.com>, 2020.
@@ -31,13 +31,15 @@
# Alefy San <alefyferreiradeoliveira@outlook.com>, 2021.
# Supernova Files <filessupernova@gmail.com>, 2021.
# Leo Lamas <leoslamas@gmail.com>, 2021.
-# Vinicius A. Portela <vinicius@simpx.net>, 2021.
+# Vinicius A. Portela <vinicius@simpx.net>, 2021, 2022.
+# Felipe SiFa <felipe@logus.digital>, 2022.
+# Gabriel Gian <gabrielgian@live.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-12-19 17:31+0000\n"
-"Last-Translator: Vinicius A. Portela <vinicius@simpx.net>\n"
+"PO-Revision-Date: 2022-01-07 12:18+0000\n"
+"Last-Translator: Gabriel Gian <gabrielgian@live.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot-class-reference/pt_BR/>\n"
"Language: pt_BR\n"
@@ -45,7 +47,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.10\n"
+"X-Generator: Weblate 4.10.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -87,6 +89,71 @@ msgstr "Descrições da Propriedade"
msgid "Method Descriptions"
msgstr "Descrições do Método"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Descrições da Propriedade"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Funções GDScript embutidas."
@@ -462,6 +529,23 @@ msgid ""
"want a true content-aware comparison, you have to use [code]deep_equal[/"
"code]."
msgstr ""
+"Compara dois valores, verificando seu conteúdo real, recorrendo a qualquer "
+"`Array` ou `Dicionário` até o seu nível mais profundo.\n"
+"Isso se compara a [code]==[/code] de várias maneiras:\n"
+"- Para [code]null[/code], [code]int[/code], [code]float[/code], "
+"[code]String[/code], [code]Objeto[/code] e [code]RID[/code] tanto "
+"[code]deep_equal[/code] quanto [code]==[/code] funcionam da mesma maneira.\n"
+"- Para [code]Dicionário[/code], [code]==[code] considera igualdade se, e "
+"somente se, ambas as variáveis apontarem para o mesmo [code]Dicionário[/"
+"code], sem nenhuma recorrência ou consciência do conteúdo.\n"
+"- Para [code]Array[/code], [code]==[/code] considera igualdade se, e somente "
+"se, cada item no primeiro [code]Array[/code] for igual a sua contraparte no "
+"segundo [code]Array[/code], como diz o próprio [code]==[/code]. Isso implica "
+"que [code]==[/code] recursa para [code]Array[/code], mas não para "
+"[code]Dicionário[/code].\n"
+"Em resumo, sempre que um [code]Dicionário[/code] estiver potencialmente "
+"envolvido, se você quiser uma verdadeira comparação consciente do conteúdo, "
+"você tem que usar [code]deep_equal[/code]."
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -752,26 +836,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"Retorna um valor normalizado considerando o intervalo dado. Este é o oposto "
-"do [method lerp].\n"
-"[codeblock]\n"
-"var middle = lerp(20, 30, 0.75)\n"
-"# `middle` é 27.5.\n"
-"# Agora, fingimos ter esquecido a proporção original e a queremos de volta.\n"
-"var ratio = inverse_lerp(20, 30, 27.5)\n"
-"# `ratio` é 0.75.\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -842,9 +925,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -853,7 +940,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"Interpola linearmente entre dois valores através de um valor normalizado. "
"Este método é o oposto do método [method inverse_lerp].\n"
@@ -868,11 +958,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -2234,10 +2326,20 @@ msgstr "O singleton [Marshalls]."
#: doc/classes/@GlobalScope.xml
#, fuzzy
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr "O singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
msgstr "O singleton [NavigationMeshGenerator]."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "O singleton [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
msgstr "O singleton [OS]."
@@ -3791,39 +3893,120 @@ msgid ""
"OpenVR touchpad X axis (Joystick axis on Oculus Touch and Windows MR "
"controllers)."
msgstr ""
+"Eixo X do touchpad OpenVR (eixo do controle nos controles Oculus Touch e "
+"Windows MR)."
#: doc/classes/@GlobalScope.xml
msgid ""
"OpenVR touchpad Y axis (Joystick axis on Oculus Touch and Windows MR "
"controllers)."
msgstr ""
+"Eixo Y do touchpad OpenVR (eixo do controle nos controles Oculus Touch e "
+"Windows MR)."
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -3842,6 +4025,20 @@ msgid ""
" print(\"Still failing!\")\n"
"[/codeblock]"
msgstr ""
+"Métodos que retornam [enum Error] returnam [constant OK] quando não ocorreu "
+"nenhum erro. Note que muitas funções não retornam um código de erro, mas "
+"imprimem mensagens de erro para a saída padrão.\n"
+"Já que [constant OK] tem valor 0 e todos os outros códigos de falha são "
+"valores inteiros positivos, ele também pode ser usado em verificações "
+"booleanas, por exemplo.:\n"
+"[codeblock]\n"
+"var err = método_que_retorna_erro()\n"
+"if err != OK:\n"
+" print(\"Falha!\")\n"
+"# Ou, equivalente:\n"
+"if err:\n"
+" print(\"Ainda falhando!\")\n"
+"[/codeblock]"
#: doc/classes/@GlobalScope.xml
msgid "Generic error."
@@ -3849,31 +4046,31 @@ msgstr "Erro genérico."
#: doc/classes/@GlobalScope.xml
msgid "Unavailable error."
-msgstr ""
+msgstr "Erro indisponível."
#: doc/classes/@GlobalScope.xml
msgid "Unconfigured error."
-msgstr ""
+msgstr "Erro não configurado."
#: doc/classes/@GlobalScope.xml
msgid "Unauthorized error."
-msgstr ""
+msgstr "Erro não autorizado."
#: doc/classes/@GlobalScope.xml
msgid "Parameter range error."
-msgstr ""
+msgstr "Erro na faixa do parâmetro."
#: doc/classes/@GlobalScope.xml
msgid "Out of memory (OOM) error."
-msgstr ""
+msgstr "Erro de falta de memória (OOM)."
#: doc/classes/@GlobalScope.xml
msgid "File: Not found error."
-msgstr ""
+msgstr "Arquivo: erro não encontrado."
#: doc/classes/@GlobalScope.xml
msgid "File: Bad drive error."
-msgstr ""
+msgstr "Arquivo: erro de unidade defeituosa."
#: doc/classes/@GlobalScope.xml
msgid "File: Bad path error."
@@ -3889,63 +4086,63 @@ msgstr "Arquivo: Erro arquivo já em uso."
#: doc/classes/@GlobalScope.xml
msgid "File: Can't open error."
-msgstr ""
+msgstr "Arquivo: não se pode abrir erro."
#: doc/classes/@GlobalScope.xml
msgid "File: Can't write error."
-msgstr ""
+msgstr "Arquivo: não se pode escrever erro."
#: doc/classes/@GlobalScope.xml
msgid "File: Can't read error."
-msgstr ""
+msgstr "Arquivo: não é possível ler erro."
#: doc/classes/@GlobalScope.xml
msgid "File: Unrecognized error."
-msgstr ""
+msgstr "Arquivo: erro não reconhecido."
#: doc/classes/@GlobalScope.xml
msgid "File: Corrupt error."
-msgstr ""
+msgstr "Arquivo: Erro corrompido."
#: doc/classes/@GlobalScope.xml
msgid "File: Missing dependencies error."
-msgstr ""
+msgstr "Arquivo: Erro de dependências faltando."
#: doc/classes/@GlobalScope.xml
msgid "File: End of file (EOF) error."
-msgstr ""
+msgstr "Arquivo: Erro de fim de arquivo (EOF)."
#: doc/classes/@GlobalScope.xml
msgid "Can't open error."
-msgstr ""
+msgstr "Erro não é possível abrir."
#: doc/classes/@GlobalScope.xml
msgid "Can't create error."
-msgstr ""
+msgstr "Erro não é possível criar."
#: doc/classes/@GlobalScope.xml
msgid "Query failed error."
-msgstr ""
+msgstr "Erro busca falhou."
#: doc/classes/@GlobalScope.xml
msgid "Already in use error."
-msgstr ""
+msgstr "Erro já em uso."
#: doc/classes/@GlobalScope.xml
msgid "Locked error."
-msgstr ""
+msgstr "Erro bloqueado."
#: doc/classes/@GlobalScope.xml
msgid "Timeout error."
-msgstr ""
+msgstr "Erro tempo esgotado."
#: doc/classes/@GlobalScope.xml
msgid "Can't connect error."
-msgstr ""
+msgstr "Erro não é possível conectar."
#: doc/classes/@GlobalScope.xml
msgid "Can't resolve error."
-msgstr ""
+msgstr "Erro não se pode resolver."
#: doc/classes/@GlobalScope.xml
msgid "Connection error."
@@ -3953,35 +4150,35 @@ msgstr "Erro de conexão."
#: doc/classes/@GlobalScope.xml
msgid "Can't acquire resource error."
-msgstr ""
+msgstr "Erro não se pode adquirir o recurso."
#: doc/classes/@GlobalScope.xml
msgid "Can't fork process error."
-msgstr ""
+msgstr "Erro não se pode dividir o processo."
#: doc/classes/@GlobalScope.xml
msgid "Invalid data error."
-msgstr ""
+msgstr "Erro dado inválido."
#: doc/classes/@GlobalScope.xml
msgid "Invalid parameter error."
-msgstr ""
+msgstr "Erro parâmetro inválido."
#: doc/classes/@GlobalScope.xml
msgid "Already exists error."
-msgstr ""
+msgstr "Erro já existe."
#: doc/classes/@GlobalScope.xml
msgid "Does not exist error."
-msgstr ""
+msgstr "Erro não existe."
#: doc/classes/@GlobalScope.xml
msgid "Database: Read error."
-msgstr ""
+msgstr "Erro de leitura da base de dados."
#: doc/classes/@GlobalScope.xml
msgid "Database: Write error."
-msgstr ""
+msgstr "Erro de escritura da base de dados."
#: doc/classes/@GlobalScope.xml
msgid "Compilation failed error."
@@ -3993,15 +4190,15 @@ msgstr "Erro de método não encontrado."
#: doc/classes/@GlobalScope.xml
msgid "Linking failed error."
-msgstr ""
+msgstr "Erro falha de link."
#: doc/classes/@GlobalScope.xml
msgid "Script failed error."
-msgstr ""
+msgstr "Erro falha de script."
#: doc/classes/@GlobalScope.xml
msgid "Cycling link (import cycle) error."
-msgstr ""
+msgstr "Erro de link cíclico (importar ciclo)."
#: doc/classes/@GlobalScope.xml
msgid "Invalid declaration error."
@@ -4009,19 +4206,19 @@ msgstr "Erro de declaração inválida."
#: doc/classes/@GlobalScope.xml
msgid "Duplicate symbol error."
-msgstr ""
+msgstr "Erro de símbolo duplicado."
#: doc/classes/@GlobalScope.xml
msgid "Parse error."
-msgstr ""
+msgstr "Erro de análise."
#: doc/classes/@GlobalScope.xml
msgid "Busy error."
-msgstr ""
+msgstr "Erro de disponibilidade."
#: doc/classes/@GlobalScope.xml
msgid "Skip error."
-msgstr ""
+msgstr "Pular erro."
#: doc/classes/@GlobalScope.xml
msgid "Help error."
@@ -4029,17 +4226,19 @@ msgstr "Erro de ajuda."
#: doc/classes/@GlobalScope.xml
msgid "Bug error."
-msgstr ""
+msgstr "Erro de bug."
#: doc/classes/@GlobalScope.xml
msgid ""
"Printer on fire error. (This is an easter egg, no engine methods return this "
"error code.)"
msgstr ""
+"Erro de impressora pegando fogo. (Isto é um easter egg, nenhum método do "
+"motor retorna este código de erro.)"
#: doc/classes/@GlobalScope.xml
msgid "No hint for the edited property."
-msgstr ""
+msgstr "Nenhuma dica para a propriedade editada."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -4050,6 +4249,12 @@ msgid ""
"above the max or below the min values. Example: [code]\"-360,360,1,"
"or_greater,or_lesser\"[/code]."
msgstr ""
+"Indica que uma propriedade integer ou float deve estar dentro de um "
+"intervalo especificado pela string de dica [code]\"min,max\"[/code] ou "
+"[code]\"min,max,step\"[/code]. A string de dica pode incluir opcionalmente "
+"[code]\"or_greater\"[/code] e/ou [code]\"or_lesser\"[/code] para permitir "
+"uma entrada manual indo respectivamente acima ou abaixo dos valores máximo e "
+"mínimo. Exemplo: [code]\"-360,360,1,or_greater,or_lesser\"[/code]."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -4067,6 +4272,9 @@ msgid ""
"pick in a list specified via a hint string such as [code]\"Hello,Something,"
"Else\"[/code]."
msgstr ""
+"Indica que uma propriedade integer, float ou string é um valor enumerado "
+"para ser selecionado em uma lista especificada por uma string de dica como "
+"[code]\"Hello,Something,Else\"[/code]."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -4075,10 +4283,14 @@ msgid ""
"the curve horizontally and/or [code]\"inout\"[/code] to also include in/out "
"easing."
msgstr ""
+"Indica que uma propriedade float deve ser editada via uma função de "
+"atenuação exponencial. A string de dica pode incluir [code]\"attenuation\"[/"
+"code] para virar a curva horizontalmente e/ou [code]\"inout\"[/code] para "
+"incluir também uma atenuação de entrada e saída."
#: doc/classes/@GlobalScope.xml
msgid "Deprecated hint, unused."
-msgstr ""
+msgstr "Dica descontinuada, sem uso."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -4086,30 +4298,41 @@ msgid ""
"example, to allow toggling bits 0, 1, 2 and 4, the hint could be something "
"like [code]\"Bit0,Bit1,Bit2,,Bit4\"[/code]."
msgstr ""
+"Indica que uma propriedade integer é uma bitmask com bit flags nomeadas. Por "
+"exemplo, para permitir-se acionar os bits 0, 1, 2 e 4, a dica poderia ser "
+"algo como [code]\"Bit0,Bit1,Bit2,,Bit4\"[/code]."
#: doc/classes/@GlobalScope.xml
msgid ""
"Hints that an integer property is a bitmask using the optionally named 2D "
"render layers."
msgstr ""
+"Indica que uma propriedade integer é uma bitmask usando as camadas de "
+"renderização 2D nomeadas opcionalmente."
#: doc/classes/@GlobalScope.xml
msgid ""
"Hints that an integer property is a bitmask using the optionally named 2D "
"physics layers."
msgstr ""
+"Indica que uma propriedade integer é uma bitmask usando as camadas de física "
+"2D opcionalmente nomeadas."
#: doc/classes/@GlobalScope.xml
msgid ""
"Hints that an integer property is a bitmask using the optionally named 3D "
"render layers."
msgstr ""
+"Indica que uma propriedade integer é uma bitmask usando as camadas de "
+"renderização 3D opcionalmente nomeadas."
#: doc/classes/@GlobalScope.xml
msgid ""
"Hints that an integer property is a bitmask using the optionally named 3D "
"physics layers."
msgstr ""
+"Indica que uma propriedade integer é uma bitmask usando as camadas de física "
+"3D opcionalmente nomeadas."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -4117,12 +4340,18 @@ msgid ""
"file dialog for picking the path. The hint string can be a set of filters "
"with wildcards like [code]\"*.png,*.jpg\"[/code]."
msgstr ""
+"Indica que uma propriedade string é um caminho para um arquivo. Editá-la irá "
+"exibir um diálogo de arquivo para selecionar o caminho. A string de dica "
+"pode ser um conjunto de filtros com coringas como [code]\"*.png,*.jpg\"[/"
+"code]."
#: doc/classes/@GlobalScope.xml
msgid ""
"Hints that a string property is a path to a directory. Editing it will show "
"a file dialog for picking the path."
msgstr ""
+"Indica que uma propriedade string é um caminho para um diretório. Editá-la "
+"irá exibir um diálogo de arquivo para selecionar o caminho."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -4131,12 +4360,19 @@ msgid ""
"hint string can be a set of filters with wildcards like [code]\"*.png,*.jpg"
"\"[/code]."
msgstr ""
+"Indica que uma propriedade de string é um caminho absoluto para um arquivo "
+"fora da pasta do projeto. Editá-la irá exibir um diálogo de arquivo para "
+"selecionar o caminho. A string de dica pode ser um conjunto de filtros com "
+"coringas como [code]\"*.png,*.jpg\"[/code]."
#: doc/classes/@GlobalScope.xml
msgid ""
"Hints that a string property is an absolute path to a directory outside the "
"project folder. Editing it will show a file dialog for picking the path."
msgstr ""
+"Indica que uma propriedade string é um caminho absoluto para uma diretório "
+"fora da pasta do projeto. Editá-la irá exibir um diálogo de arquivo para "
+"selecionar o caminho."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -4144,12 +4380,19 @@ msgid ""
"optionally specified via the hint string (e.g. [code]\"Texture\"[/code]). "
"Editing it will show a popup menu of valid resource types to instantiate."
msgstr ""
+"Indica que uma propriedade é uma instância de um tipo derivado de um "
+"[Resource], opcionalmente especificado via uma string de dica (ex. "
+"[code]\"Texture\"[/code]). Editá-la irá exibir um menu popup de tipos "
+"válidos de recurso para instanciar."
#: doc/classes/@GlobalScope.xml
msgid ""
"Hints that a string property is text with line breaks. Editing it will show "
"a text input field where line breaks can be typed."
msgstr ""
+"Indica que uma propriedade string é um texto com quebras de linha. Editá-la "
+"irá exibir um campo de entrada de texto onde as quebras de linha podem ser "
+"digitadas."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -7909,7 +8152,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -12812,7 +13058,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12881,11 +13127,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12894,23 +13142,26 @@ msgstr ""
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Returns the [CameraFeed] with this id."
-msgstr "Retorna a lista de métodos neste [Script]."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Retorna o tipo do nó em at [code]idx[/code]."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr "Remove uma [CameraFeed]."
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "Retorna o nome do nó em [code]idx[/code]."
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12918,7 +13169,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -13006,8 +13257,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13017,17 +13269,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
-msgstr "Desenha um círculo colorido."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
+msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13038,16 +13296,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -13059,27 +13323,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13199,7 +13475,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13258,7 +13536,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -13637,8 +13916,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -13687,6 +13966,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -14186,6 +14471,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr "Retorna o [RID] do objeto."
@@ -14613,9 +14899,9 @@ msgstr ""
#, fuzzy
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14895,7 +15181,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -15563,8 +15851,9 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
-msgstr ""
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
+msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
#: doc/classes/ColorPicker.xml
msgid ""
@@ -17583,7 +17872,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18904,7 +19195,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -20428,6 +20719,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -20445,11 +20743,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20529,8 +20829,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20973,10 +21284,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -21025,7 +21335,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -21195,8 +21507,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -21205,7 +21517,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -22283,6 +22597,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -22760,10 +23082,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -23243,7 +23567,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -23879,7 +24203,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -24815,14 +25139,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -24898,7 +25222,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -27039,6 +27363,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -27267,7 +27597,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -27290,7 +27620,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -29580,7 +29910,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29601,7 +29935,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29620,11 +29958,19 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
-msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
#: doc/classes/Input.xml
msgid ""
@@ -29633,12 +29979,20 @@ msgid ""
msgstr ""
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
-msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
#: doc/classes/Input.xml
msgid ""
@@ -29955,7 +30309,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29983,7 +30341,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -30178,6 +30540,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -30194,15 +30653,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -30814,9 +31275,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -31746,6 +32207,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34977,16 +35461,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -35006,10 +35487,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -35025,25 +35503,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -35060,14 +35529,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -35075,35 +35541,411 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Creates the agent."
+msgstr "Retorna a escala."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Retorna a tangente do parâmetro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Retorna o seno do parâmetro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Retorna a posição global do mouse."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Retorna o valor oposto do parâmetro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Retorna a altura da textura."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Retorna o valor oposto do parâmetro."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Destroys the given RID."
+msgstr "Retorna o [RID] do objeto."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Retorna o tamanho da textura."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Retorna a câmera 3D ativa."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Define a cor da borda."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "O singleton [NavigationMeshGenerator]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "Retorna a posição global do mouse."
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Returns the path from start to finish in global coordinates."
+msgstr "Retorna a rotação (em radianos)."
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Retorna o arco-seno do parâmetro."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr "Retorna [code]true[/code] se o script pode ser instanciado."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The radius of the agent."
+msgstr "A cor do texto."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Notifies when the final location is reached."
+msgstr "Notifica quando uma animação termina de reproduzir."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Retorna o arco-seno do parâmetro."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -35203,10 +36045,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -35369,25 +36207,118 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+#, fuzzy
+msgid "Clears the navigation mesh."
+msgstr "Limpa a seleção."
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
msgstr "O singleton [NavigationMeshGenerator]."
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr "Notifica quando uma animação começa a reproduzir."
+
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr "Notifica quando uma animação começa a reproduzir."
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
#: doc/classes/NavigationPolygon.xml
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
@@ -35484,6 +36415,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Retorna o inverso da raiz quadrada do parâmetro."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Retorna a largura da imagem."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Para o áudio."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -38818,7 +39818,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -43453,16 +44455,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -43524,12 +44526,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -43610,10 +44606,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -47063,7 +48055,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -47106,8 +48098,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -47119,6 +48112,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47981,12 +48987,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -48118,15 +49124,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -49388,14 +50385,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -50440,7 +51429,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -50623,7 +51612,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -50730,7 +51719,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -52805,7 +53794,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -52829,19 +53818,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -54560,7 +55568,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -55245,6 +56253,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -58485,7 +59503,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -58507,9 +59525,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -59611,17 +60631,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -59641,10 +60661,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -59768,25 +60788,6 @@ msgstr "Retorna a escala."
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -61945,9 +62946,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -62002,9 +63003,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -62047,10 +63048,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -62071,12 +63072,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "Retorna o produto cruzado deste vetor e [code]b[/code]."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -62085,17 +63089,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -62197,21 +63201,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "Retorna o ângulo mínimo ao vetor dado, em radianos."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "Retorna o produto cruzado deste vetor e [code]b[/code]."
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -62235,12 +63233,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -62267,20 +63259,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -62292,19 +63274,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -62999,10 +63968,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -63121,6 +64092,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -63640,7 +64623,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -68644,6 +69627,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -69478,6 +70477,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Retorna o seno do parâmetro."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/ro.po b/doc/translations/ro.po
index 957067d723..11b2ac9b13 100644
--- a/doc/translations/ro.po
+++ b/doc/translations/ro.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# EVOKZH <avip.ady@gmail.com>, 2020.
@@ -64,6 +64,71 @@ msgstr "Descrieri Proprietate"
msgid "Method Descriptions"
msgstr "Descrierile Metodei"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Descrieri Proprietate"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Funcțiile incorporate GDScript."
@@ -483,16 +548,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -542,8 +615,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -552,7 +628,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -560,7 +639,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1392,8 +1472,19 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
-msgstr ""
+#, fuzzy
+msgid "The [Navigation2DServer] singleton."
+msgstr "Singletonul [AudioServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr "Singletonul [AudioServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "Singletonul [AudioServer]."
#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
@@ -2903,31 +2994,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6991,7 +7159,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11895,7 +12066,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11960,11 +12131,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11972,7 +12145,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11980,15 +12155,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11996,7 +12171,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12084,8 +12259,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12095,17 +12271,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12116,16 +12298,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12137,27 +12325,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12277,7 +12477,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12336,7 +12538,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12694,8 +12897,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12744,6 +12947,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13243,6 +13452,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13669,9 +13879,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13914,7 +14124,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14582,7 +14794,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16600,7 +16812,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17917,7 +18131,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19436,6 +19650,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19453,11 +19674,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19537,8 +19760,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19981,10 +20215,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20033,7 +20266,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20203,8 +20438,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20213,7 +20448,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21288,6 +21525,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21764,10 +22009,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22247,7 +22494,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22882,7 +23129,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23817,14 +24064,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -23900,7 +24147,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26016,6 +26263,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26244,7 +26497,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26267,7 +26520,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28553,7 +28806,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28574,7 +28831,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28593,8 +28854,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28607,7 +28877,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28925,7 +29204,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28953,7 +29236,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29148,6 +29435,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29164,15 +29548,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29776,9 +30162,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30709,6 +31095,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33925,16 +34334,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -33955,10 +34361,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33974,25 +34377,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34009,14 +34403,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34025,35 +34416,389 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34152,10 +34897,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34314,22 +35055,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "The [NavigationMesh] resource to use."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34428,6 +35259,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37759,7 +38656,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42353,16 +43252,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42424,12 +43323,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42510,10 +43403,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45961,7 +46850,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46004,8 +46893,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46017,6 +46907,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46876,12 +47779,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47010,15 +47913,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48281,14 +49175,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49335,7 +50221,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49518,7 +50404,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49625,7 +50511,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51691,7 +52577,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51715,19 +52601,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53425,7 +54330,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54110,6 +55015,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57322,7 +58237,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57344,9 +58259,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58448,17 +59365,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58478,10 +59395,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58605,25 +59522,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60777,9 +61675,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60834,9 +61732,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60877,10 +61775,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60901,12 +61799,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60915,17 +61815,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61025,21 +61925,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61063,12 +61957,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61095,20 +61983,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61120,19 +61998,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61826,10 +62691,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61945,6 +62812,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62463,7 +63342,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67436,6 +68315,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68270,6 +69165,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/ru.po b/doc/translations/ru.po
index bbeae1652c..8c22c1edf5 100644
--- a/doc/translations/ru.po
+++ b/doc/translations/ru.po
@@ -1,6 +1,6 @@
# Russian translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Alex <Alex.Gorichev@protonmail.com>, 2020.
@@ -32,12 +32,14 @@
# GameOverCode <thefguyplayeriwbt@gmail.com>, 2021.
# trolley813 <trolleybus.1329@gmail.com>, 2021.
# artem <artem999.r@protonmail.com>, 2021.
+# Werryx <artoops@mail.ru>, 2022.
+# Eugene <oukey311@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-12-04 12:53+0000\n"
-"Last-Translator: artem <artem999.r@protonmail.com>\n"
+"PO-Revision-Date: 2022-01-03 03:53+0000\n"
+"Last-Translator: Eugene <oukey311@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot-class-reference/ru/>\n"
"Language: ru\n"
@@ -46,7 +48,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -88,6 +90,71 @@ msgstr "ОпиÑÐ°Ð½Ð¸Ñ ÑвойÑтв"
msgid "Method Descriptions"
msgstr "ОпиÑÐ°Ð½Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð¾Ð²"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "ОпиÑÐ°Ð½Ð¸Ñ ÑвойÑтв"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Ð’Ñтроенные функции GDScript."
@@ -472,6 +539,23 @@ msgid ""
"want a true content-aware comparison, you have to use [code]deep_equal[/"
"code]."
msgstr ""
+"Сравнивает два значениÑ, проверÑÑ Ð¸Ñ… фактичеÑкое Ñодержимое, рекурÑивно "
+"Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñ Ð² любой маÑÑив или Ñловарь до Ñамого глубокого уровнÑ.\n"
+"Это можно Ñравнить Ñ [code]==[/code] по неÑкольким причинам:\n"
+"- Ð”Ð»Ñ [code]null[/code], [code]int[/code], [code]float[/code], [code]String[/"
+"code], [code]Object[/code] и [code]RID[/code], [code]deep_equal[/code] и "
+"[code]==[/code] работают одинаково.\n"
+"- Ð”Ð»Ñ [code]Dictionary[/code], [code]==[/code] раÑÑматривает равенÑтво и "
+"только еÑли обе переменные указывают на один и тот же [code]Dictionary[/"
+"code], без рекурÑии или проÑмотра Ñодержимого вообще.\n"
+"- Ð”Ð»Ñ [code]Array[/code], [code]==[/code] ÑчитаетÑÑ Ñ€Ð°Ð²ÐµÐ½Ñтвом тогда, и "
+"только тогда, когда каждый Ñлемент в первом [code]Array[/code] равен "
+"Ñлементу во втором [code]Array[/code], как Ñообщает [code]==[/code]. Это "
+"означает, что [code]==[/code] рекурÑивно переходит в [code]Array[/code], но "
+"не в [code]Dictionary[/code].\n"
+"Короче говорÑ, вÑÑкий раз, когда потенциально задейÑтвован [code]Dictionary[/"
+"code], еÑли вам нужно иÑтинное Ñравнение Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ Ñодержимого, вы должны "
+"иÑпользовать [code]deep_equal[/code]."
#: modules/gdscript/doc_classes/@GDScript.xml
#, fuzzy
@@ -774,27 +858,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"Возвращает нормализованное значение Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ заданного диапазона. Это "
-"противоположно [method lerp].\n"
-"[codeblock]\n"
-"var middle = lerp(20, 30, 0.75)\n"
-"# `middle` ÑÐµÐ¹Ñ‡Ð°Ñ Ñ€Ð°Ð²Ð½Ð¾ 27.5.\n"
-"# ПредÑтавим, что мы забыли иÑходное Ñоотношение и хотим получить его "
-"обратно.\n"
-"var ratio = inverse_lerp(20, 30, 27.5)\n"
-"# `ratio`ÑÐµÐ¹Ñ‡Ð°Ñ Ñ€Ð°Ð²Ð½Ð¾ 0.75.\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -868,8 +950,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -878,7 +963,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"Ð›Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð¿Ð¾Ð»ÑÑ†Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñми по нормализованному значению. "
"Это противоположно [method inverse_lerp].\n"
@@ -894,11 +982,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -2299,10 +2389,20 @@ msgstr "Синглтон [Marshalls]."
#: doc/classes/@GlobalScope.xml
#, fuzzy
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr "Синглтон [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
msgstr "Синглтон [NavigationMeshGenerator]."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "Синглтон [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
msgstr "Синглтон [OS]."
@@ -3907,32 +4007,109 @@ msgstr ""
"MR)."
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
-msgstr "Сообщение об отключении ноты MIDI."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
-msgstr "Сообщение о включении ноты MIDI."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
-msgstr "Сообщение MIDI aftertouch."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
-msgstr "Сообщение об изменении ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ MIDI."
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
-msgstr "Сообщение о Ñмене программы MIDI."
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
-msgstr "Сообщение о давлении на канал MIDI."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
-msgstr "Сообщение MIDI об изменении выÑоты тона."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
+msgstr ""
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -4767,14 +4944,16 @@ msgid ""
"Returns the center of the [AABB], which is equal to [member position] + "
"([member size] / 2)."
msgstr ""
+"Возвращает центр [AABB], который равен [Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ ÑƒÑ‡Ð°Ñтника] + ([количеÑтво "
+"учаÑтников] / 2)."
#: doc/classes/AABB.xml
msgid "Gets the position of the 8 endpoints of the [AABB] in space."
-msgstr "Возвращает позицию 8-ми точек [AABB] в проÑтранÑтве."
+msgstr "Получает положение 8 конечных точек [AABB] в проÑтранÑтве."
#: doc/classes/AABB.xml
msgid "Returns the normalized longest axis of the [AABB]."
-msgstr "Возвращает Ñамую длинную нормализованную оÑÑŒ [AABB]."
+msgstr "Возвращает нормализованную Ñамую длинную оÑÑŒ [AABB]."
#: doc/classes/AABB.xml
msgid ""
@@ -4888,7 +5067,6 @@ msgid "Beginning corner. Typically has values lower than [member end]."
msgstr "Ðачальный угол. Обычно имеет Ð¼ÐµÐ½ÑŒÑˆÐ¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ, чем у [member end]."
#: doc/classes/AABB.xml doc/classes/Rect2.xml
-#, fuzzy
msgid ""
"Size from [member position] to [member end]. Typically, all components are "
"positive.\n"
@@ -4912,7 +5090,6 @@ msgstr ""
"можно только принÑть или закрыть (Ñ Ñ‚ÐµÐ¼ же результатом)."
#: doc/classes/AcceptDialog.xml
-#, fuzzy
msgid ""
"Adds a button with label [code]text[/code] and a custom [code]action[/code] "
"to the dialog and returns the created button. [code]action[/code] will be "
@@ -4922,15 +5099,16 @@ msgid ""
"You can use [method remove_button] method to remove a button created with "
"this method from the dialog."
msgstr ""
-"ДобавлÑет кнопку Ñ Ð½Ð°Ð´Ð¿Ð¸Ñью [code]text[/code]] и пользовательÑким дейÑтвием "
+"ДобавлÑет кнопку Ñ Ð½Ð°Ð´Ð¿Ð¸Ñью [code]text[/code] и пользовательÑким дейÑтвием "
"[code]action[/code] в диалоговое окно и возвращает Ñозданную кнопку. "
"[code]action[/code] будет передано Ñигналу [signal custom_action] при "
"нажатии.\n"
-"ЕÑли уÑтановлено в [code]true[/code], [code]right[/code] помеÑтит кнопку "
-"Ñправа от любых родÑтвенных кнопок."
+"ЕÑли уÑтановлено в [code]true[/code], [code]right[/code] размеÑтит кнопку "
+"Ñправа от любых родÑтвенных кнопок.\n"
+"Ð’Ñ‹ можете иÑпользовать метод [method remove_button] чтобы удалить кнопку, "
+"Ñозданную Ñтим методом из диалога."
#: doc/classes/AcceptDialog.xml
-#, fuzzy
msgid ""
"Adds a button with label [code]name[/code] and a cancel action to the dialog "
"and returns the created button.\n"
@@ -4938,7 +5116,9 @@ msgid ""
"this method from the dialog."
msgstr ""
"ДобавлÑет кнопку Ñ Ð½Ð°Ð´Ð¿Ð¸Ñью [code]name[/code] и дейÑтвием отмены в "
-"диалоговое окно и возвращает Ñозданную кнопку."
+"диалоговое окно и возвращает Ñозданную кнопку.\n"
+"Ð’Ñ‹ можете иÑпользовать метод [method remove_button] чтобы удалить кнопку, "
+"Ñозданную Ñтим методом из диалога."
#: doc/classes/AcceptDialog.xml
msgid ""
@@ -4980,10 +5160,10 @@ msgid ""
"the [code]button[/code] will no longer emit this dialog's [signal "
"custom_action] signal or cancel this dialog."
msgstr ""
-"УдалÑет [code]кнопку[/code] из диалога. ÐЕ оÑвобождает [код]кнопки[/код]. "
-"Кнопка [code]button[/code] должна быть [Button], добавленной Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ "
-"метода [method add_button] или [method add_cancel]. ПоÑле ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ðµ "
-"[code]кнопки[/code] больше не будет вызывать Ñигнал [signal custom_action] "
+"УдалÑет [code]button[/code] из диалога. ÐЕ оÑвобождает [code]button[/code]. "
+"[code]button[/code] должна быть [Button], добавленной Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ метода "
+"[method add_button] или [method add_cancel]. ПоÑле удалениÑ, нажатие "
+"[code]button[/code] больше не будет вызывать Ñигнал [signal custom_action] "
"Ñтого диалога или отменÑть Ñтот диалог."
#: doc/classes/AcceptDialog.xml
@@ -5112,7 +5292,6 @@ msgstr ""
"раздел [method start]."
#: doc/classes/AESContext.xml
-#, fuzzy
msgid ""
"Get the current IV state for this context (IV gets updated when calling "
"[method update]). You normally don't need this function.\n"
@@ -5121,8 +5300,8 @@ msgid ""
msgstr ""
"Получить текущее IV ÑоÑтоÑние Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ контекÑта (IV обновлÑетÑÑ Ð¿Ñ€Ð¸ "
"вызове [method update]). Обычно Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²Ð°Ð¼ не нужна.\n"
-"Примечание: Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ ÑмыÑл только тогда, когда контекÑÑ‚ запущен Ñ "
-"[constant MODE_CBC_ENCRYPT] или [constant MODE_CBC_DECRYPT]."
+"[b]Примечание:[/b] Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ ÑмыÑл только тогда, когда контекÑÑ‚ "
+"запущен Ñ [constant MODE_CBC_ENCRYPT] или [constant MODE_CBC_DECRYPT]."
#: doc/classes/AESContext.xml
msgid ""
@@ -5138,7 +5317,6 @@ msgstr ""
"MODE_CBC_ENCRYPT], либо [constant MODE_CBC_DECRYPT]."
#: doc/classes/AESContext.xml
-#, fuzzy
msgid ""
"Run the desired operation for this AES context. Will return a "
"[PoolByteArray] containing the result of encrypting (or decrypting) the "
@@ -5146,11 +5324,11 @@ msgid ""
"[b]Note:[/b] The size of [code]src[/code] must be a multiple of 16. Apply "
"some padding if needed."
msgstr ""
-"ЗапуÑтить нужную операцию Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ AES-контекÑта. Вернет "
-"[PackedByteArray], Ñодержащий результат ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (или раÑшифровки) данного "
-"[code]src[/code]. Режимы операции Ñмотрите в [method start].\n"
-"Примечание: Размер [code]src[/code] должен быть кратен 16. При необходимоÑти "
-"применÑйте дополнение."
+"ЗапуÑтить нужную операцию Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ AES-контекÑта. Вернет [PoolByteArray], "
+"Ñодержащий результат ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (или раÑшифровки) данного [code]src[/code]. "
+"Режимы операции Ñмотрите в [method start].\n"
+"[b]Примечание:[/b] Размер [code]src[/code] должен быть кратен 16. При "
+"необходимоÑти применÑйте дополнение."
#: doc/classes/AESContext.xml
msgid "AES electronic codebook encryption mode."
@@ -5323,7 +5501,6 @@ msgid "Proxy texture for simple frame-based animations."
msgstr "ПрокÑи-текÑтура Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñтых покадровых анимаций."
#: doc/classes/AnimatedTexture.xml
-#, fuzzy
msgid ""
"[AnimatedTexture] is a resource format for frame-based animations, where "
"multiple textures can be chained automatically with a predefined delay for "
@@ -5342,8 +5519,8 @@ msgstr ""
"[AnimatedTexture] — Ñто формат реÑурÑа Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð´Ñ€Ð¾Ð²Ñ‹Ñ… анимаций, где "
"неÑколько текÑтур могут быть автоматичеÑки Ñцеплены Ñ Ð¿Ñ€ÐµÐ´Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð¾Ð¹ "
"задержкой Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ кадра. Ð’ отличие от [AnimationPlayer] или "
-"[AnimatedSprite2D], не ÑвлÑетÑÑ [Node], и имеет преимущеÑтво в том, что "
-"может быть иÑпользован везде, где может быть иÑпользован реÑÑƒÑ€Ñ [Texture2D], "
+"[AnimatedSprite], не ÑвлÑетÑÑ [Node], и имеет преимущеÑтво в том, что может "
+"быть иÑпользован везде, где может быть иÑпользован реÑÑƒÑ€Ñ [Texture], "
"например в [TileSet].\n"
"ВоÑпроизведение анимации контролируетÑÑ ÑвойÑтвом [member fps], а также "
"опциональной задержкой каждого кадра (Ñм. [method set_frame_delay]). "
@@ -5351,17 +5528,17 @@ msgstr ""
"автоматичеÑки перезапуÑкаетÑÑ Ð½Ð° 0 кадр.\n"
"Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ [AnimatedTexture] требует, чтобы вÑе текÑтуры кадров имели "
"одинаковый размер, в противном Ñлучае более крупные будут обрезаны в "
-"ÑоответÑтвии Ñ Ð½Ð°Ð¸Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ кадром. Кроме того, не поддерживаетÑÑ "
-"[AtlasTexture]. Каждый кадр должен быть отдельным изображением."
+"ÑоответÑтвии Ñ Ð½Ð°Ð¸Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ кадром.\n"
+"[b]Примечание:[/b] Кроме того, не поддерживаетÑÑ [AtlasTexture]. Каждый кадр "
+"должен быть отдельным [Texture]."
#: doc/classes/AnimatedTexture.xml
msgid "Returns the given frame's delay value."
msgstr "Возвращает значение задержки данного кадра."
#: doc/classes/AnimatedTexture.xml
-#, fuzzy
msgid "Returns the given frame's [Texture]."
-msgstr "Возвращает [Texture2D] заданного кадра."
+msgstr "Возвращает [Texture] заданного кадра."
#: doc/classes/AnimatedTexture.xml
msgid ""
@@ -5394,7 +5571,6 @@ msgstr ""
"[/codeblock]"
#: doc/classes/AnimatedTexture.xml
-#, fuzzy
msgid ""
"Assigns a [Texture] to the given frame. Frame IDs start at 0, so the first "
"frame has ID 0, and the last frame of the animation has ID [member frames] - "
@@ -5403,7 +5579,7 @@ msgid ""
"in mind that only frames from 0 to [member frames] - 1 will be part of the "
"animation."
msgstr ""
-"Ðазначает [Texture2D] данному кадру. Идентификаторы кадров начинаютÑÑ Ñ 0, "
+"Ðазначает [Texture] данному кадру. Идентификаторы кадров начинаютÑÑ Ñ 0, "
"поÑтому первый кадр имеет идентификатор 0, а поÑледний кадр анимации имеет "
"идентификатор [member frames] - 1.\n"
"Ð’Ñ‹ можете определить любое количеÑтво текÑтур до [constant MAX_FRAMES], но "
@@ -5458,7 +5634,6 @@ msgstr ""
"code]."
#: doc/classes/AnimatedTexture.xml
-#, fuzzy
msgid ""
"If [code]true[/code], the animation will pause where it currently is (i.e. "
"at [member current_frame]). The animation will continue from where it was "
@@ -5470,22 +5645,19 @@ msgstr ""
"приоÑтановлена."
#: doc/classes/AnimatedTexture.xml
-#, fuzzy
msgid ""
"The maximum number of frames supported by [AnimatedTexture]. If you need "
"more frames in your animation, use [AnimationPlayer] or [AnimatedSprite]."
msgstr ""
"МакÑимальное количеÑтво кадров, поддерживаемое [AnimatedTexture]. ЕÑли вам "
"нужно больше кадров в анимации, иÑпользуйте [AnimationPlayer] или "
-"[AnimatedSprite2D]."
+"[AnimatedSprite]."
#: doc/classes/Animation.xml
-#, fuzzy
msgid "Contains data used to animate everything in the engine."
msgstr "Содержит данные, иÑпользуемые Ð´Ð»Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ð¸ вÑего в движке."
#: doc/classes/Animation.xml
-#, fuzzy
msgid ""
"An Animation resource contains data used to animate everything in the "
"engine. Animations are divided into tracks, and each track must be linked to "
@@ -5530,7 +5702,6 @@ msgid "$DOCS_URL/tutorials/animation/index.html"
msgstr ""
#: doc/classes/Animation.xml
-#, fuzzy
msgid "Adds a track to the Animation."
msgstr "ДобавлÑет дорожку в анимацию."
@@ -5543,7 +5714,6 @@ msgstr ""
"Ключ [code]track_idx[/code] должен быть индекÑом дорожки анимации."
#: doc/classes/Animation.xml
-#, fuzzy
msgid ""
"Inserts a key with value [code]animation[/code] at the given [code]time[/"
"code] (in seconds). The [code]track_idx[/code] must be the index of an "
@@ -5622,6 +5792,9 @@ msgid ""
"[code]offset[/code]. The [code]track_idx[/code] must be the index of an "
"Audio Track."
msgstr ""
+"УÑтанавливает начало ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð°, идентифицированного [code]key_idx[/"
+"code] равным значению [code]offset[/code]. [code]track_idx[/code] должен "
+"быть индекÑом аудио дорожки."
#: doc/classes/Animation.xml
#, fuzzy
@@ -5689,13 +5862,15 @@ msgstr ""
#: doc/classes/Animation.xml
msgid "Clear the animation (clear all tracks and reset all)."
-msgstr ""
+msgstr "ОчиÑтить анимацию (удалить вÑе дорожки и ÑброÑить вÑÑ‘)."
#: doc/classes/Animation.xml
msgid ""
"Adds a new track that is a copy of the given track from [code]to_animation[/"
"code]."
msgstr ""
+"ДобавлÑет новую дорожку, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑвлÑетÑÑ ÐºÐ¾Ð¿Ð¸ÐµÐ¹ данной дорожки из "
+"[code]to_animation[/code]."
#: doc/classes/Animation.xml
msgid ""
@@ -5774,7 +5949,7 @@ msgstr "Получает тип дорожки."
#: doc/classes/Animation.xml
msgid "Insert a generic key in a given track."
-msgstr ""
+msgstr "Ð’Ñтавить общий ключ в данную дорожку."
#: doc/classes/Animation.xml
msgid ""
@@ -6775,7 +6950,7 @@ msgstr ""
#: doc/classes/AnimationNodeStateMachineTransition.xml
msgid "The transition type."
-msgstr ""
+msgstr "Тип перехода."
#: doc/classes/AnimationNodeStateMachineTransition.xml
msgid "The time to cross-fade between this state and the next."
@@ -8544,7 +8719,10 @@ msgstr ""
"генератора было иÑпользовано каждый раз еÑли вы хотите не-повторÑющихÑÑ "
"Ñдвигов."
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr "Возвращает чиÑло Ñлементов в маÑÑиве."
@@ -13505,7 +13683,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -13575,11 +13753,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -13588,23 +13768,26 @@ msgstr ""
#: doc/classes/CameraServer.xml
#, fuzzy
-msgid "Returns the [CameraFeed] with this id."
-msgstr "Возвращает вектор привÑзанный к Ñетке Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ размером."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Возвращает вектор Ñпроецированный на вектор [code]b[/code]."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr ""
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "Возвращает ÑкалÑрное произведение Ñ [code]b[/code]."
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -13612,7 +13795,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -13700,8 +13883,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13711,17 +13895,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13732,16 +13922,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -13753,27 +13949,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13893,8 +14101,13 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+#, fuzzy
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
+"Очищает маÑÑив. Это Ñквивалентно иÑпользованию [method resize] Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð¾Ð¼ "
+"[code]0[/code]."
#: doc/classes/CanvasItem.xml
msgid ""
@@ -13952,7 +14165,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -14310,8 +14524,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -14360,6 +14574,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -14865,6 +15085,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -15293,9 +15514,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -15538,7 +15759,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -16206,8 +16429,9 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
-msgstr ""
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
+msgstr "ЕÑли [code]true[/code], текÑтура будет центрирована."
#: doc/classes/ColorPicker.xml
msgid ""
@@ -18323,7 +18547,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -19641,7 +19867,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -21170,6 +21396,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -21187,11 +21420,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -21270,12 +21505,21 @@ msgid "Adds a static lib from the given [code]path[/code] to the iOS project."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
-#, fuzzy
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
-"Создаёт новый [Vector2] иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ [code]x[/code] и [code]y[/code]."
#: doc/classes/EditorExportPlugin.xml
msgid ""
@@ -21717,10 +21961,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -21769,7 +22012,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -21939,8 +22184,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -21949,7 +22194,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -23031,6 +23278,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -23514,10 +23769,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -23997,7 +24254,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -24634,7 +24891,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -25571,14 +25828,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -25656,7 +25913,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -27785,6 +28042,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -28013,7 +28276,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -28036,7 +28299,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -30329,7 +30592,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -30350,7 +30617,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -30369,8 +30640,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -30383,7 +30663,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -30701,7 +30990,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -30729,7 +31022,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -30924,6 +31221,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -30940,15 +31334,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -31554,9 +31950,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -32511,6 +32907,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -35742,16 +36161,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -35772,10 +36188,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -35791,29 +36204,19 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
-#, fuzzy
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
-msgstr "Возвращает вектор привÑзанный к Ñетке Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ размером."
-
-#: doc/classes/Navigation.xml
msgid ""
"Defines which direction is up. By default, this is [code](0, 1, 0)[/code], "
"which is the world's \"up\" direction."
@@ -35827,14 +36230,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -35843,37 +36243,413 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+#, fuzzy
+msgid "Server interface for low-level 2D navigation access."
+msgstr "Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ðº низкоуровневым функциÑм ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ AES."
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr "Возвращает [code]true[/code] еÑли маÑÑив пуÑтой."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Возвращает Ñ‚Ð°Ð½Ð³ÐµÐ½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
-msgstr "Возвращает вектор привÑзанный к Ñетке Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ размером."
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Возвращает ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Получает положение 8 конечных точек [AABB] в проÑтранÑтве."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Возвращает значение, противоположное параметру."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Смещение текÑтуры."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "УÑтанавливает текущий видимый кадр текÑтуры."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Возвращает значение задержки данного кадра."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+"УдалÑет и возвращает первый Ñлемент маÑÑива. Возвращает [code]null[/code] "
+"еÑли маÑÑив пуÑтой."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Возвращает [code]true[/code] еÑли маÑÑив пуÑтой."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Возвращает значение задержки данного кадра."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Возвращает ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "ОÑтанавливает текущую анимацию (не ÑбраÑывает Ñчётчик кадров)."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "Возвращает раÑÑтоÑние до [code]b[/code]."
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Возвращает аркÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr "Возвращает внешнее произведение Ñ [code]b[/code]."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr "Возвращает [code]true[/code] еÑли маÑÑив пуÑтой."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr "Возвращает [code]true[/code] еÑли вектор нормализован."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The radius of the agent."
+msgstr "Цвет Ñффекта отражениÑ."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Возвращает аркÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
#: doc/classes/NavigationMesh.xml
msgid "A mesh to approximate the walkable areas and obstacles."
@@ -35972,10 +36748,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -36138,26 +36910,115 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr "ПредÑтавлÑет размер перечиÑÐ»ÐµÐ½Ð¸Ñ [enum Variant.Type]."
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-#, fuzzy
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
-msgstr "ЕÑли [code]true[/code], текÑтура будет центрирована."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
msgstr "Синглтон [NavigationMeshGenerator]."
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
#: doc/classes/NavigationPolygon.xml
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
@@ -36254,6 +37115,76 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Server interface for low-level 3D navigation access."
+msgstr "Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ðº низкоуровневым функциÑм ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ AES."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Возвращает обратный квадратный корень из аргумента."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Возвращает значение задержки данного кадра."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Возвращает ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -39602,7 +40533,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -44240,16 +45173,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -44311,12 +45244,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -44402,10 +45329,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -47877,7 +48800,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -47920,8 +48843,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -47933,6 +48857,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -48839,12 +49776,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -48975,15 +49912,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -50254,14 +51182,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -51308,7 +52228,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -51491,7 +52411,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -51598,7 +52518,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -53672,7 +54592,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -53696,19 +54616,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -55414,7 +56353,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -56114,6 +57053,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -59371,7 +60320,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -59393,9 +60342,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -60502,17 +61453,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -60532,10 +61483,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -60659,25 +61610,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -62859,12 +63791,12 @@ msgid ""
msgstr ""
"Возвращает вектор \"отÑкока\" от плоÑкоÑти определённой заданной нормалью."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
#, fuzzy
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
-msgstr "Возвращает вектор в котором вÑе компоненты округлены вниз."
+msgstr "Возвращает новый вектор у которого вÑе компоненты округлены вниз."
#: doc/classes/Vector2.xml
#, fuzzy
@@ -62934,12 +63866,12 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
#, fuzzy
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
-msgstr "Возвращает вектор в котором вÑе компоненты округлены вниз."
+msgstr "Возвращает новый вектор у которого вÑе компоненты округлены вниз."
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -62994,10 +63926,11 @@ msgstr ""
"code] на значение [code]t[/code]. [code]t[/code] лежит в диапазоне от 0.0 до "
"1.0 и предÑтавлÑет величину ÑглаживаниÑ."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
"Сдвигает вектор к [code]to[/code] на фикÑированное значение [code]delta[/"
"code]."
@@ -63028,12 +63961,16 @@ msgstr ""
"Возвращает вектор поÑтроенный через [method @GDScript.fposmod] на иÑходных "
"компонентах вектора и компонентах [code]modv[/code]."
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr "Возвращает вектор Ñпроецированный на вектор [code]b[/code]."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+#, fuzzy
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
"Возвращает вектор отраженный от плоÑкоÑти определенной заданной нормалью."
@@ -63045,20 +63982,21 @@ msgstr ""
"Возвращает вектор Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð½Ð° [code]phi[/code] радиан. См. также [method "
"@GDScript.deg2rad]."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
"Возвращает вектор в котором вÑе компоненты округлены до ближайшего "
"целочиÑленного значениÑ."
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
#, fuzzy
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
"Возвращает вектор в котором вÑе компоненты уÑтановлены в 1 или -1, в "
"завиÑимоÑти от знаков перед компонентами иÑходного вектора."
@@ -63188,28 +64126,21 @@ msgstr "Возвращает минимальный угол указанногÐ
#: doc/classes/Vector3.xml
#, fuzzy
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr "Возвращает новый вектор у которого вÑе компоненты округлены вниз."
-
-#: doc/classes/Vector3.xml
-#, fuzzy
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "Возвращает ÑкалÑрное произведение Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð¾Ð¼ [code]b[/code]."
#: doc/classes/Vector3.xml
#, fuzzy
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-"ВыполнÑет кубичеÑкое Ñглаживание между векторами [code]pre_a[/code], "
-"[code]a[/code], [code]b[/code], [code]post_b[/code] ([code]a[/code] Ñто "
-"текущий вектор),на заданное значение [code]t[/code]. [code]t[/code] лежит в "
-"диапазоне от 0.0 до 1.0 и предÑтавлÑет величину ÑглаживаниÑ."
+"КубичеÑки интерполирует между Ñтим вектором и [code]b[/code], иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ "
+"[code]pre_a[/code] и [code]post_b[/code] в качеÑтве деÑкрипторов, и "
+"возвращает результат в позиции [code]t[/code]. [code]t[/code] находитÑÑ Ð² "
+"диапазоне от 0.0 до 1.0, предÑтавлÑÑ Ð²ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ñƒ интерполÑции."
#: doc/classes/Vector3.xml
#, fuzzy
@@ -63232,13 +64163,6 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-#, fuzzy
-msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr "Возвращает новый вектор у которого вÑе компоненты округлены вниз."
-
-#: doc/classes/Vector3.xml
msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
@@ -63278,25 +64202,11 @@ msgstr ""
"[code]AXIS_*[/code]."
#: doc/classes/Vector3.xml
-#, fuzzy
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-"Сдвигает вектор к [code]to[/code] на фикÑированное значение [code]delta[/"
-"code]."
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr "Возвращает внешнее произведение Ñ [code]b[/code]."
#: doc/classes/Vector3.xml
#, fuzzy
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr "Возвращает вектор Ñпроецированный на вектор [code]b[/code]."
-
-#: doc/classes/Vector3.xml
-#, fuzzy
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
"Возвращает вектор отраженный от плоÑкоÑти определенной заданной нормалью."
@@ -63311,25 +64221,6 @@ msgstr ""
"быть нормализованным вектором."
#: doc/classes/Vector3.xml
-#, fuzzy
-msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-"Возвращает вектор в котором вÑе компоненты округлены до ближайшего "
-"целочиÑленного значениÑ."
-
-#: doc/classes/Vector3.xml
-#, fuzzy
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-"Возвращает вектор в котором вÑе компоненты уÑтановлены в 1 или -1, в "
-"завиÑимоÑти от знаков перед компонентами иÑходного вектора."
-
-#: doc/classes/Vector3.xml
msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
@@ -64033,10 +64924,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -64153,6 +65046,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -64675,7 +65580,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -69691,6 +70596,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -70527,6 +71448,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "ПредÑтавлÑет размер перечиÑÐ»ÐµÐ½Ð¸Ñ [enum Variant.Type]."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/sk.po b/doc/translations/sk.po
index d25eab5c0b..9d36ee690b 100644
--- a/doc/translations/sk.po
+++ b/doc/translations/sk.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Richard Urban <redasuio1@gmail.com>, 2020.
@@ -62,6 +62,70 @@ msgstr ""
msgid "Method Descriptions"
msgstr ""
+#: doc/tools/make_rst.py
+msgid "Theme Property Descriptions"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr ""
@@ -471,16 +535,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -530,8 +602,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -540,7 +615,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -548,7 +626,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1380,7 +1459,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2890,31 +2977,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6978,7 +7142,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11882,7 +12049,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11947,11 +12114,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11959,7 +12128,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11967,15 +12138,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11983,7 +12154,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12071,8 +12242,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12082,17 +12254,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12103,16 +12281,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12124,27 +12308,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12264,7 +12460,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12323,7 +12521,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12681,8 +12880,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12731,6 +12930,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13230,6 +13435,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13656,9 +13862,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13901,7 +14107,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14569,7 +14777,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16587,7 +16795,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17904,7 +18114,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19423,6 +19633,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19440,11 +19657,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19524,8 +19743,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19968,10 +20198,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20020,7 +20249,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20190,8 +20421,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20200,7 +20431,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21275,6 +21508,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21751,10 +21992,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22234,7 +22477,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22869,7 +23112,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23804,14 +24047,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -23887,7 +24130,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26003,6 +26246,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26231,7 +26480,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26254,7 +26503,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28540,7 +28789,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28561,7 +28814,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28580,8 +28837,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28594,7 +28860,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28912,7 +29187,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28940,7 +29219,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29135,6 +29418,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29151,15 +29531,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29763,9 +30145,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30696,6 +31078,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33912,16 +34317,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -33942,10 +34344,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33961,25 +34360,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33996,14 +34386,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34012,35 +34399,389 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34139,10 +34880,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34301,22 +35038,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34415,6 +35242,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37746,7 +38639,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42340,16 +43235,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42411,12 +43306,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42497,10 +43386,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45948,7 +46833,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45991,8 +46876,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46004,6 +46890,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46863,12 +47762,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46997,15 +47896,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48268,14 +49158,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49322,7 +50204,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49505,7 +50387,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49612,7 +50494,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51678,7 +52560,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51702,19 +52584,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53412,7 +54313,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54097,6 +54998,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57309,7 +58220,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57331,9 +58242,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58435,17 +59348,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58465,10 +59378,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58592,25 +59505,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60764,9 +61658,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60821,9 +61715,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60864,10 +61758,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60888,12 +61782,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60902,17 +61798,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61012,21 +61908,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61050,12 +61940,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61082,20 +61966,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61107,19 +61981,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61813,10 +62674,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61932,6 +62795,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62450,7 +63325,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67423,6 +68298,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68257,6 +69148,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/sr_Cyrl.po b/doc/translations/sr_Cyrl.po
index f040d6dc25..7330ba9f1f 100644
--- a/doc/translations/sr_Cyrl.po
+++ b/doc/translations/sr_Cyrl.po
@@ -1,6 +1,6 @@
# Serbian (cyrillic) translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Младен Габић <cupakabra@protonmail.com>, 2020.
@@ -67,6 +67,71 @@ msgstr "ОпиÑи ОÑобина"
msgid "Method Descriptions"
msgstr "ОпиÑи Метода"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "ОпиÑи ОÑобина"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
#, fuzzy
msgid "Built-in GDScript functions."
@@ -481,16 +546,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -540,8 +613,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -550,7 +626,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -558,7 +637,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1390,7 +1470,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2900,31 +2988,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6988,7 +7153,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11892,7 +12060,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11957,11 +12125,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11969,7 +12139,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11977,15 +12149,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11993,7 +12165,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12081,8 +12253,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12092,17 +12265,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12113,16 +12292,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12134,27 +12319,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12274,7 +12471,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12333,7 +12532,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12691,8 +12891,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12741,6 +12941,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13240,6 +13446,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13666,9 +13873,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13911,7 +14118,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14579,7 +14788,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16597,7 +16806,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17914,7 +18125,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19433,6 +19644,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19450,11 +19668,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19534,8 +19754,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19978,10 +20209,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20030,7 +20260,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20200,8 +20432,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20210,7 +20442,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21285,6 +21519,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21761,10 +22003,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22244,7 +22488,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22879,7 +23123,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23814,14 +24058,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -23897,7 +24141,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26013,6 +26257,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26241,7 +26491,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26264,7 +26514,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28550,7 +28800,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28571,7 +28825,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28590,8 +28848,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28604,7 +28871,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28922,7 +29198,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28950,7 +29230,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29145,6 +29429,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29161,15 +29542,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29773,9 +30156,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30706,6 +31089,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33922,16 +34328,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -33952,10 +34355,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33971,25 +34371,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34006,14 +34397,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34022,35 +34410,389 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34149,10 +34891,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34311,22 +35049,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34425,6 +35253,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37756,7 +38650,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42350,16 +43246,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42421,12 +43317,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42507,10 +43397,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45958,7 +46844,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46001,8 +46887,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46014,6 +46901,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46873,12 +47773,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47007,15 +47907,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48278,14 +49169,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49332,7 +50215,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49515,7 +50398,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49622,7 +50505,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51688,7 +52571,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51712,19 +52595,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53422,7 +54324,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54107,6 +55009,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57319,7 +58231,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57341,9 +58253,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58445,17 +59359,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58475,10 +59389,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58602,25 +59516,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60774,9 +61669,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60831,9 +61726,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60874,10 +61769,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60898,12 +61793,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60912,17 +61809,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61022,21 +61919,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61060,12 +61951,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61092,20 +61977,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61117,19 +61992,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61823,10 +62685,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61942,6 +62806,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62460,7 +63336,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67433,6 +68309,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68267,6 +69159,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/sv.po b/doc/translations/sv.po
index e61d3fe0be..bb965079c5 100644
--- a/doc/translations/sv.po
+++ b/doc/translations/sv.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Christoffer Sundbom <christoffer_karlsson@live.se>, 2021.
@@ -61,6 +61,71 @@ msgstr ""
msgid "Method Descriptions"
msgstr "Metodbeskrivning"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Tema Egenskaper"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Inbyggda GDScriptfunktioner."
@@ -470,16 +535,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -529,8 +602,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -539,7 +615,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -547,7 +626,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1379,7 +1459,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2889,31 +2977,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -6964,7 +7129,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11839,7 +12007,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11904,11 +12072,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11916,7 +12086,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11924,15 +12096,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11940,7 +12112,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12026,8 +12198,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12037,17 +12210,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12058,16 +12237,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12079,27 +12264,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12219,7 +12416,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12278,7 +12477,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12632,8 +12832,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12682,6 +12882,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13181,6 +13387,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13603,9 +13810,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13845,7 +14052,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14513,7 +14722,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16527,7 +16736,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17841,7 +18052,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -19351,6 +19562,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19368,11 +19586,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19452,8 +19672,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19896,10 +20127,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -19948,7 +20178,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20115,8 +20347,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20125,7 +20357,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21195,6 +21429,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21668,10 +21910,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22148,7 +22392,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22777,7 +23021,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23711,11 +23955,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -23788,7 +24032,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -25900,6 +26144,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26128,7 +26378,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26151,7 +26401,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28425,7 +28675,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28446,7 +28700,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28465,8 +28723,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28479,7 +28746,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28795,7 +29071,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28823,7 +29103,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29015,6 +29299,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29031,15 +29412,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29637,9 +30020,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30560,6 +30943,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33758,16 +34164,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33787,10 +34190,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33806,25 +34206,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33841,14 +34232,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -33856,35 +34244,389 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -33983,10 +34725,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34145,22 +34883,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34259,6 +35087,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37572,7 +38466,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42159,16 +43055,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42230,12 +43126,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42316,10 +43206,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45766,7 +46652,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45809,8 +46695,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -45822,6 +46709,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46676,12 +47576,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46810,15 +47710,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48077,14 +48968,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49129,7 +50012,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49312,7 +50195,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49419,7 +50302,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51465,7 +52348,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51489,19 +52372,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53199,7 +54101,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -53881,6 +54783,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57087,7 +57999,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57109,9 +58021,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58213,17 +59127,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58243,10 +59157,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58370,25 +59284,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60537,9 +61432,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60594,9 +61489,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60637,10 +61532,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60661,12 +61556,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60675,17 +61572,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60785,21 +61682,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -60823,12 +61714,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -60855,20 +61740,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -60880,19 +61755,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61582,10 +62444,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61701,6 +62565,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62218,7 +63094,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -67184,6 +68060,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68012,6 +68904,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/th.po b/doc/translations/th.po
index bc715ca3ed..ca9954ed1c 100644
--- a/doc/translations/th.po
+++ b/doc/translations/th.po
@@ -1,6 +1,6 @@
# Thai translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Thanachart Monpassorn <nunf_2539@hotmail.com>, 2020.
@@ -64,6 +64,71 @@ msgstr "รายละเอียดของคุณสมบัติ"
msgid "Method Descriptions"
msgstr "รายละเอียดเมท็อด"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "รายละเอียดของคุณสมบัติ"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Built-in function ใน GDScript"
@@ -547,16 +612,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -606,8 +679,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -616,7 +692,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -624,7 +703,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1469,7 +1549,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2982,31 +3070,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7078,7 +7243,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11983,7 +12151,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12050,11 +12218,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12062,7 +12232,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12070,15 +12242,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12086,7 +12258,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12174,8 +12346,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12185,17 +12358,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12206,16 +12385,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12227,27 +12412,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12367,7 +12564,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12426,7 +12625,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12784,8 +12984,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12834,6 +13034,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13333,6 +13539,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13759,9 +13966,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14004,7 +14211,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14672,7 +14881,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16690,7 +16899,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18007,7 +18218,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19526,6 +19737,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19543,11 +19761,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19627,8 +19847,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20071,10 +20302,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20123,7 +20353,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20293,8 +20525,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20303,7 +20535,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21378,6 +21612,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21854,10 +22096,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22337,7 +22581,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22972,7 +23216,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23907,14 +24151,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -23990,7 +24234,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26106,6 +26350,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26334,7 +26584,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26357,7 +26607,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28649,7 +28899,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28671,7 +28925,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
"ส่งคืนค่า [code]true[/code] หาà¸à¸„ุณà¸à¸³à¸¥à¸±à¸‡à¹ƒà¸Šà¹‰à¸à¸²à¸£à¸à¸” action event โปรดทราบไว้ว่าหาภ"
"action มีà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ปุ่มไว้หลายปุ่มà¹à¸¥à¸°à¸¡à¸µà¸à¸²à¸£à¸à¸”มาà¸à¸à¸§à¹ˆà¸²à¸«à¸™à¸¶à¹ˆà¸‡à¸›à¸¸à¹ˆà¸¡ à¸à¸²à¸£à¸›à¸¥à¹ˆà¸­à¸¢à¸›à¸¸à¹ˆà¸¡à¸„รั้งเดียวจะเป็นà¸à¸²à¸£à¸¢à¸à¹€à¸¥à¸´à¸ "
@@ -28693,8 +28951,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28707,7 +28974,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29025,7 +29301,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29053,7 +29333,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29248,6 +29532,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29264,15 +29645,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29876,9 +30259,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30814,6 +31197,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr "Node à¸à¸¥à¸¨à¸²à¸ªà¸•ร์à¸à¸²à¸£à¹€à¸„ลื่อนไหวร่างà¸à¸²à¸¢à¹à¸šà¸š 2D"
@@ -34036,16 +34442,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34066,10 +34469,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34085,25 +34485,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34120,14 +34511,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34136,35 +34524,396 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "คืนค่าผà¸à¸œà¸±à¸™à¸£à¸¹à¸—สองของพารามิเตอร์"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "คืนค่า arc tanh ของพารามิเตอร์"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "คืนค่าà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าของลำโพง"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "คืนค่าà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าของลำโพง"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "คืนค่าà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าของลำโพง"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "คืนค่าà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าของลำโพง"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "คืนค่าผà¸à¸œà¸±à¸™à¸£à¸¹à¸—สองของพารามิเตอร์"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34263,10 +35012,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34425,22 +35170,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34539,6 +35374,74 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "คืนค่าผà¸à¸œà¸±à¸™à¸£à¸¹à¸—สองของพารามิเตอร์"
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "คืนค่าà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าของลำโพง"
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37901,7 +38804,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42501,16 +43406,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42572,12 +43477,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42658,10 +43557,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46114,7 +47009,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46157,8 +47052,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46170,6 +47066,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47029,12 +47938,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47163,15 +48072,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48434,14 +49334,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49488,7 +50380,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49671,7 +50563,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49778,7 +50670,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51844,7 +52736,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51868,19 +52760,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53579,7 +54490,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54264,6 +55175,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57478,7 +58399,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57500,9 +58421,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58604,17 +59527,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58634,10 +59557,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58761,25 +59684,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60939,9 +61843,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60996,9 +61900,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61039,10 +61943,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61063,12 +61967,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61077,17 +61983,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61193,21 +62099,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61231,12 +62131,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61263,20 +62157,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61288,19 +62172,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61994,10 +62865,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62113,6 +62986,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62631,7 +63516,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67608,6 +68493,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68444,6 +69345,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "คืนค่าผà¸à¸œà¸±à¸™à¸£à¸¹à¸—สองของพารามิเตอร์"
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/tl.po b/doc/translations/tl.po
index 83a1dd086f..e7155eb8d5 100644
--- a/doc/translations/tl.po
+++ b/doc/translations/tl.po
@@ -1,6 +1,6 @@
# Tagalog translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Napstaguy04 <brokenscreen3@gmail.com>, 2021.
@@ -60,6 +60,71 @@ msgstr "Mga Paglalarawan ng Katangian"
msgid "Method Descriptions"
msgstr "Panglalarawan ng mga Method"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Mga Paglalarawan ng Katangian"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Mga built-in na function ng GDScript."
@@ -542,16 +607,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -601,8 +674,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -611,7 +687,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -619,7 +698,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1451,7 +1531,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2961,31 +3049,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid "MIDI stop message. Stop the current sequence."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7036,7 +7201,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11914,7 +12082,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -11979,11 +12147,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11991,7 +12161,9 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -11999,15 +12171,15 @@ msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12015,7 +12187,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12101,8 +12273,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12112,17 +12285,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12133,16 +12312,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12154,27 +12339,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12294,7 +12491,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12353,7 +12552,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12707,8 +12907,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12757,6 +12957,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13256,6 +13462,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13678,9 +13885,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -13920,7 +14127,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14588,7 +14797,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16602,7 +16811,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -17916,7 +18127,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -19426,6 +19637,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19443,11 +19661,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19527,8 +19747,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19971,10 +20202,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20023,7 +20253,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20190,8 +20422,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20200,7 +20432,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21270,6 +21504,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21743,10 +21985,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22223,7 +22467,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22852,7 +23096,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23786,11 +24030,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -23863,7 +24107,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -25975,6 +26219,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26203,7 +26453,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26226,7 +26476,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28500,7 +28750,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28521,7 +28775,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28540,8 +28798,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28554,7 +28821,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28870,7 +29146,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -28898,7 +29178,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29090,6 +29374,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29106,15 +29487,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29712,9 +30095,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30635,6 +31018,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -33833,16 +34239,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -33862,10 +34265,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33881,25 +34281,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -33916,14 +34307,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -33931,35 +34319,395 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+"Kung [code]true[/code], ang mga child nodes ay inaayos, kung hindi ang pag-"
+"so-sort ay hindi pinapagana."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Puts the agent in the map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the position of the agent in world space."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the radius of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the new target velocity."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the current velocity of the agent."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the map cell size."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+"Kung [code]true[/code], ang mga child nodes ay inaayos, kung hindi ang pag-"
+"so-sort ay hindi pinapagana."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map active."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the map for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the navigation mesh for the region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34058,10 +34806,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34220,22 +34964,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "The [NavigationMesh] resource to use."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34334,6 +35168,72 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Returns the map's up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Sets the map up direction."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37647,7 +38547,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42234,16 +43136,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42305,12 +43207,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42391,10 +43287,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -45841,7 +46733,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -45884,8 +46776,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -45897,6 +46790,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -46751,12 +47657,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -46885,15 +47791,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48152,14 +49049,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49204,7 +50093,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49387,7 +50276,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49494,7 +50383,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51540,7 +52429,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51564,19 +52453,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53274,7 +54182,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -53956,6 +54864,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57165,7 +58083,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57187,9 +58105,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58291,17 +59211,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58321,10 +59241,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58448,25 +59368,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60615,9 +61516,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60672,9 +61573,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -60715,10 +61616,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60739,12 +61640,14 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr ""
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -60753,17 +61656,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -60863,21 +61766,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -60901,12 +61798,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -60933,20 +61824,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -60958,19 +61839,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61660,10 +62528,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -61779,6 +62649,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62296,7 +63178,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -67262,6 +68144,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68090,6 +68988,52 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "Represents the size of the [enum Hint] enum."
+msgstr ""
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/tr.po b/doc/translations/tr.po
index 29677ca02a..213c6cb98a 100644
--- a/doc/translations/tr.po
+++ b/doc/translations/tr.po
@@ -1,6 +1,6 @@
# Turkish translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# hüseyinyıldız <hsynyldzcn@gmail.com>, 2020.
@@ -72,6 +72,71 @@ msgstr "Özellik Açıklamaları"
msgid "Method Descriptions"
msgstr "Yöntem Açıklamaları"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Özellik Açıklamaları"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "YerleÅŸik GDScript iÅŸlevleri."
@@ -726,26 +791,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"Verilen dağılım bilgisine göre sınırlandırılma için kullanılan çarpan "
-"değerini (0 ila 1 arası) döndürür. Bu lerp yönteminin tersidir.\n"
-"[codeblock]\n"
-"var middle = lerp(20, 30, 0.75)\n"
-"# `middle (ara deÄŸer)` burada 27.5.\n"
-"# oranı unutmuş gibi davranıyoruz ve yeniden hesaplatıyoruz.\n"
-"var ratio = inverse_lerp(20, 30, 27.5)\n"
-"# `ratio (oran)` burada 0.75.\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -820,8 +884,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -830,7 +897,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"Doğrusal olarak iki sayı arasında, sınırlandırma öğesine (0 ila 1 arasında) "
"göre ara değer hesaplar (interpolate). [method inverse_lerp] yönteminin "
@@ -846,11 +916,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -2152,10 +2224,20 @@ msgstr "[Marshalls] tekil nesnesi."
#: doc/classes/@GlobalScope.xml
#, fuzzy
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr "[AudioServer] tekil nesnesi."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
msgstr "[NavigationMeshGenerator] tekil nesnesi."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "[AudioServer] tekil nesnesi."
+
+#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
msgstr "[OS] tekil nesnesi."
@@ -3666,31 +3748,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid "MIDI stop message. Stop the current sequence."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7755,7 +7914,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -12664,7 +12826,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12734,11 +12896,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12746,23 +12910,26 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Verilen değerin sinüsünü döndürür."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12770,8 +12937,11 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+#, fuzzy
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
+"[url=https://en.wikipedia.org/wiki/DEFLATE]DEFLATE[/url] sıkıştırma "
+"yöntemini kullanır."
#: doc/classes/CameraServer.xml
msgid "The Y component camera image."
@@ -12858,8 +13028,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12869,17 +13040,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12890,16 +13067,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12911,27 +13094,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13051,7 +13246,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -13110,7 +13307,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -13468,8 +13666,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -13518,6 +13716,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -14017,6 +14221,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -14443,9 +14648,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14688,7 +14893,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -15356,8 +15563,10 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
+"Eğer [code]true[/code] ise düğümler sıraya sokulur, yoksa sıraya sokulmaz."
#: doc/classes/ColorPicker.xml
msgid ""
@@ -17374,7 +17583,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18691,7 +18902,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -20214,6 +20425,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -20231,11 +20449,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20315,8 +20535,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20759,10 +20990,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20811,7 +21041,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20981,8 +21213,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20991,7 +21223,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -22068,6 +22302,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -22544,10 +22786,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -23027,7 +23271,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -23662,7 +23906,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -24602,14 +24846,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -24685,7 +24929,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26806,6 +27050,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -27034,7 +27284,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -27057,7 +27307,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -29345,7 +29595,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29366,7 +29620,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29385,8 +29643,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29399,7 +29666,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29717,7 +29993,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29745,7 +30025,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29940,6 +30224,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29956,15 +30337,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -30571,9 +30954,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -31504,6 +31887,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34728,16 +35134,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34758,10 +35161,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34777,25 +35177,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34812,14 +35203,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34828,35 +35216,405 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+"Eğer [code]true[/code] ise düğümler sıraya sokulur, yoksa sıraya sokulmaz."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Verilen değerin tanjantını döndürür."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Verilen değerin sinüsünü döndürür."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Verilen değerin zıt değerini döndürür."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Verilen değerin zıt değerini döndürür."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Verilen değerin sinüsünü döndürür."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Verilen değerin zıt değerini döndürür."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Verilen bir değerin ark-sinüsünü döndürür."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr ""
+"Eğer [code]true[/code] ise düğümler sıraya sokulur, yoksa sıraya sokulmaz."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Verilen bir değerin ark-sinüsünü döndürür."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Verilen değerin sinüsünü döndürür."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "[NavigationMeshGenerator] tekil nesnesi."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Verilen bir değerin ark-sinüsünü döndürür."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Verilen bir değerin ark-sinüsünü döndürür."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34956,10 +35714,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -35121,25 +35875,115 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
msgstr "[NavigationMeshGenerator] tekil nesnesi."
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
#: doc/classes/NavigationPolygon.xml
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
@@ -35236,6 +36080,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Verilen değerin karekökünün tersini döndürür."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Verilen bir değerin ark-sinüsünü döndürür."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Verilen değerin sinüsünü döndürür."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -38570,7 +39483,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -43194,16 +44109,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -43265,12 +44180,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -43351,10 +44260,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46803,7 +47708,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46846,8 +47751,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46859,6 +47765,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47723,12 +48642,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47859,15 +48778,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -49130,14 +50040,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -50184,7 +51086,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -50367,7 +51269,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -50474,7 +51376,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -52540,7 +53442,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -52564,19 +53466,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -54276,7 +55197,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54961,6 +55882,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -58181,7 +59112,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -58203,9 +59134,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -59307,17 +60240,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -59337,10 +60270,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -59464,25 +60397,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -61638,9 +62552,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -61695,9 +62609,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61738,10 +62652,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61762,12 +62676,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "İki vektörün kalanını döndürür."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61776,17 +62693,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61887,21 +62804,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "İki vektörün kalanını döndürür."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61925,12 +62836,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61957,20 +62862,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61982,19 +62877,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -62691,10 +63573,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62812,6 +63696,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -63330,7 +64226,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -68326,6 +69222,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -69162,6 +70074,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Verilen değerin sinüsünü döndürür."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/uk.po b/doc/translations/uk.po
index 27e91cf44d..41495f384a 100644
--- a/doc/translations/uk.po
+++ b/doc/translations/uk.po
@@ -1,6 +1,6 @@
# Ukrainian translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Yuri Chornoivan <yurchor@ukr.net>, 2020.
@@ -65,6 +65,71 @@ msgstr "ОпиÑи влаÑтивоÑтей"
msgid "Method Descriptions"
msgstr "ОпиÑи методів"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "ОпиÑи влаÑтивоÑтей"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Вбудовані функції GDScript."
@@ -579,16 +644,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -638,8 +711,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -648,7 +724,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -656,7 +735,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1503,7 +1583,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -3013,31 +3101,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7108,7 +7273,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -12015,7 +12183,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12083,11 +12251,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12095,23 +12265,27 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "ОбчиÑлює векторний добуток двох векторів та [code]with[/code]."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr ""
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "ОбчиÑлює векторний добуток двох векторів та [code]with[/code]."
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12119,7 +12293,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12207,8 +12381,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12218,17 +12393,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12239,16 +12420,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12260,27 +12447,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12400,7 +12599,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12459,7 +12660,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12817,8 +13019,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12867,6 +13069,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13366,6 +13574,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13793,9 +14002,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14038,7 +14247,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14706,7 +14917,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16724,7 +16935,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18041,7 +18254,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/uk/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19564,6 +19777,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19581,11 +19801,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19665,8 +19887,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20109,10 +20342,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20161,7 +20393,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20331,8 +20565,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20341,7 +20575,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21416,6 +21652,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21892,10 +22136,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22375,7 +22621,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -23010,7 +23256,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23946,14 +24192,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/uk/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/uk/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -24029,7 +24275,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/uk/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26152,6 +26398,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26380,7 +26632,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26403,7 +26655,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28691,7 +28943,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28712,7 +28968,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28731,8 +28991,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28745,7 +29014,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29063,7 +29341,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29091,7 +29373,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29286,6 +29572,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29302,15 +29685,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29915,9 +30300,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30848,6 +31233,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34074,16 +34482,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/uk/latest/tutorials/vr/index.html"
@@ -34104,10 +34509,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34123,25 +34525,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34158,14 +34551,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/uk/latest/tutorials/vr/index.html"
@@ -34174,35 +34564,403 @@ msgstr "https://docs.godotengine.org/uk/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Повертає Ñ‚Ð°Ð½Ð³ÐµÐ½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Повертає ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Повертає значеннÑ, Ñке Ñ” протилежним до Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Повертає значеннÑ, Ñке Ñ” протилежним до Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Повертає ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Повертає значеннÑ, Ñке Ñ” протилежним до Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Повертає аркÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Повертає коÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Повертає аркÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Повертає ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "Повертає значеннÑ, Ñке Ñ” протилежним до Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "ОбчиÑлює векторний добуток цього вектора Ñ– [code]b[/code]."
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Повертає аркÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Повертає аркÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34302,10 +35060,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34465,22 +35219,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "Notifies when the navigation mesh bake operation is completed."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34579,6 +35423,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Повертає одиницю поділену на квадратний корінь з параметра."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Повертає аркÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Повертає ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37913,7 +38826,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42529,16 +43444,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42600,12 +43515,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42686,10 +43595,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46138,7 +47043,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46181,8 +47086,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46194,6 +47100,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47053,12 +47972,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47187,15 +48106,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48458,14 +49368,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49512,7 +50414,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49695,7 +50597,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49802,7 +50704,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51869,7 +52771,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51893,19 +52795,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53604,7 +54525,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54289,6 +55210,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57509,7 +58440,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57531,9 +58462,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58635,17 +59568,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58665,10 +59598,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58792,25 +59725,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60966,9 +61880,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -61023,9 +61937,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61066,10 +61980,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61090,12 +62004,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "ОбчиÑлює векторний добуток цього вектора Ñ– [code]b[/code]."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61104,17 +62021,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61216,21 +62133,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "Повертає мінімальний кут до заданого вектора у радіанах."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "ОбчиÑлює векторний добуток цього вектора Ñ– [code]b[/code]."
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61254,12 +62165,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61286,20 +62191,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61311,19 +62206,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -62020,10 +62902,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62139,6 +63023,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62657,7 +63553,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/uk/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67648,6 +68544,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68484,6 +69396,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Повертає ÑÐ¸Ð½ÑƒÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/vi.po b/doc/translations/vi.po
index ec2bc9ac66..b0fe535eca 100644
--- a/doc/translations/vi.po
+++ b/doc/translations/vi.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Rev <revolnoom7801@gmail.com>, 2021.
@@ -63,6 +63,71 @@ msgstr "Nội dung Thuộc tính"
msgid "Method Descriptions"
msgstr "Mô tả phương thức"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "Nội dung Thuộc tính"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "Hàm GDScript có sẵn."
@@ -724,16 +789,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -801,8 +874,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -811,7 +887,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -819,7 +898,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1783,10 +1863,20 @@ msgstr "ÄÆ¡n Nhất [Marshalls]."
#: doc/classes/@GlobalScope.xml
#, fuzzy
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr "ÄÆ¡n Nhất [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
msgstr "ÄÆ¡n Nhất [NavigationMeshGenerator]."
#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "ÄÆ¡n Nhất [TranslationServer]."
+
+#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
msgstr "ÄÆ¡n Nhất [OS]."
@@ -3311,31 +3401,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7413,7 +7580,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -12292,7 +12462,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12361,11 +12531,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12373,23 +12545,26 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "Trả vỠsin của tham số."
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
+msgid "Removes the specified camera [code]feed[/code]."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12397,7 +12572,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12483,8 +12658,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12494,17 +12670,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12515,16 +12697,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12536,27 +12724,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12676,7 +12876,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12735,7 +12937,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -13089,8 +13292,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -13139,6 +13342,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13639,6 +13848,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -14061,9 +14271,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14303,7 +14513,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14971,8 +15183,9 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
-msgstr ""
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
+msgstr "Nếu [code]true[/code], há»a tiết sẽ được căn ở trung tâm."
#: doc/classes/ColorPicker.xml
msgid ""
@@ -16985,7 +17198,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18300,7 +18515,7 @@ msgid ""
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
@@ -19814,6 +20029,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19831,11 +20053,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19915,8 +20139,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20359,10 +20594,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20411,7 +20645,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20578,8 +20814,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20588,7 +20824,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21659,6 +21897,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -22132,10 +22378,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22612,7 +22860,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -23243,7 +23491,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -24178,11 +24426,11 @@ msgid ""
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -24255,7 +24503,7 @@ msgid ""
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
@@ -26369,6 +26617,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26597,7 +26851,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26620,7 +26874,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28897,7 +29151,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28918,7 +29176,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28937,8 +29199,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28951,7 +29222,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29267,7 +29547,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29295,7 +29579,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29487,6 +29775,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29503,15 +29888,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -30111,9 +30498,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -31034,6 +31421,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34240,16 +34650,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr ""
@@ -34269,10 +34676,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34288,25 +34692,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34323,14 +34718,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr ""
@@ -34338,35 +34730,404 @@ msgstr ""
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr "Nếu [code]true[/code], há»a tiết sẽ được căn ở trung tâm."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "Trả vỠtan của tham số."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "Trả vỠsin của tham số."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "Trả vỠgiá trị đối của tham số."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "Trả vỠgiá trị đối của tham số."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "Trả vỠsin của tham số."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "Trả vỠgiá trị đối của tham số."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "Trả vỠ[Texture2D] của khung hình được cho."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "Nếu [code]true[/code], há»a tiết sẽ được căn ở trung tâm."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "Trả vỠ[Texture2D] của khung hình được cho."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "Trả vỠsin của tham số."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "ÄÆ¡n Nhất [NavigationMeshGenerator]."
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Sets the global transformation for the region."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "Trả vỠsin nghịch đảo của tham số."
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr "Nếu [code]true[/code] thì lật dá»c há»a tiết."
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "Trả vỠsin nghịch đảo của tham số."
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34466,10 +35227,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34630,26 +35387,115 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid "An instance of a [NavigationMesh]."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-#, fuzzy
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
-msgstr "Nếu [code]true[/code], há»a tiết sẽ được căn ở trung tâm."
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
#: doc/classes/NavigationMeshInstance.xml
#, fuzzy
-msgid "The [NavigationMesh] resource for the instance."
+msgid "The [NavigationMesh] resource to use."
msgstr "ÄÆ¡n Nhất [NavigationMeshGenerator]."
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
#: doc/classes/NavigationPolygon.xml
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
@@ -34746,6 +35592,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "Trả vỠnghịch đảo căn bậc hai của tham số."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "Trả vỠ[Texture2D] của khung hình được cho."
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "Trả vỠsin của tham số."
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -38062,7 +38977,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42679,16 +43596,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42750,12 +43667,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42836,10 +43747,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46290,7 +47197,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46333,8 +47240,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46346,6 +47254,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47203,12 +48124,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47339,15 +48260,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48606,14 +49518,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49658,7 +50562,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49841,7 +50745,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49948,7 +50852,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51996,7 +52900,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -52020,19 +52924,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53732,7 +54655,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54414,6 +55337,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57628,7 +58561,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57650,9 +58583,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58754,17 +59689,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58784,10 +59719,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58911,25 +59846,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -61084,9 +62000,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -61141,9 +62057,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61184,10 +62100,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61208,12 +62124,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "Trả vỠphần dư của hai vector."
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61222,17 +62141,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61333,21 +62252,15 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "Trả vỠphần dư của hai vector."
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61371,12 +62284,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61403,20 +62310,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61428,19 +62325,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -62135,10 +63019,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62255,6 +63141,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62776,7 +63674,7 @@ msgid ""
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
@@ -67765,6 +68663,23 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+#, fuzzy
+msgid "A default value to be assigned within the shader."
+msgstr "Trả vỠđộ dài [Vector3] trong đồ thị shader."
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68595,6 +69510,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "Trả vỠsin của tham số."
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/doc/translations/zh_CN.po b/doc/translations/zh_CN.po
index dd5520c815..e65d84756e 100644
--- a/doc/translations/zh_CN.po
+++ b/doc/translations/zh_CN.po
@@ -1,9 +1,9 @@
# Chinese (Simplified) translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
-# Haoyu Qiu <timothyqiu32@gmail.com>, 2020, 2021.
+# Haoyu Qiu <timothyqiu32@gmail.com>, 2020, 2021, 2022.
# fangxvan <2661712415@qq.com>, 2020.
# yzt <834950797@qq.com>, 2020.
# 懵逼Kitty <m1330586660@163.com>, 2020, 2021.
@@ -61,7 +61,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-12-21 07:06+0000\n"
+"PO-Revision-Date: 2022-01-07 07:07+0000\n"
"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot-class-reference/zh_Hans/>\n"
@@ -70,7 +70,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Weblate 4.10\n"
+"X-Generator: Weblate 4.10.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -112,6 +112,71 @@ msgstr "属性说明"
msgid "Method Descriptions"
msgstr "方法说明"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "属性说明"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "内置 GDScript 函数。"
@@ -138,12 +203,12 @@ msgid ""
"red = Color8(255, 0, 0)\n"
"[/codeblock]"
msgstr ""
-"返回由整数红色ã€ç»¿è‰²ã€è“色和 alpha é€šé“æž„æˆçš„颜色。æ¯ä¸ªé€šé“应具有 8 ä½ï¼ŒåŒ…å«"
+"返回由整数红色ã€ç»¿è‰²ã€è“色ã€Alpha é€šé“æž„æˆçš„颜色。æ¯ä¸ªé€šé“应该都有 8 ä½ï¼ŒåŒ…å«"
"范围从 0 到 255 的信æ¯ã€‚\n"
"[code]r8[/code] 红色通é“\n"
"[code]g8[/code] 绿色通é“\n"
"[code]b8[/code] è“色通é“\n"
-"[code]a8[/code] alpha通é“\n"
+"[code]a8[/code] Alpha 通é“\n"
"[codeblock]\n"
"red = Color8(255, 0, 0)\n"
"[/codeblock]"
@@ -157,8 +222,8 @@ msgid ""
"[/codeblock]\n"
"Supported color names are the same as the constants defined in [Color]."
msgstr ""
-"æ ¹æ®æ ‡å‡†åç§° [code]name[/code] 和值在 0 到 1 区间的 [code]alpha[/code] 返回一"
-"个颜色。\n"
+"æ ¹æ®æ ‡å‡†åç§° [code]name[/code] 和值在 0 到 1 区间的 [code]alpha[/code] 返回颜"
+"色。\n"
"[codeblock]\n"
"red = ColorN(\"red\", 1)\n"
"[/codeblock]\n"
@@ -470,6 +535,20 @@ msgid ""
"want a true content-aware comparison, you have to use [code]deep_equal[/"
"code]."
msgstr ""
+"æ ¹æ®å®žé™…的内容对两个值进行比较,对于 `Array` 或 `Dictionary` 会递归至最深一"
+"层。\n"
+"与 [code]==[/code] çš„å¼‚åŒæœ‰ï¼š\n"
+"- 对于 [code]null[/code]ã€[code]int[/code]ã€[code]float[/code]ã€"
+"[code]String[/code]ã€[code]Object[/code]ã€[code]RID[/code],"
+"[code]deep_equal[/code] 与 [code]==[/code] 相åŒã€‚\n"
+"- 对于 [code]Dictionary[/code]ï¼Œå½“ä¸”ä»…å½“åŒæ–¹æŒ‡å‘åŒä¸€ä¸ª [code]Dictionary[/"
+"code] 时,[code]==[/code] æ‰ä¼šè®¤ä¸ºç›¸ç­‰ï¼Œä¸è¿›è¡Œé€’å½’ã€å®Œå…¨ä¸ä¼šè€ƒè™‘其内容。\n"
+"- 对于 [code]Array[/code],当且仅当第一个 [code]Array[/code] 中的æ¯ä¸€ä¸ªå…ƒç´ éƒ½"
+"与第二个 [code]Array[/code] 中的对应元素使用 [code]==[/code] 比较相等时,"
+"[code]==[/code] æ‰ä¼šè®¤ä¸ºç›¸ç­‰ã€‚å³ [code]==[/code] 会递归进 [code]Array[/"
+"code],但ä¸ä¼šé€’å½’è¿› [code]Dictionary[/code]。\n"
+"简而言之,å¯èƒ½æ¶‰åŠ [code]Dictionary[/code] 时,如果你想è¦å¯¹å†…å®¹æ•æ„Ÿçš„æ¯”较,就"
+"必须使用 [code]deep_equal[/code]。"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -749,25 +828,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
-"考虑给定范围,返回归一化值。这是 [method lerp] 的逆è¿ç®—。\n"
-"[codeblock]\n"
-"var middle = lerp(20, 30, 0.75)\n"
-"# `middle` 现在是 27.5\n"
-"# 现在,我们å‡è£…忘记了原æ¥çš„æ¯”例,想把它找回æ¥ã€‚\n"
-"var ratio = inverse_lerp(20, 30, 27.5)\n"
-"# `ratio` 现在是 0.75。\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -829,9 +908,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -840,7 +923,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr ""
"用一个归一化的值在两个值之间进行线性æ’值。这是 [method inverse_lerp] 的逆è¿"
"算。\n"
@@ -855,11 +941,13 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -2162,10 +2250,21 @@ msgid "The [Marshalls] singleton."
msgstr "[Marshalls] å•例。"
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+#, fuzzy
+msgid "The [Navigation2DServer] singleton."
+msgstr "[TranslationServer]å•例。"
+
+#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationMeshGenerator] singleton."
msgstr "[EditorNavigationMeshGenerator] å•例。"
#: doc/classes/@GlobalScope.xml
+#, fuzzy
+msgid "The [NavigationServer] singleton."
+msgstr "[TranslationServer]å•例。"
+
+#: doc/classes/@GlobalScope.xml
msgid "The [OS] singleton."
msgstr "[OS] å•例。"
@@ -2194,9 +2293,8 @@ msgid "The [ResourceSaver] singleton."
msgstr "[ResourceSaver] å•例。"
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "The [Time] singleton."
-msgstr "[Engine] å•例。"
+msgstr "[Time] å•例。"
#: doc/classes/@GlobalScope.xml
msgid "The [TranslationServer] singleton."
@@ -2281,7 +2379,7 @@ msgstr "垂直下对é½ï¼Œå¸¸ç”¨äºŽæ–‡æœ¬æ´¾ç”Ÿç±»ã€‚"
#: doc/classes/@GlobalScope.xml
msgid "Scancodes with this bit applied are non-printable."
-msgstr "该比特ä½åº”用的键ç ä¸å¯æ‰“å°ã€‚"
+msgstr "该比特ä½åº”用的扫æç ä¸å¯æ‰“å°ã€‚"
#: doc/classes/@GlobalScope.xml
msgid "Escape key."
@@ -3466,35 +3564,35 @@ msgstr "DualShock 三角形按钮。"
#: doc/classes/@GlobalScope.xml
msgid "Xbox controller B button."
-msgstr "Xbox控制器B键。"
+msgstr "Xbox 控制器 B 键。"
#: doc/classes/@GlobalScope.xml
msgid "Xbox controller A button."
-msgstr "Xbox控制器的A键。"
+msgstr "Xbox 控制器 A 键。"
#: doc/classes/@GlobalScope.xml
msgid "Xbox controller X button."
-msgstr "Xbox控制器的X键。"
+msgstr "Xbox 控制器 X 键。"
#: doc/classes/@GlobalScope.xml
msgid "Xbox controller Y button."
-msgstr "Xbox控制器的Y键。"
+msgstr "Xbox 控制器 Y 键。"
#: doc/classes/@GlobalScope.xml
msgid "Nintendo controller A button."
-msgstr "任天堂控制器A键。"
+msgstr "任天堂控制器 A 键。"
#: doc/classes/@GlobalScope.xml
msgid "Nintendo controller B button."
-msgstr "任天堂控制器B键。"
+msgstr "任天堂控制器 B 键。"
#: doc/classes/@GlobalScope.xml
msgid "Nintendo controller X button."
-msgstr "任天堂控制器的X键。"
+msgstr "任天堂控制器 X 键。"
#: doc/classes/@GlobalScope.xml
msgid "Nintendo controller Y button."
-msgstr "任天堂控制器Y键。"
+msgstr "任天堂控制器 Y 键。"
#: doc/classes/@GlobalScope.xml
msgid "Grip (side) buttons on a VR controller."
@@ -3538,19 +3636,19 @@ msgstr "æ¸¸æˆæ‰‹æŸ„按钮开始。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad DPad up."
-msgstr "æ¸¸æˆæ‰‹æŸ„ DPad å‘上。"
+msgstr "æ¸¸æˆæ‰‹æŸ„上方å‘键。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad DPad down."
-msgstr "æ¸¸æˆæ‰‹æŸ„ DPad å‘下。"
+msgstr "æ¸¸æˆæ‰‹æŸ„下方å‘键。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad DPad left."
-msgstr "æ¸¸æˆæ‰‹æŸ„ DPad 左。"
+msgstr "æ¸¸æˆæ‰‹æŸ„左方å‘键。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad DPad right."
-msgstr "æ¸¸æˆæ‰‹æŸ„ DPad å³ã€‚"
+msgstr "æ¸¸æˆæ‰‹æŸ„峿–¹å‘键。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL guide button."
@@ -3582,11 +3680,11 @@ msgstr "æ¸¸æˆæ‰‹æŸ„ SDL è§¦æ‘¸æ¿æŒ‰é’®ã€‚"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left Shoulder button."
-msgstr "æ¸¸æˆæ‰‹æŸ„左肩按钮。"
+msgstr "æ¸¸æˆæ‰‹æŸ„左肩键。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left trigger."
-msgstr "æ¸¸æˆæ‰‹æŸ„的左扳机。"
+msgstr "æ¸¸æˆæ‰‹æŸ„左扳机键。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left stick click."
@@ -3594,11 +3692,11 @@ msgstr "æ¸¸æˆæ‰‹æŸ„左键点击。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right Shoulder button."
-msgstr "æ¸¸æˆæ‰‹æŸ„å³è‚©æŒ‰é’®ã€‚"
+msgstr "æ¸¸æˆæ‰‹æŸ„å³è‚©é”®ã€‚"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right trigger."
-msgstr "æ¸¸æˆæ‰‹æŸ„çš„å³æ‰³æœºã€‚"
+msgstr "æ¸¸æˆæ‰‹æŸ„çš„å³æ‰³æœºé”®ã€‚"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right stick click."
@@ -3677,32 +3775,109 @@ msgid ""
msgstr "OpenVR触摸æ¿Y轴(Oculus Touchå’ŒWindows MR控制器的æ“纵æ†è½´ï¼‰ã€‚"
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
-msgstr "MIDI 音符关闭信æ¯ã€‚"
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
-msgstr "MIDI 音符开å¯ä¿¡æ¯ã€‚"
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
-msgstr "MIDI 触摸åŽä¿¡æ¯ã€‚"
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
-msgstr "MIDI 控制更改信æ¯ã€‚"
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
-msgstr "MIDI 程åºå˜æ›´ä¿¡æ¯ã€‚"
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
-msgstr "MIDI 通é“压力消æ¯ã€‚"
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
-msgstr "MIDI 弯音消æ¯ã€‚"
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
+msgstr ""
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -4086,8 +4261,8 @@ msgid ""
"Hints that a color property should be edited without changing its alpha "
"component, i.e. only R, G and B channels are edited."
msgstr ""
-"æç¤ºä¸€ä¸ªé¢œè‰²å±žæ€§åœ¨ç¼–辑时ä¸èƒ½ä¿®æ”¹alpha分é‡ï¼Œæ¢è¨€ä¹‹ï¼Œåªæœ‰Rã€Gã€B三通é“å¯ä»¥è¢«ç¼–"
-"辑。"
+"æç¤ºä¸€ä¸ªé¢œè‰²å±žæ€§åœ¨ç¼–辑时ä¸èƒ½ä¿®æ”¹ Alpha 分é‡ï¼Œæ¢è¨€ä¹‹ï¼Œåªæœ‰ Rã€Gã€B 三通é“å¯ä»¥"
+"被编辑。"
#: doc/classes/@GlobalScope.xml
msgid "Hints that an image is compressed using lossy compression."
@@ -4145,19 +4320,19 @@ msgstr "该属性是一个脚本å˜é‡ï¼Œåº”该被åºåˆ—化并ä¿å­˜åœ¨åœºæ™¯æ–‡
#: doc/classes/@GlobalScope.xml
msgid "Default usage (storage, editor and network)."
-msgstr "默认用法(存储ã€ç¼–辑器和网络)。"
+msgstr "默认用法(存储ã€ç¼–辑器和网络)。"
#: doc/classes/@GlobalScope.xml
msgid ""
"Default usage for translatable strings (storage, editor, network and "
"internationalized)."
-msgstr "å¯ç¿»è¯‘字符串的默认用法(存储ã€ç¼–辑器ã€ç½‘络和国际化)。"
+msgstr "å¯ç¿»è¯‘字符串的默认用法(存储ã€ç¼–辑器ã€ç½‘络和国际化)。"
#: doc/classes/@GlobalScope.xml
msgid ""
"Default usage but without showing the property in the editor (storage, "
"network)."
-msgstr "默认用法,但ä¸åœ¨ç¼–辑器中显示属性(存储ã€ç½‘络)。"
+msgstr "默认用法,但ä¸åœ¨ç¼–辑器中显示属性(存储ã€ç½‘络)。"
#: doc/classes/@GlobalScope.xml
msgid "Flag for a normal method."
@@ -4173,7 +4348,7 @@ msgstr "已废弃的方法标志,未使用。"
#: doc/classes/@GlobalScope.xml
msgid "Flag for a constant method."
-msgstr "ä¸€ä¸ªå¸¸é‡æ–¹æ³•的标志。"
+msgstr "叏釿–¹æ³•的标志。"
#: doc/classes/@GlobalScope.xml
msgid "Flag for a virtual method."
@@ -4185,51 +4360,51 @@ msgstr "默认方法的标志。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is [code]null[/code]."
-msgstr "å˜é‡æ˜¯ [code]null[/code]."
+msgstr "å˜é‡ä¸º [code]null[/code]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [bool]."
-msgstr "å˜é‡æ˜¯[bool]类型。"
+msgstr "å˜é‡ç±»åž‹ä¸º [bool]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [int]."
-msgstr "å˜é‡æ˜¯[int]类型。"
+msgstr "å˜é‡ç±»åž‹ä¸º [int]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [float] (real)."
-msgstr "å˜é‡æ˜¯[float]类型(实数)。"
+msgstr "å˜é‡ç±»åž‹ä¸º [float](实数)。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [String]."
-msgstr "å˜é‡æ˜¯[String]类型。"
+msgstr "å˜é‡ç±»åž‹ä¸º [String]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Vector2]."
-msgstr "å˜é‡ç±»åž‹ä¸º[Vector2]。"
+msgstr "å˜é‡ç±»åž‹ä¸º [Vector2]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Rect2]."
-msgstr "å˜é‡ç±»åž‹ä¸º[Rect2]。"
+msgstr "å˜é‡ç±»åž‹ä¸º [Rect2]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Vector3]."
-msgstr "å˜é‡ç±»åž‹ä¸º[Vector3]。"
+msgstr "å˜é‡ç±»åž‹ä¸º [Vector3]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Transform2D]."
-msgstr "å˜é‡ç±»åž‹ä¸º[Transform2D]。"
+msgstr "å˜é‡ç±»åž‹ä¸º [Transform2D]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Plane]."
-msgstr "å˜é‡ç±»åž‹ä¸º[Plane]。"
+msgstr "å˜é‡ç±»åž‹ä¸º [Plane]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Quat]."
-msgstr "å˜é‡çš„类型为[Quat]。"
+msgstr "å˜é‡çš„类型为 [Quat]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [AABB]."
-msgstr "å˜é‡çš„类型为 [AABB]."
+msgstr "å˜é‡çš„类型为 [AABB]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Basis]."
@@ -4237,11 +4412,11 @@ msgstr "å˜é‡çš„类型为 [Basis]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Transform]."
-msgstr "å˜é‡çš„类型为 [Transform]."
+msgstr "å˜é‡çš„类型为 [Transform]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Color]."
-msgstr "å˜é‡çš„类型为[Color]."
+msgstr "å˜é‡çš„类型为 [Color]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [NodePath]."
@@ -4249,87 +4424,87 @@ msgstr "å˜é‡çš„类型为 [NodePath]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [RID]."
-msgstr "å˜é‡çš„类型为[RID]."
+msgstr "å˜é‡çš„类型为 [RID]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Object]."
-msgstr "å˜é‡çš„类型为[Object]."
+msgstr "å˜é‡çš„类型为 [Object]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Dictionary]."
-msgstr "å˜é‡çš„类型为[Dictionary]。"
+msgstr "å˜é‡çš„类型为 [Dictionary]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [Array]."
-msgstr "å˜é‡çš„类型为[Array]。"
+msgstr "å˜é‡çš„类型为 [Array]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolByteArray]."
-msgstr "å˜é‡çš„类型是[PoolByteArray]。"
+msgstr "å˜é‡çš„类型是 [PoolByteArray]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolIntArray]."
-msgstr "å˜é‡çš„类型是[PoolIntArray]。"
+msgstr "å˜é‡çš„类型是 [PoolIntArray]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolRealArray]."
-msgstr "å˜é‡çš„类型是[PoolRealArray]。"
+msgstr "å˜é‡çš„类型是 [PoolRealArray]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolStringArray]."
-msgstr "å˜é‡çš„类型是[PoolStringArray]。"
+msgstr "å˜é‡çš„类型是 [PoolStringArray]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolVector2Array]."
-msgstr "å˜é‡çš„类型是[PoolVector2Array]。"
+msgstr "å˜é‡çš„类型是 [PoolVector2Array]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolVector3Array]."
-msgstr "å˜é‡çš„类型是[PoolVector3Array]。"
+msgstr "å˜é‡çš„类型是 [PoolVector3Array]。"
#: doc/classes/@GlobalScope.xml
msgid "Variable is of type [PoolColorArray]."
-msgstr "å˜é‡çš„类型是[PoolColorArray]。"
+msgstr "å˜é‡çš„类型是 [PoolColorArray]。"
#: doc/classes/@GlobalScope.xml
msgid "Represents the size of the [enum Variant.Type] enum."
-msgstr "表示[enum Variant.Type]枚举的大å°ã€‚"
+msgstr "表示 [enum Variant.Type] 枚举的大å°ã€‚"
#: doc/classes/@GlobalScope.xml
msgid "Equality operator ([code]==[/code])."
-msgstr "等于è¿ç®—符([code]==[/code])。"
+msgstr "等于è¿ç®—符([code]==[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Inequality operator ([code]!=[/code])."
-msgstr "ä¸ç­‰å¼è¿ç®—符([code]!=[/code])。"
+msgstr "ä¸ç­‰å¼è¿ç®—符([code]!=[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Less than operator ([code]<[/code])."
-msgstr "å°äºŽè¿ç®—符([code]<[/code])。"
+msgstr "å°äºŽè¿ç®—符([code]<[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Less than or equal operator ([code]<=[/code])."
-msgstr "å°äºŽæˆ–等于è¿ç®—符([code]<=[/code])。"
+msgstr "å°äºŽç­‰äºŽè¿ç®—符([code]<=[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Greater than operator ([code]>[/code])."
-msgstr "大于è¿ç®—符([code]>[/code])。"
+msgstr "大于è¿ç®—符([code]>[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Greater than or equal operator ([code]>=[/code])."
-msgstr "大于或等于è¿ç®—符([code]> =[/code])。"
+msgstr "大于等于è¿ç®—符([code]> =[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Addition operator ([code]+[/code])."
-msgstr "加法è¿ç®—符([code]+[/code])。"
+msgstr "加法è¿ç®—符([code]+[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Subtraction operator ([code]-[/code])."
-msgstr "凿³•è¿ç®—符([code]-[/code])。"
+msgstr "凿³•è¿ç®—符([code]-[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Multiplication operator ([code]*[/code])."
-msgstr "乘法è¿ç®—符([code]*[/code])。"
+msgstr "乘法è¿ç®—符([code]*[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Division operator ([code]/[/code])."
@@ -4337,23 +4512,23 @@ msgstr "除法è¿ç®—符([code]/[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Unary negation operator ([code]-[/code])."
-msgstr "一元å‡å·è¿ç®—符([code]-[/code])。"
+msgstr "一元å‡å·è¿ç®—符([code]-[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Unary plus operator ([code]+[/code])."
-msgstr "一元加å·è¿ç®—符([code]+[/code])。"
+msgstr "一元加å·è¿ç®—符([code]+[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Remainder/modulo operator ([code]%[/code])."
-msgstr "余数/å–æ¨¡è¿ç®—符([code]%[/code])。"
+msgstr "余数/å–æ¨¡è¿ç®—符([code]%[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "String concatenation operator ([code]+[/code])."
-msgstr "字符串串è”è¿ç®—符([code]+[/code])。"
+msgstr "字符串连接è¿ç®—符([code]+[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Left shift operator ([code]<<[/code])."
-msgstr "左移è¿ç®—符([code]<<[/code])。"
+msgstr "左移è¿ç®—符([code]<<[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Right shift operator ([code]>>[/code])."
@@ -4361,50 +4536,49 @@ msgstr "å³ç§»è¿ç®—符([code]>>[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Bitwise AND operator ([code]&[/code])."
-msgstr "按ä½ANDè¿ç®—符([code]&[/code])。"
+msgstr "按ä½ä¸Žè¿ç®—符([code]&[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Bitwise OR operator ([code]|[/code])."
-msgstr "æŒ‰ä½æˆ–è¿ç®—符([code]|[/code])。"
+msgstr "æŒ‰ä½æˆ–è¿ç®—符([code]|[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Bitwise XOR operator ([code]^[/code])."
-msgstr "按ä½XORè¿ç®—符([code]^[/code])。"
+msgstr "按ä½å¼‚或è¿ç®—符([code]^[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Bitwise NOT operator ([code]~[/code])."
-msgstr "按ä½NOTè¿ç®—符([code]〜[/code])。"
+msgstr "按ä½éžè¿ç®—符([code]~[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Logical AND operator ([code]and[/code] or [code]&&[/code])."
-msgstr "逻辑ANDè¿ç®—符([code]and[/code]或[code]&&[/code])。"
+msgstr "逻辑与è¿ç®—符([code]and[/code] 或 [code]&&[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Logical OR operator ([code]or[/code] or [code]||[/code])."
-msgstr "逻辑或è¿ç®—符([code]或[/code]或[code]||[/code])。"
+msgstr "逻辑或è¿ç®—符([code]or[/code] 或 [code]||[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Logical XOR operator (not implemented in GDScript)."
-msgstr "逻辑XORè¿ç®—符(未在GDScript中实现)。"
+msgstr "逻辑异或è¿ç®—符(未在 GDScript 中实现)。"
#: doc/classes/@GlobalScope.xml
msgid "Logical NOT operator ([code]not[/code] or [code]![/code])."
-msgstr "逻辑NOTè¿ç®—符([code]not[/code]或[code]![/code])。"
+msgstr "逻辑éžè¿ç®—符([code]not[/code] 或 [code]![/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Logical IN operator ([code]in[/code])."
-msgstr "逻辑INè¿ç®—符([code]in[/code])。"
+msgstr "逻辑 IN è¿ç®—符([code]in[/code])。"
#: doc/classes/@GlobalScope.xml
msgid "Represents the size of the [enum Variant.Operator] enum."
-msgstr "表示[enum Variant.Operator]枚举的大å°ã€‚"
+msgstr "表示 [enum Variant.Operator] 枚举的大å°ã€‚"
#: doc/classes/AABB.xml
msgid "Axis-Aligned Bounding Box."
msgstr "轴对é½åŒ…围盒。"
#: doc/classes/AABB.xml
-#, fuzzy
msgid ""
"[AABB] consists of a position, a size, and several utility functions. It is "
"typically used for fast overlap tests.\n"
@@ -4417,26 +4591,25 @@ msgid ""
msgstr ""
"[AABB] 由一个ä½ç½®ã€ä¸€ä¸ªå¤§å°å’Œå‡ ä¸ªå®žç”¨å‡½æ•°ç»„æˆã€‚它通常用于快速é‡å æµ‹è¯•。\n"
"å®ƒä½¿ç”¨æµ®ç‚¹åæ ‡ã€‚[AABB] çš„ 2D 对应物为 [Rect2]。\n"
+"䏿”¯æŒè´Ÿæ•°çš„ [member size],大多数方法会无法正常工作。请使用 [method abs] 获"
+"å–æ­£æ•°å¤§å°çš„ AABB。\n"
"[b]注æ„:[/b]与 [Rect2] ä¸åŒï¼Œ[AABB] æ²¡æœ‰ä½¿ç”¨æ•´æ•°åæ ‡çš„å˜ä½“。"
#: doc/classes/AABB.xml doc/classes/Basis.xml doc/classes/Plane.xml
#: doc/classes/Rect2.xml doc/classes/Transform.xml doc/classes/Transform2D.xml
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid "$DOCS_URL/tutorials/math/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/math/index.html"
#: doc/classes/AABB.xml doc/classes/Rect2.xml doc/classes/Vector2.xml
#: doc/classes/Vector3.xml
msgid "$DOCS_URL/tutorials/math/vector_math.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/math/vector_math.html"
#: doc/classes/AABB.xml doc/classes/Rect2.xml doc/classes/Vector2.xml
#: doc/classes/Vector3.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/math/vectors_advanced.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/math/vectors_advanced."
-"html"
+msgstr "$DOCS_URL/tutorials/math/vectors_advanced.html"
#: doc/classes/AABB.xml
msgid "Constructs an [AABB] from a position and size."
@@ -4483,7 +4656,7 @@ msgstr "返回该 [AABB] 的体积。"
msgid ""
"Returns the center of the [AABB], which is equal to [member position] + "
"([member size] / 2)."
-msgstr ""
+msgstr "返回该 [AABB] 的中心点,等于 [member position] + ([member size] / 2)。"
#: doc/classes/AABB.xml
msgid "Gets the position of the 8 endpoints of the [AABB] in space."
@@ -4875,11 +5048,8 @@ msgstr ""
#: doc/classes/AnimatedSprite.xml doc/classes/AnimatedSprite3D.xml
#: doc/classes/AnimationPlayer.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/2d/2d_sprite_animation.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/2d/2d_sprite_animation."
-"html"
+msgstr "$DOCS_URL/tutorials/2d/2d_sprite_animation.html"
#: doc/classes/AnimatedSprite.xml doc/classes/Area2D.xml
#: doc/classes/AudioStreamPlayer.xml doc/classes/Button.xml
@@ -5168,7 +5338,7 @@ msgstr ""
#: doc/classes/Animation.xml doc/classes/AnimationPlayer.xml
msgid "$DOCS_URL/tutorials/animation/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/animation/index.html"
#: doc/classes/Animation.xml
msgid "Adds a track to the Animation."
@@ -5179,7 +5349,7 @@ msgid ""
"Returns the animation name at the key identified by [code]key_idx[/code]. "
"The [code]track_idx[/code] must be the index of an Animation Track."
msgstr ""
-"返回由 [code]key_idx[/code]标识的键处的动画å称。 [code]track_idx[/code]å¿…é¡»"
+"返回由 [code]key_idx[/code] 标识的键处的动画å称。[code]track_idx[/code] å¿…é¡»"
"是动画轨é“的索引。"
#: doc/classes/Animation.xml
@@ -5188,8 +5358,8 @@ msgid ""
"code] (in seconds). The [code]track_idx[/code] must be the index of an "
"Animation Track."
msgstr ""
-"在给定的[code]time[/code](以秒为å•ä½ï¼‰ä¸­æ’入值[code]animation[/code]的键。 "
-"[code]track_idx[/code]必须是动画轨é“的索引。"
+"在给定的 [code]time[/code](以秒为å•ä½ï¼‰ä¸­æ’入值 [code]animation[/code] çš„"
+"键。[code]track_idx[/code] 必须是动画轨é“的索引。"
#: doc/classes/Animation.xml
msgid ""
@@ -5275,7 +5445,7 @@ msgid ""
"[code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
"返回由 [code]key_idx[/code] è¯†åˆ«çš„é”®çš„è¾“å…¥å¥æŸ„, [code]track_idx[/code] å¿…é¡»"
-"是 Bezier轨é“的索引。"
+"是è´å¡žå°”轨é“的索引。"
#: doc/classes/Animation.xml
msgid ""
@@ -5283,15 +5453,15 @@ msgid ""
"[code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
"返回由 [code]key_idx[/code] è¯†åˆ«çš„é”®çš„è¾“å‡ºå¥æŸ„, [code]track_idx[/code] å¿…é¡»"
-"是 Bezier轨é“的索引。"
+"是è´å¡žå°”轨é“的索引。"
#: doc/classes/Animation.xml
msgid ""
"Returns the value of the key identified by [code]key_idx[/code]. The "
"[code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
-"返回由 [code]key_idx[/code] 识别的键的值, [code]track_idx[/code] 必须是 "
-"Bezier轨é“的索引。"
+"返回由 [code]key_idx[/code] 识别的键的值, [code]track_idx[/code] 必须是è´å¡ž"
+"尔轨é“的索引。"
#: doc/classes/Animation.xml
msgid ""
@@ -5301,18 +5471,18 @@ msgid ""
"point, [code]out_handle[/code] is the right-side one, while [code]value[/"
"code] is the actual value at this point."
msgstr ""
-"在给定的[code]æ—¶é—´[/code]æ’入一个è´å¡žå°”轨é“键,å•ä½ä¸ºç§’。[code]track_idx[/"
-"code] 必须是 Bezier轨é“的索引。\n"
-"[code]in_handle[/code]是添加的Bezier曲线点的左侧æƒé‡ï¼Œ[code]out_handle[/code]"
-"是å³ä¾§æƒé‡ï¼Œè€Œ[code]value[/code]是这个点的实际值。"
+"在给定的时间 [code]time[/code] 处æ’å…¥è´å¡žå°”轨é“键,å•ä½ä¸ºç§’。"
+"[code]track_idx[/code] 必须是è´å¡žå°”轨é“的索引。\n"
+"[code]in_handle[/code] 是添加的è´å¡žå°”曲线点的左侧æƒé‡ï¼Œ[code]out_handle[/"
+"code] 是å³ä¾§æƒé‡ï¼Œè€Œ [code]value[/code] 是这个点的实际值。"
#: doc/classes/Animation.xml
msgid ""
"Returns the interpolated value at the given [code]time[/code] (in seconds). "
"The [code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
-"返回给定 [code]time[/code]处的æ’值(以秒为å•ä½ï¼‰ã€‚ [code]track_idx[/code]å¿…é¡»"
-"是 Bezier轨é“的索引。"
+"返回给定 [code]time[/code] 处的æ’值(以秒为å•ä½ï¼‰ã€‚ [code]track_idx[/code] å¿…"
+"须是è´å¡žå°”轨é“的索引。"
#: doc/classes/Animation.xml
msgid ""
@@ -5321,7 +5491,7 @@ msgid ""
"Bezier Track."
msgstr ""
"将 [code]key_idx[/code] 所标识的键的 in handle 设置为 [code]in_handle[/code] "
-"值。[code]track_idx[/code] 必须是 Bezier轨é“的索引。"
+"值。[code]track_idx[/code] 必须是è´å¡žå°”轨é“的索引。"
#: doc/classes/Animation.xml
msgid ""
@@ -5330,15 +5500,15 @@ msgid ""
"Bezier Track."
msgstr ""
"将由 [code]key_idx[/code] 确定的关键帧的输出柄设置为 [code]out_handle[/"
-"code] ã€‚å‚æ•° [code]track_idx[/code] 必须是è´å¡žå°”曲线轨é“的索引。"
+"code] ã€‚å‚æ•° [code]track_idx[/code] 必须是è´å¡žå°”轨é“的索引。"
#: doc/classes/Animation.xml
msgid ""
"Sets the value of the key identified by [code]key_idx[/code] to the given "
"value. The [code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
-"将 [code]key_idx[/code] 所标识的键值设置为给定值。[code]track_idx[/code]必须"
-"是 Bezier轨é“的索引。"
+"将 [code]key_idx[/code] 所标识的键值设置为给定值。[code]track_idx[/code] 必须"
+"是è´å¡žå°”轨é“的索引。"
#: doc/classes/Animation.xml
msgid "Clear the animation (clear all tracks and reset all)."
@@ -5609,8 +5779,8 @@ msgid ""
"also be used to animate sub-properties of vectors and colors (e.g. alpha "
"value of a [Color])."
msgstr ""
-"Bezier轨迹用于使用自定义曲线对数值进行æ’值。它们也å¯ä»¥ç”¨æ¥å¯¹å‘é‡å’Œé¢œè‰²çš„å­å±ž"
-"性进行动画处ç†ï¼ˆä¾‹å¦‚[Color]çš„alpha值)。"
+"è´å¡žå°”轨é“å¯ä»¥ç”¨æ¥æ ¹æ®è‡ªå®šä¹‰æ›²çº¿å¯¹æ•°å€¼è¿›è¡Œæ’值。它们也å¯ä»¥ç”¨æ¥å¯¹å‘é‡å’Œé¢œè‰²çš„"
+"å­å±žæ€§è¿›è¡ŒåŠ¨ç”»å¤„ç†ï¼ˆä¾‹å¦‚ [Color] çš„ Alpha 值)。"
#: doc/classes/Animation.xml
msgid ""
@@ -5686,11 +5856,8 @@ msgstr ""
#: doc/classes/AnimationNodeTimeScale.xml doc/classes/AnimationNodeTimeSeek.xml
#: doc/classes/AnimationNodeTransition.xml doc/classes/AnimationTree.xml
#: doc/classes/AnimationTreePlayer.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/animation/animation_tree.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/animation/animation_tree."
-"html"
+msgstr "$DOCS_URL/tutorials/animation/animation_tree.html"
#: doc/classes/AnimationNode.xml
msgid ""
@@ -6523,7 +6690,6 @@ msgid ""
msgstr "按照最短路径从当å‰çжæ€è¿‡æ¸¡åˆ°å¦ä¸€ä¸ªçжæ€ã€‚"
#: doc/classes/AnimationNodeStateMachineTransition.xml
-#, fuzzy
msgid ""
"Turn on auto advance when this condition is set. The provided name will "
"become a boolean parameter on the [AnimationTree] that can be controlled "
@@ -6536,11 +6702,11 @@ msgid ""
"(linear_velocity.x == 0)\n"
"[/codeblock]"
msgstr ""
-"设置此æ¡ä»¶ï¼Œå¼€å¯è‡ªåЍå‰è¿›ã€‚æä¾›çš„åç§°å°†æˆä¸º[AnimationTree]ä¸Šçš„ä¸€ä¸ªå¸ƒå°”å‚æ•°ï¼Œå¯"
-"ä»¥é€šè¿‡ä»£ç æŽ§åˆ¶ï¼Œå‚阅[url=https://docs.godotengine.org/zh_CN/stable/tutorials/"
-"animation/animation_tree.html#controlling-from-code][/url]。例如,如果"
-"[member AnimationTree.tree_root]是一个[AnimationNodeStateMachine],[member "
-"advance_condition]被设置为[code]\"idle\"[/code]。\n"
+"设置此æ¡ä»¶ï¼Œå¼€å¯è‡ªåЍå‰è¿›ã€‚æä¾›çš„åç§°å°†æˆä¸º [AnimationTree] ä¸Šçš„ä¸€ä¸ªå¸ƒå°”å‚æ•°ï¼Œ"
+"å¯ä»¥é€šè¿‡ä»£ç æŽ§åˆ¶ï¼Œè¯·å‚阅 [url=$DOCS_URL/tutorials/animation/animation_tree."
+"html#controlling-from-code][/url]。例如,如果 [member AnimationTree."
+"tree_root] 是一个 [AnimationNodeStateMachine],[member advance_condition] 被"
+"设置为 [code]\"idle\"[/code]。\n"
"[codeblock]\n"
"$animation_tree[\"parameters/conditions/idle\"] = is_on_floor and "
"(linear_velocity.x == 0)\n"
@@ -6957,10 +7123,10 @@ msgid ""
"defined by the reset animation, if any, with the editor keeping the values "
"that the nodes had before saving."
msgstr ""
-"这由编辑器使用。如果设置为 [code]true[/code],场景在ä¿å­˜æ—¶å°†åº”用é‡ç½®åŠ¨ç”»çš„æ•ˆ"
-"果(就åƒå®ƒå›žåˆ° 0 时间点),然åŽåœ¨ä¿å­˜åŽæ¢å¤åŽŸçŠ¶ã€‚\n"
-"æ¢å¥è¯è¯´ï¼Œä¿å­˜çš„场景文件将包å«â€œé»˜è®¤çжæ€â€ï¼Œæ˜¯ç”±é‡ç½®åŠ¨ç”»å®šä¹‰ï¼Œå¦‚æžœæœ‰ï¼Œç¼–è¾‘å™¨ä¿"
-"æŒèŠ‚ç‚¹åœ¨ä¿å­˜å‰çš„值。"
+"由编辑器使用。如果设置为 [code]true[/code],场景在ä¿å­˜æ—¶å°†åº”用é‡ç½®åŠ¨ç”»çš„æ•ˆæžœ"
+"(就åƒå®ƒå›žåˆ° 0 时间点),然åŽåœ¨ä¿å­˜åŽæ¢å¤åŽŸçŠ¶ã€‚\n"
+"æ¢å¥è¯è¯´ï¼Œå¦‚果存在é‡ç½®åŠ¨ç”»ï¼Œé‚£ä¹ˆä¿å­˜çš„场景文件中包å«çš„就是由其定义的“默认姿"
+"势â€ï¼Œç¼–è¾‘å™¨ä¼šä¿æŒèŠ‚ç‚¹åœ¨ä¿å­˜å‰çš„值。"
#: doc/classes/AnimationPlayer.xml
msgid "The node from which node path references will travel."
@@ -7054,10 +7220,10 @@ msgid ""
"track of type [constant Animation.TYPE_TRANSFORM], returns an identity "
"transformation. See also [member root_motion_track] and [RootMotionView]."
msgstr ""
-"检索[member root_motion_track]çš„è¿åŠ¨ï¼Œä½œä¸ºä¸€ä¸ªå¯ä»¥åœ¨å…¶ä»–地方使用的"
-"[Transform]。如果[member root_motion_track]䏿˜¯ä¸€ä¸ª[constant Animation."
-"TYPE_TRANSFORM]类型轨é“çš„è·¯å¾„ï¼Œè¿”å›žä¸€ä¸ªå˜æ¢ID。å‚阅[member root_motion_track]"
-"和[RootMotionView]。"
+"检索 [member root_motion_track] çš„è¿åŠ¨ï¼Œä½œä¸ºä¸€ä¸ªå¯ä»¥åœ¨å…¶ä»–地方使用的 "
+"[Transform]。如果 [member root_motion_track] 䏿˜¯ [constant Animation."
+"TYPE_TRANSFORM] 类型轨é“的路径,则返回æ’ç­‰å˜æ¢ã€‚请å‚阅 [member "
+"root_motion_track] 和 [RootMotionView]。"
#: doc/classes/AnimationTree.xml
msgid "If [code]true[/code], the [AnimationTree] will be processing."
@@ -7133,11 +7299,11 @@ msgid ""
"depending on the graph.\n"
"See [AnimationTree] for a more full-featured replacement of this node."
msgstr ""
-"[i]已弃用。[/i] 节点图示工具,用于混åˆç»‘定在[AnimationPlayer]上的多个动画。对"
-"于给角色或其他基于骨架的é…件制作动画特别有用。它å¯ä»¥ç»“åˆå‡ ä¸ªåŠ¨ç”»æ¥å½¢æˆä¸€ä¸ªæ‰€"
-"需的姿势。\n"
-"它从[AnimationPlayer]节点获å–[Animation],并根æ®å›¾ç¤ºå°†å®ƒä»¬æ··åˆèµ·æ¥ã€‚\n"
-"å‚阅[AnimationTree]以获得该节点的更全é¢çš„功能替代。"
+"[i]已弃用。[/i]节点图示工具,用于混åˆç»‘定在 [AnimationPlayer] 上的多个动画。"
+"对于给角色或其他基于骨架的é…件制作动画特别有用。它å¯ä»¥ç»“åˆå‡ ä¸ªåŠ¨ç”»æ¥å½¢æˆä¸€ä¸ª"
+"所需的姿势。\n"
+"它从 [AnimationPlayer] èŠ‚ç‚¹èŽ·å– [Animation],并根æ®å›¾ç¤ºå°†å®ƒä»¬æ··åˆèµ·æ¥ã€‚\n"
+"请å‚阅 [AnimationTree] 以获得该节点的更全é¢çš„功能替代。"
#: doc/classes/AnimationTreePlayer.xml
msgid "Adds a [code]type[/code] node to the graph with name [code]id[/code]."
@@ -7896,11 +8062,8 @@ msgstr ""
"傿•°ï¼ˆé‡åŠ›ã€é˜»å°¼ï¼‰ï¼Œå¹¶å°†éŸ³é¢‘路由到一个自定义的音频总线。"
#: doc/classes/Area2D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/physics/using_area_2d.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/physics/using_area_2d."
-"html"
+msgstr "$DOCS_URL/tutorials/physics/using_area_2d.html"
#: doc/classes/Area2D.xml doc/classes/CollisionShape2D.xml
#: doc/classes/RectangleShape2D.xml
@@ -8372,10 +8535,10 @@ msgstr ""
"func _ready():\n"
" var a = [\"one\", \"two\", \"three\", \"four\"]\n"
" # `compare`是在这个对象中定义的,所以我们用`self`作为`obj`傿•°ã€‚\n"
-" print(a.bsearch_custom(\"three\", self, \"compare\", true))# 预期的值是"
+" print(a.bsearch_custom(\"three\", self, \"compare\", true)) # 预期的值是 "
"2。\n"
"[/codeblock]\n"
-"[b]注æ„:[/b] 在未排åºçš„æ•°ç»„上调用[method bsearch_custom]会导致预料之外的行"
+"[b]注æ„:[/b]在未排åºçš„æ•°ç»„上调用 [method bsearch_custom] 会导致预料之外的行"
"为。"
#: doc/classes/Array.xml
@@ -8448,8 +8611,8 @@ msgid ""
"execution when running from the editor."
msgstr ""
"返回数组的第一个元素。如果数组为空,则打å°é”™è¯¯å¹¶è¿”回 [code]null[/code]。\n"
-"[b]注:[/b]调用这个函数和写[code]array[0][/code]是ä¸ä¸€æ ·çš„,如果数组为空,从"
-"编辑器è¿è¡Œæ—¶æŒ‰ç´¢å¼•访问将暂åœé¡¹ç›®æ‰§è¡Œã€‚"
+"[b]注æ„:[/b]调用这个函数和写 [code]array[0][/code] 是ä¸ä¸€æ ·çš„,如果数组为"
+"空,从编辑器è¿è¡Œæ—¶æŒ‰ç´¢å¼•访问将暂åœé¡¹ç›®æ‰§è¡Œã€‚"
#: doc/classes/Array.xml
msgid ""
@@ -8488,8 +8651,8 @@ msgid ""
"[b]Note:[/b] Arrays with equal contents can still produce different hashes. "
"Only the exact same arrays will produce the same hashed integer value."
msgstr ""
-"返回这个数组的整数哈希值\n"
-"[b]注æ„:[/b] 仅仅内容相åŒçš„æ•°ç»„会产生ä¸åŒçš„哈希值, å¿…é¡»è¦å®Œå…¨ä¸€è‡´çš„æ•°ç»„æ‰ä¼šäº§"
+"返回代表这个数组åŠå…¶å†…容的整数哈希值。\n"
+"[b]注æ„:[/b]仅仅内容相åŒçš„æ•°ç»„会产生ä¸åŒçš„哈希值, å¿…é¡»è¦å®Œå…¨ä¸€è‡´çš„æ•°ç»„æ‰ä¼šäº§"
"生相åŒçš„哈希值."
#: doc/classes/Array.xml
@@ -8501,11 +8664,11 @@ msgid ""
"element is close to the beginning of the array (index 0). This is because "
"all elements placed after the newly inserted element have to be reindexed."
msgstr ""
-"在给定的数组ä½ç½®æ’入一个新值. ä½ç½®å¿…é¡»åˆæ³•, 或者在数组末尾([code]pos == "
-"size()[/code]).\n"
-"[b]注æ„:[/b] 这个数组没有返回值.\n"
-"[b]注æ„:[/b] 在较大的数组中, 如果æ’入值的ä½ç½®åœ¨æ•°ç»„åå‰çš„ä½ç½®, 这个方法的è¿è¡Œ"
-"速度会比较慢, 因为在æ’入值åŽé¢æ‰€æœ‰çš„元素都è¦è¢«é‡æ–°ç´¢å¼•."
+"在给定的数组ä½ç½®æ’入一个新值。ä½ç½®å¿…é¡»åˆæ³•,或者是在数组末尾([code]pos == "
+"size()[/code])。\n"
+"[b]注æ„:[/b]该方法在原地执行,没有返回值。\n"
+"[b]注æ„:[/b]在较大的数组中,如果æ’入值的ä½ç½®åœ¨æ•°ç»„åå‰çš„ä½ç½®ï¼Œè¿™ä¸ªæ–¹æ³•çš„è¿è¡Œ"
+"速度会比较慢,因为在æ’入值åŽé¢æ‰€æœ‰çš„元素都è¦è¢«é‡æ–°ç´¢å¼•。"
#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
@@ -8588,9 +8751,9 @@ msgid ""
"push_back] as it will reindex all the array's elements every time it's "
"called. The larger the array, the slower [method push_front] will be."
msgstr ""
-"在数组的开头添加一个元素。å‚阅[method push_back]。\n"
-"[b]注æ„:[/b] 在大数组中,这个方法比[method push_back]æ…¢å¾—å¤šï¼Œå› ä¸ºæ¯æ¬¡è°ƒç”¨å®ƒéƒ½"
-"ä¼šé‡æ–°ç´¢å¼•所有数组的元素。数组越大,[method push_front]的速度就越慢。"
+"在数组的开头添加一个元素。请å‚阅 [method push_back]。\n"
+"[b]注æ„:[/b]在大数组中,这个方法比 [method push_back] æ…¢å¾—å¤šï¼Œå› ä¸ºæ¯æ¬¡è°ƒç”¨å®ƒ"
+"éƒ½ä¼šé‡æ–°ç´¢å¼•所有数组的元素。数组越大,[method push_front] 的速度就越慢。"
#: doc/classes/Array.xml
msgid ""
@@ -8603,9 +8766,9 @@ msgid ""
"all elements placed after the removed element have to be reindexed."
msgstr ""
"按索引从数组中移除一个元素。如果索引在数组中ä¸å­˜åœ¨ï¼Œåˆ™ä»€ä¹ˆä¹Ÿä¸ä¼šå‘生。è¦é€šè¿‡"
-"æœç´¢ä¸€ä¸ªå…ƒç´ çš„值æ¥ç§»é™¤å®ƒï¼Œè¯·ä½¿ç”¨[method erase]æ¥ä»£æ›¿ã€‚\n"
-"[b]注æ„:[/b] 这个方法是就地æ“作,ä¸è¿”回值。\n"
-"[b]注æ„:[/b] 在大数组中,如果被删除的元素é è¿‘数组的开头(索引0),这个方法会"
+"æœç´¢ä¸€ä¸ªå…ƒç´ çš„值æ¥ç§»é™¤å®ƒï¼Œè¯·ä½¿ç”¨ [method erase] æ¥ä»£æ›¿ã€‚\n"
+"[b]注æ„:[/b]这个方法是就地æ“作,ä¸è¿”回值。\n"
+"[b]注æ„:[/b]在大数组中,如果被删除的元素é è¿‘数组的开头(索引 0),这个方法会"
"比较慢。这是因为所有放置在被移除元素之åŽçš„元素都è¦è¢«é‡æ–°ç´¢å¼•。"
#: doc/classes/Array.xml
@@ -8637,7 +8800,10 @@ msgstr ""
"randi] ç­‰æ–¹æ³•ä¸€è‡´ã€‚å¦‚æžœä½ æƒ³æ¯æ¬¡éƒ½ä½¿ç”¨æ–°çš„ç§å­ï¼Œè®©æ‰“乱无法é‡çŽ°ï¼Œåˆ™å¯ä»¥è°ƒç”¨ "
"[method @GDScript.randomize]。"
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr "返回数组中元素的个数。"
@@ -8772,11 +8938,8 @@ msgstr ""
"learnopengl.com/Advanced-OpenGL/Face-culling]环绕顺åº[/url]。"
#: doc/classes/ArrayMesh.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/procedural_geometry/arraymesh.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/procedural_geometry/"
-"arraymesh.html"
+msgstr "$DOCS_URL/tutorials/3d/procedural_geometry/arraymesh.html"
#: doc/classes/ArrayMesh.xml
msgid ""
@@ -8903,7 +9066,7 @@ msgstr ""
#: doc/classes/ArrayMesh.xml
msgid "Sets the blend shape mode to one of [enum Mesh.BlendShapeMode]."
-msgstr "将混åˆå½¢çŠ¶æ¨¡å¼è®¾ç½®ä¸º[enum Mesh.BlendShapeMode]之一。"
+msgstr "将混åˆå½¢çŠ¶æ¨¡å¼è®¾ç½®ä¸º [enum Mesh.BlendShapeMode] 之一。"
#: doc/classes/ArrayMesh.xml doc/classes/PrimitiveMesh.xml
msgid ""
@@ -9070,9 +9233,9 @@ msgid ""
"can be used to create shadows/reflections on surfaces or for generating "
"collision shapes."
msgstr ""
-"如果由[ARVRInterface]æä¾›ï¼Œè¿™å°†è¿”回一个锚的网格对象。对于一个锚,这å¯ä»¥æ˜¯ä¸€ä¸ª"
-"与被追踪物体相关的形状,也å¯ä»¥æ˜¯ä¸€ä¸ªæä¾›ä¸Žé”šç›¸å…³çš„æ‹“扑的网格,å¯ä»¥ç”¨äºŽåœ¨è¡¨é¢"
-"上创建阴影/å射,或者用于生æˆç¢°æ’žå½¢çŠ¶ã€‚"
+"如果由 [ARVRInterface] æä¾›ï¼Œè¿™å°†è¿”回一个锚的网格对象。对于一个锚,这å¯ä»¥æ˜¯ä¸€"
+"个与被追踪物体相关的形状,也å¯ä»¥æ˜¯ä¸€ä¸ªæä¾›ä¸Žé”šç›¸å…³çš„æ‹“扑的网格,å¯ä»¥ç”¨äºŽåœ¨è¡¨"
+"é¢ä¸Šåˆ›å»ºé˜´å½±/å射,或者用于生æˆç¢°æ’žå½¢çŠ¶ã€‚"
#: doc/classes/ARVRAnchor.xml
msgid ""
@@ -9140,7 +9303,7 @@ msgstr ""
#: doc/classes/ARVRInterface.xml doc/classes/ARVROrigin.xml
#: doc/classes/ARVRPositionalTracker.xml doc/classes/ARVRServer.xml
msgid "$DOCS_URL/tutorials/vr/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/vr/index.html"
#: doc/classes/ARVRController.xml
msgid "A spatial node representing a spatially-tracked controller."
@@ -9295,8 +9458,8 @@ msgstr ""
"需è¦å®žçŽ°è¿™ä¸ªç±»æ‰èƒ½ä½¿ AR 或 VR å¹³å°å¯ä¾› Godot 使用,并且应实现为 C++ æ¨¡å—æˆ– "
"GDNative 模å—,注æ„,对于 GDNative,应使用å­ç±» ARVRScriptInterface。部分接å£"
"å‘ GDScript 公开,因而,您å¯ä»¥æ£€æµ‹ã€å¯ç”¨å’Œé…ç½® AR 或 VR å¹³å°ã€‚\n"
-"接å£åº”以这样的方å¼ç¼–写,åªéœ€å¯ç”¨å®ƒä»¬å°±å¯ä»¥ä¸ºæˆ‘们æä¾›å·¥ä½œé…置。您å¯ä»¥é€šè¿‡"
-"[ARVRServer]查询å¯ç”¨æŽ¥å£ã€‚"
+"接å£åº”以这样的方å¼ç¼–写,åªéœ€å¯ç”¨å®ƒä»¬å°±å¯ä»¥ä¸ºæˆ‘们æä¾›å·¥ä½œé…置。您å¯ä»¥é€šè¿‡ "
+"[ARVRServer] 查询å¯ç”¨æŽ¥å£ã€‚"
#: doc/classes/ARVRInterface.xml
msgid ""
@@ -9410,8 +9573,8 @@ msgid ""
"main viewport for other purposes."
msgstr ""
"这个接å£è¾“出到一个外部设备。如果使用主视窗,å±å¹•上的输出是一个未ç»ä¿®æ”¹çš„左眼"
-"或å³çœ¼çš„缓冲区,如果没有将视窗尺寸更改为[method get_render_targetsize]的相åŒ"
-"长宽比,则被拉伸。使用一个å•独的视窗节点å¯ä»¥é‡Šæ”¾å‡ºä¸»è§†çª—,用于其他用途。"
+"或å³çœ¼çš„缓冲区,如果没有将视窗尺寸更改为 [method get_render_targetsize] 的相"
+"åŒé•¿å®½æ¯”,则被拉伸。使用一个å•独的视窗节点å¯ä»¥é‡Šæ”¾å‡ºä¸»è§†çª—,用于其他用途。"
#: doc/classes/ARVRInterface.xml
msgid ""
@@ -9574,8 +9737,8 @@ msgid ""
"tracker type and matches the ID you need to specify for nodes such as the "
"[ARVRController] and [ARVRAnchor] nodes."
msgstr ""
-"返回内部跟踪器的ID。这是对æ¯ä¸ªè·Ÿè¸ªå™¨ç±»åž‹çš„唯一标识,与你需è¦ä¸º"
-"[ARVRController]å’Œ[ARVRAnchor]节点指定的ID相匹é…。"
+"返回内部跟踪器的 ID。这是对æ¯ä¸ªè·Ÿè¸ªå™¨ç±»åž‹çš„唯一标识,与你需è¦ä¸º "
+"[ARVRController] å’Œ [ARVRAnchor] 节点指定的 ID 相匹é…。"
#: doc/classes/ARVRPositionalTracker.xml
msgid "Returns [code]true[/code] if this device tracks orientation."
@@ -9739,7 +9902,7 @@ msgstr ""
msgid ""
"Returns the reference frame transform. Mostly used internally and exposed "
"for GDNative build interfaces."
-msgstr "è¿”å›žå¼•ç”¨å¸§çš„å˜æ¢ã€‚主è¦åœ¨å†…部使用,并公开在GDNative构建接å£ä¸­ã€‚"
+msgstr "è¿”å›žå¼•ç”¨å¸§çš„å˜æ¢ã€‚主è¦åœ¨å†…部使用,并公开在 GDNative 构建接å£ä¸­ã€‚"
#: doc/classes/ARVRServer.xml
msgid "Returns the positional tracker at the given ID."
@@ -9810,7 +9973,7 @@ msgstr "追踪器追踪基站的ä½ç½®ã€‚"
#: doc/classes/ARVRServer.xml
msgid "The tracker tracks the location and size of an AR anchor."
-msgstr "追踪器追踪AR锚的ä½ç½®å’Œå¤§å°ã€‚"
+msgstr "追踪器追踪 AR 锚的ä½ç½®å’Œå¤§å°ã€‚"
#: doc/classes/ARVRServer.xml
msgid "Used internally to filter trackers of any known type."
@@ -10112,10 +10275,10 @@ msgid ""
"the one with the smallest ID will be returned, ensuring a deterministic "
"result."
msgstr ""
-"返回离[code]to_position[/code]最近的点的ID,å¯ä»¥é€‰æ‹©å°†ç¦ç”¨çš„点考虑在内。如果"
-"点池中没有点,返回[code]-1[/code]。\n"
-"[b]注æ„:[/b] 如果几个点都是离[code]to_position[/code]最近的点,将返回ID最å°çš„"
-"那个点,以ä¿è¯ç»“果的确定性。"
+"返回离 [code]to_position[/code] 最近的点的 ID,å¯ä»¥é€‰æ‹©å°†ç¦ç”¨çš„点考虑在内。如"
+"果点池中没有点,返回 [code]-1[/code]。\n"
+"[b]注æ„:[/b]如果几个点都是离 [code]to_position[/code] 最近的点,将返回 ID 最"
+"å°çš„那个点,以ä¿è¯ç»“果的确定性。"
#: doc/classes/AStar.xml
msgid ""
@@ -10568,7 +10731,7 @@ msgid ""
"Stores position, muting, solo, bypass, effects, effect position, volume, and "
"the connections between buses. See [AudioServer] for usage."
msgstr ""
-"存储ä½ç½®ã€é™éŸ³ã€ç‹¬å¥ã€æ—è·¯ã€æ•ˆæžœã€æ•ˆæžœä½ç½®ã€éŸ³é‡ä»¥åŠæ€»çº¿ä¹‹é—´çš„连接。使用方法"
+"存储ä½ç½®ã€é™éŸ³ã€ç‹¬å¥ã€æ—é€šã€æ•ˆæžœã€æ•ˆæžœä½ç½®ã€éŸ³é‡ä»¥åŠæ€»çº¿ä¹‹é—´çš„连接。使用方法"
"å‚阅 [AudioServer] 。"
#: doc/classes/AudioEffect.xml
@@ -10920,10 +11083,8 @@ msgstr ""
#: doc/classes/AudioEffectDistortion.xml doc/classes/AudioEffectFilter.xml
#: doc/classes/AudioEffectHighShelfFilter.xml
#: doc/classes/AudioEffectLowShelfFilter.xml doc/classes/AudioServer.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/audio/audio_buses.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/audio/audio_buses.html"
+msgstr "$DOCS_URL/tutorials/audio/audio_buses.html"
#: doc/classes/AudioEffectDistortion.xml
msgid "Distortion power. Value can range from 0 to 1."
@@ -11018,8 +11179,8 @@ msgid ""
"over frequencies from 31 Hz to 16000 Hz.\n"
"Each frequency can be modulated between -60/+24 dB."
msgstr ""
-"为音频总线添加10段å‡è¡¡å™¨éŸ³é¢‘效果。让你控制31Hz到16000Hz的频率。\n"
-"æ¯ä¸ªé¢‘率å¯ä»¥åœ¨-60/+24dB之间进行调制。"
+"为音频总线添加 10 段å‡è¡¡å™¨éŸ³é¢‘效果。让你控制 31Hz 到 16000Hz 的频率。\n"
+"æ¯ä¸ªé¢‘率å¯ä»¥åœ¨ -60/+24dB 之间进行调制。"
#: doc/classes/AudioEffectEQ10.xml
msgid ""
@@ -11036,18 +11197,18 @@ msgid ""
"Band 10: 16000 Hz\n"
"See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ21]."
msgstr ""
-"频段:频段1:31赫兹\n"
-"频段1:31赫兹\n"
-"频段2:62赫兹\n"
-"频段3:125赫兹\n"
-"频段4:250赫兹\n"
-"频段5:500赫兹\n"
-"频段6:1000赫兹\n"
-"频段7:2000赫兹\n"
-"频段8:4000赫兹\n"
-"频段9:8000赫兹\n"
-"频段10:16000赫兹\n"
-"å‚阅[AudioEffectEQ]ã€[AudioEffectEQ6]ã€[AudioEffectEQ21]。"
+"频段:\n"
+"频段 1:31 Hz\n"
+"频段 2:62 Hz\n"
+"频段 3:125 Hz\n"
+"频段 4:250 Hz\n"
+"频段 5:500 Hz\n"
+"频段 6:1000 Hz\n"
+"频段 7:2000 Hz\n"
+"频段 8:4000 Hz\n"
+"频段 9:8000 Hz\n"
+"频段 10:16000 Hz\n"
+"å¦è¯·å‚阅 [AudioEffectEQ]ã€[AudioEffectEQ6]ã€[AudioEffectEQ21]。"
#: doc/classes/AudioEffectEQ21.xml
msgid ""
@@ -11084,29 +11245,29 @@ msgid ""
"Band 21: 22000 Hz\n"
"See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ10]."
msgstr ""
-"频段:频段1:22赫兹\n"
-"频段1:22赫兹\n"
-"频段2:32赫兹\n"
-"频段3:44赫兹\n"
-"频段4:63赫兹\n"
-"频段5:90赫兹\n"
-"频段6:125赫兹\n"
-"频段7:175赫兹\n"
-"频段8:250赫兹\n"
-"频段9:350赫兹\n"
-"频段10:500赫兹\n"
-"频段11:700赫兹\n"
-"频段12:1000赫兹\n"
-"频段13:1400赫兹\n"
-"频段14:2000赫兹\n"
-"频段15:2800赫兹\n"
-"频段16:4000赫兹\n"
-"频段17:5600赫兹\n"
-"频段18:8000赫兹\n"
-"频段19:11000赫兹\n"
-"频段20:16000赫兹\n"
-"频段21:22000赫兹\n"
-"å‚阅[AudioEffectEQ]ã€[AudioEffectEQ6]ã€[AudioEffectEQ10]。"
+"频段:\n"
+"频段 1:22 Hz\n"
+"频段 2:32 Hz\n"
+"频段 3:44 Hz\n"
+"频段 4:63 Hz\n"
+"频段 5:90 Hz\n"
+"频段 6:125 Hz\n"
+"频段 7:175 Hz\n"
+"频段 8:250 Hz\n"
+"频段 9:350 Hz\n"
+"频段 10:500 Hz\n"
+"频段 11:700 Hz\n"
+"频段 12:1000 Hz\n"
+"频段 13:1400 Hz\n"
+"频段 14:2000 Hz\n"
+"频段 15:2800 Hz\n"
+"频段 16:4000 Hz\n"
+"频段 17:5600 Hz\n"
+"频段 18:8000 Hz\n"
+"频段 19:11000 Hz\n"
+"频段 20:16000 Hz\n"
+"频段 21:22000 Hz\n"
+"å¦è¯·å‚阅 [AudioEffectEQ]ã€[AudioEffectEQ6]ã€[AudioEffectEQ10]。"
#: doc/classes/AudioEffectEQ6.xml
msgid ""
@@ -11128,14 +11289,14 @@ msgid ""
"Band 6: 10000 Hz\n"
"See also [AudioEffectEQ], [AudioEffectEQ10], [AudioEffectEQ21]."
msgstr ""
-"频段:频段1:32赫兹\n"
-"频段1:32赫兹\n"
-"频段2:100赫兹\n"
-"频段3:320赫兹\n"
-"频段4:1000赫兹\n"
-"频段5:3200赫兹\n"
-"频段6:10000赫兹\n"
-"å¦è¯·å‚阅[AudioEffectEQ]ã€[AudioEffectEQ10]ã€[AudioEffectEQ21]。"
+"频段:\n"
+"频段 1:32 Hz\n"
+"频段 2:100 Hz\n"
+"频段 3:320 Hz\n"
+"频段 4:1000 Hz\n"
+"频段 5:3200 Hz\n"
+"频段 6:10000 Hz\n"
+"å¦è¯·å‚阅 [AudioEffectEQ]ã€[AudioEffectEQ10]ã€[AudioEffectEQ21]。"
#: doc/classes/AudioEffectFilter.xml
msgid "Adds a filter to the audio bus."
@@ -11403,11 +11564,8 @@ msgstr ""
"缩)。它检查录音是å¦å¤„于活动状æ€ï¼Œå¦‚果是,则记录声音。然åŽè¿”回记录的样本。"
#: doc/classes/AudioEffectRecord.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/audio/recording_with_microphone.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/audio/"
-"recording_with_microphone.html"
+msgstr "$DOCS_URL/tutorials/audio/recording_with_microphone.html"
#: doc/classes/AudioEffectRecord.xml
msgid "Returns the recorded sample."
@@ -11570,15 +11728,15 @@ msgstr "https://godotengine.org/asset-library/asset/528"
#: doc/classes/AudioServer.xml
msgid "Adds a bus at [code]at_position[/code]."
-msgstr "在[code]at_position[/code]å¤„æ·»åŠ ä¸€æ¡æ€»çº¿ã€‚"
+msgstr "在 [code]at_position[/code] å¤„æ·»åŠ ä¸€æ¡æ€»çº¿ã€‚"
#: doc/classes/AudioServer.xml
msgid ""
"Adds an [AudioEffect] effect to the bus [code]bus_idx[/code] at "
"[code]at_position[/code]."
msgstr ""
-"在[code]bus_idx[/code]at[code]at_position[/code]处给总线添加[AudioEffect]效"
-"果。"
+"为索引为 [code]bus_idx[/code] 的总线在 [code]at_position[/code] 处添加 "
+"[AudioEffect] 效果。"
#: doc/classes/AudioServer.xml
msgid ""
@@ -11685,15 +11843,15 @@ msgid ""
"If [code]true[/code], the bus at index [code]bus_idx[/code] is bypassing "
"effects."
msgstr ""
-"如果[code]true[/code],则ä½äºŽindex[code]bus_idx[/code]的总线会绕过效果。"
+"如果为 [code]true[/code],则ä½äºŽç´¢å¼• [code]bus_idx[/code] 的总线会绕过效果。"
#: doc/classes/AudioServer.xml
msgid ""
"If [code]true[/code], the effect at index [code]effect_idx[/code] on the bus "
"at index [code]bus_idx[/code] is enabled."
msgstr ""
-"如果[code]true[/code],则å¯ç”¨ç´¢å¼•[code]effect_idx[/code]在索引[code]bus_idx[/"
-"code]的总线上的效果。"
+"如果为 [code]true[/code],则å¯ç”¨ç´¢å¼• [code]effect_idx[/code] 在索引 "
+"[code]bus_idx[/code] 的总线上的效果。"
#: doc/classes/AudioServer.xml
msgid "If [code]true[/code], the bus at index [code]bus_idx[/code] is muted."
@@ -11814,10 +11972,8 @@ msgstr ""
#: doc/classes/AudioStream.xml doc/classes/AudioStreamPlayer.xml
#: doc/classes/AudioStreamPlayer2D.xml doc/classes/AudioStreamPlayer3D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/audio/audio_streams.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/audio/audio_streams.html"
+msgstr "$DOCS_URL/tutorials/audio/audio_streams.html"
#: doc/classes/AudioStream.xml doc/classes/AudioStreamGenerator.xml
#: doc/classes/AudioStreamGeneratorPlayback.xml
@@ -11937,9 +12093,9 @@ msgid ""
"efficient than [method push_buffer] in C# and compiled languages via "
"GDNative, but [method push_frame] may be [i]more[/i] efficient in GDScript."
msgstr ""
-"å°†å•个音频数æ®å¸§æŽ¨é€åˆ°ç¼“冲区。在C#和通过GDNative编译的语言中,这通常比"
-"[method push_buffer]效率低,但在GDScript中[method push_frame]å¯èƒ½[i]更高效[/"
-"i]。"
+"å°†å•个音频数æ®å¸§æŽ¨é€åˆ°ç¼“冲区。在 C# 和通过 GDNative 编译的语言中通常比 "
+"[method push_buffer] 效率低,但在 GDScript 中 [method push_frame] å¯èƒ½[i]更高"
+"效[/i]。"
#: modules/minimp3/doc_classes/AudioStreamMP3.xml
msgid "MP3 audio stream driver."
@@ -11975,7 +12131,7 @@ msgid ""
"Can play, loop, pause a scroll through audio. See [AudioStream] and "
"[AudioStreamOGGVorbis] for usage."
msgstr ""
-"å¯ä»¥æ’­æ”¾ï¼Œå¾ªçŽ¯ï¼Œæš‚åœæ»šåŠ¨éŸ³é¢‘ã€‚æœ‰å…³ç”¨æ³•ï¼Œè¯·å‚阅[AudioStream]å’Œ"
+"å¯ä»¥æ’­æ”¾ã€å¾ªçŽ¯ã€æš‚åœæ»šåŠ¨éŸ³é¢‘ã€‚æœ‰å…³ç”¨æ³•ï¼Œè¯·å‚阅 [AudioStream] å’Œ "
"[AudioStreamOGGVorbis]。"
#: doc/classes/AudioStreamPlayer.xml
@@ -11994,17 +12150,17 @@ msgstr ""
#: doc/classes/AudioStreamPlayer.xml
msgid "Returns the position in the [AudioStream] in seconds."
-msgstr "返回[AudioStream]中的ä½ç½®ï¼Œå•ä½ä¸ºç§’。"
+msgstr "返回 [AudioStream] 中的ä½ç½®ï¼Œå•ä½ä¸ºç§’。"
#: doc/classes/AudioStreamPlayer.xml
msgid ""
"Returns the [AudioStreamPlayback] object associated with this "
"[AudioStreamPlayer]."
-msgstr "返回与此[AudioStreamPlayer]å…³è”çš„[AudioStreamPlayback]对象。"
+msgstr "返回与此 [AudioStreamPlayer] å…³è”çš„ [AudioStreamPlayback] 对象。"
#: doc/classes/AudioStreamPlayer.xml
msgid "Plays the audio from the given [code]from_position[/code], in seconds."
-msgstr "从给定的[code]from_position[/code]播放音频,以秒为å•ä½ã€‚"
+msgstr "从给定的 [code]from_position[/code] 播放音频,以秒为å•ä½ã€‚"
#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
#: doc/classes/AudioStreamPlayer3D.xml
@@ -12018,7 +12174,7 @@ msgstr "åœæ­¢éŸ³é¢‘。"
#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
msgid "If [code]true[/code], audio plays when added to scene tree."
-msgstr "如果[code]true[/code],则在添加到场景树时播放音频。"
+msgstr "为 [code]true[/code] 时在添加到场景树时播放音频。"
#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
msgid "Bus on which this audio is playing."
@@ -12057,7 +12213,7 @@ msgstr ""
#: doc/classes/AudioStreamPlayer.xml
msgid "Volume of sound, in dB."
-msgstr "音é‡ï¼Œå•ä½ä¸ºdB。"
+msgstr "音é‡ï¼Œå•ä½ä¸º dB。"
#: doc/classes/AudioStreamPlayer.xml doc/classes/AudioStreamPlayer2D.xml
#: doc/classes/AudioStreamPlayer3D.xml
@@ -12558,10 +12714,8 @@ msgstr ""
"看到效果。"
#: doc/classes/BakedLightmap.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/baked_lightmaps.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/baked_lightmaps.html"
+msgstr "$DOCS_URL/tutorials/3d/baked_lightmaps.html"
#: doc/classes/BakedLightmap.xml
msgid ""
@@ -12971,8 +13125,8 @@ msgstr ""
"如果 [code]true[/code],按钮为按下状æ€ã€‚表示按钮被按下或切æ¢ï¼ˆå¦‚æžœ [member "
"toggle_mode] 处于激活状æ€ï¼‰ã€‚仅当 [member toggle_mode] 为 [code]true[/code] "
"æ—¶æ‰æœ‰æ•ˆã€‚\n"
-"[b]注:[/b]设置 [member pressed] 将导致 [signal toggled] 触å‘。如果你想在ä¸è§¦"
-"å‘该信å·çš„æƒ…况下更改按下状æ€ï¼Œè¯·ä½¿ç”¨ [method set_pressed_no_signal]。"
+"[b]注æ„:[/b]设置 [member pressed] 将导致 [signal toggled] 触å‘。如果你想在ä¸"
+"触å‘该信å·çš„æƒ…况下更改按下状æ€ï¼Œè¯·ä½¿ç”¨ [method set_pressed_no_signal]。"
#: doc/classes/BaseButton.xml
msgid "[ShortCut] associated to the button."
@@ -13072,25 +13226,20 @@ msgid ""
"For more information, read the \"Matrices and transforms\" documentation "
"article."
msgstr ""
-"用于三维旋转和缩放的 3×3 çŸ©é˜µã€‚å‡ ä¹Žæ€»æ˜¯ç”¨ä½œå˜æ¢çš„æ­£äº¤åŸºç¡€ã€‚\n"
-"åŒ…å« 3 个å‘é‡å­—段 Xã€Y å’Œ Z ä½œä¸ºå…¶åˆ—ï¼Œé€šå¸¸è¢«è§£é‡Šä¸ºå˜æ¢çš„局部基础å‘é‡ã€‚对于这"
-"ç§ç”¨é€”,它由一个缩放矩阵和一个旋转矩阵组æˆï¼Œä¾æ¬¡ä¸º (M=R.S)。\n"
+"用于三维旋转和缩放的 3×3 çŸ©é˜µã€‚å‡ ä¹Žæ€»æ˜¯ç”¨ä½œå˜æ¢çš„æ­£äº¤åŸºã€‚\n"
+"åŒ…å« 3 个å‘é‡å­—段 Xã€Y å’Œ Z ä½œä¸ºå…¶åˆ—ï¼Œé€šå¸¸è¢«è§£é‡Šä¸ºå˜æ¢çš„局部基å‘é‡ã€‚对于这ç§"
+"用途,它由一个缩放矩阵和一个旋转矩阵组æˆï¼Œä¾æ¬¡ä¸º (M=R.S)。\n"
"也å¯ä»¥ä½œä¸ºä¸‰ç»´å‘é‡çš„æ•°ç»„æ¥è®¿é—®ã€‚这些å‘é‡é€šå¸¸æ˜¯ç›¸äº’正交的,但ä¸ä¸€å®šæ˜¯å½’一化的"
"(由于缩放)。\n"
"更多信æ¯è¯·é˜…è¯»æ–‡æ¡£ä¸­çš„ã€ŠçŸ©é˜µå’Œå˜æ¢ã€‹ä¸€æ–‡ã€‚"
#: doc/classes/Basis.xml doc/classes/Transform.xml doc/classes/Transform2D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/math/matrices_and_transforms.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/math/"
-"matrices_and_transforms.html"
+msgstr "$DOCS_URL/tutorials/math/matrices_and_transforms.html"
#: doc/classes/Basis.xml doc/classes/Transform.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/using_transforms.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/using_transforms.html"
+msgstr "$DOCS_URL/tutorials/3d/using_transforms.html"
#: doc/classes/Basis.xml doc/classes/Line2D.xml doc/classes/Transform.xml
#: doc/classes/Transform2D.xml doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -13126,9 +13275,9 @@ msgid ""
"Consider using the [Quat] constructor instead, which uses a quaternion "
"instead of Euler angles."
msgstr ""
-"æ ¹æ®ç»™å®šçš„æ¬§æ‹‰è§’构造一个纯旋转基础矩阵(按照 YXZ 惯例:当*åˆæˆæ—¶ï¼Œå…ˆ Yï¼Œç„¶åŽ "
-"Xï¼Œæœ€åŽ Z),å‘釿 ¼å¼ä¸ºï¼ˆX 角,Y 角,Z 角)。\n"
-"å¯ä»¥è€ƒè™‘使用[Quat]构造函数代替,它使用四元组代替欧拉角。"
+"æ ¹æ®ç»™å®šçš„æ¬§æ‹‰è§’构造一个纯旋转的基矩阵(按照 YXZ 惯例:当*åˆæˆ*时,先 Yã€ç„¶"
+"åŽ Xã€æœ€åŽ Z),å‘釿 ¼å¼ä¸ºï¼ˆX è§’ã€Y è§’ã€Z 角)。\n"
+"å¯ä»¥è€ƒè™‘使用 [Quat] 构造函数代替,它使用四元组代替欧拉角。"
#: doc/classes/Basis.xml
msgid ""
@@ -13136,12 +13285,12 @@ msgid ""
"[code]axis[/code] by [code]phi[/code], in radians. The axis must be a "
"normalized vector."
msgstr ""
-"构造一个纯旋转基阵,以弧度为å•ä½ï¼Œå›´ç»•给定的 [code]axis[/code] 旋转 "
-"[code]phi[/code] 个弧度。轴必须是归一化å‘é‡ã€‚"
+"构造一个纯旋转的基矩阵,围绕给定的 [code]axis[/code] 旋转 [code]phi[/code] 个"
+"弧度。轴必须是归一化å‘é‡ã€‚"
#: doc/classes/Basis.xml
msgid "Constructs a basis matrix from 3 axis vectors (matrix columns)."
-msgstr "从 3 个轴å‘é‡ï¼ˆçŸ©é˜µåˆ—)构造一个基础矩阵。"
+msgstr "从 3 个轴å‘é‡ï¼ˆçŸ©é˜µåˆ—)构造一个基矩阵。"
#: doc/classes/Basis.xml
msgid ""
@@ -13151,9 +13300,8 @@ msgid ""
"determinant means the basis isn't invertible, and is usually considered "
"invalid."
msgstr ""
-"返回基数矩阵的行列å¼ã€‚如果基数是å‡åŒ€ç¼©æ”¾çš„ï¼Œå®ƒçš„è¡Œåˆ—å¼æ˜¯ç¼©æ”¾çš„平方。\n"
-"è´Ÿçš„è¡Œåˆ—å¼æ„味ç€åŸºæ•°çš„æ¯”ä¾‹æ˜¯è´Ÿçš„ã€‚è´Ÿçš„è¡Œåˆ—å¼æ„味ç€åŸºæ•°ä¸å¯é€†ï¼Œé€šå¸¸è¢«è®¤ä¸ºæ— "
-"效。"
+"返回基矩阵的行列å¼ã€‚如果基是å‡åŒ€ç¼©æ”¾çš„ï¼Œå®ƒçš„è¡Œåˆ—å¼æ˜¯ç¼©æ”¾çš„平方。\n"
+"è´Ÿçš„è¡Œåˆ—å¼æ„味ç€åŸºçš„æ¯”ä¾‹æ˜¯è´Ÿçš„ã€‚è´Ÿçš„è¡Œåˆ—å¼æ„味ç€åŸºä¸å¯é€†ï¼Œé€šå¸¸è¢«è®¤ä¸ºæ— æ•ˆã€‚"
#: doc/classes/Basis.xml
msgid ""
@@ -13164,10 +13312,10 @@ msgid ""
"Consider using the [method get_rotation_quat] method instead, which returns "
"a [Quat] quaternion instead of Euler angles."
msgstr ""
-"以欧拉角的形å¼è¿”回基础的旋转角度(按照 YXZ 惯例:分解时,先 Zã€å† Xã€æœ€åŽ "
-"Y)。返回的å‘é‡åŒ…嫿 ¼å¼ä¸ºï¼ˆXè§’ã€Yè§’ã€Z角)的旋转角。\n"
-"å¯ä»¥è€ƒè™‘使用 [method get_rotation_quat] 代替,该方法返回的是[Quat]四元组而ä¸"
-"是欧拉角。"
+"以欧拉角的形å¼è¿”回基的旋转角度(按照 YXZ 惯例:分解时,先 Zã€å† Xã€æœ€åŽ Y)。"
+"返回的å‘é‡åŒ…嫿 ¼å¼ä¸ºï¼ˆXè§’ã€Yè§’ã€Z角)的旋转角。\n"
+"å¯ä»¥è€ƒè™‘使用 [method get_rotation_quat] 代替,该方法返回的是 [Quat] 四元组而"
+"䏿˜¯æ¬§æ‹‰è§’。"
#: doc/classes/Basis.xml
msgid ""
@@ -13177,9 +13325,9 @@ msgid ""
"orientation of the object. It is mainly used by the [GridMap] editor. For "
"further details, refer to the Godot source code."
msgstr ""
-"这个函数考虑将å•ä½çƒé¢ä¸Šçš„æ—‹è½¬åˆ†è§£æˆ24个点,沿å‘é‡(x,y,z)放置,æ¯ä¸ªåˆ†é‡ä¸º-1ã€"
-"0或1,并返回最能代表物体方å‘的点的索引。它主è¦ç”± [GridMap] 编辑器使用。更多细"
-"节请å‚考Godotæºç ã€‚"
+"这个函数考虑将å•ä½çƒé¢ä¸Šçš„æ—‹è½¬åˆ†è§£æˆ 24 个点,沿å‘é‡ (x,y,z) 放置,æ¯ä¸ªåˆ†é‡"
+"为 -1ã€0 或 1,并返回最能代表物体方å‘的点的索引。它主è¦ç”± [GridMap] 编辑器使"
+"用。更多细节请å‚考 Godot æºç ã€‚"
#: doc/classes/Basis.xml
msgid ""
@@ -13187,7 +13335,7 @@ msgid ""
"get_euler] if you need Euler angles, but keep in mind quaternions should "
"generally be preferred to Euler angles."
msgstr ""
-"以四元数的形å¼è¿”å›žåŸºç¡€çš„æ—‹è½¬ã€‚å¦‚æžœä½ éœ€è¦æ¬§æ‹‰è§’,请å‚阅 [method get_euler] æ–¹"
+"以四元数的形å¼è¿”å›žåŸºçš„æ—‹è½¬ã€‚å¦‚æžœä½ éœ€è¦æ¬§æ‹‰è§’,请å‚阅 [method get_euler] æ–¹"
"æ³•ï¼Œä½†é€šå¸¸é¦–é€‰å››å…ƒæ•°è€Œä¸æ˜¯æ¬§æ‹‰è§’。"
#: doc/classes/Basis.xml
@@ -13207,9 +13355,9 @@ msgid ""
"[b]Note:[/b] For complicated reasons, the epsilon argument is always "
"discarded. Don't use the epsilon argument, it does nothing."
msgstr ""
-"如果这个 basis å’Œ[code]b[/code]近似相等,返回[code]true[/code],是通过对æ¯ä¸ª"
-"分é‡è°ƒç”¨[code]is_equal_approx[/code]。\n"
-"[b]注æ„:[/b] ç”±äºŽå¤æ‚的原因,epsilon傿•°æ€»æ˜¯è¢«ä¸¢å¼ƒï¼Œä¸è¦ä½¿ç”¨å®ƒï¼Œå®ƒæ²¡æœ‰ä»»ä½•作"
+"如果这个基和 [code]b[/code] 近似相等,返回 [code]true[/code],比较是通过对æ¯"
+"个分é‡è°ƒç”¨ [code]is_equal_approx[/code] 完æˆçš„。\n"
+"[b]注æ„:[/b]ç”±äºŽå¤æ‚的原因,epsilon傿•°æ€»æ˜¯è¢«ä¸¢å¼ƒï¼Œä¸è¦ä½¿ç”¨å®ƒï¼Œå®ƒæ²¡æœ‰ä»»ä½•作"
"用。"
#: doc/classes/Basis.xml
@@ -13219,7 +13367,7 @@ msgid ""
"Gram-Schmidt orthonormalization on the basis of the matrix."
msgstr ""
"返回矩阵的正交归一化版本(对于正交矩阵æ¥è¯´ï¼Œå¶å°”调用以é¿å…å››èˆäº”入错误是有用"
-"的)。这将在矩阵的基础上执行 Gram-Schmidt 正交化。"
+"的)。这将在矩阵的基上执行 Gram-Schmidt 正交化。"
#: doc/classes/Basis.xml
msgid ""
@@ -13242,15 +13390,15 @@ msgstr ""
#: doc/classes/Basis.xml
msgid "Transposed dot product with the X axis of the matrix."
-msgstr "矩阵X轴的转置点积。"
+msgstr "与矩阵 X 轴的转置点积。"
#: doc/classes/Basis.xml
msgid "Transposed dot product with the Y axis of the matrix."
-msgstr "与矩阵Y轴的转置点积。"
+msgstr "与矩阵 Y 轴的转置点积。"
#: doc/classes/Basis.xml
msgid "Transposed dot product with the Z axis of the matrix."
-msgstr "与矩阵Z轴的转置点积。"
+msgstr "与矩阵 Z 轴的转置点积。"
#: doc/classes/Basis.xml
msgid "Returns the transposed version of the matrix."
@@ -13266,26 +13414,26 @@ msgid ""
"[b]Note:[/b] This results in a multiplication by the inverse of the matrix "
"only if it represents a rotation-reflection."
msgstr ""
-"è¿”å›žä¸€ä¸ªç”±è½¬ç½®åŸºæ•°çŸ©é˜µå˜æ¢ï¼ˆä¹˜æ³•)的å‘é‡ã€‚\n"
-"[b]注æ„:[/b]åªæœ‰å½“矩阵代表旋转å射时,æ‰ä¼šäº§ç”ŸçŸ©é˜µçš„å相乘法。"
+"è¿”å›žä¸€ä¸ªç”±è½¬ç½®åŸºçŸ©é˜µå˜æ¢ï¼ˆä¹˜æ³•)的å‘é‡ã€‚\n"
+"[b]注æ„:[/b]åªæœ‰å½“矩阵代表旋转å射时,æ‰ä¼šäº§ç”ŸçŸ©é˜µçš„å相乘法。"
#: doc/classes/Basis.xml doc/classes/Transform2D.xml
msgid ""
"The basis matrix's X vector (column 0). Equivalent to array index [code]0[/"
"code]."
-msgstr "基本矩阵的Xå‘é‡ï¼ˆç¬¬0列)。等效于数组索引[code]0[/code]。"
+msgstr "基矩阵的 X å‘é‡ï¼ˆç¬¬ 0 列)。等效于数组索引 [code]0[/code]。"
#: doc/classes/Basis.xml doc/classes/Transform2D.xml
msgid ""
"The basis matrix's Y vector (column 1). Equivalent to array index [code]1[/"
"code]."
-msgstr "基础矩阵的Yå‘é‡ï¼ˆç¬¬1列)。相当于数组索引[code]1[/code]。"
+msgstr "基矩阵的 Y å‘é‡ï¼ˆç¬¬ 1 列)。相当于数组索引 [code]1[/code]。"
#: doc/classes/Basis.xml
msgid ""
"The basis matrix's Z vector (column 2). Equivalent to array index [code]2[/"
"code]."
-msgstr "基础矩阵的Zå‘é‡ï¼ˆç¬¬2列)。相当于数组索引[code]2[/code]。"
+msgstr "基矩阵的 Z å‘é‡ï¼ˆç¬¬ 2 列)。相当于数组索引 [code]2[/code]。"
#: doc/classes/Basis.xml
msgid ""
@@ -13294,31 +13442,31 @@ msgid ""
"This constant can be used to make your code clearer, and for consistency "
"with C#."
msgstr ""
-"无旋转或缩放的å•ä½åŸºåº•。\n"
-"这与调用[code]Basis()[/code]而ä¸ä½¿ç”¨ä»»ä½•傿•°æ˜¯ä¸€æ ·çš„。这个常é‡å¯ä»¥ç”¨æ¥è®©ä½ çš„"
-"ä»£ç æ›´æ¸…晰,并与C#ä¿æŒä¸€è‡´ã€‚"
+"æ’等基,未应用旋转或缩放。\n"
+"这与ä¸å¸¦ä»»ä½•傿•°è°ƒç”¨ [code]Basis()[/code] 是一样的。这个常é‡å¯ä»¥ç”¨æ¥è®©ä½ çš„代"
+"ç æ›´æ¸…晰,并与 C# ä¿æŒä¸€è‡´ã€‚"
#: doc/classes/Basis.xml
msgid ""
"The basis that will flip something along the X axis when used in a "
"transformation."
-msgstr "åœ¨å˜æ¢ä¸­ä½¿ç”¨æ—¶ï¼Œä¼šæ²¿ X 轴翻转æŸç‰©çš„基础。"
+msgstr "åœ¨å˜æ¢ä¸­ä½¿ç”¨æ—¶ï¼Œä¼šæ²¿ X 轴翻转æŸç‰©çš„基。"
#: doc/classes/Basis.xml
msgid ""
"The basis that will flip something along the Y axis when used in a "
"transformation."
-msgstr "åœ¨å˜æ¢ä¸­ä½¿ç”¨æ—¶ï¼Œä¼šæ²¿ Y 轴翻转æŸç‰©çš„基础。"
+msgstr "åœ¨å˜æ¢ä¸­ä½¿ç”¨æ—¶ï¼Œä¼šæ²¿ Y 轴翻转æŸç‰©çš„基。"
#: doc/classes/Basis.xml
msgid ""
"The basis that will flip something along the Z axis when used in a "
"transformation."
-msgstr "åœ¨å˜æ¢ä¸­ä½¿ç”¨æ—¶ï¼Œä¼šæ²¿ Z 轴翻转æŸç‰©çš„基础。"
+msgstr "åœ¨å˜æ¢ä¸­ä½¿ç”¨æ—¶ï¼Œä¼šæ²¿ Z 轴翻转æŸç‰©çš„基。"
#: doc/classes/BitMap.xml
msgid "Boolean matrix."
-msgstr "布尔矩阵."
+msgstr "布尔矩阵。"
#: doc/classes/BitMap.xml
msgid ""
@@ -13341,8 +13489,8 @@ msgid ""
"that position is equal to [code]threshold[/code] or less, and [code]true[/"
"code] in other case."
msgstr ""
-"创建一个与给定图åƒå°ºå¯¸ç›¸åŒ¹é…çš„ä½å›¾ï¼Œå¦‚果图åƒåœ¨è¯¥ä½ç½®çš„alpha值等于"
-"[code]threshold[/code]或更å°ï¼Œåˆ™ä½å›¾çš„æ¯ä¸ªå…ƒç´ éƒ½è®¾ç½®ä¸º[code]false[/code],其"
+"创建一个与给定图åƒå°ºå¯¸ç›¸åŒ¹é…çš„ä½å›¾ï¼Œå¦‚果图åƒåœ¨è¯¥ä½ç½®çš„ Alpha 值等于 "
+"[code]threshold[/code] 或更å°ï¼Œåˆ™ä½å›¾çš„æ¯ä¸ªå…ƒç´ éƒ½è®¾ç½®ä¸º[code]false[/code],其"
"他情况下为[code]true[/code]。"
#: doc/classes/BitMap.xml
@@ -13869,7 +14017,7 @@ msgstr "[Button]文本的[Font]。"
#: doc/classes/Button.xml
msgid "[StyleBox] used when the [Button] is disabled."
-msgstr "当[Button]被ç¦ç”¨æ—¶ï¼Œä½¿ç”¨[StyleBox]。"
+msgstr "当 [Button] 被ç¦ç”¨æ—¶ï¼Œä½¿ç”¨çš„ [StyleBox]。"
#: doc/classes/Button.xml
msgid ""
@@ -13902,8 +14050,8 @@ msgid ""
"Only one allows being pressed.\n"
"[member BaseButton.toggle_mode] should be [code]true[/code]."
msgstr ""
-"[Button]ç»„ã€‚æ‰€æœ‰ç›´æŽ¥å’Œé—´æŽ¥çš„å­æŒ‰é’®éƒ½æˆä¸º radiosã€‚åªæœ‰ä¸€ä¸ªå…许被按下。\n"
-"[member BaseButton.toggle_mode]应该是[code]true[/code]。"
+"[Button] ç»„ã€‚æ‰€æœ‰ç›´æŽ¥å’Œé—´æŽ¥çš„å­æŒ‰é’®éƒ½æˆä¸ºå•é€‰æŒ‰é’®ã€‚åªæœ‰ä¸€ä¸ªå…许被按下。\n"
+"[member BaseButton.toggle_mode] 应该是 [code]true[/code]。"
#: doc/classes/ButtonGroup.xml
msgid ""
@@ -14262,7 +14410,6 @@ msgstr ""
"(默认)。"
#: doc/classes/Camera.xml
-#, fuzzy
msgid ""
"Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
"url] by tracking positions of objects that are changed in [code]_process[/"
@@ -14270,12 +14417,12 @@ msgid ""
"objects affect how audio is perceived (changing the audio's [member "
"AudioStreamPlayer3D.pitch_scale])."
msgstr ""
-"通过跟踪在 [code]_process[/code] 中改å˜çš„物体ä½ç½®æ¥æ¨¡æ‹Ÿ[url=https://en."
-"wikipedia.org/wiki/Doppler_effect]多普勒效应[/url]。与这些物体相比,该相机的"
-"相对速度的å˜åŒ–会影å“音频的感知方å¼ï¼ˆæ”¹å˜éŸ³é¢‘çš„ [code]pitch shift[/code])。"
+"通过跟踪在 [code]_process[/code] 中改å˜çš„物体ä½ç½®æ¥æ¨¡æ‹Ÿ[url=https://zh."
+"wikipedia.org/wiki/%E5%A4%9A%E6%99%AE%E5%8B%92%E6%95%88%E5%BA%94]多普勒效应[/"
+"url]。与这些物体相比,该相机的相对速度的å˜åŒ–会影å“音频的感知方å¼ï¼ˆæ”¹å˜éŸ³é¢‘çš„ "
+"[member AudioStreamPlayer3D.pitch_scale])。"
#: doc/classes/Camera.xml
-#, fuzzy
msgid ""
"Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
"url] by tracking positions of objects that are changed in "
@@ -14283,9 +14430,10 @@ msgid ""
"camera compared to those objects affect how audio is perceived (changing the "
"audio's [member AudioStreamPlayer3D.pitch_scale])."
msgstr ""
-"通过跟踪在 [code]_process[/code] 中改å˜çš„物体ä½ç½®æ¥æ¨¡æ‹Ÿ[url=https://en."
-"wikipedia.org/wiki/Doppler_effect]多普勒效应[/url]。与这些物体相比,该相机的"
-"相对速度的å˜åŒ–会影å“音频的感知方å¼ï¼ˆæ”¹å˜éŸ³é¢‘çš„ [code]pitch shift[/code])。"
+"通过跟踪在 [code]_process[/code] 中改å˜çš„物体ä½ç½®æ¥æ¨¡æ‹Ÿ[url=https://zh."
+"wikipedia.org/wiki/%E5%A4%9A%E6%99%AE%E5%8B%92%E6%95%88%E5%BA%94]多普勒效应[/"
+"url]。与这些物体相比,该相机的相对速度的å˜åŒ–会影å“音频的感知方å¼ï¼ˆæ”¹å˜éŸ³é¢‘çš„ "
+"[member AudioStreamPlayer3D.pitch_scale])。"
#: doc/classes/Camera2D.xml
msgid "Camera node for 2D scenes."
@@ -14348,6 +14496,10 @@ msgid ""
"or [member Node2D.global_position], as it is affected by the [code]drag[/"
"code] properties."
msgstr ""
+"è¿”å›žè¯¥æ‘„åƒæœºçš„ä½ç½® [code]position[/code]ï¼ˆè¯¥æ‘„åƒæœºè¯•图跟éšçš„跟踪点),相对于"
+"原点。\n"
+"[b]注æ„:[/b]返回的值与 [member Node2D.position] 或 [member Node2D."
+"global_position] å‡ä¸ç›¸åŒï¼Œå› ä¸ºå®ƒä¼šå—到 [code]drag[/code] 属性的影å“。"
#: doc/classes/Camera2D.xml
msgid ""
@@ -14356,6 +14508,9 @@ msgid ""
"[b]Note:[/b] The real [code]position[/code] of the camera may be different, "
"see [method get_camera_position]."
msgstr ""
+"返回该 [Camera2D] çš„å±å¹•中心ä½ç½®ï¼Œç›¸å¯¹äºŽåŽŸç‚¹ã€‚\n"
+"[b]注æ„:[/b]æ‘„åƒæœºå®žé™…çš„ä½ç½® [code]position[/code] å¯èƒ½æ˜¯ä¸åŒçš„,请å‚阅 "
+"[method get_camera_position]。"
#: doc/classes/Camera2D.xml
msgid ""
@@ -14380,7 +14535,6 @@ msgid ""
msgstr "使之æˆä¸ºåœºæ™¯ï¼ˆè§†çª—和图层)的当å‰2D相机,以防场景中有很多相机。"
#: doc/classes/Camera2D.xml
-#, fuzzy
msgid ""
"Sets the camera's position immediately to its current smoothing "
"destination.\n"
@@ -14388,7 +14542,7 @@ msgid ""
"code]."
msgstr ""
"将相机的ä½ç½®ç«‹å³è®¾ç½®ä¸ºå…¶å½“å‰å¹³æ»‘的目标ä½ç½®ã€‚\n"
-"如果ç¦ç”¨äº†å¹³æ»‘功能,则没有效果。"
+"当 [member smoothing_enabled] 为 [code]false[/code] 时,本方法没有效果。"
#: doc/classes/Camera2D.xml
msgid ""
@@ -14507,7 +14661,6 @@ msgid ""
msgstr "以åƒç´ ä¸ºå•ä½çš„峿»šåЍé™åˆ¶ã€‚å½“è¾¾åˆ°è¿™ä¸ªå€¼æ—¶ï¼Œç›¸æœºåœæ­¢ç§»åŠ¨ã€‚"
#: doc/classes/Camera2D.xml
-#, fuzzy
msgid ""
"If [code]true[/code], the camera smoothly stops when reaches its limits.\n"
"This property has no effect if [member smoothing_enabled] is [code]false[/"
@@ -14516,10 +14669,10 @@ msgid ""
"without smoothing, even with this setting enabled, invoke [method "
"reset_smoothing]."
msgstr ""
-"如果 [code]true[/code],相机在达到æžé™æ—¶å¹³æ»‘åœ°åœæ­¢ã€‚\n"
-"如果平滑被ç¦ç”¨ï¼Œè¿™å°†ä¸èµ·ä½œç”¨ã€‚\n"
+"为 [code]true[/code] 时,相机会在达到æžé™æ—¶å¹³æ»‘åœ°åœæ­¢ã€‚\n"
+"当 [member smoothing_enabled] 为 [code]false[/code] 时,该属性无效。\n"
"[b]注æ„:[/b]è¦ç«‹å³å°†ç›¸æœºçš„ä½ç½®æ›´æ–°åˆ°é™åˆ¶èŒƒå›´å†…而ä¸è¿›è¡Œå¹³æ»‘,å³ä½¿å¯ç”¨äº†æ­¤è®¾"
-"置,也è¦è°ƒç”¨[method reset_smoothing]。"
+"置,也è¦è°ƒç”¨ [method reset_smoothing]。"
#: doc/classes/Camera2D.xml
msgid ""
@@ -14539,9 +14692,9 @@ msgid ""
"initial offset."
msgstr ""
"相机的水平å移,相对于拖动边è·ã€‚\n"
-"[b]注:[/b] åç§»é‡ H 仅用于强制执行相对于边è·çš„å移,如果å¯ç”¨æ‹–动边è·ï¼Œå®ƒä¸ä¼š"
-"ä»¥ä»»ä½•æ–¹å¼æ›´æ–°ï¼Œå¹¶å¯ç”¨äºŽè®¾ç½®åˆå§‹åç§»é‡ã€‚如果å¯ç”¨äº†æ‹–动边è·ï¼Œå®ƒä¸ä¼šä»¥ä»»ä½•æ–¹å¼"
-"更新,å¯ä»¥ç”¨æ¥è®¾ç½®åˆå§‹å移。"
+"[b]注æ„:[/b]Offset H 仅用于强制执行相对于边è·çš„å移,如果å¯ç”¨æ‹–动边è·ï¼Œå®ƒä¸"
+"ä¼šä»¥ä»»ä½•æ–¹å¼æ›´æ–°ï¼Œå¹¶å¯ç”¨äºŽè®¾ç½®åˆå§‹åç§»é‡ã€‚如果å¯ç”¨äº†æ‹–动边è·ï¼Œå®ƒä¸ä¼šä»¥ä»»ä½•æ–¹"
+"弿›´æ–°ï¼Œå¯ä»¥ç”¨æ¥è®¾ç½®åˆå§‹å移。"
#: doc/classes/Camera2D.xml
msgid ""
@@ -14549,23 +14702,23 @@ msgid ""
"[b]Note:[/b] Used the same as [member offset_h]."
msgstr ""
"相机相对于拖动边è·çš„垂直å移。\n"
-"[b]注:[/b] 与[member offset_h]使用相åŒã€‚"
+"[b]注æ„:[/b]用法与 [member offset_h] 相åŒã€‚"
#: doc/classes/Camera2D.xml
msgid "The camera's process callback. See [enum Camera2DProcessMode]."
msgstr "相机的过程回调。请å‚阅[enum Camera2DProcessMode]。"
#: doc/classes/Camera2D.xml
-#, fuzzy
msgid "If [code]true[/code], the camera view rotates with the target."
-msgstr "如果[code]true[/code],则相机éšç›®æ ‡æ—‹è½¬ã€‚"
+msgstr "为 [code]true[/code] 时,相机视图将éšç›®æ ‡æ—‹è½¬ã€‚"
#: doc/classes/Camera2D.xml
msgid ""
"If [code]true[/code], the camera smoothly moves towards the target at "
"[member smoothing_speed]."
msgstr ""
-"如果[code]true[/code],相机以[member smoothing_speed]的速度平滑地æœç›®æ ‡ç§»åŠ¨ã€‚"
+"为 [code]true[/code] 时,相机将以 [member smoothing_speed] 的速度平滑地æœç›®æ ‡"
+"移动。"
#: doc/classes/Camera2D.xml
msgid ""
@@ -14613,10 +14766,11 @@ msgid ""
msgstr "通过相机æºï¼Œæ‚¨å¯ä»¥è®¿é—®è¿žæŽ¥åˆ°è®¾å¤‡çš„å•个物ç†ç›¸æœºã€‚"
#: doc/classes/CameraFeed.xml
+#, fuzzy
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -14653,7 +14807,7 @@ msgstr "没有为该æºè®¾ç½®å›¾åƒã€‚"
#: doc/classes/CameraFeed.xml
msgid "Feed supplies RGB images."
-msgstr "æºæä¾›RGB图åƒã€‚"
+msgstr "æºæä¾› RGB 图åƒã€‚"
#: doc/classes/CameraFeed.xml
msgid "Feed supplies YCbCr images that need to be converted to RGB."
@@ -14663,7 +14817,7 @@ msgstr "æºæä¾›çš„ YCbCr 图åƒéœ€è¦è½¬æ¢æˆ RGB 图åƒã€‚"
msgid ""
"Feed supplies separate Y and CbCr images that need to be combined and "
"converted to RGB."
-msgstr "æºæä¾›å•独的Yå’ŒCbCr图åƒï¼Œéœ€è¦åˆå¹¶å¹¶è½¬æ¢ä¸ºRGB。"
+msgstr "æºæä¾›å•独的 Y å’Œ CbCr 图åƒï¼Œéœ€è¦åˆå¹¶å¹¶è½¬æ¢ä¸º RGB。"
#: doc/classes/CameraFeed.xml
msgid "Unspecified position."
@@ -14679,20 +14833,24 @@ msgstr "相机安装在了设备åŽéƒ¨ã€‚"
#: doc/classes/CameraServer.xml
msgid "Server keeping track of different cameras accessible in Godot."
-msgstr "æœåŠ¡å™¨è·Ÿè¸ªGodot中å¯è®¿é—®çš„ä¸åŒæ‘„åƒå¤´ã€‚"
+msgstr "æœåŠ¡å™¨è·Ÿè¸ª Godot 中å¯è®¿é—®çš„ä¸åŒæ‘„åƒå¤´ã€‚"
#: doc/classes/CameraServer.xml
+#, fuzzy
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
"[CameraServer]记录了Godot中å¯è®¿é—®çš„ä¸åŒæ‘„åƒæœºã€‚è¿™äº›æ˜¯å¤–éƒ¨æ‘„åƒæœºï¼Œå¦‚ç½‘ç»œæ‘„åƒæœº"
"æˆ–æ‰‹æœºä¸Šçš„æ‘„åƒæœºã€‚\n"
"它主è¦ç”¨äºŽä¸ºARæ¨¡å—æä¾›æ¥è‡ªæ‘„åƒæœºçš„视频资料。"
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+#, fuzzy
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr "å°†ç›¸æœºæºæ·»åŠ åˆ°ç›¸æœºæœåŠ¡ã€‚"
#: doc/classes/CameraServer.xml
@@ -14700,32 +14858,40 @@ msgid "Returns an array of [CameraFeed]s."
msgstr "返回一个 [CameraFeed] 数组。"
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr "返回具有此ID的[CameraFeed]。"
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "返回带有给定[code]id[/code]的项的索引。"
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
-msgstr "返回注册的[CameraFeed]的数é‡ã€‚"
+msgstr "返回注册的 [CameraFeed] 的数é‡ã€‚"
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr "移除[CameraFeed]。"
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "移除索引[code]idx[/code]处的项目。"
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
-msgstr "当添加[CameraFeed]时触å‘,例如,æ’入网络摄åƒå¤´ã€‚"
+#, fuzzy
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
+msgstr "当添加 [CameraFeed] 时触å‘(例如,æ’入网络摄åƒå¤´ï¼‰ã€‚"
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
-msgstr "移除 [CameraFeed] 时触å‘,例如拔掉网络摄åƒå¤´ã€‚"
+#, fuzzy
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
+msgstr "当移除 [CameraFeed] 时触å‘(例如,拔掉网络摄åƒå¤´ï¼‰ã€‚"
#: doc/classes/CameraServer.xml
msgid "The RGBA camera image."
msgstr "RGBA 相机图åƒã€‚"
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
-msgstr "YCbCr 相机图åƒã€‚"
+#, fuzzy
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
+msgstr ""
+"使用 [url=https://en.wikipedia.org/wiki/DEFLATE]DEFLATE[/url] 压缩方法。"
#: doc/classes/CameraServer.xml
msgid "The Y component camera image."
@@ -14745,8 +14911,8 @@ msgid ""
"[b]Note:[/b] Many cameras supply YCbCr images which need to be converted in "
"a shader."
msgstr ""
-"该纹ç†å¯ä»¥è®¿é—®[CameraFeed]æä¾›çš„相机纹ç†ã€‚\n"
-"[b]注æ„:[/b]许多相机æä¾›éœ€è¦åœ¨ç€è‰²å™¨ä¸­è½¬æ¢çš„YCbCr图åƒã€‚"
+"该纹ç†å¯ä»¥è®¿é—® [CameraFeed] æä¾›çš„相机纹ç†ã€‚\n"
+"[b]注æ„:[/b]许多相机æä¾›éœ€è¦åœ¨ç€è‰²å™¨ä¸­è½¬æ¢çš„ YCbCr 图åƒã€‚"
#: doc/classes/CameraTexture.xml
msgid "The ID of the [CameraFeed] for which we want to display the image."
@@ -14763,8 +14929,8 @@ msgid ""
"Which image within the [CameraFeed] we want access to, important if the "
"camera image is split in a Y and CbCr component."
msgstr ""
-"我们è¦è®¿é—®[CameraFeed]中的哪个图åƒï¼Œå¦‚果相机图åƒè¢«åˆ†å‰²æˆYå’ŒCbCr组件,这一点很"
-"é‡è¦ã€‚"
+"我们è¦è®¿é—® [CameraFeed] 中的哪个图åƒï¼Œå¦‚果相机图åƒè¢«åˆ†å‰²æˆ Y å’Œ CbCr 组件,这"
+"一点很é‡è¦ã€‚"
#: doc/classes/CanvasItem.xml
msgid "Base class of anything 2D."
@@ -14817,14 +14983,11 @@ msgstr ""
#: doc/classes/CanvasItem.xml doc/classes/CanvasLayer.xml
#: doc/classes/InputEvent.xml doc/classes/Viewport.xml
msgid "$DOCS_URL/tutorials/2d/2d_transforms.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/2d/2d_transforms.html"
#: doc/classes/CanvasItem.xml doc/classes/Control.xml doc/classes/Node2D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/2d/custom_drawing_in_2d.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/2d/custom_drawing_in_2d."
-"html"
+msgstr "$DOCS_URL/tutorials/2d/custom_drawing_in_2d.html"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -14833,9 +14996,11 @@ msgid ""
msgstr "引擎调用的å¯è¦†ç›–函数(如果定义了)æ¥ç»˜åˆ¶ç”»å¸ƒé¡¹ç›®ã€‚"
#: doc/classes/CanvasItem.xml
+#, fuzzy
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
"在给定的角度之间画一æ¡å¼§çº¿ã€‚[code]point_count[/code] 的值越大,曲线越平滑。"
@@ -14848,17 +15013,25 @@ msgstr ""
"与å¯é€‰çš„下一个字符的字å¶è·ã€‚"
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
-msgstr "画一个彩色的圆。"
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
+msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+#, fuzzy
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr "ç»˜åˆ¶ä»»æ„æ•°é‡ç‚¹çš„彩色多边形,凸或凹。"
#: doc/classes/CanvasItem.xml
+#, fuzzy
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
"绘制一æ¡ä»Ž 2D 点到å¦ä¸€ä¸ªç‚¹çš„线,具有给定的颜色和宽度。它å¯ä»¥é€‰æ‹©æŠ—锯齿。"
@@ -14870,27 +15043,36 @@ msgstr ""
"使用所æä¾›çš„纹ç†ä»¥2Dæ–¹å¼ç»˜åˆ¶ä¸€ä¸ª[Mesh]。相关文档请å‚阅[MeshInstance2D]。"
#: doc/classes/CanvasItem.xml
+#, fuzzy
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
-"使用 uniform [code]color[/code] 绘制多æ¡å¹³è¡Œçº¿ã€‚\n"
+"以 uniform çš„ [code]width[/code] å’Œé€æ®µç€è‰²ç»˜åˆ¶å¤šæ¡å¹³è¡Œçº¿ã€‚分é…给线段的颜色"
+"按 [code]points[/code] å’Œ [code]colors[/code] 之间的索引匹é…。\n"
"[b]注æ„:[/b][code]width[/code] å’Œ [code]antialiased[/code] ç›®å‰æ²¡æœ‰å®žçŽ°ï¼Œæ²¡"
"有效果。"
#: doc/classes/CanvasItem.xml
+#, fuzzy
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
"以 uniform çš„ [code]width[/code] å’Œé€æ®µç€è‰²ç»˜åˆ¶å¤šæ¡å¹³è¡Œçº¿ã€‚分é…给线段的颜色"
"按 [code]points[/code] å’Œ [code]colors[/code] 之间的索引匹é…。\n"
-"[b]注:[/b] [code]width[/code]å’Œ[code]antialiased[/code]ç›®å‰æ²¡æœ‰å®žçŽ°ï¼Œæ²¡æœ‰æ•ˆ"
-"果。"
+"[b]注æ„:[/b][code]width[/code] å’Œ [code]antialiased[/code] ç›®å‰æ²¡æœ‰å®žçŽ°ï¼Œæ²¡"
+"有效果。"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -14901,23 +15083,31 @@ msgstr ""
"[MultiMeshInstance2D]。"
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
-msgstr "ç»˜åˆ¶ä»»æ„æ•°é‡çš„点的多边形,凸或凹。"
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
+msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
-"以uniform çš„[code]color[/code]å’Œ[code]width[/code]æ¥ç»˜åˆ¶ç›¸äº’连接的线段,å¯é€‰"
-"抗锯齿。"
#: doc/classes/CanvasItem.xml
+#, fuzzy
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
"以uniformçš„[code]width[/code]ç»˜åˆ¶ç›¸äº’è¿žæŽ¥çš„çº¿æ®µï¼Œé€æ®µç€è‰²ï¼Œå¯é€‰æŠ—锯齿。分é…ç»™"
"线段的颜色通过[code]points[/code]å’Œ[code]colors[/code]之间的索引进行匹é…。"
@@ -14925,10 +15115,11 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
-"绘制自定义基本网格。1点为一个点,2点为一æ¡çº¿ï¼Œ3点为一个三角形,4点为一个四边"
-"形。"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -15071,8 +15262,11 @@ msgid "Returns the [World2D] where this item is in."
msgstr "è¿”å›žæ­¤ç‰©å“æ‰€åœ¨çš„[World2D]。"
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
-msgstr "如果[CanvasItem]当å‰å¯è§ï¼Œåˆ™éšè—它。"
+#, fuzzy
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
+msgstr "清空数组。与调用 [method resize] 时指定大å°ä¸º [code]0[/code] 等价。"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -15137,8 +15331,10 @@ msgstr ""
"如果[code]enable[/code]为[code]true[/code]ï¼Œåˆ™å°†ä½¿ç”¨å…¨å±€å˜æ¢æ•°æ®æ›´æ–°å­é¡¹ã€‚"
#: doc/classes/CanvasItem.xml
+#, fuzzy
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -15164,13 +15360,14 @@ msgstr "在此[CanvasItem]上应用于纹ç†çš„æè´¨ã€‚"
#: doc/classes/CanvasItem.xml
msgid "The color applied to textures on this [CanvasItem]."
-msgstr "应用于此[CanvasItem]上纹ç†çš„颜色。"
+msgstr "应用于此 [CanvasItem] 上纹ç†çš„颜色。"
#: doc/classes/CanvasItem.xml
msgid ""
"The color applied to textures on this [CanvasItem]. This is not inherited by "
"children [CanvasItem]s."
-msgstr "应用于此[CanvasItem]上纹ç†çš„颜色。å­èŠ‚ç‚¹[CanvasItem]ä¸èƒ½ç»§æ‰¿è¿™ä¸ªé¢œè‰²ã€‚"
+msgstr ""
+"应用于此 [CanvasItem] 上纹ç†çš„é¢œè‰²ã€‚å­ [CanvasItem] 节点ä¸ä¼šç»§æ‰¿è¿™ä¸ªé¢œè‰²ã€‚"
#: doc/classes/CanvasItem.xml
msgid "If [code]true[/code], the object draws behind its parent."
@@ -15207,7 +15404,8 @@ msgstr ""
msgid ""
"Emitted when the [CanvasItem] must redraw. This can only be connected "
"realtime, as deferred will not allow drawing."
-msgstr "当[CanvasItem]å¿…é¡»é‡ç»˜æ—¶å‘出。这åªèƒ½æ˜¯å®žæ—¶è¿žæŽ¥ï¼Œå› ä¸ºå»¶è¿Ÿå°†ä¸å…许绘制。"
+msgstr ""
+"当 [CanvasItem] å¿…é¡»é‡ç»˜æ—¶å‘出。这åªèƒ½æ˜¯å®žæ—¶è¿žæŽ¥ï¼Œå› ä¸ºå»¶è¿Ÿå°†ä¸å…许绘制。"
#: doc/classes/CanvasItem.xml
msgid "Emitted when becoming hidden."
@@ -15230,25 +15428,25 @@ msgstr "当å¯è§æ€§ï¼ˆéšè—/å¯è§ï¼‰æ›´æ”¹æ—¶å‘出。"
msgid ""
"Mix blending mode. Colors are assumed to be independent of the alpha "
"(opacity) value."
-msgstr "æ··åˆæ··åˆæ¨¡å¼ã€‚å‡è®¾é¢œè‰²ä¸Žalpha(ä¸é€æ˜Žåº¦ï¼‰å€¼æ— å…³ã€‚"
+msgstr "æ··åˆæ··åˆæ¨¡å¼ã€‚å‡è®¾é¢œè‰²ä¸Ž Alpha 值(ä¸é€æ˜Žåº¦ï¼‰æ— å…³ã€‚"
#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
msgid "Additive blending mode."
-msgstr "åŠ æ³•æ··åˆæ¨¡å¼ã€‚"
+msgstr "æ·»åŠ æ··åˆæ¨¡å¼ã€‚"
#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
msgid "Subtractive blending mode."
-msgstr "凿³•æ··åˆæ¨¡å¼ã€‚"
+msgstr "å‡åŽ»æ··åˆæ¨¡å¼ã€‚"
#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
msgid "Multiplicative blending mode."
-msgstr "ä¹˜æ³•æ··åˆæ¨¡å¼ã€‚"
+msgstr "正片å åº•æ··åˆæ¨¡å¼ã€‚"
#: doc/classes/CanvasItem.xml doc/classes/CanvasItemMaterial.xml
msgid ""
"Mix blending mode. Colors are assumed to be premultiplied by the alpha "
"(opacity) value."
-msgstr "æ··åˆæ··åˆæ¨¡å¼ã€‚å‡å®šé¢œè‰²å·²é¢„先乘以alpha(ä¸é€æ˜Žåº¦ï¼‰å€¼ã€‚"
+msgstr "æ··åˆæ··åˆæ¨¡å¼ã€‚å‡å®šé¢œè‰²å·²é¢„先乘以 Alpha 值(ä¸é€æ˜Žåº¦ï¼‰ã€‚"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -15256,7 +15454,7 @@ msgid ""
"applicable for render targets with a transparent background. No lighting "
"will be applied."
msgstr ""
-"å…³é—­æ··åˆæ¨¡å¼ã€‚颜色(包括 alpha)将会å˜åŽŸæ¥çš„æ ·å­ã€‚ä»…èƒ½åœ¨æ¸²æŸ“é€æ˜ŽèƒŒæ™¯çš„目标使"
+"ç¦ç”¨æ··åˆæ¨¡å¼ã€‚颜色(包括 Alpha)将会å˜åŽŸæ¥çš„æ ·å­ã€‚ä»…èƒ½åœ¨æ¸²æŸ“é€æ˜ŽèƒŒæ™¯çš„目标使"
"用。ä¸ä¼šåº”用任何光照。"
#: doc/classes/CanvasItem.xml
@@ -15325,9 +15523,9 @@ msgid ""
"[b]Note:[/b] This property is only used and visible in the editor if [member "
"particles_animation] is [code]true[/code]."
msgstr ""
-"如果[code]true[/code],粒å­åŠ¨ç”»å°†å¾ªçŽ¯æ’­æ”¾ã€‚\n"
-"[b]注æ„:[/b]åªæœ‰å½“[member particles_animation]为[code]true[/code]时,该属性æ‰"
-"会在编辑器中使用并å¯è§ã€‚"
+"如果 [code]true[/code],粒å­åŠ¨ç”»å°†å¾ªçŽ¯æ’­æ”¾ã€‚\n"
+"[b]注æ„:[/b]åªæœ‰å½“ [member particles_animation] 为 [code]true[/code] 时,该"
+"属性æ‰ä¼šåœ¨ç¼–辑器中使用并å¯è§ã€‚"
#: doc/classes/CanvasItemMaterial.xml
msgid ""
@@ -15382,26 +15580,26 @@ msgid ""
"index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or "
"above), or backgrounds (in layer -1 or below)."
msgstr ""
-"画布绘图层。 [CanvasLayer]的直接或间接å­çº§çš„[CanvasItem]节点将在该层中绘制。"
-"该层是定义绘制顺åºçš„æ•°å­—索引。默认的2D场景的索引为0,因此将在下é¢ç»˜åˆ¶ç´¢å¼•为-1"
-"çš„[CanvasLayer],在上é¢ç»˜åˆ¶ç´¢å¼•为1çš„[CanvasLayer]。这对于HUD(在1+层或更高层"
-"中)或背景(在-1层或更低层中)éžå¸¸æœ‰ç”¨ã€‚"
+"画布绘图层。[CanvasLayer] 的直接或间接å­çº§çš„ [CanvasItem] 节点将在该层中绘"
+"制。该层是一个数字索引,用于定义绘制顺åºã€‚默认 2D 场景的渲染索引为 0,因此索"
+"引为 -1 的 [CanvasLayer] 会在其下方绘制,索引为 1 的则会在其上方绘制。这对于 "
+"HUD(在 1+ 层或更高层中)或背景(在 -1 层或更低层中)éžå¸¸æœ‰ç”¨ã€‚"
#: doc/classes/CanvasLayer.xml
msgid "$DOCS_URL/tutorials/2d/canvas_layers.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/2d/canvas_layers.html"
#: doc/classes/CanvasLayer.xml
msgid "Returns the RID of the canvas used by this layer."
-msgstr "返回此层使用的画布的RID。"
+msgstr "返回此层使用的画布的 RID。"
#: doc/classes/CanvasLayer.xml
msgid ""
"The custom [Viewport] node assigned to the [CanvasLayer]. If [code]null[/"
"code], uses the default viewport instead."
msgstr ""
-"分é…ç»™[CanvasLayer]的自定义[Viewport]节点。如果[code]null[/code],则使用默认"
-"的视窗。"
+"分é…给该 [CanvasLayer] 的自定义 [Viewport] 节点。如果为 [code]null[/code],则"
+"使用默认的视å£ã€‚"
#: doc/classes/CanvasLayer.xml
msgid ""
@@ -15428,7 +15626,7 @@ msgstr "图层的基本åç§»é‡ã€‚"
#: doc/classes/CanvasLayer.xml
msgid "The layer's rotation in radians."
-msgstr "图层的旋转度(以弧度为å•ä½ï¼‰ã€‚"
+msgstr "图层的旋转弧度。"
#: doc/classes/CanvasLayer.xml
msgid "The layer's rotation in degrees."
@@ -15436,7 +15634,7 @@ msgstr "图层的旋转度数。"
#: doc/classes/CanvasLayer.xml
msgid "The layer's scale."
-msgstr "图层的比例。"
+msgstr "图层的缩放。"
#: doc/classes/CanvasLayer.xml
msgid "The layer's transform."
@@ -15527,11 +15725,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml doc/classes/RichTextEffect.xml
#: doc/classes/RichTextLabel.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/ui/bbcode_in_richtextlabel.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/ui/"
-"bbcode_in_richtextlabel.html"
+msgstr "$DOCS_URL/tutorials/ui/bbcode_in_richtextlabel.html"
#: doc/classes/CharFXTransform.xml doc/classes/RichTextEffect.xml
msgid ""
@@ -15540,9 +15735,10 @@ msgstr ""
"https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project"
#: doc/classes/CharFXTransform.xml
+#, fuzzy
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr "当å‰å­—符的索引(从0开始)。设置此属性ä¸ä¼šå½±å“图形。"
#: doc/classes/CharFXTransform.xml
@@ -15611,6 +15807,13 @@ msgid "The position offset the character will be drawn with (in pixels)."
msgstr "绘制字符的ä½ç½®åç§»é‡ï¼ˆä»¥åƒç´ ä¸ºå•ä½ï¼‰ã€‚"
#: doc/classes/CharFXTransform.xml
+#, fuzzy
+msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr "当å‰å­—符的索引(从0开始)。设置此属性ä¸ä¼šå½±å“图形。"
+
+#: doc/classes/CharFXTransform.xml
msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
@@ -15735,16 +15938,16 @@ msgstr "当[CheckBox]被悬åœå’ŒæŒ‰ä¸‹æ—¶ï¼Œä½œä¸ºèƒŒæ™¯æ˜¾ç¤ºçš„[StyleBox]。"
#: doc/classes/CheckBox.xml doc/classes/CheckButton.xml
msgid "The [StyleBox] to display as a background."
-msgstr "[StyleBox]显示为背景。"
+msgstr "作为背景显示的 [StyleBox]。"
#: doc/classes/CheckBox.xml
msgid ""
"The [StyleBox] to display as a background when the [CheckBox] is pressed."
-msgstr "按下[CheckBox]时,[StyleBox]显示为背景。"
+msgstr "按下 [CheckBox] 时,作为背景显示的 [StyleBox]。"
#: doc/classes/CheckButton.xml
msgid "Checkable button. See also [CheckBox]."
-msgstr "坿£€æŸ¥çš„æŒ‰é’®ã€‚å¦è¯·å‚阅[CheckBox]。"
+msgstr "å¯å¤é€‰çš„æŒ‰é’®ã€‚å¦è¯·å‚阅 [CheckBox]。"
#: doc/classes/CheckButton.xml
msgid ""
@@ -16099,24 +16302,22 @@ msgstr ""
#: doc/classes/ClippedCamera.xml
msgid "If [code]true[/code], the camera stops on contact with [Area]s."
-msgstr "如果[code]true[/code],相机与[Area]sæŽ¥è§¦æ—¶åœæ­¢ã€‚"
+msgstr "为 [code]true[/code] 时,相机将在与 [Area] æŽ¥è§¦æ—¶åœæ­¢ã€‚"
#: doc/classes/ClippedCamera.xml
msgid "If [code]true[/code], the camera stops on contact with [PhysicsBody]s."
-msgstr "如果[code]true[/code],相机在接触[PhysicsBody]æ—¶åœæ­¢ã€‚"
+msgstr "为 [code]true[/code] 时,相机将在与 [PhysicsBody] æŽ¥è§¦æ—¶åœæ­¢ã€‚"
#: doc/classes/ClippedCamera.xml
-#, fuzzy
msgid ""
"The camera's collision mask. Only objects in at least one collision layer "
"matching the mask will be detected. See [url=$DOCS_URL/tutorials/physics/"
"physics_introduction.html#collision-layers-and-masks]Collision layers and "
"masks[/url] in the documentation for more information."
msgstr ""
-"相机的碰撞é®ç½©ã€‚åªæœ‰åœ¨å¯¹è±¡æœ‰è‡³å°‘一个碰撞层和碰撞这招匹对时æ‰èƒ½è¢«æ£€æµ‹åˆ°ã€‚详细"
-"ä¿¡æ¯è¯·å‚阅文档[url=https://docs.godotengine.org/zh_CN/stable/tutorials/"
-"physics/physics_introduction.html#collision-layers-and-masks]Collision "
-"layers and masks[/url]。"
+"相机的碰撞é®ç½©ã€‚åªæœ‰åœ¨å¯¹è±¡æœ‰è‡³å°‘一个碰撞层和碰撞这招匹对时æ‰èƒ½è¢«æ£€æµ‹åˆ°ã€‚详情"
+"请å‚阅文档[url=$DOCS_URL/tutorials/physics/physics_introduction."
+"html#collision-layers-and-masks]《碰撞层与é®ç½©ã€‹[/url]。"
#: doc/classes/ClippedCamera.xml
msgid ""
@@ -16126,7 +16327,7 @@ msgstr "相机的碰撞è·ç¦»ã€‚相机与碰撞物体的è·ç¦»ä¸èƒ½è¶…过这个
#: doc/classes/ClippedCamera.xml
msgid "The camera's process callback. See [enum ProcessMode]."
-msgstr "相机的过程回调。请å‚阅[enum ProcessMode]。"
+msgstr "相机的过程回调。请å‚阅 [enum ProcessMode]。"
#: doc/classes/CollisionObject.xml
msgid "Base node for collision objects."
@@ -16180,6 +16381,7 @@ msgstr ""
"返回是å¦è®¾ç½®äº†ç¢°æ’žæŽ©ç  [member collision_mask] 的指定ä½[code]bit[/code]。"
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr "返回对象的 [RID]。"
@@ -16270,7 +16472,6 @@ msgid "Sets the [Transform] of the given shape owner."
msgstr "设置给定形状所有者的[Transform]。"
#: doc/classes/CollisionObject.xml
-#, fuzzy
msgid ""
"The physics layers this CollisionObject3D is in. Collision objects can exist "
"in one or more of 32 different layers. See also [member collision_mask].\n"
@@ -16282,13 +16483,11 @@ msgid ""
msgstr ""
"CollisionObject3D 所在的物ç†å±‚。碰撞对象å¯ä»¥å­˜åœ¨äºŽ 32 个ä¸åŒå±‚中的一个或多"
"个。å¦è§ [member collision_mask]。\n"
-"[b]注æ„:[/b]如果对象A在对象B扫æçš„任何层中,或者对象B在对象A扫æçš„任何层中,"
-"则检测到接触。有关更多信æ¯ï¼Œè¯·å‚阅文档中的 [url=https://docs.godotengine.org/"
-"zh_CN/latest/tutorials/physics/physics_introduction.html#collision-layers-"
-"and-masks] 碰撞层和掩ç [/url]。"
+"[b]注æ„:[/b]如果对象 A 在对象 B 扫æçš„任何层中,或者对象 B 在对象 A 扫æçš„ä»»"
+"何层中,则检测到接触。详情请å‚阅文档中的 [url=$DOCS_URL/tutorials/physics/"
+"physics_introduction.html#collision-layers-and-masks]《碰撞层与掩ç ã€‹[/url]。"
#: doc/classes/CollisionObject.xml
-#, fuzzy
msgid ""
"The physics layers this CollisionObject3D scans. Collision objects can scan "
"one or more of 32 different layers. See also [member collision_layer].\n"
@@ -16300,10 +16499,9 @@ msgid ""
msgstr ""
"CollisionObject3D 扫æçš„物ç†å±‚。碰撞对象å¯ä»¥æ‰«æ 32 个ä¸åŒå±‚中的一个或多个。"
"å¦è§ [member collision_layer]]。\n"
-"[b]注æ„:[/b]如果对象A在对象B扫æçš„任何层中,或者对象B在对象A扫æçš„任何层中,"
-"则检测到接触。有关更多信æ¯ï¼Œè¯·å‚阅文档中的 [url=https://docs.godotengine.org/"
-"zh_CN/latest/tutorials/physics/physics_introduction.html#collision-layers-"
-"and-masks] 碰撞层和掩ç [/url]。"
+"[b]注æ„:[/b]如果对象 A 在对象 B 扫æçš„任何层中,或者对象 B 在对象 A 扫æçš„ä»»"
+"何层中,则检测到接触。详情请å‚阅文档中的 [url=$DOCS_URL/tutorials/physics/"
+"physics_introduction.html#collision-layers-and-masks]《碰撞层与掩ç ã€‹[/url]。"
#: doc/classes/CollisionObject.xml
msgid ""
@@ -16351,10 +16549,10 @@ msgid ""
"owners are not nodes and do not appear in the editor, but are accessible "
"through code using the [code]shape_owner_*[/code] methods."
msgstr ""
-"CollisionObject2D是2D物ç†å¯¹è±¡çš„基础类。它å¯ä»¥å®¹çº³ä»»æ„æ•°é‡çš„2D碰撞[Shape2D]。"
-"æ¯ä¸ªå½¢çŠ¶å¿…é¡»åˆ†é…给一个[i]shape owner[/i]。CollisionObject2Då¯ä»¥æ‹¥æœ‰ä»»æ„æ•°é‡çš„"
-"å½¢çŠ¶æ‹¥æœ‰è€…ã€‚å½¢çŠ¶æ‰€æœ‰è€…ä¸æ˜¯èŠ‚ç‚¹ï¼Œä¹Ÿä¸ä¼šå‡ºçŽ°åœ¨ç¼–è¾‘å™¨ä¸­ï¼Œä½†å¯ä»¥é€šè¿‡ä»£ç ä½¿ç”¨"
-"[code]shape_owner_*[/code]方法访问。"
+"CollisionObject2D 是 2D 物ç†å¯¹è±¡çš„基础类。它å¯ä»¥å®¹çº³ä»»æ„æ•°é‡çš„ 2D 碰撞形状 "
+"[Shape2D]。æ¯ä¸ªå½¢çŠ¶å¿…é¡»åˆ†é…给一个[i]形状所有者[/i]。CollisionObject2D å¯ä»¥æ‹¥"
+"æœ‰ä»»æ„æ•°é‡çš„å½¢çŠ¶æ‰€æœ‰è€…ã€‚å½¢çŠ¶æ‰€æœ‰è€…ä¸æ˜¯èŠ‚ç‚¹ï¼Œä¹Ÿä¸ä¼šå‡ºçŽ°åœ¨ç¼–è¾‘å™¨ä¸­ï¼Œä½†å¯ä»¥é€šè¿‡"
+"代ç ä½¿ç”¨ [code]shape_owner_*[/code] 方法访问。"
#: doc/classes/CollisionObject2D.xml
msgid ""
@@ -16424,7 +16622,6 @@ msgid "Sets the [Transform2D] of the given shape owner."
msgstr "设置给定形状所有者的[Transform2D]。"
#: doc/classes/CollisionObject2D.xml
-#, fuzzy
msgid ""
"The physics layers this CollisionObject2D is in. Collision objects can exist "
"in one or more of 32 different layers. See also [member collision_mask].\n"
@@ -16434,15 +16631,13 @@ msgid ""
"masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""
-"这个CollisionObject2D所在的物ç†å±‚。碰撞对象å¯ä»¥å­˜åœ¨äºŽ32个ä¸åŒå±‚中的一个或多"
-"个。也è§[member collision_mask]。\n"
-"[b]注æ„:[/b]如果对象A在对象B扫æçš„任何层中,或者对象B在对象A扫æçš„任何层中,"
-"则检测到接触。更多信æ¯è§æ–‡æ¡£[url=https://docs.godotengine.org/zh_CN/latest/"
-"tutorials/physics/physics_introduction.html#collision-layers-and-masks] 碰撞"
-"层和掩ç [/url]。"
+"这个 CollisionObject2D 所在的物ç†å±‚。碰撞对象å¯ä»¥å­˜åœ¨äºŽ 32 个ä¸åŒå±‚中的一个或"
+"å¤šä¸ªã€‚ä¹Ÿè§ [member collision_mask]。\n"
+"[b]注æ„:[/b]如果对象 A 在对象 B 扫æçš„任何层中,或者对象 B 在对象 A 扫æçš„ä»»"
+"何层中,则检测到接触。请å‚阅文档[url=$DOCS_URL/tutorials/physics/"
+"physics_introduction.html#collision-layers-and-masks]《碰撞层与掩ç ã€‹[/url]。"
#: doc/classes/CollisionObject2D.xml
-#, fuzzy
msgid ""
"The physics layers this CollisionObject2D scans. Collision objects can scan "
"one or more of 32 different layers. See also [member collision_layer].\n"
@@ -16452,12 +16647,11 @@ msgid ""
"masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""
-"这个CollisionObject2D所扫æçš„物ç†å±‚。碰撞对象å¯ä»¥æ‰«æ32个ä¸åŒå±‚中的一个或多"
-"个。也è§[member collision_layer]。\n"
-"[b]注æ„:[/b] 如果对象A在对象B扫æçš„任何层中,或者对象B在对象A扫æçš„任何层"
-"中,就会检测到接触。更多信æ¯è§æ–‡æ¡£[url=https://docs.godotengine.org/zh_CN/"
-"latest/tutorials/physics/physics_introduction.html#collision-layers-and-"
-"masks] 碰撞层和掩ç [/url]。"
+"这个 CollisionObject2D 所扫æçš„物ç†å±‚。碰撞对象å¯ä»¥æ‰«æ 32 个ä¸åŒå±‚中的一个或"
+"多个。å¦è§ [member collision_layer]。\n"
+"[b]注æ„:[/b]如果对象 A 在对象 B 扫æçš„任何层中,或者对象 B 在对象 A 扫æçš„ä»»"
+"何层中,就会检测到接触。详情请å‚阅文档[url=$DOCS_URL/tutorials/physics/"
+"physics_introduction.html#collision-layers-and-masks]《碰撞层与掩ç ã€‹[/url]。"
#: doc/classes/CollisionObject2D.xml
msgid ""
@@ -16621,11 +16815,8 @@ msgstr ""
#: doc/classes/PhysicsBody2D.xml doc/classes/PhysicsDirectBodyState.xml
#: doc/classes/PhysicsDirectSpaceState.xml doc/classes/RigidBody.xml
#: doc/classes/Shape.xml doc/classes/Shape2D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/physics/physics_introduction.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/physics/"
-"physics_introduction.html"
+msgstr "$DOCS_URL/tutorials/physics/physics_introduction.html"
#: doc/classes/CollisionShape.xml
msgid ""
@@ -16696,14 +16887,15 @@ msgstr ""
#: doc/classes/Color.xml
msgid "Color in RGBA format using floats on the range of 0 to 1."
-msgstr "RGBAæ ¼å¼çš„颜色使用0到1范围内的浮点数。"
+msgstr "RGBA æ ¼å¼çš„颜色,使用 0 到 1 范围内的浮点数。"
#: doc/classes/Color.xml
+#, fuzzy
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -16716,14 +16908,15 @@ msgid ""
"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
"color_constants.png]Color constants cheatsheet[/url]"
msgstr ""
-"由红ã€ç»¿ã€è“ã€é˜¿å°”法(RGBA)分é‡è¡¨ç¤ºçš„一ç§é¢œè‰²ã€‚alpha 分é‡é€šå¸¸ç”¨äºŽé€æ˜Žåº¦ã€‚一"
-"些属性(如 CanvasItem.modulate)å¯ä»¥æŽ¥å—大于 1 的值(过亮或 HDR 颜色)。\n"
-"您也å¯ä»¥é€šè¿‡ä½¿ç”¨ [method @GDScript.ColorN] 或直接使用这里定义的颜色常é‡ï¼Œä»Žæ ‡"
-"准化颜色å称中创建颜色。标准化颜色集是基于 [url=https://en.wikipedia.org/"
-"wiki/X11_color_names]X11 color names[/url] 的。\n"
-"如果你想æä¾› 0 到 255 范围内的值,你应该使用 [method @GDScript.Color8]。\n"
+"由红ã€ç»¿ã€è“ã€Alpha(RGBA)分é‡è¡¨ç¤ºçš„颜色。Alpha 分é‡é€šå¸¸ç”¨äºŽé€æ˜Žåº¦ã€‚这些值都"
+"是浮点数,范围一般在 0 到 1 之间。有些属性(如 CanvasItem.modulate)å¯ä»¥æŽ¥å—"
+"大于 1 的值(过亮或 HDR 颜色)。\n"
+"您也å¯ä»¥é€šè¿‡ä½¿ç”¨ [method @GDScript.ColorN] 从标准化颜色å称中创建颜色,或者直"
+"接使用这里定义的颜色常é‡ã€‚标准化颜色集å–自 [url=https://en.wikipedia.org/"
+"wiki/X11_color_names]X11 颜色åç§°[/url]。\n"
+"如果想æä¾› 0 到 255 范围内的值,你应该使用 [method @GDScript.Color8]。\n"
"[b]注æ„:[/b]在布尔上下文中,等于 [code]Color(0, 0, 0, 1)[/code](ä¸é€æ˜Žçš„黑"
-"色)的 Color 将被评估为[code]false[/code]。å¦åˆ™ï¼Œä¸€ä¸ª Color 将始终被评估为 "
+"色)的 Color 将被评估为[code]false[/code]。å¦åˆ™ï¼ŒColor 将始终被评估为 "
"[code]true[/code]。\n"
"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
"color_constants.png]Color 常é‡é€ŸæŸ¥è¡¨[/url]"
@@ -16785,7 +16978,7 @@ msgid ""
msgstr ""
"æ ¹æ® RGB 值构造颜色,通常介于 0 å’Œ 1 之间。Alpha 将为 1。\n"
"[codeblock]\n"
-"var color = Color(0.2, 1.0, 0.7) # Similar to Color8(51, 255, 178, 255)\n"
+"var color = Color(0.2, 1.0, 0.7) # 类似于 Color8(51, 255, 178, 255)\n"
"[/codeblock]"
#: doc/classes/Color.xml
@@ -16813,12 +17006,12 @@ msgid ""
"var blended_color = bg.blend(fg) # Brown with alpha of 75%\n"
"[/codeblock]"
msgstr ""
-"返回将此颜色混åˆåˆ°å¦ä¸€ä¸ªé¢œè‰²ä¸Šçš„æ–°é¢œè‰²ã€‚如果颜色是ä¸é€æ˜Žçš„,结果也是ä¸é€æ˜Ž"
-"的。第二ç§é¢œè‰²å¯ä»¥æœ‰ä¸€å®šèŒƒå›´çš„alpha值。\n"
+"返回将此颜色混åˆåˆ°å¦ä¸€ä¸ªé¢œè‰²ä¸Šæ‰€äº§ç”Ÿçš„æ–°é¢œè‰²ã€‚如果颜色是ä¸é€æ˜Žçš„,结果也是ä¸"
+"逿˜Žçš„。第二ç§é¢œè‰²å¯ä»¥æœ‰ä¸€å®šèŒƒå›´çš„ Alpha 值。\n"
"[codeblock]\n"
-"var bg = Color(0.0, 1.0, 0.0, 0.5) # Green with alpha of 50%\n"
-"var fg = Color(1.0, 0.0, 0.0, 0.5) # Red with alpha of 50%\n"
-"var blended_color = bg.blend(fg) # Brown with alpha of 75%\n"
+"var bg = Color(0.0, 1.0, 0.0, 0.5) # 50% ä¸é€æ˜Žçš„绿色\n"
+"var fg = Color(1.0, 0.0, 0.0, 0.5) # 50% ä¸é€æ˜Žçš„红色\n"
+"var blended_color = bg.blend(fg) # 75% ä¸é€æ˜Žçš„æ£•色\n"
"[/codeblock]"
#: doc/classes/Color.xml
@@ -16874,6 +17067,8 @@ msgid ""
"This is useful when determining light or dark color. Colors with a luminance "
"smaller than 0.5 can be generally considered dark."
msgstr ""
+"返回该颜色的亮度,ä½äºŽ [code][0.0, 1.0][/code] 的范围内。\n"
+"å¯ä»¥ç”¨æ¥ç¡®å®šé¢œè‰²æ˜¯äº®è‰²è¿˜æ˜¯æš—色。一般认为亮度å°äºŽ 0.5 的颜色是暗色。"
#: doc/classes/Color.xml
msgid ""
@@ -17028,7 +17223,7 @@ msgid ""
msgstr ""
"返回 ARGB æ ¼å¼çš„ HTML å六进制颜色字符串(例如:[code]ff34f822[/code])。\n"
"å°† [code]with_alpha[/code] 设置为 [code]false[/code] å°†å六进制字符串中的 "
-"alpha 排除在外。\n"
+"Alpha 排除在外。\n"
"[codeblock]\n"
"var c = Color(1, 1, 1, 0.5)\n"
"var s1 = c.to_html() # 返回 \"7fffffff\"\n"
@@ -17069,8 +17264,10 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
-msgstr "颜色的alphaï¼ˆé€æ˜Žåº¦ï¼‰åˆ†é‡ï¼Œé€šå¸¸åœ¨0到1的范围内。"
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
+msgstr ""
#: doc/classes/Color.xml
msgid "Wrapper for [member a] that uses the range 0 to 255 instead of 0 to 1."
@@ -17650,7 +17847,7 @@ msgstr "番茄色。"
#: doc/classes/Color.xml
msgid "Transparent color (white with no alpha)."
-msgstr "逿˜Žè‰²ï¼ˆç™½è‰²ï¼Œæ— alpha)。"
+msgstr "逿˜Žè‰²ï¼ˆç™½è‰²ï¼Œæ—  Alpha)。"
#: doc/classes/Color.xml
msgid "Turquoise color."
@@ -17698,7 +17895,7 @@ msgstr "黄绿色。"
#: doc/classes/ColorPicker.xml
msgid "Color picker control."
-msgstr "选色器控制。"
+msgstr "å–色器控件。"
#: doc/classes/ColorPicker.xml
msgid ""
@@ -17708,9 +17905,9 @@ msgid ""
"[ColorPickerButton] instead if you need a button that brings up a "
"[ColorPicker] in a pop-up."
msgstr ""
-"显示一个å–色器部件。å¯ä»¥ä»ŽRGB/RGBA彩色空间内选å–一个颜色。\n"
-"[b]注æ„:[/b]这个控件就是å–色器本身。如果你需è¦ä¸€ä¸ªèƒ½å¤Ÿå¼¹å‡ºä¸€ä¸ª[ColorPicker]"
-"窗å£çš„æŒ‰é’®ï¼Œä½ å¯ä»¥ä½¿ç”¨ä¸€ä¸ª[ColorPickerButton]æ¥ä»£æ›¿å®ƒã€‚"
+"显示一个å–色器部件。å¯ä»¥ä»Ž RGB/RGBA 彩色空间内选å–一个颜色。\n"
+"[b]注æ„:[/b]这个控件就是å–色器本身。如果你需è¦ä¸€ä¸ªèƒ½å¤Ÿå¼¹å‡ºä¸€ä¸ª "
+"[ColorPicker] 窗å£çš„æŒ‰é’®ï¼Œä½ å¯ä»¥ä½¿ç”¨ä¸€ä¸ª [ColorPickerButton] æ¥ä»£æ›¿å®ƒã€‚"
#: doc/classes/ColorPicker.xml
msgid ""
@@ -17718,17 +17915,17 @@ msgid ""
"in the color picker and the user will be able to select them.\n"
"[b]Note:[/b] The presets list is only for [i]this[/i] color picker."
msgstr ""
-"将给定的颜色添加到颜色预设列表中。用户将能够选择颜色选择器中颜色预设。\n"
-"[b]注æ„:[/b]预设列表仅适用于[i]这个[/i]颜色选择器。"
+"将给定的颜色添加到颜色预设列表中。预设会显示在å–色器中,å¯ä»¥è¢«ç”¨æˆ·é€‰æ‹©ã€‚\n"
+"[b]注æ„:[/b]预设列表仅适用于[i]这个[/i]å–色器。"
#: doc/classes/ColorPicker.xml
msgid ""
"Removes the given color from the list of color presets of this color picker."
-msgstr "从这个颜色选择器的颜色预设列表中删除给定的颜色。"
+msgstr "从这个å–色器的颜色预设列表中删除给定的颜色。"
#: doc/classes/ColorPicker.xml
msgid "Returns the list of colors in the presets of the color picker."
-msgstr "返回颜色选择器预设中的颜色列表。"
+msgstr "返回å–色器的预设颜色列表。"
#: doc/classes/ColorPicker.xml doc/classes/ColorPickerButton.xml
msgid "The currently selected color."
@@ -17744,8 +17941,9 @@ msgstr ""
"动事件中也会立å³åº”用(ä¼šé€ æˆæ€§èƒ½é—®é¢˜)。"
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
-msgstr "如果[code]true[/code],显示alphaé€šé“æ»‘å—ï¼ˆé€æ˜Žåº¦ï¼‰ã€‚"
+#, fuzzy
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
+msgstr "如果 [code]true[/code],显示 Alpha é€šé“æ»‘å—ï¼ˆé€æ˜Žåº¦ï¼‰ã€‚"
#: doc/classes/ColorPicker.xml
msgid ""
@@ -17793,7 +17991,7 @@ msgstr "色相选择滑å—的宽度。"
#: doc/classes/ColorPicker.xml
msgid "The margin around the [ColorPicker]."
-msgstr "[ColorPicker]周围的边è·ã€‚"
+msgstr "[ColorPicker] 周围的边è·ã€‚"
#: doc/classes/ColorPicker.xml
msgid "The height of the saturation-value selection box."
@@ -17805,7 +18003,7 @@ msgstr "饱和度选择框的宽度。"
#: doc/classes/ColorPicker.xml
msgid "The icon for the \"Add Preset\" button."
-msgstr "添加预设 \"按钮的图标。"
+msgstr "â€œæ·»åŠ é¢„è®¾â€æŒ‰é’®çš„图标。"
#: doc/classes/ColorPicker.xml
msgid "Custom texture for the hue selection slider on the right."
@@ -17815,15 +18013,15 @@ msgstr "å³ä¾§çš„色相选择滑å—的自定义纹ç†ã€‚"
msgid ""
"The indicator used to signalize that the color value is outside the 0-1 "
"range."
-msgstr "该指示器用于指示颜色值在0-1范围之外。"
+msgstr "该指示器用于指示颜色值在 0-1 范围之外。"
#: doc/classes/ColorPicker.xml
msgid "The icon for the screen color picker button."
-msgstr "å±å¹•颜色选择器按钮的图标。"
+msgstr "å±å¹•å–色器按钮的图标。"
#: doc/classes/ColorPickerButton.xml
msgid "Button that pops out a [ColorPicker]."
-msgstr "弹出[ColorPicker]的按钮。"
+msgstr "弹出 [ColorPicker] 的按钮。"
#: doc/classes/ColorPickerButton.xml
msgid ""
@@ -17835,11 +18033,11 @@ msgid ""
"preview swatch to be visible. Make sure to set [member Control."
"rect_min_size] to a big enough value to give the button enough space."
msgstr ""
-"å°†[ColorPicker]å°è£…æˆå¯ä»¥é€šè¿‡æŒ‰ä¸€ä¸ªæŒ‰é’®æ¥è¿›è¡Œä½¿ç”¨ã€‚点击按钮å¯ä»¥åˆ‡æ¢å‡ºå¯è§çš„"
-"[ColorPicker]。\n"
-"å¦è¯·å‚阅[BaseButton]ã€‚å®ƒåŒ…æ‹¬äº†å’Œè¿™ä¸ªèŠ‚ç‚¹å…±åŒæ‹¥æœ‰çš„属性和方法。\n"
-"[b]注æ„:[/b]æŒ‰é’®é»˜è®¤çŠ¶æ€æ—¶å¯èƒ½éžå¸¸çª„,导致颜色预览样本ä¸å¯è§ã€‚ç¡®ä¿å°†[member "
-"Control.rect_min_size]设置的足够大从而给这个按钮足够的空间去显示。"
+"å°† [ColorPicker] å°è£…æˆå¯ä»¥é€šè¿‡æŒ‰ä¸€ä¸ªæŒ‰é’®æ¥è¿›è¡Œä½¿ç”¨ã€‚点击按钮å¯ä»¥åˆ‡æ¢å‡ºå¯è§"
+"的 [ColorPicker]。\n"
+"å¦è¯·å‚阅 [BaseButton]ã€‚å®ƒåŒ…æ‹¬äº†å’Œè¿™ä¸ªèŠ‚ç‚¹å…±åŒæ‹¥æœ‰çš„属性和方法。\n"
+"[b]注æ„:[/b]æŒ‰é’®é»˜è®¤çŠ¶æ€æ—¶å¯èƒ½éžå¸¸çª„,导致颜色预览样本ä¸å¯è§ã€‚ç¡®ä¿å°† "
+"[member Control.rect_min_size] 设置的足够大从而给这个按钮足够的空间去显示。"
#: doc/classes/ColorPickerButton.xml
msgid ""
@@ -17870,7 +18068,7 @@ msgstr ""
msgid ""
"If [code]true[/code], the alpha channel in the displayed [ColorPicker] will "
"be visible."
-msgstr "如果[code]true[/code],则显示的[ColorPicker]中的alpha通é“å°†å¯è§ã€‚"
+msgstr "如果 [code]true[/code],则显示的 [ColorPicker] 中的 Alpha 通é“å°†å¯è§ã€‚"
#: doc/classes/ColorPickerButton.xml
msgid "Emitted when the color changes."
@@ -17880,19 +18078,19 @@ msgstr "é¢œè‰²æ”¹å˜æ—¶å‘出。"
msgid ""
"Emitted when the [ColorPicker] is created (the button is pressed for the "
"first time)."
-msgstr "创建[ColorPicker]时(第一次按下按钮)å‘出。"
+msgstr "创建 [ColorPicker] 时(第一次按下按钮)å‘出。"
#: doc/classes/ColorPickerButton.xml
msgid "Emitted when the [ColorPicker] is closed."
-msgstr "当[ColorPicker]关闭时å‘出。"
+msgstr "当 [ColorPicker] 关闭时å‘出。"
#: doc/classes/ColorPickerButton.xml
msgid "Default text [Color] of the [ColorPickerButton]."
-msgstr "[ColorPickerButton]的默认文本[Color]。"
+msgstr "[ColorPickerButton] 的默认文本颜色 [Color]。"
#: doc/classes/ColorPickerButton.xml
msgid "Text [Color] used when the [ColorPickerButton] is disabled."
-msgstr "ç¦ç”¨[ColorPickerButton]时使用的文本[Color]。"
+msgstr "ç¦ç”¨ [ColorPickerButton] 时使用的文本颜色 [Color]。"
#: doc/classes/ColorPickerButton.xml
msgid ""
@@ -17900,24 +18098,24 @@ msgid ""
"normal text color of the button. Disabled, hovered, and pressed states take "
"precedence over this color."
msgstr ""
-"当[ColorPickerButton]获得焦点时使用的文本[Color]ã€‚åªæ›¿æ¢æŒ‰é’®çš„æ­£å¸¸æ–‡æœ¬é¢œè‰²ã€‚"
-"ç¦ç”¨ã€æ‚¬åœå’ŒæŒ‰ä¸‹çжæ€ä¼˜å…ˆäºŽè¿™ä¸ªé¢œè‰²ã€‚"
+"当 [ColorPickerButton] 获得焦点时使用的文本颜色 [Color]ã€‚åªæ›¿æ¢æŒ‰é’®çš„æ­£å¸¸æ–‡æœ¬"
+"颜色。ç¦ç”¨ã€æ‚¬åœå’ŒæŒ‰ä¸‹çжæ€ä¼˜å…ˆäºŽè¿™ä¸ªé¢œè‰²ã€‚"
#: doc/classes/ColorPickerButton.xml
msgid "Text [Color] used when the [ColorPickerButton] is being hovered."
-msgstr "悬åœ[ColorPickerButton]时使用的文本[Color]。"
+msgstr "æ‚¬åœ [ColorPickerButton] 时使用的文本 [Color]。"
#: doc/classes/ColorPickerButton.xml
msgid "Text [Color] used when the [ColorPickerButton] is being pressed."
-msgstr "按下[ColorPickerButton]时使用的文本[Color]。"
+msgstr "按下 [ColorPickerButton] 时使用的文本颜色 [Color]。"
#: doc/classes/ColorPickerButton.xml
msgid "The horizontal space between [ColorPickerButton]'s icon and text."
-msgstr "[ColorPickerButton]的图标和文本之间的水平间è·ã€‚"
+msgstr "[ColorPickerButton] 的图标和文本之间的水平间è·ã€‚"
#: doc/classes/ColorPickerButton.xml
msgid "[Font] of the [ColorPickerButton]'s text."
-msgstr "[ColorPickerButton]文本的[Font]。"
+msgstr "[ColorPickerButton] 文本的 [Font]。"
#: doc/classes/ColorPickerButton.xml
msgid "The background of the color preview rect on the button."
@@ -17925,7 +18123,7 @@ msgstr "颜色预览的背景将在按钮上显示。"
#: doc/classes/ColorPickerButton.xml
msgid "[StyleBox] used when the [ColorPickerButton] is disabled."
-msgstr "当[ColorPickerButton]被ç¦ç”¨æ—¶ä½¿ç”¨çš„[StyleBox]。"
+msgstr "当 [ColorPickerButton] 被ç¦ç”¨æ—¶ä½¿ç”¨çš„ [StyleBox]。"
#: doc/classes/ColorPickerButton.xml
msgid ""
@@ -17933,20 +18131,20 @@ msgid ""
"over the current [StyleBox], so using [StyleBoxEmpty] will just disable the "
"focus visual effect."
msgstr ""
-"当[ColorPickerButton]获得焦点时使用的[StyleBox]。它显示在当å‰çš„[StyleBox]上,"
-"所以使用[StyleBoxEmpty]åªæ˜¯ç¦ç”¨ç„¦ç‚¹è§†è§‰æ•ˆæžœã€‚"
+"当 [ColorPickerButton] 获得焦点时使用的 [StyleBox]。它显示在当å‰çš„ "
+"[StyleBox] 上,所以使用 [StyleBoxEmpty] åªæ˜¯ç¦ç”¨ç„¦ç‚¹è§†è§‰æ•ˆæžœã€‚"
#: doc/classes/ColorPickerButton.xml
msgid "[StyleBox] used when the [ColorPickerButton] is being hovered."
-msgstr "悬åœ[ColorPickerButton]时使用的[StyleBox]。"
+msgstr "æ‚¬åœ [ColorPickerButton] 时使用的 [StyleBox]。"
#: doc/classes/ColorPickerButton.xml
msgid "Default [StyleBox] for the [ColorPickerButton]."
-msgstr "[ColorPickerButton]的默认[StyleBox]。"
+msgstr "[ColorPickerButton] 的默认 [StyleBox]。"
#: doc/classes/ColorPickerButton.xml
msgid "[StyleBox] used when the [ColorPickerButton] is being pressed."
-msgstr "按下[ColorPickerButton]时使用的[StyleBox]。"
+msgstr "按下 [ColorPickerButton] 时使用的 [StyleBox]。"
#: doc/classes/ColorRect.xml
msgid "Colored rectangle."
@@ -18491,14 +18689,11 @@ msgstr ""
#: doc/classes/Control.xml
msgid "$DOCS_URL/tutorials/ui/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/ui/index.html"
#: doc/classes/Control.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/ui/control_node_gallery.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/ui/control_node_gallery."
-"html"
+msgstr "$DOCS_URL/tutorials/ui/control_node_gallery.html"
#: doc/classes/Control.xml
msgid "https://github.com/godotengine/godot-demo-projects/tree/master/gui"
@@ -18518,7 +18713,6 @@ msgstr ""
"如果未覆盖,则默认为 [code]false[/code]。"
#: doc/classes/Control.xml
-#, fuzzy
msgid ""
"Virtual method to be implemented by the user. Returns the minimum size for "
"this control. Alternative to [member rect_min_size] for controlling minimum "
@@ -18530,10 +18724,13 @@ msgid ""
"[Button], [PanelContainer] etc.). It can only be used with most basic GUI "
"nodes, like [Control], [Container], [Panel] etc."
msgstr ""
-"用户è¦å®žçŽ°çš„è™šæ–¹æ³•ã€‚è¿”å›žæ­¤æŽ§ä»¶çš„æœ€å°å¤§å°ã€‚ [member rect_min_size] 的替代方"
-"æ³•ï¼Œç”¨äºŽé€šè¿‡ä»£ç æŽ§åˆ¶æœ€å°å¤§å°ã€‚实际的最å°å°ºå¯¸å°†æ˜¯è¿™ä¸¤ä¸ªçš„æœ€å¤§å€¼ï¼ˆåˆ†åˆ«åœ¨æ¯ä¸ªè½´"
-"上)。\n"
-"如果未覆盖,则默认为 [constant Vector2.ZERO]。"
+"用户è¦å®žçŽ°çš„è™šæ–¹æ³•ã€‚è¿”å›žæ­¤æŽ§ä»¶çš„æœ€å°å°ºå¯¸ã€‚这是 [member rect_min_size] 的替代"
+"æ–¹æ³•ï¼Œç”¨äºŽé€šè¿‡ä»£ç æŽ§åˆ¶æœ€å°å°ºå¯¸ã€‚实际的最å°å°ºå¯¸å°†æ˜¯ä¸¤è€…中的最大值(在å„个轴上"
+"分别å–)。\n"
+"如果未覆盖,则默认为 [constant Vector2.ZERO]。\n"
+"[b]注æ„:[/b]如果脚本附加的是已ç»è¦†ç›–过最å°å°ºå¯¸çš„ [Control] 节点(例如 "
+"[Label]ã€[Button]ã€[PanelContainer] 等),本方法ä¸ä¼šè¢«è°ƒç”¨ã€‚åªèƒ½åœ¨ "
+"[Control]ã€[Container]ã€[Panel] 等最基本的 GUI 节点上使用。"
#: doc/classes/Control.xml
msgid ""
@@ -18557,7 +18754,7 @@ msgid ""
"[member rect_clip_content] or [method _clips_input] enabled.\n"
"[b]Note:[/b] Event position is relative to the control origin."
msgstr ""
-"由用户实现的虚方法。使用此方法处ç†å’ŒæŽ¥å— UI 元素上的输入。å‚阅[method "
+"由用户实现的虚方法。使用此方法处ç†å’ŒæŽ¥å— UI 元素上的输入。请å‚阅 [method "
"accept_event]。\n"
"例:å•击控件。\n"
"[codeblock]\n"
@@ -18575,7 +18772,7 @@ msgstr ""
"已接å—该事件;\n"
"* 它å‘生在父级的矩形之外,并且父级已å¯ç”¨ [member rect_clip_content] 或 "
"[method _clips_input]。\n"
-"[b]注:[/b] äº‹ä»¶åæž—标相对于控件原点。"
+"[b]注æ„:[/b]äº‹ä»¶åæ ‡ç›¸å¯¹äºŽæŽ§ä»¶åŽŸç‚¹ã€‚"
#: doc/classes/Control.xml
msgid ""
@@ -18839,9 +19036,9 @@ msgid ""
"Margin] enum. A getter method for [member anchor_bottom], [member "
"anchor_left], [member anchor_right] and [member anchor_top]."
msgstr ""
-"从[enum Margin]枚举返回由[code]margin[/code]叏釿 ‡è¯†çš„锚。 [member "
-"anchor_bottom],[member anchor_left],[member anchor_right]和[member "
-"anchor_top]çš„èŽ·å–æ–¹æ³•。"
+"从 [enum Margin] 枚举返回由 [code]margin[/code] 叏釿 ‡è¯†çš„锚点。是 [member "
+"anchor_bottom]ã€[member anchor_left]ã€[member anchor_right]ã€[member "
+"anchor_top] çš„èŽ·å–æ–¹æ³•。"
#: doc/classes/Control.xml
msgid ""
@@ -18999,9 +19196,9 @@ msgid ""
"Margin] enum. A getter method for [member margin_bottom], [member "
"margin_left], [member margin_right] and [member margin_top]."
msgstr ""
-"从[enum Margin]枚举返回由[code]margin[/code]叏釿 ‡è¯†çš„锚。 [member "
-"margin_bottom],[member margin_left],[member margin_right]和[member "
-"margin_top]çš„èŽ·å–æ–¹æ³•。"
+"从 [enum Margin] 枚举返回由 [code]margin[/code] 叏釿 ‡è¯†çš„锚点。是 [member "
+"margin_bottom]ã€[member margin_left]ã€[member margin_right]ã€[member "
+"margin_top] çš„èŽ·å–æ–¹æ³•。"
#: doc/classes/Control.xml
msgid "Returns the minimum size for this control. See [member rect_min_size]."
@@ -19263,15 +19460,16 @@ msgid ""
"code] argument and automatic update of margin, it allows to set the margin "
"offset yourself (see [method set_margin])."
msgstr ""
-"与[method set_anchor]的工作原ç†ç›¸åŒï¼Œä½†æ˜¯å®ƒä»£æ›¿[code]keep_margin[/code]傿•°å’Œ"
-"è¾¹è·çš„自动更新,它å…许您自己设置边è·åç§»é‡ï¼ˆè¯·å‚阅[method set_margin])。"
+"与 [method set_anchor] 的工作原ç†ç›¸åŒï¼Œä½†æ˜¯å®ƒä»£æ›¿ [code]keep_margin[/code] å‚"
+"数和边è·çš„自动更新,它å…许您自己设置边è·åç§»é‡ï¼ˆè¯·å‚阅 [method "
+"set_margin])。"
#: doc/classes/Control.xml
msgid ""
"Sets both anchor preset and margin preset. See [method set_anchors_preset] "
"and [method set_margins_preset]."
msgstr ""
-"设置锚定预设和边è·é¢„设。请å‚阅[method set_anchors_preset]å’Œ[method "
+"设置锚点预设和边è·é¢„设。请å‚阅 [method set_anchors_preset] å’Œ [method "
"set_margins_preset]。"
#: doc/classes/Control.xml
@@ -19392,10 +19590,10 @@ msgid ""
"method for [member focus_neighbour_bottom], [member focus_neighbour_left], "
"[member focus_neighbour_right] and [member focus_neighbour_top]."
msgstr ""
-"设置由[code]margin[/code]叏釿 ‡è¯†çš„锚,从[enum Margin]枚举到[code]neighbor[/"
-"code]节点路径处的[Control]。用于[member focus_neighbour_bottom],[member "
-"focus_neighbour_left],[member focus_neighbour_right]和[member "
-"focus_neighbour_top]的设置方法。"
+"设置由 [code]margin[/code] 叏釿 ‡è¯†çš„锚点,从 [enum Margin] 枚举到 "
+"[code]neighbor[/code] 节点路径处的 [Control]。是 [member "
+"focus_neighbour_bottom]ã€[member focus_neighbour_left]ã€[member "
+"focus_neighbour_right]ã€[member focus_neighbour_top] 的设置方法。"
#: doc/classes/Control.xml
msgid ""
@@ -19493,7 +19691,7 @@ msgid ""
"convenience."
msgstr ""
"å°†èŠ‚ç‚¹çš„åº•éƒ¨è¾¹ç¼˜é”šå®šåˆ°å…¶çˆ¶æŽ§ä»¶çš„åŽŸç‚¹ï¼Œä¸­å¿ƒæˆ–æœ«ç«¯ã€‚å½“èŠ‚ç‚¹ç§»åŠ¨æˆ–æ›´æ”¹å¤§å°æ—¶ï¼Œå®ƒ"
-"会更改底部边è·çš„æ›´æ–°æ–¹å¼ã€‚为了方便起è§ï¼Œå¯ä»¥ä½¿ç”¨[enum Anchor]常é‡ä¹‹ä¸€ã€‚"
+"会更改底部边è·çš„æ›´æ–°æ–¹å¼ã€‚为了方便起è§ï¼Œå¯ä»¥ä½¿ç”¨ [enum Anchor] 常é‡ä¹‹ä¸€ã€‚"
#: doc/classes/Control.xml
msgid ""
@@ -19503,7 +19701,7 @@ msgid ""
"convenience."
msgstr ""
"å°†èŠ‚ç‚¹çš„å·¦è¾¹ç¼˜é”šå®šåˆ°å…¶çˆ¶æŽ§ä»¶çš„åŽŸç‚¹ï¼Œä¸­å¿ƒæˆ–æœ«ç«¯ã€‚å½“èŠ‚ç‚¹ç§»åŠ¨æˆ–æ›´æ”¹å¤§å°æ—¶ï¼Œå®ƒä¼š"
-"更改左侧边è·çš„æ›´æ–°æ–¹å¼ã€‚为了方便起è§ï¼Œå¯ä»¥ä½¿ç”¨[enum Anchor]常é‡ä¹‹ä¸€ã€‚"
+"更改左侧边è·çš„æ›´æ–°æ–¹å¼ã€‚为了方便起è§ï¼Œå¯ä»¥ä½¿ç”¨ [enum Anchor] 常é‡ä¹‹ä¸€ã€‚"
#: doc/classes/Control.xml
msgid ""
@@ -19513,7 +19711,7 @@ msgid ""
"convenience."
msgstr ""
"将节点的å³è¾¹ç¼˜é”šå®šåˆ°å…¶çˆ¶æŽ§ä»¶çš„åŽŸç‚¹ï¼Œä¸­å¿ƒæˆ–æœ«ç«¯ã€‚å½“èŠ‚ç‚¹ç§»åŠ¨æˆ–æ›´æ”¹å¤§å°æ—¶ï¼Œå®ƒä¼š"
-"更改å³è¾¹è·çš„æ›´æ–°æ–¹å¼ã€‚为了方便起è§ï¼Œå¯ä»¥ä½¿ç”¨[enum Anchor]常é‡ä¹‹ä¸€ã€‚"
+"更改å³è¾¹è·çš„æ›´æ–°æ–¹å¼ã€‚为了方便起è§ï¼Œå¯ä»¥ä½¿ç”¨ [enum Anchor] 常é‡ä¹‹ä¸€ã€‚"
#: doc/classes/Control.xml
msgid ""
@@ -19522,7 +19720,7 @@ msgid ""
"changes size. You can use one of the [enum Anchor] constants for convenience."
msgstr ""
"锚定节点的顶部边缘到原点ã€ä¸­å¿ƒæˆ–其父控件的末端。当节点移动或改å˜å¤§å°æ—¶ï¼Œå®ƒå¯"
-"以改å˜é¡¶è¾¹çš„æ›´æ–°æ–¹å¼ã€‚为了便æ·ï¼Œä½ å¯ä»¥ä½¿ç”¨[enum Anchor]常数之一。"
+"以改å˜é¡¶è¾¹çš„æ›´æ–°æ–¹å¼ã€‚为了便æ·ï¼Œä½ å¯ä»¥ä½¿ç”¨ [enum Anchor] 常é‡ä¹‹ä¸€ã€‚"
#: doc/classes/Control.xml
msgid ""
@@ -19684,9 +19882,10 @@ msgid ""
"you should not modify them manually if your node is a direct child of a "
"[Container]. Margins update automatically when you move or resize the node."
msgstr ""
-"节点底边与其父控件之间的è·ç¦»ï¼ŒåŸºäºŽ[member anchor_bottom]。\n"
-"è¾¹è·é€šå¸¸ç”±ä¸€ä¸ªæˆ–多个父[Container]节点控制,因此,如果您的节点是[Container]çš„"
-"直接å­çº§ï¼Œåˆ™ä¸åº”æ‰‹åŠ¨ä¿®æ”¹å®ƒä»¬ã€‚å½“æ‚¨ç§»åŠ¨æˆ–è°ƒæ•´èŠ‚ç‚¹å¤§å°æ—¶ï¼Œè¾¹è·ä¼šè‡ªåŠ¨æ›´æ–°ã€‚"
+"节点底边与其父控件之间的è·ç¦»ï¼ŒåŸºäºŽ [member anchor_bottom]。\n"
+"è¾¹è·é€šå¸¸ç”±ä¸€ä¸ªæˆ–多个父 [Container] 节点控制,因此,如果您的节点是 "
+"[Container] 的直接å­çº§ï¼Œåˆ™ä¸åº”æ‰‹åŠ¨ä¿®æ”¹å®ƒä»¬ã€‚å½“æ‚¨ç§»åŠ¨æˆ–è°ƒæ•´èŠ‚ç‚¹å¤§å°æ—¶ï¼Œè¾¹è·ä¼š"
+"自动更新。"
#: doc/classes/Control.xml
msgid ""
@@ -19696,9 +19895,10 @@ msgid ""
"you should not modify them manually if your node is a direct child of a "
"[Container]. Margins update automatically when you move or resize the node."
msgstr ""
-"节点的左边缘与其父控件之间的è·ç¦»ï¼ŒåŸºäºŽ[member anchor_left]。\n"
-"è¾¹è·é€šå¸¸ç”±ä¸€ä¸ªæˆ–多个父[Container]节点控制,因此,如果您的节点是[Container]çš„"
-"直接å­çº§ï¼Œåˆ™ä¸åº”æ‰‹åŠ¨ä¿®æ”¹å®ƒä»¬ã€‚å½“æ‚¨ç§»åŠ¨æˆ–è°ƒæ•´èŠ‚ç‚¹å¤§å°æ—¶ï¼Œè¾¹è·ä¼šè‡ªåŠ¨æ›´æ–°ã€‚"
+"节点的左边缘与其父控件之间的è·ç¦»ï¼ŒåŸºäºŽ [member anchor_left]。\n"
+"è¾¹è·é€šå¸¸ç”±ä¸€ä¸ªæˆ–多个父 [Container] 节点控制,因此,如果您的节点是 "
+"[Container] 的直接å­çº§ï¼Œåˆ™ä¸åº”æ‰‹åŠ¨ä¿®æ”¹å®ƒä»¬ã€‚å½“æ‚¨ç§»åŠ¨æˆ–è°ƒæ•´èŠ‚ç‚¹å¤§å°æ—¶ï¼Œè¾¹è·ä¼š"
+"自动更新。"
#: doc/classes/Control.xml
msgid ""
@@ -19708,9 +19908,10 @@ msgid ""
"you should not modify them manually if your node is a direct child of a "
"[Container]. Margins update automatically when you move or resize the node."
msgstr ""
-"节点的å³è¾¹ç¼˜ä¸Žå…¶çˆ¶æŽ§ä»¶ä¹‹é—´çš„è·ç¦»ï¼ŒåŸºäºŽ[member anchor_right]。\n"
-"è¾¹è·é€šå¸¸ç”±ä¸€ä¸ªæˆ–多个父[Container]节点控制,因此,如果您的节点是[Container]çš„"
-"直接å­çº§ï¼Œåˆ™ä¸åº”æ‰‹åŠ¨ä¿®æ”¹å®ƒä»¬ã€‚å½“æ‚¨ç§»åŠ¨æˆ–è°ƒæ•´èŠ‚ç‚¹å¤§å°æ—¶ï¼Œè¾¹è·ä¼šè‡ªåŠ¨æ›´æ–°ã€‚"
+"节点的å³è¾¹ç¼˜ä¸Žå…¶çˆ¶æŽ§ä»¶ä¹‹é—´çš„è·ç¦»ï¼ŒåŸºäºŽ [member anchor_right]。\n"
+"è¾¹è·é€šå¸¸ç”±ä¸€ä¸ªæˆ–多个父 [Container] 节点控制,因此,如果您的节点是 "
+"[Container] 的直接å­çº§ï¼Œåˆ™ä¸åº”æ‰‹åŠ¨ä¿®æ”¹å®ƒä»¬ã€‚å½“æ‚¨ç§»åŠ¨æˆ–è°ƒæ•´èŠ‚ç‚¹å¤§å°æ—¶ï¼Œè¾¹è·ä¼š"
+"自动更新。"
#: doc/classes/Control.xml
msgid ""
@@ -19720,7 +19921,7 @@ msgid ""
"you should not modify them manually if your node is a direct child of a "
"[Container]. Margins update automatically when you move or resize the node."
msgstr ""
-"节点的顶边与其父控件之间的è·ç¦»ï¼ŒåŸºäºŽ[member anchor_top]。\n"
+"节点的顶边与其父控件之间的è·ç¦»ï¼ŒåŸºäºŽ [member anchor_top]。\n"
"è¾¹è·é€šå¸¸ç”±ä¸€ä¸ªæˆ–多个父 [Container] 节点控制,所以如果您的节点是 [Container] "
"的直接å­èŠ‚ç‚¹ï¼Œæ‚¨ä¸åº”è¯¥æ‰‹åŠ¨ä¿®æ”¹å®ƒä»¬ã€‚å½“æ‚¨ç§»åŠ¨æˆ–è°ƒæ•´èŠ‚ç‚¹å¤§å°æ—¶ï¼Œè¾¹è·ä¼šè‡ªåŠ¨æ›´"
"新。"
@@ -19801,7 +20002,6 @@ msgstr ""
"çš„ä½ç½®ã€‚"
#: doc/classes/Control.xml
-#, fuzzy
msgid ""
"The node's scale, relative to its [member rect_size]. Change this property "
"to scale the node around its [member rect_pivot_offset]. The Control's "
@@ -19822,9 +20022,9 @@ msgstr ""
"[member rect_pivot_offset] 缩放。该 Control çš„ [member hint_tooltip] 也将根æ®"
"这个值进行缩放。\n"
"[b]注æ„:[/b]这个属性主è¦ç”¨äºŽåŠ¨ç”»ç”¨é€”ã€‚å½“æŽ§ä»¶è¢«ç¼©æ”¾æ—¶ï¼ŒæŽ§ä»¶å†…çš„æ–‡æœ¬å°†çœ‹èµ·æ¥æ˜¯"
-"åƒç´ åŒ–或模糊的。è¦åœ¨ä½ çš„项目支æŒå¤šç§åˆ†è¾¨çŽ‡ï¼Œè¯·ä½¿ç”¨[url=https://docs."
-"godotengine.org/zh_CN/stable/tutorials/rendering/multiple_resolutions.html]æ–‡"
-"æ¡£[/url]中æè¿°çš„åˆé€‚的视窗拉伸模å¼ï¼Œè€Œä¸æ˜¯å•独缩放控件。\n"
+"åƒç´ åŒ–或模糊的。è¦åœ¨ä½ çš„项目支æŒå¤šç§åˆ†è¾¨çŽ‡ï¼Œè¯·ä½¿ç”¨[url=$DOCS_URL/tutorials/"
+"rendering/multiple_resolutions.html]文档[/url]中æè¿°çš„åˆé€‚的视窗拉伸模å¼ï¼Œè€Œ"
+"䏿˜¯å•独缩放控件。\n"
"[b]注æ„:[/b]如果控件节点是 [Container] 节点的å­èŠ‚ç‚¹ï¼Œå½“åœºæ™¯å®žä¾‹åŒ–æ—¶ï¼Œç¼©æ”¾å°†"
"被é‡ç½®ä¸º [code]Vector2(1, 1)[/code]。è¦åœ¨å®žä¾‹åŒ–时设置控件的缩放,使用 "
"[code]yield(get_tree(), \"idle_frame\")[/code] 等待一帧,然åŽè®¾ç½®å…¶ [member "
@@ -19882,7 +20082,7 @@ msgstr "当节点失去键盘焦点时å‘出。"
#: doc/classes/Control.xml
msgid "Emitted when the node receives an [InputEvent]."
-msgstr "在节点收到[InputEvent]æ—¶å‘出。"
+msgstr "当节点收到 [InputEvent] æ—¶å‘出。"
#: doc/classes/Control.xml
msgid "Emitted when the node's minimum size changes."
@@ -20132,23 +20332,23 @@ msgid ""
"Snap all 4 anchors to the top-left of the parent control's bounds. Use with "
"[method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„左上角。与[method set_anchors_preset]一起使"
-"用。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„左上角。与 [method set_anchors_preset] 一起"
+"使用。"
#: doc/classes/Control.xml
msgid ""
"Snap all 4 anchors to the top-right of the parent control's bounds. Use with "
"[method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„å³ä¸Šè§’。与[method set_anchors_preset]一起使"
-"用。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„å³ä¸Šè§’。与 [method set_anchors_preset] 一起"
+"使用。"
#: doc/classes/Control.xml
msgid ""
"Snap all 4 anchors to the bottom-left of the parent control's bounds. Use "
"with [method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶çš„边界的左下角。与[method set_anchors_preset]一起"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„左下角。与 [method set_anchors_preset] 一起"
"使用。"
#: doc/classes/Control.xml
@@ -20156,7 +20356,7 @@ msgid ""
"Snap all 4 anchors to the bottom-right of the parent control's bounds. Use "
"with [method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶çš„边界的å³ä¸‹è§’。与[method set_anchors_preset]一起"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„å³ä¸‹è§’。与 [method set_anchors_preset] 一起"
"使用。"
#: doc/classes/Control.xml
@@ -20164,39 +20364,39 @@ msgid ""
"Snap all 4 anchors to the center of the left edge of the parent control's "
"bounds. Use with [method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„左边缘的中心。与[method set_anchors_preset]"
-"一起使用。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„左边缘的中心。与 [method "
+"set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid ""
"Snap all 4 anchors to the center of the top edge of the parent control's "
"bounds. Use with [method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„上边缘的中心。与[method set_anchors_preset]"
-"一起使用。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„顶边缘的中心。与 [method "
+"set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid ""
"Snap all 4 anchors to the center of the right edge of the parent control's "
"bounds. Use with [method set_anchors_preset]."
msgstr ""
-"将所有4个锚点对é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œå³è¾¹ç¼˜çš„中心。与[method set_anchors_preset]一起"
-"使用。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„å³è¾¹ç¼˜çš„中心。与 [method "
+"set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid ""
"Snap all 4 anchors to the center of the bottom edge of the parent control's "
"bounds. Use with [method set_anchors_preset]."
msgstr ""
-"将所有 4 ä¸ªé”šæ•æ‰åˆ°çˆ¶æŽ§åˆ¶è¾¹ç•Œåº•部边缘的中心。使用[method "
-"set_anchors_preset]。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„底边缘的中心。与 [method "
+"set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid ""
"Snap all 4 anchors to the center of the parent control's bounds. Use with "
"[method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„中心。与[method set_anchors_preset]一起使"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶è¾¹ç•Œçš„中心。与 [method set_anchors_preset] 一起使"
"用。"
#: doc/classes/Control.xml
@@ -20205,8 +20405,8 @@ msgid ""
"becomes relative to the left edge and the top margin relative to the top "
"left corner of the node's parent. Use with [method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶çš„左边缘。左边è·ç›¸å¯¹äºŽèŠ‚ç‚¹çˆ¶èŠ‚ç‚¹çš„å·¦è¾¹ç¼˜ï¼Œè€Œä¸Šè¾¹è·"
-"相对于节点父节点的左上角。与[method set_anchors_preset]一起使用。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶çš„左边缘。左边è·ç›¸å¯¹äºŽèŠ‚ç‚¹çˆ¶èŠ‚ç‚¹çš„å·¦è¾¹ç¼˜ï¼Œè€Œä¸Šè¾¹è·"
+"相对于节点父节点的左上角。与 [method set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid ""
@@ -20215,9 +20415,9 @@ msgid ""
"edge, and the right margin relative to the top right corner of the node's "
"parent. Use with [method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶çš„顶部边缘。左侧边è·ç›¸å¯¹äºŽèŠ‚ç‚¹çˆ¶èŠ‚ç‚¹çš„å·¦ä¸Šè§’ï¼Œé¡¶éƒ¨"
-"è¾¹è·ç›¸å¯¹äºŽé¡¶éƒ¨çš„边缘,å³ä¾§è¾¹è·ç›¸å¯¹äºŽèŠ‚ç‚¹çš„çˆ¶èŠ‚ç‚¹ã€‚ä¸Ž[method "
-"set_anchors_preset]一起使用。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶çš„顶部边缘。左侧边è·ç›¸å¯¹äºŽèŠ‚ç‚¹çˆ¶èŠ‚ç‚¹çš„å·¦ä¸Šè§’ï¼Œé¡¶éƒ¨"
+"è¾¹è·ç›¸å¯¹äºŽé¡¶éƒ¨çš„边缘,å³ä¾§è¾¹è·ç›¸å¯¹äºŽèŠ‚ç‚¹çš„çˆ¶èŠ‚ç‚¹ã€‚ä¸Ž [method "
+"set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid ""
@@ -20225,9 +20425,9 @@ msgid ""
"becomes relative to the right edge and the top margin relative to the top "
"right corner of the node's parent. Use with [method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶çš„顶部边缘。左侧边è·ç›¸å¯¹äºŽèŠ‚ç‚¹çˆ¶èŠ‚ç‚¹çš„å·¦ä¸Šè§’ï¼Œé¡¶éƒ¨"
-"è¾¹è·ç›¸å¯¹äºŽé¡¶éƒ¨çš„边缘,å³ä¾§è¾¹è·ç›¸å¯¹äºŽèŠ‚ç‚¹çš„çˆ¶èŠ‚ç‚¹ã€‚ä¸Ž[method "
-"set_anchors_preset]一起使用。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶çš„顶部边缘。左侧边è·ç›¸å¯¹äºŽèŠ‚ç‚¹çˆ¶èŠ‚ç‚¹çš„å·¦ä¸Šè§’ï¼Œé¡¶éƒ¨"
+"è¾¹è·ç›¸å¯¹äºŽé¡¶éƒ¨çš„边缘,å³ä¾§è¾¹è·ç›¸å¯¹äºŽèŠ‚ç‚¹çš„çˆ¶èŠ‚ç‚¹ã€‚ä¸Ž [method "
+"set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid ""
@@ -20236,25 +20436,25 @@ msgid ""
"the bottom edge, and the right margin relative to the bottom right corner of "
"the node's parent. Use with [method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶çš„底部边缘。左侧边è·ç›¸å¯¹äºŽèŠ‚ç‚¹çˆ¶èŠ‚ç‚¹çš„å·¦ä¸‹è§’ï¼Œåº•éƒ¨"
-"è¾¹è·ç›¸å¯¹äºŽåº•部的边缘,而å³ä¾§è¾¹è·ç›¸å¯¹äºŽèŠ‚ç‚¹çš„å³ä¸‹è§’。与[method "
-"set_anchors_preset]一起使用。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶çš„底部边缘。左侧边è·ç›¸å¯¹äºŽèŠ‚ç‚¹çˆ¶èŠ‚ç‚¹çš„å·¦ä¸‹è§’ï¼Œåº•éƒ¨"
+"è¾¹è·ç›¸å¯¹äºŽåº•部的边缘,而å³ä¾§è¾¹è·ç›¸å¯¹äºŽèŠ‚ç‚¹çš„å³ä¸‹è§’。与 [method "
+"set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid ""
"Snap all 4 anchors to a vertical line that cuts the parent control in half. "
"Use with [method set_anchors_preset]."
msgstr ""
-"将所有4个锚点对é½åˆ°ä¸€æ¡åž‚直线,该垂直线将父控件切æˆä¸¤åŠã€‚与[method "
-"set_anchors_preset]一起使用。"
+"将所有 4 个锚点对é½åˆ°ä¸€æ¡åž‚直线,该垂直线将父控件切æˆä¸¤åŠã€‚与 [method "
+"set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid ""
"Snap all 4 anchors to a horizontal line that cuts the parent control in "
"half. Use with [method set_anchors_preset]."
msgstr ""
-"将所有4个锚点对é½åˆ°ä¸€æ¡æ°´å¹³çº¿ï¼Œè¯¥æ°´å¹³çº¿å°†çˆ¶æŽ§ä»¶åˆ‡æˆä¸¤åŠã€‚与[method "
-"set_anchors_preset]一起使用。"
+"将所有 4 个锚点对é½åˆ°ä¸€æ¡æ°´å¹³çº¿ï¼Œè¯¥æ°´å¹³çº¿å°†çˆ¶æŽ§ä»¶åˆ‡æˆä¸¤åŠã€‚与 [method "
+"set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid ""
@@ -20263,9 +20463,9 @@ msgid ""
"parent control. This is equivalent to the \"Full Rect\" layout option in the "
"editor. Use with [method set_anchors_preset]."
msgstr ""
-"将所有4个定ä½ç‚¹å¯¹é½åˆ°çˆ¶æŽ§ä»¶çš„å„个角。应用此预设åŽï¼Œå°†æ‰€æœ‰4个页边è·è®¾ç½®ä¸º0,"
-"[Control]将适åˆå…¶ä¸Šçº§æŽ§ä»¶ã€‚这等效于编辑器中的“全角â€å¸ƒå±€é€‰é¡¹ã€‚与[method "
-"set_anchors_preset]一起使用。"
+"将所有 4 个锚点对é½åˆ°çˆ¶æŽ§ä»¶çš„å„个角。应用此预设åŽï¼Œå°†æ‰€æœ‰ 4 个页边è·è®¾ç½®ä¸º "
+"0,[Control] 将适åˆå…¶ä¸Šçº§æŽ§ä»¶ã€‚这等效于编辑器中的“整个矩形â€å¸ƒå±€é€‰é¡¹ã€‚与 "
+"[method set_anchors_preset] 一起使用。"
#: doc/classes/Control.xml
msgid "The control will be resized to its minimum size."
@@ -20468,8 +20668,10 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
-msgstr "多边形的顶点列表。å¯ä»¥æŒ‰é¡ºæ—¶é’ˆæˆ–逆时针顺åºã€‚"
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
+msgstr ""
#: doc/classes/CPUParticles.xml
msgid "CPU-based 3D particle emitter."
@@ -20616,11 +20818,10 @@ msgstr ""
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/ParticlesMaterial.xml
-#, fuzzy
msgid ""
"Each particle's initial color will vary along this [GradientTexture] "
"(multiplied with [member color])."
-msgstr "æ¯ä¸ªç²’å­çš„颜色将éšç€è¿™ä¸ª[Gradient]å˜åŒ–,å³ä¸Ž[member color]相乘。"
+msgstr "æ¯ä¸ªç²’å­çš„颜色将沿ç€è¿™ä¸ª [Gradient] å˜åŒ–(与 [member color] 相乘)。"
#: doc/classes/CPUParticles.xml doc/classes/ParticlesMaterial.xml
msgid ""
@@ -21142,11 +21343,8 @@ msgstr ""
"[b]注æ„:[/b] 其与[Particles2D]ä¸åŒï¼Œå¯è§æ€§çŸ©å½¢æ˜¯å³æ—¶ç”Ÿæˆçš„,ä¸éœ€è¦ç”¨æˆ·é…置。"
#: doc/classes/CPUParticles2D.xml doc/classes/Particles2D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/2d/particle_systems_2d.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/2d/particle_systems_2d."
-"html"
+msgstr "$DOCS_URL/tutorials/2d/particle_systems_2d.html"
#: doc/classes/CPUParticles2D.xml
msgid ""
@@ -21499,19 +21697,19 @@ msgstr ""
#: modules/csg/doc_classes/CSGBox.xml
msgid "A CSG Box shape."
-msgstr "CSG框形状。"
+msgstr "CSG ç›’å­å½¢çŠ¶ã€‚"
#: modules/csg/doc_classes/CSGBox.xml
msgid "This node allows you to create a box for use with the CSG system."
-msgstr "该节点å…许您创建一个与 CSG 系统一起使用的盒å­ã€‚"
+msgstr "该节点å…许您使用 CSG 系统创建一个盒å­ã€‚"
#: modules/csg/doc_classes/CSGBox.xml
msgid "Depth of the box measured from the center of the box."
-msgstr "框的深度从框的中心开始测é‡ã€‚"
+msgstr "ç›’å­çš„æ·±åº¦ï¼Œä»Žç›’å­çš„中心开始测é‡ã€‚"
#: modules/csg/doc_classes/CSGBox.xml
msgid "Height of the box measured from the center of the box."
-msgstr "ç›’å­çš„高度从盒å­çš„中心开始测é‡ã€‚"
+msgstr "ç›’å­çš„高度,从盒å­çš„中心开始测é‡ã€‚"
#: modules/csg/doc_classes/CSGBox.xml
msgid "The material used to render the box."
@@ -21519,11 +21717,11 @@ msgstr "用于渲染盒å­çš„æè´¨ã€‚"
#: modules/csg/doc_classes/CSGBox.xml
msgid "Width of the box measured from the center of the box."
-msgstr "ç›’å­çš„宽度从盒å­çš„中心开始测é‡ã€‚"
+msgstr "ç›’å­çš„宽度,从盒å­çš„中心开始测é‡ã€‚"
#: modules/csg/doc_classes/CSGCombiner.xml
msgid "A CSG node that allows you to combine other CSG modifiers."
-msgstr "一个CSG节点,å…许您组åˆå…¶ä»–CSG修改器。"
+msgstr "å…许您组åˆå…¶ä»– CSG 修改器的 CSG 节点。"
#: modules/csg/doc_classes/CSGCombiner.xml
msgid ""
@@ -21544,7 +21742,7 @@ msgstr ""
#: modules/csg/doc_classes/CSGCylinder.xml
msgid "A CSG Cylinder shape."
-msgstr "CSG圆柱形状。"
+msgstr "CSG 圆柱形状。"
#: modules/csg/doc_classes/CSGCylinder.xml
msgid ""
@@ -21600,7 +21798,7 @@ msgstr ""
#: modules/csg/doc_classes/CSGMesh.xml
msgid "The [Material] used in drawing the CSG shape."
-msgstr "用于绘制CSG形状的[Material]。"
+msgstr "用于绘制 CSG 形状的 [Material]。"
#: modules/csg/doc_classes/CSGMesh.xml
msgid ""
@@ -21869,7 +22067,6 @@ msgstr ""
"å‡è¢«å¿½ç•¥ã€‚"
#: modules/csg/doc_classes/CSGShape.xml
-#, fuzzy
msgid ""
"The physics layers this area is in.\n"
"Collidable objects can exist in any of 32 different layers. These layers "
@@ -21883,25 +22080,23 @@ msgid ""
"information."
msgstr ""
"这个区域所处的物ç†å±‚。\n"
-"å¯ç¢°æ’žçš„物体å¯ä»¥å­˜åœ¨äºŽ32个ä¸åŒå±‚中的任何一个。这些层的工作就åƒä¸€ä¸ªæ ‡ç­¾ç³»ç»Ÿï¼Œ"
-"è€Œä¸æ˜¯å¯è§†åŒ–的。一个å¯ç¢°æ’žç‰©ä½“å¯ä»¥ä½¿ç”¨è¿™äº›å±‚æ¥é€‰æ‹©å®ƒå¯ä»¥ä¸Žå“ªäº›ç‰©ä½“碰撞,使用 "
-"collision_mask 属性。\n"
-"如果对象A在对象B所扫æçš„任何层中,或者对象B在对象A所扫æçš„任何层中,就会检测"
-"åˆ°æŽ¥è§¦ã€‚è¯¦è§æ–‡æ¡£ä¸­çš„[url=https://docs.godotengine.org/zh_CN/stable/tutorials/"
-"physics/physics_introduction.html#collision-layers-and-masks]碰撞层和掩ç [/"
-"url]。"
+"å¯ç¢°æ’žçš„物体å¯ä»¥å­˜åœ¨äºŽ 32 个ä¸åŒå±‚中的任何一个。这些层的工作就åƒä¸€ä¸ªæ ‡ç­¾ç³»"
+"ç»Ÿï¼Œè€Œä¸æ˜¯å¯è§†åŒ–的。一个å¯ç¢°æ’žç‰©ä½“å¯ä»¥ä½¿ç”¨è¿™äº›å±‚æ¥é€‰æ‹©å®ƒå¯ä»¥ä¸Žå“ªäº›ç‰©ä½“碰撞,"
+"使用 collision_mask 属性。\n"
+"如果对象 A 在对象 B 所扫æçš„任何层中,或者对象 B 在对象 A 所扫æçš„任何层中,"
+"就会检测到接触。详情请å‚阅文档中的[url=$DOCS_URL/tutorials/physics/"
+"physics_introduction.html#collision-layers-and-masks]《碰撞层与掩ç ã€‹[/url]。"
#: modules/csg/doc_classes/CSGShape.xml
-#, fuzzy
msgid ""
"The physics layers this CSG shape scans for collisions. See [url=$DOCS_URL/"
"tutorials/physics/physics_introduction.html#collision-layers-and-"
"masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""
-"æ­¤ CSG å½¢çŠ¶å°†è¦æ‰«æç¢°æ’žçš„物ç†å±‚。有关更多信æ¯ï¼Œè¯·å‚阅文档中的 [url=https://"
-"docs.godotengine.org/zh_CN/stable/tutorials/physics/physics_introduction."
-"html#collision-layers-and-masks]碰撞层和掩ç [/url]。"
+"æ­¤ CSG å½¢çŠ¶å°†è¦æ‰«æç¢°æ’žçš„物ç†å±‚。详情请å‚阅文档中的[url=$DOCS_URL/tutorials/"
+"physics/physics_introduction.html#collision-layers-and-masks]《碰撞层与掩ç ã€‹"
+"[/url]。"
#: modules/csg/doc_classes/CSGShape.xml
msgid ""
@@ -22032,10 +22227,8 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/getting_started/scripting/c_sharp/"
-"index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
+msgstr "$DOCS_URL/tutorials/scripting/index.html"
#: modules/mono/doc_classes/CSharpScript.xml
#: modules/gdnative/doc_classes/PluginScript.xml
@@ -22189,7 +22382,7 @@ msgstr "沿 X è½´æ’入的é¢å¤–边缘环的数é‡ã€‚"
#: doc/classes/CullInstance.xml
msgid "Parent of all nodes that can be culled by the Portal system."
-msgstr "所有å¯ä»¥è¢«Portalå…¥å£ç³»ç»Ÿå‰”除的节点的父节点。"
+msgstr "所有å¯ä»¥è¢« Portal å…¥å£ç³»ç»Ÿå‰”除的节点的父节点。"
#: doc/classes/CullInstance.xml
msgid ""
@@ -22212,18 +22405,18 @@ msgid ""
"Objects that are not [code]Static[/code] or [code]Dynamic[/code] can be "
"freely created and deleted during the lifetime of the game level."
msgstr ""
-"为å¯ä»¥è¢«[Portal]系统剔除的节点æä¾›é€šç”¨åŠŸèƒ½ã€‚\n"
-"[code]Static[/code]å’Œ[code]Dynamic[/code]对象是系统中最有效的管ç†å¯¹è±¡ï¼Œä½†æœ‰ä¸€"
-"些注æ„事项。当使用[RoomManager] [code]rooms_convert[/code]函数转æ¢[Room]时,"
-"它们最åˆåº”该存在,并且其寿命应该与游æˆçº§åˆ«ç›¸åŒï¼Œä¹Ÿå°±æ˜¯è¯´ï¼Œåœ¨ä½ è°ƒç”¨"
-"[RoomManager]çš„[code]rooms_clear[/code]之å‰ä¸€ç›´å­˜åœ¨ã€‚虽然你ä¸åº”该在游æˆè¿‡ç¨‹ä¸­"
-"创建或删除这些对象,但å¯ä»¥ç”¨æ ‡å‡†çš„[code]hide[/code]å’Œ[code]show[/code]命令管"
-"ç†å®ƒä»¬çš„å¯è§æ€§ã€‚\n"
-"å¦ä¸€æ–¹é¢ï¼Œ[code]Roaming[/code]对象需è¦é¢å¤–çš„å¤„ç†æ¥è·Ÿè¸ªå®ƒä»¬åœ¨å“ªä¸ª[Room]中。这"
-"使它们能够有效地被剔除,无论其ä½ç½®ã€‚\n"
-"[code]Global[/code]对象ä¸è¢«å…¥å£ç³»ç»Ÿå‰”除,åªä½¿ç”¨è§†å›¾è§†é”¥å‰”除。\n"
-"䏿˜¯[code]Static[/code]或[code]Dynamic[/code]的对象å¯ä»¥åœ¨æ¸¸æˆå…³å¡çš„生命周期内"
-"自由创建和删除。"
+"为å¯ä»¥è¢« [Portal] 系统剔除的节点æä¾›é€šç”¨åŠŸèƒ½ã€‚\n"
+"[code]Static[/code] å’Œ [code]Dynamic[/code] 对象是系统中最有效的管ç†å¯¹è±¡ï¼Œä½†"
+"有一些注æ„事项。当使用 [RoomManager] çš„ [code]rooms_convert[/code] å‡½æ•°è½¬æ¢ "
+"[Room] 时,它们最åˆåº”该存在,并且其寿命应该与游æˆçº§åˆ«ç›¸åŒï¼Œä¹Ÿå°±æ˜¯è¯´ï¼Œåœ¨ä½ è°ƒ"
+"用 [RoomManager] çš„ [code]rooms_clear[/code] 之å‰ä¸€ç›´å­˜åœ¨ã€‚虽然你ä¸åº”该在游æˆ"
+"过程中创建或删除这些对象,但å¯ä»¥ç”¨æ ‡å‡†çš„ [code]hide[/code] å’Œ [code]show[/"
+"code] 命令管ç†å®ƒä»¬çš„å¯è§æ€§ã€‚\n"
+"å¦ä¸€æ–¹é¢ï¼Œ[code]Roaming[/code] 对象需è¦é¢å¤–çš„å¤„ç†æ¥è·Ÿè¸ªå®ƒä»¬åœ¨å“ªä¸ª [Room] 中。"
+"这使它们能够有效地被剔除,无论其ä½ç½®ã€‚\n"
+"[code]Global[/code] 对象ä¸è¢«å…¥å£ç³»ç»Ÿå‰”除,åªä½¿ç”¨è§†å›¾è§†é”¥å‰”除。\n"
+"䏿˜¯ [code]Static[/code] 或 [code]Dynamic[/code] 的对象å¯ä»¥åœ¨æ¸¸æˆå…³å¡çš„生命周"
+"期内自由创建和删除。"
#: doc/classes/CullInstance.xml
msgid ""
@@ -22253,14 +22446,15 @@ msgid ""
msgstr ""
"当没有为 [Room] æ˜Žç¡®æŒ‡å®šæ‰‹åŠ¨è¾¹ç•Œæ—¶ï¼Œå‡¸å½¢è¾¹ç•Œå°†æ ¹æ®æˆ¿é—´å†…对象的几何形状进行估"
"算。此设置确定对象的几何形状是å¦åŒ…å«åœ¨æ­¤æˆ¿é—´è¾¹ç•Œä¼°ç®—之中。\n"
-"[b]注æ„:[/b]此设置仅在对象设置为[code]PORTAL_MODE_STATIC[/code]或"
-"[code]PORTAL_MODE_DYNAMIC[/code]时有相,并且适用于[Portal]。"
+"[b]注æ„:[/b]此设置仅在对象设置为 [code]PORTAL_MODE_STATIC[/code] 或 "
+"[code]PORTAL_MODE_DYNAMIC[/code] 时有相,并且适用于 [Portal]。"
#: doc/classes/CullInstance.xml
msgid ""
"When using [Room]s and [Portal]s, this specifies how the [CullInstance] is "
"processed in the system."
-msgstr "当使用[Room]å’Œ[Portal]时,这规定了[CullInstance]åœ¨ç³»ç»Ÿä¸­çš„å¤„ç†æ–¹å¼ã€‚"
+msgstr ""
+"当使用 [Room] å’Œ [Portal] 时,这规定了 [CullInstance] åœ¨ç³»ç»Ÿä¸­çš„å¤„ç†æ–¹å¼ã€‚"
#: doc/classes/CullInstance.xml
msgid ""
@@ -22272,10 +22466,10 @@ msgid ""
"data has been invalidated. You will need to reconvert the rooms using the "
"[RoomManager] to activate the system again."
msgstr ""
-"用于[b]ä¸ä¼šç§»åЍ[/b]çš„[Room]内的实例--例如,墙å£ã€åœ°æ¿ã€‚\n"
-"[b]注æ„:[/b] 如果你在房间图形加载å³è½¬æ¢çš„æ—¶å€™ï¼Œè¯•图删除一个"
-"[code]PORTAL_MODE_STATIC[/code]实例,它将å¸è½½æˆ¿é—´å›¾å½¢å¹¶åœç”¨å…¥å£å‰”除。这是因为"
-"[b]房间图形[/b]的数æ®å·²ç»å¤±æ•ˆã€‚你将需è¦ä½¿ç”¨[RoomManager]釿–°è½¬æ¢æˆ¿é—´ä»¥å†æ¬¡æ¿€"
+"用于[b]ä¸ä¼šç§»åЍ[/b]çš„ [Room] 内的实例——如墙å£ã€åœ°æ¿ã€‚\n"
+"[b]注æ„:[/b]如果你在房间图加载(转æ¢ï¼‰çš„æ—¶å€™ï¼Œè¯•图删除一个 "
+"[code]PORTAL_MODE_STATIC[/code] 实例,它将å¸è½½æˆ¿é—´å›¾å¹¶åœç”¨å…¥å£å‰”除。这是因为"
+"[b]房间图[/b]的数æ®å·²ç»å¤±æ•ˆã€‚你将需è¦ä½¿ç”¨ [RoomManager] 釿–°è½¬æ¢æˆ¿é—´ä»¥å†æ¬¡æ¿€"
"活系统。"
#: doc/classes/CullInstance.xml
@@ -22288,10 +22482,10 @@ msgid ""
"data has been invalidated. You will need to reconvert the rooms using the "
"[RoomManager] to activate the system again."
msgstr ""
-"用于房间内会移动但 [b]ä¸ä¼šæ”¹å˜æˆ¿é—´[/b] 的实例 - 例如移动平å°ã€‚\n"
-"[b]注æ„:[/b] 如果在加载å³è½¬æ¢æˆ¿é—´å›¾å½¢æ—¶å°è¯•删除 [code]PORTAL_MODE_DYNAMIC[/"
-"code] 实例,它将å¸è½½æˆ¿é—´å›¾å½¢å¹¶åœç”¨å…¥å£å‰”除。这是因为[b]房间图形[/b]æ•°æ®å·²ç»å¤±"
-"效。将需è¦ä½¿ç”¨ [RoomManager] 釿–°è½¬æ¢æˆ¿é—´ä»¥å†æ¬¡æ¿€æ´»ç³»ç»Ÿã€‚"
+"用于房间内会移动但[b]ä¸ä¼šæ”¹å˜æˆ¿é—´[/b]的实例——例如移动平å°ã€‚\n"
+"[b]注æ„:[/b]如果在加载å³è½¬æ¢æˆ¿é—´å›¾æ—¶å°è¯•删除 [code]PORTAL_MODE_DYNAMIC[/"
+"code] 实例,它将å¸è½½æˆ¿é—´å›¾å¹¶åœç”¨å…¥å£å‰”除。这是因为[b]房间图[/b]æ•°æ®å·²ç»å¤±æ•ˆã€‚"
+"将需è¦ä½¿ç”¨ [RoomManager] 釿–°è½¬æ¢æˆ¿é—´ä»¥å†æ¬¡æ¿€æ´»ç³»ç»Ÿã€‚"
#: doc/classes/CullInstance.xml
msgid "Use for instances that will move [b]between[/b] [Room]s - e.g. players."
@@ -23181,11 +23375,8 @@ msgstr ""
"一个数值。"
#: doc/classes/Dictionary.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/scripting/gdscript/gdscript_basics.html#dictionary"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/scripting/gdscript/"
-"gdscript_basics.html#dictionary"
+msgstr "$DOCS_URL/tutorials/scripting/gdscript/gdscript_basics.html#dictionary"
#: doc/classes/Dictionary.xml
msgid "Clear the dictionary, removing all key/value pairs."
@@ -23211,9 +23402,9 @@ msgid ""
"[b]Note:[/b] Don't erase elements while iterating over the dictionary. You "
"can iterate over the [method keys] array instead."
msgstr ""
-"便®key擦除字典的键值对。如果指定的 key 存在于字典中,返回 [code]true[/"
-"code] ,å¦åˆ™è¿”回 [code]false[/code] 。\n"
-"[b]注æ„:[/b] 在迭代字典时ä¸è¦æ“¦é™¤å…ƒç´ ã€‚å¯ä»¥è¿­ä»£ [method keys] 数组。"
+"便®é”®æ“¦é™¤å­—典的键值对。如果指定的键存在于字典中,返回 [code]true[/code] ,å¦"
+"则返回 [code]false[/code] 。\n"
+"[b]注æ„:[/b]在迭代字典时ä¸è¦æ“¦é™¤å…ƒç´ ã€‚å¯ä»¥è¿­ä»£ [method keys] 数组。"
#: doc/classes/Dictionary.xml
msgid ""
@@ -23238,15 +23429,15 @@ msgid ""
"code] as long as the key exists, even if the associated value is [code]null[/"
"code]."
msgstr ""
-"如果字典有一个给定的键,返回[code]true[/code]。\n"
-"[b]注:[/b] 这相当于使用[code]in[/code]è¿ç®—符,如下所示。\n"
+"如果字典有一个给定的键,返回 [code]true[/code]。\n"
+"[b]注æ„:[/b]这相当于使用 [code]in[/code] è¿ç®—符,如下所示:\n"
"[codeblock]\n"
-"# Will evaluate to `true`.\n"
+"# 估值为 `true`。\n"
"if \"godot\" in {\"godot\": \"engine\"}:\n"
" pass\n"
"[/codeblock]\n"
-"åªè¦é”®å­˜åœ¨ï¼Œå³ä½¿ç›¸å…³çš„值是[code]null[/code],这个方法(就åƒ[code]in[/code]è¿"
-"算符一样)也会评估为[code]true[/code]。"
+"åªè¦é”®å­˜åœ¨ï¼Œå³ä½¿ç›¸å…³çš„值是 [code]null[/code]ï¼Œè¿™ä¸ªæ–¹æ³•ï¼ˆå°±åƒ [code]in[/code] "
+"è¿ç®—符一样)也会评估为 [code]true[/code]。"
#: doc/classes/Dictionary.xml
msgid ""
@@ -23304,15 +23495,12 @@ msgid ""
msgstr ""
"å¹³è¡Œå…‰æ˜¯ä¸€ç§ [Light] 类型的节点,它å¯ä»¥æ¨¡æ‹Ÿå‡ºè¦†ç›–整个场景的无é™å¤šçš„平行光线。"
"å¯ä»¥ç”¨ä½œç¦»åœºæ™¯å¾ˆè¿œã€å…·æœ‰å¼ºçƒˆå¼ºåº¦çš„ç¯å…‰ï¼Œæ¨¡æ‹Ÿå¤ªé˜³å…‰æˆ–月光。DirectionalLight å˜"
-"æ¢çš„ä¸–ç•Œç©ºé—´åæ ‡ï¼ˆåŽŸç‚¹ï¼‰ä¼šè¢«å¿½ç•¥ã€‚åªæœ‰åŸºç‚¹ä¼šè¢«ç”¨æ¥ç¡®å®šå…‰çº¿æ–¹å‘。"
+"æ¢çš„ä¸–ç•Œç©ºé—´åæ ‡ï¼ˆåŽŸç‚¹ï¼‰ä¼šè¢«å¿½ç•¥ã€‚åªä¼šç”¨åŸºæ¥ç¡®å®šå…‰çº¿çš„æ–¹å‘。"
#: doc/classes/DirectionalLight.xml doc/classes/Light.xml
#: doc/classes/OmniLight.xml doc/classes/SpotLight.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/lights_and_shadows.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/lights_and_shadows."
-"html"
+msgstr "$DOCS_URL/tutorials/3d/lights_and_shadows.html"
#: doc/classes/DirectionalLight.xml
msgid ""
@@ -23480,10 +23668,8 @@ msgstr ""
"[/codeblock]"
#: doc/classes/Directory.xml doc/classes/File.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/scripting/filesystem.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/scripting/filesystem.html"
+msgstr "$DOCS_URL/tutorials/scripting/filesystem.html"
#: doc/classes/Directory.xml
msgid ""
@@ -23550,7 +23736,6 @@ msgstr ""
"动器的å称。"
#: doc/classes/Directory.xml
-#, fuzzy
msgid ""
"On Windows, returns the name of the drive (partition) passed as an argument "
"(e.g. [code]C:[/code]).\n"
@@ -23560,11 +23745,13 @@ msgid ""
"On other platforms, or if the requested drive does not exist, the method "
"returns an empty String."
msgstr ""
-"在Windowsä¸Šï¼Œè¿”å›žä½œä¸ºå‚æ•°ä¼ é€’的驱动器å³åˆ†åŒºçš„å称,例如,[code]C:[/code]。在"
-"å…¶ä»–å¹³å°ä¸Šï¼Œå¦‚果请求的驱动器ä¸å­˜åœ¨ï¼Œè¯¥æ–¹æ³•返回一个空的字符串。"
+"在 Windows ä¸Šï¼Œè¿”å›žä½œä¸ºå‚æ•°ä¼ é€’的驱动器(分区)的å称(例如 [code]C:[/"
+"code])。\n"
+"在 macOS ä¸Šï¼Œè¿”å›žä½œä¸ºå‚æ•°ä¼ é€’的挂载å·çš„路径。\n"
+"在 Linux ä¸Šï¼Œè¿”å›žä½œä¸ºå‚æ•°ä¼ é€’çš„æŒ‚è½½å·æˆ– GTK 3 书签的路径。\n"
+"在其他平å°ä¸Šï¼Œæˆ–者当请求的驱动器ä¸å­˜åœ¨æ—¶ï¼Œè¯¥æ–¹æ³•会返回空的 String。"
#: doc/classes/Directory.xml
-#, fuzzy
msgid ""
"On Windows, returns the number of drives (partitions) mounted on the current "
"filesystem.\n"
@@ -23572,8 +23759,10 @@ msgid ""
"On Linux, returns the number of mounted volumes and GTK 3 bookmarks.\n"
"On other platforms, the method returns 0."
msgstr ""
-"在Windowsä¸Šï¼Œè¿”å›žæŒ‚è½½åœ¨å½“å‰æ–‡ä»¶ç³»ç»Ÿä¸Šçš„驱动器(分区)数é‡ã€‚在其他平å°ä¸Šï¼Œè¯¥æ–¹"
-"法返回0。"
+"在 Windows ä¸Šï¼Œè¿”å›žæŒ‚è½½åœ¨å½“å‰æ–‡ä»¶ç³»ç»Ÿä¸Šçš„驱动器(分区)数é‡ã€‚\n"
+"在 macOS 上,返回挂载å·çš„æ•°é‡ã€‚\n"
+"在 Linux 上,返回挂载å·ä¸Ž GTK 3 书签的数é‡ã€‚\n"
+"在其他平å°ä¸Šï¼Œè¯¥æ–¹æ³•返回 0。"
#: doc/classes/Directory.xml
msgid ""
@@ -23836,10 +24025,11 @@ msgid ""
"[constant PacketPeerDTLS.STATUS_HANDSHAKING], as it is normal that 50% of "
"the new connections will be invalid due to cookie exchange."
msgstr ""
-"å°è¯•与给定的[code]udp_peer[/code]å¯åЍDTLSæ¡æ‰‹ï¼Œè¯¥peer必须已ç»è¿žæŽ¥ï¼Œå‚阅"
-"[method PacketPeerUDP.connect_to_host]。\n"
-"[b]注æ„:[/b] 你必须检查返回PacketPeerUDPçš„çŠ¶æ€æ˜¯å¦ä¸º[constant PacketPeerDTLS."
-"STATUS_HANDSHAKING],因为正常情况下,50%的新连接会因为cookie交æ¢è€Œæ— æ•ˆã€‚"
+"å°è¯•与给定的 [code]udp_peer[/code] å¯åЍ DTLS æ¡æ‰‹ï¼Œè¯¥ peer 必须已ç»è¿žæŽ¥ï¼Œè¯·å‚"
+"阅 [method PacketPeerUDP.connect_to_host]。\n"
+"[b]注æ„:[/b]你必须检查返回 PacketPeerUDP çš„çŠ¶æ€æ˜¯å¦ä¸º [constant "
+"PacketPeerDTLS.STATUS_HANDSHAKING],因为正常情况下,50% 的新连接会因为 "
+"cookie 交æ¢è€Œæ— æ•ˆã€‚"
#: doc/classes/DynamicFont.xml
msgid "DynamicFont renders vector font files at runtime."
@@ -24050,6 +24240,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr "FreeType 使用的字体æç¤ºæ¨¡å¼ã€‚å‚阅 [enum Hinting] 选项。"
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr "ç¦ç”¨å­—体æç¤ºï¼ˆæ›´å¹³æ»‘但ä¸é‚£ä¹ˆæ¸…晰)。"
@@ -24066,12 +24263,15 @@ msgid "A script that is executed when exporting the project."
msgstr "在导出项目时执行的脚本。"
#: doc/classes/EditorExportPlugin.xml
+#, fuzzy
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
"æ¯å½“用户导出项目时,会自动激活编辑器的导出æ’件。其最常用在确定哪些文件被包å«"
"到导出的项目中。对于æ¯ä¸ªæ’件,在导出过程开始时调用[method _export_begin],然"
@@ -24173,9 +24373,20 @@ msgstr "从给定的[code]path[/code]æ·»åŠ é™æ€åº“到iOS项目。"
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
-msgstr "添加指定 [code]tags[/code] 和目标 [code]path[/code] 的共享对象。"
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
+msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
@@ -24359,7 +24570,7 @@ msgstr "表示[enum Feature]枚举的大å°ã€‚"
#: doc/classes/EditorFileDialog.xml
msgid "A modified version of [FileDialog] used by the editor."
-msgstr "编辑器使用的[FileDialog]的修改版。"
+msgstr "编辑器使用的 [FileDialog] 的修改版。"
#: doc/classes/EditorFileDialog.xml
msgid ""
@@ -24517,9 +24728,9 @@ msgid ""
"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
"the singleton using [method EditorInterface.get_resource_filesystem]."
msgstr ""
-"这个对象(objectï¼‰å‚¨å­˜ç€æ–‡ä»¶ç³»ç»Ÿé‡Œæ‰€æœ‰çš„资æºçš„ä¿¡æ¯ï¼Œç±»åž‹å’Œå…¶ä»–。\n"
-"[b]Note:[/b] 这个类(class)ä¸åº”该被直接实例化。应该使用下列方法(method)"
-"[method EditorInterface.get_resource_filesystem]æ¥è¯»å–å•例(singleton)。"
+"è¿™ä¸ªå¯¹è±¡å‚¨å­˜ç€æ–‡ä»¶ç³»ç»Ÿé‡Œæ‰€æœ‰çš„资æºçš„ä¿¡æ¯ï¼Œç±»åž‹å’Œå…¶ä»–。\n"
+"[b]注æ„:[/b]这个类ä¸åº”该被直接实例化。应该使用下列方法 [method "
+"EditorInterface.get_resource_filesystem] æ¥è¯»å–å•例。"
#: doc/classes/EditorFileSystem.xml
msgid ""
@@ -24686,11 +24897,11 @@ msgstr ""
"æºç±»åž‹å¯¼å…¥ã€‚"
#: doc/classes/EditorImportPlugin.xml
+#, fuzzy
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -24739,7 +24950,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
"EditorImportPluginsæä¾›äº†ä¸€ç§æ‰©å±•编辑器资æºå¯¼å…¥åŠŸèƒ½çš„æ–¹æ³•ã€‚ä½¿ç”¨å®ƒä»¬æ¥å¯¼å…¥è‡ªå®š"
"义文件中的资æºï¼Œæˆ–æˆä¸ºç¼–辑器现有导入器的替代å“。用[method EditorPlugin."
@@ -24793,11 +25006,8 @@ msgstr ""
"[/codeblock]"
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/plugins/editor/import_plugins.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/plugins/editor/"
-"import_plugins.html"
+msgstr "$DOCS_URL/tutorials/plugins/editor/import_plugins.html"
#: doc/classes/EditorImportPlugin.xml
msgid ""
@@ -24910,8 +25120,8 @@ msgid ""
"Gets the name to display in the import window. You should choose this name "
"as a continuation to \"Import as\", e.g. \"Import as Special Mesh\"."
msgstr ""
-"获å–在导入窗å£ä¸­æ˜¾ç¤ºçš„å称。你应该选择这个å字作为 \"Import as\" 的延续,例"
-"如 \"Import as Special Mesh\"。"
+"获å–在导入窗å£ä¸­æ˜¾ç¤ºçš„å称。你应该选择这个å字作为“导入为â€çš„延续,例如“导入"
+"为 Special Meshâ€ã€‚"
#: doc/classes/EditorImportPlugin.xml
msgid ""
@@ -24941,11 +25151,11 @@ msgid ""
"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
"the singleton using [method EditorInterface.get_inspector]."
msgstr ""
-"编辑器检查器默认ä½äºŽç¼–辑器的å³ä¾§ã€‚用æ¥ç¼–辑所选节点的属性。例如,你å¯ä»¥é€‰æ‹©ä¸€"
-"个节点,如[Sprite],然åŽé€šè¿‡æ£€æŸ¥å™¨å·¥å…·ç¼–辑其transformå˜æ¢ã€‚编辑器检查器是游æˆ"
-"å¼€å‘工作æµç¨‹ä¸­çš„一个é‡è¦å·¥å…·ã€‚\n"
-"[b]注æ„:[/b] 这个类ä¸åº”该被直接实例化。而是,使用[method EditorInterface."
-"get_inspector]访问å•例。"
+"编辑器检查器默认ä½äºŽç¼–辑器的å³ä¾§ï¼Œç”¨æ¥ç¼–辑所选节点的属性。例如,你å¯ä»¥é€‰æ‹©ä¸€"
+"个节点,如 [Sprite],然åŽé€šè¿‡æ£€æŸ¥å™¨å·¥å…·ç¼–è¾‘å…¶å˜æ¢ã€‚编辑器检查器是游æˆå¼€å‘工作"
+"æµç¨‹ä¸­çš„一个é‡è¦å·¥å…·ã€‚\n"
+"[b]注æ„:[/b]这个类ä¸åº”该被直接实例化。请使用 [method EditorInterface."
+"get_inspector] 访问å•例代替。"
#: doc/classes/EditorInspector.xml
msgid ""
@@ -24956,9 +25166,10 @@ msgid ""
"(By default, this interval is set to 0.3 seconds.)"
msgstr ""
"釿–°åˆ·æ–°æ£€æŸ¥å™¨ã€‚\n"
-"[b]注æ„:[/b]为了节çœCPU资æºï¼Œå¦‚æžœ[code]docks/property_editor/"
-"auto_refresh_interval[/code]编辑器设置中指定的时间在上一次调用本方法åŽè¿˜æ²¡æœ‰"
-"过去,那么调用本方法将ä¸åšä»»ä½•æ“作。(默认情况下,这个时间间隔被设置为0.3ç§’)"
+"[b]注æ„:[/b]ä¸ºäº†èŠ‚çœ CPU 资æºï¼Œå¦‚æžœ [code]docks/property_editor/"
+"auto_refresh_interval[/code] 编辑器设置中指定的时间在上一次调用本方法åŽè¿˜æ²¡æœ‰"
+"过去,那么调用本方法将ä¸åšä»»ä½•æ“作。(默认情况下,这个时间间隔被设置为 0.3 "
+"秒。)"
#: doc/classes/EditorInspector.xml
msgid ""
@@ -25010,9 +25221,10 @@ msgid "Plugin for adding custom property editors on inspector."
msgstr "用于在检查器上添加自定义属性编辑器的æ’件。"
#: doc/classes/EditorInspectorPlugin.xml
+#, fuzzy
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -25021,7 +25233,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
"该æ’ä»¶å…许å‘[EditorInspector]添加自定义属性编辑器。\n"
"æ’件通过[method EditorPlugin.add_inspector_plugin]注册。\n"
@@ -25034,11 +25248,8 @@ msgstr ""
"在这些调用中,æ¯ä¸€ä¸ªéƒ½å¯ä»¥è°ƒç”¨ \"add\"函数。"
#: doc/classes/EditorInspectorPlugin.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/plugins/editor/inspector_plugins.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/plugins/editor/"
-"inspector_plugins.html"
+msgstr "$DOCS_URL/tutorials/plugins/editor/inspector_plugins.html"
#: doc/classes/EditorInspectorPlugin.xml
msgid "Adds a custom control, which is not necessarily a property editor."
@@ -25160,10 +25371,10 @@ msgid ""
"code] and [code]interface/editor/custom_display_scale[/code] editor "
"settings. Editor must be restarted for changes to be properly applied."
msgstr ""
-"返回编辑器用户UI的实际比例,[code]1.0[/code]比例为100%。这å¯ä»¥ç”¨æ¥è°ƒæ•´ç”±æ’ä»¶"
-"添加的用户UIçš„ä½ç½®å’Œå°ºå¯¸ã€‚\n"
-"[b]注æ„:[/b]这个值是通过[code]interface/editor/display_scale[/code]å’Œ"
-"[code]interface/editor/custom_display_scale[/code]编辑器设置项æ¥è®¾ç½®ã€‚编辑器"
+"返回编辑器用户 UI 的实际比例,[code]1.0[/code] 比例为 100%。这å¯ä»¥ç”¨æ¥è°ƒæ•´ç”±"
+"æ’件添加的用户 UI çš„ä½ç½®å’Œå°ºå¯¸ã€‚\n"
+"[b]注æ„:[/b]这个值是通过 [code]interface/editor/display_scale[/code] å’Œ "
+"[code]interface/editor/custom_display_scale[/code] 编辑器设置项æ¥è®¾ç½®ã€‚编辑器"
"å¿…é¡»é‡æ–°å¯åЍæ‰èƒ½æ­£ç¡®åº”用这些å˜åŒ–。"
#: doc/classes/EditorInterface.xml
@@ -25179,9 +25390,9 @@ msgid ""
"editor useless and may cause a crash."
msgstr ""
"返回主编辑器控件。将其作为主å±å¹•的父控件。\n"
-"[b]注æ„:[/b] è¿™å°†è¿”å›žåŒ…å«æ•´ä¸ªç¼–è¾‘å™¨çš„ä¸»ç¼–è¾‘å™¨æŽ§ä»¶ï¼Œè€Œä¸æ˜¯å…·ä½“çš„ 2D或 3D视"
+"[b]注æ„:[/b]è¿™å°†è¿”å›žåŒ…å«æ•´ä¸ªç¼–è¾‘å™¨çš„ä¸»ç¼–è¾‘å™¨æŽ§ä»¶ï¼Œè€Œä¸æ˜¯å…·ä½“çš„ 2D或 3D 视"
"窗。\n"
-"[b]警告:[/b] 删除和释放这个节点将使编辑器的一部分失去作用,并å¯èƒ½å¯¼è‡´å´©æºƒã€‚"
+"[b]警告:[/b]删除和释放这个节点将使编辑器的一部分失去作用,并å¯èƒ½å¯¼è‡´å´©æºƒã€‚"
#: doc/classes/EditorInterface.xml
msgid ""
@@ -25337,8 +25548,8 @@ msgid ""
"If [code]true[/code], enables distraction-free mode which hides side docks "
"to increase the space available for the main view."
msgstr ""
-"如果[code]true[/code],å¯ç”¨æ— åˆ†å¿ƒæ¨¡å¼ï¼Œè¯¥æ¨¡å¼éšè—了侧边底座,以增加主视图的å¯"
-"用空间。"
+"为 [code]true[/code] æ—¶å°†å¯ç”¨ä¸“注模å¼ï¼Œè¯¥æ¨¡å¼ä¼šéšè—ä¾§è¾¹é¢æ¿ï¼Œå¢žåŠ ä¸»è§†å›¾çš„å¯ç”¨"
+"空间。"
#: doc/classes/EditorPlugin.xml
msgid "Used by the editor to extend its functionality."
@@ -25355,10 +25566,8 @@ msgstr ""
"件和导出æ’件。å¦è¯·å‚阅[EditorScript]å‘编辑器添加函数。"
#: doc/classes/EditorPlugin.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/plugins/editor/index.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/plugins/editor/index.html"
+msgstr "$DOCS_URL/tutorials/plugins/editor/index.html"
#: doc/classes/EditorPlugin.xml
msgid ""
@@ -25834,8 +26043,8 @@ msgid ""
"editor useless and may cause a crash."
msgstr ""
"获å–ç”¨äºŽåˆ›å»ºè„šæœ¬çš„ç¼–è¾‘å™¨å¯¹è¯æ¡†ã€‚\n"
-"[b]注æ„:[/b] 用户å¯ä»¥åœ¨ä½¿ç”¨å‰å¯¹å…¶è¿›è¡Œé…置。\n"
-"[b]警告:[/b] 移除和释放这个节点将使编辑器的一部分失去作用,并å¯èƒ½å¯¼è‡´å´©æºƒã€‚"
+"[b]注æ„:[/b]用户å¯ä»¥åœ¨ä½¿ç”¨å‰å¯¹å…¶è¿›è¡Œé…置。\n"
+"[b]警告:[/b]移除和释放这个节点将使编辑器的一部分失去作用,并å¯èƒ½å¯¼è‡´å´©æºƒã€‚"
#: doc/classes/EditorPlugin.xml
msgid ""
@@ -26173,6 +26382,10 @@ msgid ""
"instantiated and can come from an ancestor scene in the inheritance/"
"instancing chain, a script or a builtin class."
msgstr ""
+"如果想è¦å¯¹æŸä¸ªå±žæ€§è¿›è¡Œæ ‡è®°ï¼ˆæˆ–è€…å–æ¶ˆæ ‡è®°ï¼‰ï¼Œè®©å®ƒæ— è®ºæ˜¯å¦ä¸Žé»˜è®¤å€¼ç›¸ç­‰éƒ½è¿›è¡Œä¿"
+"å­˜ï¼Œè¯·è§¦å‘æ­¤ä¿¡å·ã€‚\n"
+"默认值指节点刚刚实例化åŽå±žæ€§çš„å–值,å¯èƒ½æ¥è‡ªç»§æ‰¿/实例化链上的祖先场景,也å¯èƒ½"
+"æ¥è‡ªè„šæœ¬æˆ–å†…ç½®ç±»ã€‚"
#: doc/classes/EditorProperty.xml
msgid ""
@@ -26424,6 +26637,14 @@ msgstr "如果你的生æˆå™¨æ”¯æŒç±»åž‹[code]type[/code]的资æºï¼Œè¿”回[cod
msgid "Imports scenes from third-parties' 3D files."
msgstr "从第三方的3D文件中导入场景。"
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr "FBX 3D资产导入器。"
@@ -26534,11 +26755,9 @@ msgstr ""
"[/codeblock]"
#: doc/classes/EditorScenePostImport.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/assets_pipeline/importing_scenes.html#custom-script"
msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/assets_pipeline/"
-"importing_scenes.html#custom-script"
+"$DOCS_URL/tutorials/assets_pipeline/importing_scenes.html#custom-script"
#: doc/classes/EditorScenePostImport.xml
msgid ""
@@ -26721,25 +26940,24 @@ msgid ""
"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
"the singleton using [method EditorInterface.get_editor_settings]."
msgstr ""
-"ä¿å­˜ä¸Žé¡¹ç›®æ— å…³çš„编辑器设置的对象。这些设置通常在 [b]编辑器 > 编辑器设置[/b] "
-"èœå•中å¯è§ã€‚\n"
-"属性å使用斜线分隔符æ¥åŒºåˆ†éƒ¨åˆ†ã€‚设置值å¯ä»¥æ˜¯ä»»ä½• [Variant] 类型。建议使用"
-"[code]snake_case[/code]进行编辑器设置,以便与Godotç¼–è¾‘å™¨æœ¬èº«ä¿æŒä¸€è‡´ã€‚\n"
+"ä¿å­˜ä¸Žé¡¹ç›®æ— å…³çš„编辑器设置的对象。这些设置通常在[b]编辑器 > 编辑器设置[/b]èœ"
+"å•中å¯è§ã€‚\n"
+"属性å使用斜线分隔符æ¥åŒºåˆ†éƒ¨åˆ†ã€‚设置值å¯ä»¥æ˜¯ä»»ä½• [Variant] 类型。建议使用 "
+"[code]snake_case[/code] 进行编辑器设置,以便与 Godot ç¼–è¾‘å™¨æœ¬èº«ä¿æŒä¸€è‡´ã€‚\n"
"访问设置å¯ä»¥ä½¿ç”¨ä»¥ä¸‹æ–¹æ³•,例如。\n"
"[codeblock]\n"
-"# `settings.set(\"some/property\", value)` also works as this class "
-"overrides `_set()` internally.\n"
+"# `settings.set(\"some/property\", value)` 也行,因为这个类在内部覆盖了 "
+"`_set()`。\n"
"settings.set_setting(\"some/property\",value)\n"
"\n"
-"# `settings.get(\"some/property\", value)` also works as this class "
-"overrides `_get()` internally.\n"
+"# `settings.get(\"some/property\", value)` 也行,因为这个类在内部覆盖了 "
+"`_get()`。\n"
"settings.get_setting(\"some/property\")\n"
"\n"
"var list_of_settings = settings.get_property_list()\n"
"[/codeblock]\n"
-"[b]注æ„:[/b]这个类ä¸åº”该直接实例化,而是使用[method EditorInterface."
-"get_editor_settings]访问å•å­ã€‚相å,使用[method EditorInterface."
-"get_editor_settings]访问å•例。"
+"[b]注æ„:[/b]这个类ä¸åº”该直接实例化。请æ¢ç”¨ [method EditorInterface."
+"get_editor_settings] 访问å•例。"
#: doc/classes/EditorSettings.xml
msgid ""
@@ -27073,22 +27291,22 @@ msgid "Used by the editor to define Spatial gizmo types."
msgstr "由编辑部用于定义空间å°å·¥å…·çš„类型。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
+#, fuzzy
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
"EditorSpatialGizmoPlugin å…è®¸æ‚¨å®šä¹‰ä¸€ç§æ–°çš„辅助工具类型。这样åšçš„ä¸»è¦æ–¹æ³•有两"
"ç§ï¼šæ‰©å±• [EditorSpatialGizmoPlugin] 以获得更简å•çš„Gizmos,或创建新的 "
"[EditorSpatialGizmoPlugin] 类型。有关更多信æ¯ï¼Œè¯·å‚阅文档中的教程。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/plugins/editor/spatial_gizmos.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/plugins/editor/"
-"spatial_gizmos.html"
+msgstr "$DOCS_URL/tutorials/plugins/editor/spatial_gizmos.html"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
@@ -27634,7 +27852,6 @@ msgid ""
msgstr "如果游æˆåœ¨æ¸¸æˆå¾ªçŽ¯çš„å›ºå®šè¿‡ç¨‹å’Œç‰©ç†é˜¶æ®µå†…,返回 [code]true[/code]。"
#: doc/classes/Engine.xml
-#, fuzzy
msgid ""
"If [code]true[/code], the script is currently running inside the editor. "
"This is useful for [code]tool[/code] scripts to conditionally draw editor "
@@ -27655,25 +27872,24 @@ msgid ""
"the editor and when running the project from the editor, but it will "
"evaluate to [code]false[/code] when the code is run from an exported project."
msgstr ""
-"如果[code]true[/code]ï¼Œåˆ™è¡¨ç¤ºè¯¥è„šæœ¬ç›®å‰æ­£åœ¨ç¼–辑器内è¿è¡Œã€‚这对[code]tool[/"
-"code]脚本很有用,å¯ä»¥æœ‰æ¡ä»¶ç»˜åˆ¶ç¼–辑器助手,或者防止在编辑器中æ„外地è¿è¡Œä¼šå½±å“"
-"场景状æ€çš„ \"游æˆ\" 代ç ã€‚\n"
+"为 [code]true[/code] æ—¶è¡¨ç¤ºè¯¥è„šæœ¬ç›®å‰æ­£åœ¨ç¼–辑器内è¿è¡Œã€‚这对 [code]tool[/"
+"code] 脚本很有用,å¯ä»¥åœ¨ç‰¹å®šæ¡ä»¶ä¸‹ç»˜åˆ¶ç¼–辑器辅助内容,或者防止在编辑器中æ„外"
+"地è¿è¡Œä¼šå½±å“场景状æ€çš„“游æˆâ€ä»£ç ã€‚\n"
"[codeblock]\n"
"if Engine.editor_hint:\n"
" draw_gizmos()\n"
"else:\n"
" simulate_physics()\n"
"[/codeblock]\n"
-"更多信æ¯è¯·å‚阅文档中[url=https://docs.godotengine.org/zh_CN/stable/tutorials/"
-"misc/running_code_in_the_editor.html]在编辑器中è¿è¡Œä»£ç [/url]。\n"
-"[b]注æ„:[/b]è¦æ£€æµ‹è„šæœ¬æ˜¯å¦ä»Žç¼–辑器[i]构建[/i]中è¿è¡Œï¼ˆä¾‹å¦‚按[code]F5[/code]"
-"时),请使用带有[code]\"editor\"[/code]傿•°çš„[method OS.has_feature]代替。"
-"[code]OS.has_feature(\"editor\")[/code]当代ç åœ¨ç¼–辑器中è¿è¡Œå’Œä»Žç¼–辑器中è¿è¡Œé¡¹"
-"目时都会评估为[code]true[/code],但当代ç ä»Žå¯¼å‡ºçš„项目中è¿è¡Œæ—¶å®ƒä¼šè¯„估为"
-"[code]false[/code]。"
+"更多信æ¯è¯·å‚阅文档[url=$DOCS_URL/tutorials/misc/running_code_in_the_editor."
+"html]《在编辑器中è¿è¡Œä»£ç ã€‹[/url]。\n"
+"[b]注æ„:[/b]è¦æ£€æµ‹è„šæœ¬æ˜¯å¦ä»Žç¼–辑器[i]构建[/i]中è¿è¡Œï¼ˆä¾‹å¦‚按 [code]F5[/code] "
+"时),请使用带有 [code]\"editor\"[/code] 傿•°çš„ [method OS.has_feature] 代"
+"替。[code]OS.has_feature(\"editor\")[/code] 当代ç åœ¨ç¼–辑器中è¿è¡Œå’Œä»Žç¼–辑器中"
+"è¿è¡Œé¡¹ç›®æ—¶éƒ½ä¼šè¯„估为 [code]true[/code],但当代ç ä»Žå¯¼å‡ºçš„项目中è¿è¡Œæ—¶å®ƒä¼šè¯„ä¼°"
+"为 [code]false[/code]。"
#: doc/classes/Engine.xml
-#, fuzzy
msgid ""
"The number of fixed iterations per second. This controls how often physics "
"simulation and [method Node._physics_process] methods are run. This value "
@@ -27691,10 +27907,17 @@ msgid ""
"above 240. Otherwise, the game will slow down when the rendering framerate "
"goes below 30 FPS."
msgstr ""
-"æ¯ç§’é’Ÿå›ºå®šçš„è¿­ä»£æ¬¡æ•°ã€‚è¿™æŽ§åˆ¶äº†ç‰©ç†æ¨¡æ‹Ÿå’Œ[method Node._physics_process]方法的"
-"è¿è¡Œé¢‘率。这个值一般应始终设置为[code]60[/code]或以上,因为Godotä¸ä¼šå¯¹ç‰©ç†æ­¥"
-"骤进行æ’值。因此,低于[code]60[/code]的值会显得很迟é’。这个值å¯ä»¥å¢žåŠ ï¼Œä»¥ä½¿è¾“"
-"å…¥æ›´çµæ•或解决隧é“问题,但请记ä½ï¼Œè¿™æ ·åšä¼šå¢žåŠ CPU的使用。"
+"æ¯ç§’æ‰§è¡Œçš„å›ºå®šè¿­ä»£æ¬¡æ•°ã€‚ç”¨äºŽæŽ§åˆ¶ç‰©ç†æ¨¡æ‹Ÿå’Œ [method Node._physics_process] çš„"
+"执行频率。通常应该总是将其设æˆå¤§äºŽç­‰äºŽ [code]60[/code] 的值,因为 Godot ä¸ä¼š"
+"è¿›è¡Œç‰©ç†æ­¥éª¤çš„æ’å€¼ã€‚å› æ­¤ï¼Œå¦‚æžœå€¼å°äºŽ [code]60[/code] 就会看起æ¥å¡é¡¿ã€‚æé«˜è¯¥å€¼"
+"å¯ä»¥è®©è¾“å…¥å˜å¾—æ›´åŠ çµæ•ã€ä¹Ÿå¯ä»¥ç»•过碰撞隧é“问题,但请记得这么åšä¹Ÿä¼šæå‡ CPU çš„"
+"å ç”¨çŽ‡ã€‚å¦è¯·å‚阅 [member target_fps] å’Œ [member ProjectSettings.physics/"
+"common/physics_fps]。\n"
+"[b]注æ„:[/b]æ¯ä¸ªæ¸²æŸ“帧最多åªèƒ½æ¨¡æ‹Ÿ 8 次物ç†è¿­ä»£ã€‚如果为了追赶渲染,需è¦åœ¨æ¯"
+"个渲染帧中模拟多于 8 次物ç†è¿­ä»£ï¼Œæ¸¸æˆçœ‹ä¸ŠåŽ»ä¼šæ˜¯é™é€Ÿçš„(å³ä¾¿åœ¨ç‰©ç†è®¡ç®—中始终使"
+"用 [code]delta[/code])。因此,建议ä¸è¦å°† [member physics/common/"
+"physics_fps] 设为大于 240 的值。å¦åˆ™ï¼Œæ¸²æŸ“帧率低于 30 FPS 时游æˆå°±ä¼šä½Žé€Ÿè¿"
+"行。"
#: doc/classes/Engine.xml
msgid ""
@@ -27717,6 +27940,7 @@ msgstr ""
"[member physics_jitter_fix]设置为[code]0[/code]æ¥ç¦ç”¨ç‰©ç†æŠ–动修å¤ã€‚"
#: doc/classes/Engine.xml
+#, fuzzy
msgid ""
"If [code]false[/code], stops printing error and warning messages to the "
"console and editor Output log. This can be used to hide error and warning "
@@ -27724,20 +27948,20 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
"running a project from the editor."
msgstr ""
-"如果[code]false[/code]ï¼Œåœæ­¢æ‰“å°é”™è¯¯å’Œè­¦å‘Šä¿¡æ¯åˆ°æŽ§åˆ¶å°å’Œç¼–辑器输出日志。这å¯"
-"以用æ¥åœ¨å•元测试套件è¿è¡ŒæœŸé—´éšè—错误和警告信æ¯ã€‚这个属性等åŒäºŽ[member "
-"ProjectSettings.application/run/disable_stderr]项目设置。\n"
-"[b]警告:[/b] 如果你在项目的任æ„ä½ç½®å°†å…¶è®¾ç½®ä¸º[code]false[/code],é‡è¦çš„错误信"
-"æ¯å¯èƒ½ä¼šè¢«éšè—,å³ä½¿å®ƒä»¬æ˜¯ç”±å…¶ä»–脚本触å‘。如果在[code]@tool[/code]脚本中把这"
-"个设置为[code]false[/code],这也会影å“到编辑器本身。在确ä¿é”™è¯¯ä¿¡æ¯è¢«å¯ç”¨ä¹‹"
-"å‰ï¼Œ[i]ä¸[/i]报告错误(默认情况下)。\n"
-"[b]注æ„:[/b]当从编辑器è¿è¡Œä¸€ä¸ªé¡¹ç›®æ—¶ï¼Œè¿™ä¸ªå±žæ€§ä¸å½±å“编辑器的错误选项å¡ã€‚"
+"如果 [code]false[/code]ï¼Œåœæ­¢æ‰“å°é”™è¯¯å’Œè­¦å‘Šä¿¡æ¯åˆ°æŽ§åˆ¶å°å’Œç¼–辑器输出日志。这å¯"
+"以用æ¥åœ¨å•元测试套件è¿è¡ŒæœŸé—´éšè—错误和警告信æ¯ã€‚这个属性等åŒäºŽ [member "
+"ProjectSettings.application/run/disable_stderr] 项目设置。\n"
+"[b]警告:[/b]如果你在项目的任æ„ä½ç½®å°†å…¶è®¾ç½®ä¸º [code]false[/code],é‡è¦çš„错误"
+"ä¿¡æ¯å¯èƒ½ä¼šè¢«éšè—,å³ä½¿å®ƒä»¬æ˜¯ç”±å…¶ä»–脚本触å‘。如果在 [code]@tool[/code] 脚本中"
+"把这个设置为 [code]false[/code],这也会影å“到编辑器本身。在确ä¿é”™è¯¯ä¿¡æ¯è¢«å¯ç”¨"
+"之å‰ï¼Œ[i]ä¸[/i]报告错误(默认情况下)。\n"
+"[b]注æ„:[/b]当从编辑器è¿è¡Œä¸€ä¸ªé¡¹ç›®æ—¶ï¼Œè¿™ä¸ªå±žæ€§ä¸å½±å“编辑器的错误选项å¡ã€‚"
#: doc/classes/Engine.xml
msgid ""
@@ -27791,18 +28015,12 @@ msgstr ""
"usage] 调整。"
#: doc/classes/Environment.xml doc/classes/WorldEnvironment.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/environment_and_post_processing.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/"
-"environment_and_post_processing.html"
+msgstr "$DOCS_URL/tutorials/3d/environment_and_post_processing.html"
#: doc/classes/Environment.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/high_dynamic_range.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/high_dynamic_range."
-"html"
+msgstr "$DOCS_URL/tutorials/3d/high_dynamic_range.html"
#: doc/classes/Environment.xml doc/classes/Material.xml doc/classes/Mesh.xml
#: doc/classes/MeshInstance.xml doc/classes/WorldEnvironment.xml
@@ -27959,7 +28177,7 @@ msgstr "[Sky] 天空资æºçš„自定义视野。"
#: doc/classes/Environment.xml
msgid "The [Sky] resource's rotation expressed as a [Basis]."
-msgstr "以[Basis]表示的[Sky]天空资æºçš„æ—‹è½¬ã€‚"
+msgstr "以 [Basis] 表示的 [Sky] 天空资æºçš„æ—‹è½¬ã€‚"
#: doc/classes/Environment.xml
msgid "The [Sky] resource's rotation expressed as Euler angles in radians."
@@ -28134,7 +28352,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid "The glow blending mode."
-msgstr "æ··åˆå‘光模å¼ã€‚"
+msgstr "å‘å…‰æ··åˆæ¨¡å¼ã€‚"
#: doc/classes/Environment.xml
msgid ""
@@ -28432,18 +28650,18 @@ msgstr "表示[enum BGMode]枚举的大å°ã€‚"
msgid ""
"Additive glow blending mode. Mostly used for particles, glows (bloom), lens "
"flare, bright sources."
-msgstr "添加glowæ··åˆæ¨¡å¼ã€‚主è¦ç”¨äºŽé¢—ç²’ã€è¾‰å…‰ï¼ˆå…‰æ™•)ã€é•œå¤´çœ©å…‰ã€äº®æºã€‚"
+msgstr "添加å‘å…‰æ··åˆæ¨¡å¼ã€‚主è¦ç”¨äºŽé¢—ç²’ã€è¾‰å…‰ï¼ˆå…‰æ™•)ã€é•œå¤´çœ©å…‰ã€äº®æºã€‚"
#: doc/classes/Environment.xml
msgid ""
"Screen glow blending mode. Increases brightness, used frequently with bloom."
-msgstr "å±å¹•å…‰æ™•æ··åˆæ¨¡å¼ã€‚增加亮度,ç»å¸¸ä¸Žå…‰æ™•一起使用。"
+msgstr "滤色å‘å…‰æ··åˆæ¨¡å¼ã€‚增加亮度,ç»å¸¸ä¸Žå…‰æ™•一起使用。"
#: doc/classes/Environment.xml
msgid ""
"Soft light glow blending mode. Modifies contrast, exposes shadows and "
"highlights (vivid bloom)."
-msgstr "æŸ”å’Œçš„å…‰æ™•æ··åˆæ¨¡å¼ã€‚修改对比度,æ›å…‰é˜´å½±å’Œé«˜å…‰ï¼ˆé«˜è´¨é‡å…‰æ™•)。"
+msgstr "柔光å‘å…‰æ··åˆæ¨¡å¼ã€‚修改对比度,æ›å…‰é˜´å½±å’Œé«˜å…‰ï¼ˆé«˜è´¨é‡å…‰æ™•)。"
#: doc/classes/Environment.xml
msgid ""
@@ -28451,7 +28669,7 @@ msgid ""
"This can be used to simulate a full-screen blur effect by tweaking the glow "
"parameters to match the original image's brightness."
msgstr ""
-"替æ¢å…‰æ™•æ··åˆæ¨¡å¼ã€‚用glowå€¼æ›¿æ¢æ‰€æœ‰åƒç´ çš„颜色。这å¯ä»¥é€šè¿‡è°ƒæ•´glow傿•°æ¥æ¨¡æ‹Ÿå…¨"
+"替æ¢å‘å…‰æ··åˆæ¨¡å¼ã€‚用å‘å…‰å€¼æ›¿æ¢æ‰€æœ‰åƒç´ çš„颜色。这å¯ä»¥é€šè¿‡è°ƒæ•´glow傿•°æ¥æ¨¡æ‹Ÿå…¨"
"屿¨¡ç³Šæ•ˆæžœï¼Œä½¿å…¶ä¸ŽåŽŸå§‹å›¾åƒçš„亮度相匹é…。"
#: doc/classes/Environment.xml
@@ -28474,7 +28692,7 @@ msgstr "胶片色调映射器è¿ç®—符。"
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
"Academy Color Encoding System(学院色彩编ç ç³»ç»Ÿï¼‰è‰²è°ƒæ˜ å°„è¿ç®—器。对ACES色调映"
@@ -28645,7 +28863,6 @@ msgid "Type to handle file reading and writing operations."
msgstr "ç”¨äºŽå¤„ç†æ–‡ä»¶è¯»å†™æ“作的类型。"
#: doc/classes/File.xml
-#, fuzzy
msgid ""
"File type. This is used to permanently store data into the user device's "
"file system and to read from it. This can be used to store game save data or "
@@ -28696,12 +28913,12 @@ msgstr ""
" file.close()\n"
" return content\n"
"[/codeblock]\n"
-"在上é¢çš„例å­ä¸­ï¼Œæ–‡ä»¶å°†è¢«ä¿å­˜åœ¨[url=https://docs.godotengine.org/zh_CN/stable/"
-"tutorials/io/data_paths.html]æ•°æ®è·¯å¾„[/url]æ–‡ä»¶ä¸­æŒ‡å®šçš„ç”¨æˆ·æ•°æ®æ–‡ä»¶å¤¹ä¸­ã€‚\n"
-"[b]注æ„:[/b]è¦åœ¨å¯¼å‡ºåŽè®¿é—®é¡¹ç›®èµ„æºï¼Œå»ºè®®ä½¿ç”¨ [ResourceLoader] è€Œä¸æ˜¯ [File] "
+"在上é¢çš„例å­ä¸­ï¼Œæ–‡ä»¶å°†è¢«ä¿å­˜åœ¨[url=$DOCS_URL/tutorials/io/data_paths.html]æ•°"
+"æ®è·¯å¾„[/url]æ–‡ä»¶ä¸­æŒ‡å®šçš„ç”¨æˆ·æ•°æ®æ–‡ä»¶å¤¹ä¸­ã€‚\n"
+"[b]注æ„:[/b]è¦åœ¨å¯¼å‡ºåŽè®¿é—®é¡¹ç›®èµ„æºï¼Œå»ºè®®ä½¿ç”¨ [ResourceLoader] è€Œä¸æ˜¯ [File] "
"API,因为有些文件被转æ¢ä¸ºå¼•擎特定的格å¼ï¼Œå…¶åŽŸå§‹æºæ–‡ä»¶å¯èƒ½ä¸å­˜åœ¨äºŽå¯¼å‡ºçš„ PCK "
"包中。\n"
-"[b]注æ„:[/b]åªæœ‰åœ¨è¿›ç¨‹â€œæ­£å¸¸â€é€€å‡ºæ—¶ï¼Œä¾‹å¦‚通过点击窗å£ç®¡ç†å™¨çš„关闭按钮或按 "
+"[b]注æ„:[/b]åªæœ‰åœ¨è¿›ç¨‹â€œæ­£å¸¸â€é€€å‡ºæ—¶ï¼Œä¾‹å¦‚通过点击窗å£ç®¡ç†å™¨çš„关闭按钮或按 "
"[b]Alt + F4[/b],文件æ‰ä¼šè‡ªåŠ¨å…³é—­ã€‚å¦‚æžœä½ åœ¨é¡¹ç›®è¿è¡Œæ—¶æŒ‰ [b]F8[/b] åœæ­¢é¡¹ç›®æ‰§"
"行,文件将ä¸ä¼šè¢«å…³é—­ï¼Œå› ä¸ºæ¸¸æˆè¿›ç¨‹å°†è¢«æ€æ­»ã€‚ä½ å¯ä»¥é€šè¿‡å®šæœŸè°ƒç”¨ [method "
"flush] æ¥è§£å†³è¿™ä¸ªé—®é¢˜ã€‚"
@@ -29468,11 +29685,15 @@ msgstr ""
#: doc/classes/float.xml
msgid "https://en.wikipedia.org/wiki/Double-precision_floating-point_format"
-msgstr "https://en.wikipedia.org/wiki/Double-precision_floating-point_format"
+msgstr ""
+"https://zh.wikipedia.org/zh-cn/%E9%9B%99%E7%B2%BE%E5%BA%A6%E6%B5%AE%E9%BB%9E"
+"%E6%95%B8"
#: doc/classes/float.xml
msgid "https://en.wikipedia.org/wiki/Single-precision_floating-point_format"
-msgstr "https://en.wikipedia.org/wiki/Single-precision_floating-point_format"
+msgstr ""
+"https://zh.wikipedia.org/zh-cn/%E5%96%AE%E7%B2%BE%E5%BA%A6%E6%B5%AE%E9%BB%9E"
+"%E6%95%B8"
#: doc/classes/float.xml
msgid ""
@@ -29686,17 +29907,13 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/plugins/gdnative/"
-"gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
+msgstr "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/plugins/gdnative/"
-"gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
+msgstr "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
msgid ""
@@ -29790,10 +30007,8 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/getting_started/scripting/gdscript/"
-"index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
+msgstr "$DOCS_URL/tutorials/scripting/index.html"
#: modules/gdscript/doc_classes/GDScript.xml
msgid "Returns byte code for the script source code."
@@ -30923,15 +31138,13 @@ msgstr ""
"[b]注æ„:[/b] è¿™ä¸ªå±žæ€§ç›®å‰æ²¡æœ‰ä»»ä½•作用。"
#: doc/classes/GeometryInstance.xml
-#, fuzzy
msgid ""
"The material overlay for the whole geometry.\n"
"If a material is assigned to this property, it will be rendered on top of "
"any other active material for all the surfaces."
msgstr ""
-"整个几何体的æè´¨è¦†ç›–。\n"
-"如果一个æè´¨è¢«åˆ†é…给这个属性,它将会被用æ¥ä»£æ›¿åœ¨ç½‘格的任何æè´¨æ§½ä¸­è®¾ç½®çš„任何"
-"æè´¨ã€‚"
+"整个几何体的æè´¨è¦†ç›–层。\n"
+"如果一个æè´¨è¢«åˆ†é…给这个属性,它将会被渲染在所有表é¢çš„任何其他活动æè´¨ä¹‹ä¸Šã€‚"
#: doc/classes/GeometryInstance.xml
msgid ""
@@ -31066,7 +31279,7 @@ msgstr ""
#: doc/classes/GIProbe.xml
msgid "$DOCS_URL/tutorials/3d/gi_probes.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/3d/gi_probes.html"
#: doc/classes/GIProbe.xml
msgid ""
@@ -31426,8 +31639,7 @@ msgid ""
"GraphEdit is an area capable of showing various GraphNodes. It manages "
"connection events between them."
msgstr ""
-"图形编辑GraphEdit是一个能够显示å„ç§å›¾å½¢èŠ‚ç‚¹GraphNodes的区域。它管ç†ç€å®ƒä»¬ä¹‹é—´"
-"的连接事件。"
+"GraphEdit 是一个能够显示å„ç§ GraphNode 的区域。它管ç†ç€å®ƒä»¬ä¹‹é—´çš„连接事件。"
#: doc/classes/GraphEdit.xml
msgid ""
@@ -31438,10 +31650,10 @@ msgid ""
"It is greatly advised to enable low-processor usage mode (see [member OS."
"low_processor_usage_mode]) when using GraphEdits."
msgstr ""
-"图形编辑GraphEdit管ç†å®ƒæ‰€åŒ…å«çš„图形节点GraphNodes的显示,以åŠå®ƒä»¬ä¹‹é—´çš„连接和"
-"断开。这两个事件中的æ¯ä¸€ä¸ªéƒ½ä¼šå‘é€ä¿¡å·ã€‚默认情况下,图形节点GraphNodeæ’æ§½ä¹‹é—´"
-"的断开连接是ç¦ç”¨çš„。\n"
-"在使用图形编辑GraphEdits时,我们强烈建议å¯ç”¨ä½Žå¤„ç†å™¨ä½¿ç”¨æ¨¡å¼ï¼ˆè§[member OS."
+"图形编辑 GraphEdit 管ç†å®ƒæ‰€åŒ…å«çš„图形节点 GraphNode 的显示,以åŠå®ƒä»¬ä¹‹é—´çš„连"
+"接和断开。这两个事件都会å‘é€ä¿¡å·ã€‚GraphNode æ’æ§½ä¹‹é—´çš„æ–­å¼€è¿žæŽ¥é»˜è®¤æ˜¯ç¦ç”¨"
+"的。\n"
+"在使用 GraphEdit 时,我们强烈建议å¯ç”¨ä½Žå¤„ç†å™¨ä½¿ç”¨æ¨¡å¼ï¼ˆè§ [member OS."
"low_processor_usage_mode])。"
#: doc/classes/GraphEdit.xml
@@ -31449,8 +31661,8 @@ msgid ""
"Makes possible the connection between two different slot types. The type is "
"defined with the [method GraphNode.set_slot] method."
msgstr ""
-"使得两个ä¸åŒæ’槽型之间的连接æˆä¸ºå¯èƒ½ã€‚该类型是通过[method GraphNode.set_slot]"
-"方法定义的。"
+"使得两个ä¸åŒæ’槽型之间的连接æˆä¸ºå¯èƒ½ã€‚该类型是通过 [method GraphNode."
+"set_slot] 方法定义的。"
#: doc/classes/GraphEdit.xml
msgid ""
@@ -31475,9 +31687,9 @@ msgid ""
"[code]to[/code] GraphNode. If the connection already exists, no connection "
"is created."
msgstr ""
-"在[code]from[/code]图形节点GraphNode的[code]from_port[/code]槽和[code]to[/"
-"code]图形节点GraphNode的[code]to_port[/code]槽之间创建一个连接。如果该连接已"
-"ç»å­˜åœ¨ï¼Œåˆ™ä¸åˆ›å»ºè¿žæŽ¥ã€‚"
+"在 [code]from[/code] GraphNode 的 [code]from_port[/code] 槽和 [code]to[/"
+"code] GraphNode çš„ [code]to_port[/code] 槽之间创建一个连接。如果该连接已ç»å­˜"
+"在,则ä¸åˆ›å»ºè¿žæŽ¥ã€‚"
#: doc/classes/GraphEdit.xml
msgid ""
@@ -31486,9 +31698,9 @@ msgid ""
"[code]to[/code] GraphNode. If the connection does not exist, no connection "
"is removed."
msgstr ""
-"删除[code]from[/code] 图形节点GraphNode1çš„[code]from_port[/code]æ’æ§½ä¸Ž"
-"[code]to[/code] 图形节点GraphNode2çš„[code]to_port[/code]æ’æ§½ä¹‹é—´çš„连接。如果"
-"连接ä¸å­˜åœ¨ï¼Œåˆ™ä¸ä¼šåˆ é™¤ä»»ä½•连接。"
+"删除 [code]from[/code] GraphNode çš„ [code]from_port[/code] æ’æ§½ä¸Ž [code]to[/"
+"code] GraphNode çš„ [code]to_port[/code] æ’æ§½ä¹‹é—´çš„连接。如果连接ä¸å­˜åœ¨ï¼Œåˆ™ä¸"
+"会删除任何连接。"
#: doc/classes/GraphEdit.xml
msgid ""
@@ -31496,9 +31708,9 @@ msgid ""
"in a structure of the form [code]{ from_port: 0, from: \"GraphNode name 0\", "
"to_port: 1, to: \"GraphNode name 1\" }[/code]."
msgstr ""
-"返回一个包å«è¿žæŽ¥åˆ—表的数组。一个连接包括一个结构,其形å¼ä¸º[code]"
+"返回一个包å«è¿žæŽ¥åˆ—表的数组。一个连接包括一个结构,其形å¼ä¸º [code]"
"{ from_port:0, from: \"GraphNode name 0\", to_port:1, to:\"GraphNode name "
-"1\" }[/code]."
+"1\" }[/code]。"
#: doc/classes/GraphEdit.xml
msgid ""
@@ -31520,9 +31732,8 @@ msgid ""
"[code]from[/code] GraphNode is connected to the [code]to_port[/code] slot of "
"the [code]to[/code] GraphNode."
msgstr ""
-"如果[code]from[/code] 图形节点GraphNode1的[code]from_port[/code]槽与"
-"[code]to[/code]图形节点GraphNode2的[code]to_port[/code]槽相连,则返回"
-"[code]true[/code]。"
+"如果 [code]from[/code] GraphNode 的 [code]from_port[/code] 槽与 [code]to[/"
+"code] GraphNode 的 [code]to_port[/code] 槽相连,则返回 [code]true[/code]。"
#: doc/classes/GraphEdit.xml
msgid "Returns whether it's possible to connect slots of the specified types."
@@ -32136,7 +32347,7 @@ msgstr "å­èŠ‚ç‚¹çš„åž‚ç›´åˆ†éš”é‡ã€‚"
#: modules/gridmap/doc_classes/GridMap.xml
msgid "Node for 3D tile-based maps."
-msgstr "基于3D贴图格地图(3D tile-based maps)的节点。"
+msgstr "基于 3D 图å—地图的节点。"
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
@@ -32155,23 +32366,21 @@ msgid ""
"light not affect the first layer, the whole GridMap won't be lit by the "
"light in question."
msgstr ""
-"GridMapå…许你以交互方å¼å°†meshes网格放置在网格上。它既å¯ä»¥åœ¨ç¼–辑器中进行,也å¯"
-"以从脚本中进行,这å¯ä»¥å¸®åŠ©ä½ åœ¨æ¸¸æˆä¸­åˆ›å»ºå…³å¡ç¼–辑器。\n"
-"GridMaps使用[MeshLibrary],其中包å«äº†ä¸€ä¸ªå›¾å—的列表。æ¯ä¸€ä¸ªå›¾å—都是一个带有æ"
-"质的网格,加上å¯é€‰çš„碰撞和导航形状。\n"
-"GridMap包å«ä¸€ä¸ªå•元格的集åˆã€‚æ¯ä¸ªç½‘æ ¼å•元指的是[MeshLibrary]中的一个图å—。地"
-"图中的所有å•元都有相åŒçš„尺寸。\n"
-"在内部,GridMap被分割æˆä¸€ä¸ªæ¾æ•£çš„八边形集åˆï¼Œä»¥ä¾¿æœ‰æ•ˆåœ°è¿›è¡Œæ¸²æŸ“和物ç†å¤„ç†ã€‚æ¯"
-"个八角形都有相åŒçš„尺寸,å¯ä»¥åŒ…å«å¤šä¸ªå•元。\n"
+"GridMap å…许你以交互方å¼å°†æ¨¡åž‹ç½‘格(Mesh)放置在ä½ç½®ç½‘格(Grid)上。它既å¯ä»¥"
+"在编辑器中进行,也å¯ä»¥ä»Žè„šæœ¬ä¸­è¿›è¡Œï¼Œè¿™å¯ä»¥å¸®åŠ©ä½ åœ¨æ¸¸æˆä¸­åˆ›å»ºå…³å¡ç¼–辑器。\n"
+"GridMaps 使用 [MeshLibrary],其中包å«äº†ä¸€ä¸ªå›¾å—的列表。æ¯ä¸€ä¸ªå›¾å—都是一个带有"
+"æè´¨çš„网格,加上å¯é€‰çš„碰撞和导航形状。\n"
+"GridMap 包å«ä¸€ä¸ªå•元格的集åˆã€‚æ¯ä¸ªç½‘æ ¼å•元指的是 [MeshLibrary] 中的一个图å—。"
+"地图中的所有å•元都有相åŒçš„尺寸。\n"
+"在内部,GridMap 被分割æˆä¸€ä¸ªæ¾æ•£çš„八边形集åˆï¼Œä»¥ä¾¿æœ‰æ•ˆåœ°è¿›è¡Œæ¸²æŸ“和物ç†å¤„ç†ã€‚"
+"æ¯ä¸ªå…«è§’形都有相åŒçš„尺寸,å¯ä»¥åŒ…å«å¤šä¸ªå•元。\n"
"[b]注æ„:[/b]GridMap 没有扩展 [VisualInstance]ï¼Œå› æ­¤æ— æ³•æ ¹æ® [member "
"VisualInstance.layers] 进行éšè—æˆ–å‰”é™¤é®æŒ¡ã€‚如果你让ç¯å…‰ä¸å½±å“第一层,整个 "
"GridMap 就都ä¸ä¼šè¢«ç›¸å…³çš„ç¯å…‰ç…§äº®ã€‚"
#: modules/gridmap/doc_classes/GridMap.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/using_gridmaps.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/using_gridmaps.html"
+msgstr "$DOCS_URL/tutorials/3d/using_gridmaps.html"
#: modules/gridmap/doc_classes/GridMap.xml
msgid "Clear all cells."
@@ -32182,7 +32391,8 @@ msgid ""
"Returns an array of [ArrayMesh]es and [Transform] references of all bake "
"meshes that exist within the current GridMap."
msgstr ""
-"返回当å‰GridMap中存在的所有烘焙网格的[ArrayMesh]å’Œ[Transform]引用的数组。"
+"è¿”å›žå½“å‰ GridMap 中存在的所有烘焙网格的 [ArrayMesh] å’Œ [Transform] 引用的数"
+"组。"
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
@@ -32201,11 +32411,11 @@ msgstr "å•元格在基于网格的 Xã€Y å’Œ Z åæ ‡å¤„的方å‘。如果å•å…
#: modules/gridmap/doc_classes/GridMap.xml
msgid "Returns an individual bit on the [member collision_layer]."
-msgstr "返回[member collision_layer]上的一个å•独åƒç´ ç‚¹ã€‚"
+msgstr "返回 [member collision_layer] 上的一个å•独比特ä½ã€‚"
#: modules/gridmap/doc_classes/GridMap.xml
msgid "Returns an individual bit on the [member collision_mask]."
-msgstr "返回[member collision_mask]上的一个独立åƒç´ ã€‚"
+msgstr "返回 [member collision_mask] 上的一个å•独比特ä½ã€‚"
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
@@ -32224,7 +32434,7 @@ msgstr "返回一个包å«ç½‘格中éžç©ºå•å…ƒæ ¼åæ ‡çš„ [Vector3] 数组。"
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
"Returns the position of a grid cell in the GridMap's local coordinate space."
-msgstr "返回一个网格å•元在GridMapæœ¬åœ°åæ ‡ç©ºé—´ä¸­çš„ä½ç½®ã€‚"
+msgstr "返回一个网格å•元在 GridMap æœ¬åœ°åæ ‡ç©ºé—´ä¸­çš„ä½ç½®ã€‚"
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
@@ -32242,11 +32452,11 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid "Sets an individual bit on the [member collision_layer]."
-msgstr "在[member collision_layer]上设置独立åƒç´ ã€‚"
+msgstr "在 [member collision_layer] 上设置å•独的比特ä½ã€‚"
#: modules/gridmap/doc_classes/GridMap.xml
msgid "Sets an individual bit on the [member collision_mask]."
-msgstr "在[member collision_mask]上设置独立åƒç´ ã€‚"
+msgstr "在 [member collision_mask] 上设置å•独的比特ä½ã€‚"
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
@@ -32254,11 +32464,11 @@ msgid ""
"[code]pos[/code] should be in the GridMap's local coordinate space."
msgstr ""
"返回包å«ç»™å®šç‚¹çš„网格å•å…ƒçš„åæ ‡ã€‚\n"
-"[code]pos[/code]应该在GridMapçš„æœ¬åœ°åæ ‡ç©ºé—´ä¸­ã€‚"
+"[code]pos[/code] 应该使用 GridMap çš„æœ¬åœ°åæ ‡ç©ºé—´ã€‚"
#: modules/gridmap/doc_classes/GridMap.xml
msgid "If [code]true[/code], grid items are centered on the X axis."
-msgstr "如果[code]true[/code],则网格项以X轴为中心。"
+msgstr "如果为 [code]true[/code],则网格项以 X 轴为中心。"
#: modules/gridmap/doc_classes/GridMap.xml
msgid "If [code]true[/code], grid items are centered on the Y axis."
@@ -32272,7 +32482,7 @@ msgstr "如果为 [code]true[/code],则网格项以 Z 轴为中心。"
msgid ""
"The size of each octant measured in number of cells. This applies to all "
"three axis."
-msgstr "æ¯ä¸ªå…«åˆ†åœ†çš„大å°ä»¥å•元格的数é‡è¡¡é‡ã€‚这适用于三个轴(XYZ)。"
+msgstr "æ¯ä¸ªå…«åˆ†åœ†çš„大å°ä»¥å•元格的数é‡è¡¡é‡ã€‚适用于全部三个轴。"
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
@@ -32290,7 +32500,7 @@ msgid ""
"This does not affect the size of the meshes. See [member cell_scale]."
msgstr ""
"网格å•元的尺寸。\n"
-"这并ä¸å½±å“网格的尺寸大å°ã€‚å‚阅[member cell_scale]。"
+"这并ä¸å½±å“网格的尺寸大å°ã€‚å‚阅 [member cell_scale]。"
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
@@ -32298,25 +32508,30 @@ msgid ""
"GridMaps act as static bodies, meaning they aren't affected by gravity or "
"other forces. They only affect other physics bodies that collide with them."
msgstr ""
-"这个GridMap所处的物ç†å±‚。\n"
-"Gridmapä½œä¸ºé™æ€ä½“,æ„味ç€å®ƒä»¬ä¸ä¼šå—到é‡åŠ›æˆ–æ˜¯å…¶ä»–åŠ›çš„å½±å“。它们åªä¼šå—到其他与"
-"它们碰撞的物ç†ä½“的影å“。"
+"这个 GridMap 所处的物ç†å±‚。\n"
+"GridMap ä½œä¸ºé™æ€ä½“,æ„味ç€å®ƒä»¬ä¸ä¼šå—到é‡åŠ›æˆ–æ˜¯å…¶ä»–åŠ›çš„å½±å“。它们åªä¼šå—到其他"
+"与它们碰撞的物ç†ä½“的影å“。"
#: modules/gridmap/doc_classes/GridMap.xml
-#, fuzzy
msgid ""
"The physics layers this GridMap detects collisions in. See [url=$DOCS_URL/"
"tutorials/physics/physics_introduction.html#collision-layers-and-"
"masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""
-"æ­¤ GridMap 检测碰撞的物ç†å±‚。å‚阅 [url=https://docs.godotengine.org/zh_CN/"
-"stable/tutorials/physics/physics_introduction.html#collision-layers-and-"
-"masks]碰撞层和掩ç [/url] æ–‡æ¡£ï¼Œä»Žä¸­èŽ·å–æ›´å¤šä¿¡æ¯ã€‚"
+"æ­¤ GridMap 检测碰撞的物ç†å±‚。更多信æ¯è¯·å‚阅文档[url=$DOCS_URL/tutorials/"
+"physics/physics_introduction.html#collision-layers-and-masks]《碰撞层与掩ç ã€‹"
+"[/url]。"
#: modules/gridmap/doc_classes/GridMap.xml
msgid "The assigned [MeshLibrary]."
-msgstr "指定的[MeshLibrary]。"
+msgstr "指定的 [MeshLibrary]。"
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
@@ -32359,7 +32574,7 @@ msgstr ""
msgid ""
"The groove's length. The groove is from the joint's origin towards [member "
"length] along the joint's local Y axis."
-msgstr "沟槽的长度。沟槽是从关键原点沿ç€å…³èŠ‚å±€éƒ¨Yè½´æœå‘ [member length] 。"
+msgstr "沟槽的长度。沟槽是从关键原点沿ç€å…³èŠ‚å±€éƒ¨ Y è½´æœå‘ [member length] 。"
#: doc/classes/HashingContext.xml
msgid "Context to compute cryptographic hashes over multiple iterations."
@@ -32424,7 +32639,7 @@ msgstr ""
#: doc/classes/HashingContext.xml
msgid "Closes the current context, and return the computed hash."
-msgstr "关闭当å‰context,并返回计算出的哈希值。"
+msgstr "关闭当å‰ä¸Šä¸‹æ–‡ï¼Œå¹¶è¿”回计算出的哈希值。"
#: doc/classes/HashingContext.xml
msgid ""
@@ -32577,6 +32792,7 @@ msgid "Used to create an HMAC for a message using a key."
msgstr "用æ¥ä¸ºä¸€ä¸ªä½¿ç”¨å¯†é’¥çš„ä¿¡æ¯åˆ›å»º HMAC。"
#: doc/classes/HMACContext.xml
+#, fuzzy
msgid ""
"The HMACContext class is useful for advanced HMAC use cases, such as "
"streaming the message as it supports creating the message over time rather "
@@ -32590,7 +32806,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -32613,7 +32829,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -32766,7 +32982,7 @@ msgid ""
"Horizontal separator. See [Separator]. Even though it looks horizontal, it "
"is used to separate objects vertically."
msgstr ""
-"水平分离器。è§[Separator]ã€‚å°½ç®¡å®ƒçœ‹èµ·æ¥æ˜¯æ°´å¹³çš„,但被用于垂直分隔对象。"
+"æ°´å¹³åˆ†ç¦»å™¨ã€‚è§ [Separator]ã€‚å°½ç®¡å®ƒçœ‹èµ·æ¥æ˜¯æ°´å¹³çš„,但被用于垂直分隔对象。"
#: doc/classes/HSeparator.xml
msgid ""
@@ -32776,11 +32992,11 @@ msgstr "åˆ†éš”ç¬¦è¦†ç›–åŒºåŸŸçš„é«˜åº¦ã€‚å¦‚åŒæœ€å°é«˜åº¦ä¸€æ ·æœ‰æ•ˆåœ°å·¥ä½œ
#: doc/classes/HSeparator.xml
msgid "The style for the separator line. Works best with [StyleBoxLine]."
-msgstr "分隔符的样å¼ã€‚与[StyleBoxLine]é…åˆä½¿ç”¨æ•ˆæžœæ›´ä½³ã€‚"
+msgstr "分隔符的样å¼ã€‚与 [StyleBoxLine] é…åˆä½¿ç”¨æ•ˆæžœæ›´ä½³ã€‚"
#: doc/classes/HSlider.xml
msgid "Horizontal slider."
-msgstr "水平滑æ¡ã€‚"
+msgstr "水平滑动æ¡ã€‚"
#: doc/classes/HSlider.xml
msgid ""
@@ -32789,9 +33005,9 @@ msgid ""
"[b]Note:[/b] The [signal Range.changed] and [signal Range.value_changed] "
"signals are part of the [Range] class which this class inherits from."
msgstr ""
-"水平滑å—。å‚阅[Slider]。这个从左到å³ï¼Œæœ€å°åˆ°æœ€å¤§ã€‚\n"
-"[b]注æ„:[/b] [signal Range.changed]å’Œ[signal Range.value_changed]ä¿¡å·æ˜¯"
-"[Range]类的一部分,该类继承自它。"
+"水平滑动æ¡ã€‚请å‚阅 [Slider]。这个控件是从左(最å°ï¼‰æ»‘到å³ï¼ˆæœ€å¤§ï¼‰çš„。\n"
+"[b]注æ„:[/b][signal Range.changed] å’Œ [signal Range.value_changed] ä¿¡å·æ˜¯ "
+"[Range] 类的一部分,该类继承自它。"
#: doc/classes/HSlider.xml doc/classes/VSlider.xml
msgid "The texture for the grabber (the draggable element)."
@@ -32819,7 +33035,7 @@ msgstr "抓å–器左侧区域的背景。"
msgid ""
"The background for the whole slider. Determines the height of the "
"[code]grabber_area[/code]."
-msgstr "整个滑å—的背景。å—[code]grabber_area[/code]高度的影å“。"
+msgstr "整个滑动æ¡çš„èƒŒæ™¯ã€‚å— [code]grabber_area[/code] 高度的影å“。"
#: doc/classes/HSplitContainer.xml
msgid "Horizontal split container."
@@ -32910,19 +33126,13 @@ msgstr ""
"是有效的,就å¯ä»¥æŽ¥å—。如果这是个问题,你å¯èƒ½æƒ³ä½¿ç”¨è‡ªåŠ¨ç®¡ç†çš„æœ‰æ•ˆæœŸçŸ­çš„è¯ä¹¦ã€‚"
#: doc/classes/HTTPClient.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/networking/http_client_class.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/networking/"
-"http_client_class.html"
+msgstr "$DOCS_URL/tutorials/networking/http_client_class.html"
#: doc/classes/HTTPClient.xml doc/classes/HTTPRequest.xml
#: doc/classes/StreamPeerSSL.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/networking/ssl_certificates.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/networking/"
-"ssl_certificates.html"
+msgstr "$DOCS_URL/tutorials/networking/ssl_certificates.html"
#: doc/classes/HTTPClient.xml
msgid "Closes the current connection, allowing reuse of this [HTTPClient]."
@@ -33123,6 +33333,9 @@ msgid ""
"The proxy server is unset if [code]host[/code] is empty or [code]port[/code] "
"is -1."
msgstr ""
+"设置 HTTP è¯·æ±‚ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨ã€‚\n"
+"如果 [code]host[/code] 为空或者 [code]port[/code] 为 -1ï¼Œåˆ™ä¼šå–æ¶ˆè®¾ç½®ä»£ç†æœåŠ¡"
+"器。"
#: doc/classes/HTTPClient.xml doc/classes/HTTPRequest.xml
msgid ""
@@ -33130,6 +33343,9 @@ msgid ""
"The proxy server is unset if [code]host[/code] is empty or [code]port[/code] "
"is -1."
msgstr ""
+"设置 HTTPS è¯·æ±‚ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨ã€‚\n"
+"如果 [code]host[/code] 为空或者 [code]port[/code] 为 -1ï¼Œåˆ™ä¼šå–æ¶ˆè®¾ç½®ä»£ç†æœåŠ¡"
+"器。"
#: doc/classes/HTTPClient.xml
msgid ""
@@ -33922,81 +34138,76 @@ msgid ""
" texture_rect.texture = texture\n"
"[/codeblock]"
msgstr ""
-"有能力å‘é€HTTP请求的节点。内部使用[HTTPClient]。\n"
-"å¯ä»¥ç”¨æ¥è¿›è¡ŒHTTP请求,å³é€šè¿‡HTTP下载或上传文件或网络内容。\n"
-"[b]警告:[/b]å‚阅[HTTPClient]çš„æ³¨é‡Šå’Œè­¦å‘Šï¼Œä»¥äº†è§£å…¶å±€é™æ€§ï¼Œç‰¹åˆ«æ˜¯å…³äºŽSSL的安"
-"全性。\n"
-"[b]连接REST API并打å°å…¶è¿”回字段之一的例å­ï¼š[/b]\n"
+"具有å‘é€ HTTP 请求能力的节点。内部使用 [HTTPClient]。\n"
+"å¯ä»¥ç”¨æ¥è¿›è¡Œ HTTP 请求,å³é€šè¿‡ HTTP 下载或上传文件或网络内容。\n"
+"[b]警告:[/b]请å‚阅 [HTTPClient] çš„æ³¨é‡Šå’Œè­¦å‘Šäº†è§£å…¶å±€é™æ€§ï¼Œç‰¹åˆ«æ˜¯å…³äºŽ SSL çš„"
+"安全性。\n"
+"[b]连接 REST API å¹¶æ‰“å°æŸä¸ªè¿”回字段的例å­ï¼š[/b]\n"
"[codeblock]\n"
"func _ready():\n"
-" # Create an HTTP request node and connect its completion signal.\n"
+" # 创建 HTTP 请求节点并连接完æˆä¿¡å·ã€‚\n"
" var http_request = HTTPRequest.new()\n"
" add_child(http_request)\n"
" http_request.connect(\"request_completed\", self, "
"\"_http_request_completed\")\n"
"\n"
-" # Perform a GET request. The URL below returns JSON as of writing.\n"
+" # 执行 GET 请求。截止到文档编写时,下é¢çš„ URL 会返回 JSON。\n"
" var error = http_request.request(\"https://httpbin.org/get\")\n"
" if error != OK:\n"
-" push_error(\"An error occurred in the HTTP request.\")\n"
+" push_error(\"HTTP 请求å‘生了错误。\")\n"
"\n"
-" # Perform a POST request. The URL below returns JSON as of writing.\n"
-" # Note: Don't make simultaneous requests using a single HTTPRequest "
-"node.\n"
-" # The snippet below is provided for reference only.\n"
+" # 执行 POST 请求。截止到文档编写时,下é¢çš„ URL 会返回 JSON。\n"
+" # 注æ„:请勿使用å•个 HTTPRequest 节点进行连续请求。\n"
+" # 下é¢çš„ä»£ç æ®µä»…ä¾›å‚考。\n"
" var body = {\"name\": \"Godette\"}\n"
" error = http_request.request(\"https://httpbin.org/post\", [], true, "
"HTTPClient.METHOD_POST, body)\n"
" if error != OK:\n"
-" push_error(\"An error occurred in the HTTP request.\")\n"
+" push_error(\"HTTP 请求å‘生了错误。\")\n"
"\n"
"\n"
-"# Called when the HTTP request is completed.\n"
+"# 将在 HTTP è¯·æ±‚å®Œæˆæ—¶è°ƒç”¨ã€‚\n"
"func _http_request_completed(result, response_code, headers, body):\n"
" var response = parse_json(body.get_string_from_utf8())\n"
"\n"
-" # Will print the user agent string used by the HTTPRequest node (as "
-"recognized by httpbin.org).\n"
+" # 会输出 HTTPRequest 节点所使用的用户代ç†å­—符串(httpbin.org 获å–到的内"
+"容)。\n"
" print(response.headers[\"User-Agent\"])\n"
"[/codeblock]\n"
-"[b]使用HTTPRequest加载和显示图片的例å­ï¼š[/b]\n"
+"[b]使用 HTTPRequest 加载和显示图片的例å­ï¼š[/b]\n"
"[codeblock]\n"
"func _ready():\n"
-" # Create an HTTP request node and connect its completion signal.\n"
+" # 创建 HTTP 请求节点并连接完æˆä¿¡å·ã€‚\n"
" var http_request = HTTPRequest.new()\n"
" add_child(http_request)\n"
" http_request.connect(\"request_completed\", self, "
"\"_http_request_completed\")\n"
"\n"
-" # Perform the HTTP request. The URL below returns a PNG image as of "
-"writing.\n"
+" # 执行 HTTP 请求。截止到文档编写时,下é¢çš„ URL 会返回 PNG 图片。\n"
" var error = http_request.request(\"https://via.placeholder.com/512\")\n"
" if error != OK:\n"
-" push_error(\"An error occurred in the HTTP request.\")\n"
+" push_error(\"HTTP 请求å‘生了错误。\")\n"
"\n"
"\n"
-"# Called when the HTTP request is completed.\n"
+"# 将在 HTTP è¯·æ±‚å®Œæˆæ—¶è°ƒç”¨ã€‚\n"
"func _http_request_completed(result, response_code, headers, body):\n"
" var image = Image.new()\n"
" var error = image.load_png_from_buffer(body)\n"
" if error != OK:\n"
-" push_error(\"Couldn't load the image.\")\n"
+" push_error(\"无法加载图片。\")\n"
"\n"
" var texture = ImageTexture.new()\n"
" texture.create_from_image(image)\n"
"\n"
-" # Display the image in a TextureRect node.\n"
+" # 将图片显示到 TextureRect 节点上。\n"
" var texture_rect = TextureRect.new()\n"
" add_child(texture_rect)\n"
" texture_rect.texture = texture\n"
"[/codeblock]"
#: doc/classes/HTTPRequest.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/networking/http_request_class.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/networking/"
-"http_request_class.html"
+msgstr "$DOCS_URL/tutorials/networking/http_request_class.html"
#: doc/classes/HTTPRequest.xml
msgid "Cancels the current request."
@@ -34179,19 +34390,16 @@ msgstr ""
"能无法导入。"
#: doc/classes/Image.xml doc/classes/ImageTexture.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/assets_pipeline/importing_images.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/assets_pipeline/"
-"importing_images.html"
+msgstr "$DOCS_URL/tutorials/assets_pipeline/importing_images.html"
#: doc/classes/Image.xml
msgid ""
"Alpha-blends [code]src_rect[/code] from [code]src[/code] image to this image "
"at coordinates [code]dest[/code]."
msgstr ""
-"å°† [code]src_rect[/code] 从 [code]src[/code] 图åƒä¸Žåæ ‡ [code]dest[/code] 处"
-"的该图åƒè¿›è¡Œ Alpha æ··åˆã€‚"
+"å°†æºå›¾åƒ [code]src[/code] 上的矩形区域 [code]src_rect[/code] 与本图åƒä»Žåæ ‡ "
+"[code]dest[/code] 起的区域进行 Alpha æ··åˆã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34203,20 +34411,20 @@ msgid ""
"[code]mask[/code] image [b]must[/b] have the same size (width and height) "
"but they can have different formats."
msgstr ""
-"ä»Žåæ ‡[code]dst[/code]处开始,对[code]src_rect[/code]截å–区域的[code]src[/"
-"code]æºå›¾åƒä½¿ç”¨[code]mask[/code]图åƒè¿›è¡ŒAlphaæ··åˆåˆ°æ­¤å›¾åƒã€‚[code]src[/code]å’Œ"
-"[code]mask[/code]都需è¦Alpha通é“。如果相应的é®ç½©(mask)åƒç´ çš„Alpha䏿˜¯0,在å"
-"æ ‡[code]dst[/code]处的åƒç´ å’Œ[code]src[/code]åƒç´ å°†ä¼šæ··åˆã€‚[code]src[/code]图"
-"åƒå’Œ[code]mask[/code]图åƒ[b]å¿…é¡»[/b]有相åŒçš„尺寸,å³å®½åº¦å’Œé«˜åº¦ï¼Œä½†å®ƒä»¬å¯ä»¥æœ‰"
-"ä¸åŒçš„æ ¼å¼ã€‚"
+"å°†æºå›¾åƒ [code]src[/code] 上的矩形区域 [code]src_rect[/code] 与本图åƒä»Žåæ ‡ "
+"[code]dst[/code] 起的区域根æ®é®ç½©å›¾åƒ [code]mask[/code] 进行 Alpha æ··åˆã€‚"
+"[code]src[/code] å’Œ [code]mask[/code] éƒ½éœ€è¦æœ‰ Alpha 通é“。如果æŸä¸ªé®ç½©åƒç´ "
+"çš„ Alpha å€¼éž 0,在 [code]dst[/code] å’Œ [code]src[/code] 上对应的åƒç´ å°±ä¼šè¿›è¡Œ"
+"æ··åˆã€‚[code]src[/code] 图åƒå’Œ [code]mask[/code] 图åƒçš„大å°ï¼ˆå®½åº¦å’Œé«˜åº¦ï¼‰[b]å¿…"
+"é¡»[/b]相åŒï¼Œæ ¼å¼å¯ä»¥ä¸åŒã€‚"
#: doc/classes/Image.xml
msgid ""
"Copies [code]src_rect[/code] from [code]src[/code] image to this image at "
"coordinates [code]dst[/code]."
msgstr ""
-"将指定[code]src[/code]æºå›¾åƒæŒ‰[code]dst[/code]ä¸ºèµ·ç‚¹åæ ‡ï¼Œä»¥ [code]src_rect[/"
-"code] 为矩形截å–区域å¤åˆ¶åˆ°æ­¤å›¾åƒä¸­ã€‚"
+"å°†æºå›¾åƒ [code]src[/code] 上的矩形区域 [code]src_rect[/code] å¤åˆ¶åˆ°æœ¬å›¾åƒä»Žå"
+"标 [code]dst[/code] 起的区域。"
#: doc/classes/Image.xml
msgid ""
@@ -34227,11 +34435,11 @@ msgid ""
"[b]must[/b] have the same size (width and height) but they can have "
"different formats."
msgstr ""
-"将指定[code]src[/code]æºå›¾åƒæŒ‰[code]dst[/code]ä¸ºèµ·ç‚¹åæ ‡ï¼Œä»¥ [code]src_rect[/"
-"code] 为矩形截å–区域å¤åˆ¶åˆ°æ­¤å›¾åƒä¸­ã€‚如果对应的[code]mask[/code]åƒç´ çš„alpha值"
-"䏿˜¯0,[code]src[/code]åƒç´ å°†è¢«å¤åˆ¶åˆ°[code]dst[/code]上。[code]src[/code] 图"
-"åƒå’Œ [code]mask[/code] ] å›¾åƒ [b]å¿…é¡»[/b] 具有相åŒçš„尺寸(宽度和高度),但它"
-"们å¯ä»¥å…·æœ‰ä¸åŒçš„æ ¼å¼ã€‚"
+"å°†æºå›¾åƒ [code]src[/code] 上的矩形区域 [code]src_rect[/code] å¤åˆ¶åˆ°æœ¬å›¾åƒä»Žå"
+"æ ‡ [code]dst[/code] 起的区域。如果é®ç½©å›¾ [code]mask[/code] 上æŸä¸ªåƒç´ çš„ "
+"Alpha å€¼éž 0,就会把 [code]src[/code] 上对应的åƒç´ å¤åˆ¶åˆ° [code]dst[/code] "
+"上。[code]src[/code] 图åƒå’Œ [code]mask[/code] 图åƒçš„大å°ï¼ˆå®½åº¦å’Œé«˜åº¦ï¼‰[b]å¿…é¡»"
+"[/b]相åŒï¼Œæ ¼å¼å¯ä»¥ä¸åŒã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34258,11 +34466,11 @@ msgstr ""
#: doc/classes/Image.xml
msgid "Converts the image's format. See [enum Format] constants."
-msgstr "转æ¢å›¾åƒçš„æ ¼å¼ã€‚å‚阅[enum Format]常é‡ã€‚"
+msgstr "转æ¢å›¾åƒçš„æ ¼å¼ã€‚请å‚阅 [enum Format] 常é‡ã€‚"
#: doc/classes/Image.xml
msgid "Copies [code]src[/code] image to this image."
-msgstr "å°†[code]src[/code]图åƒå¤åˆ¶åˆ°æ­¤å›¾åƒã€‚"
+msgstr "å°†æºå›¾åƒ [code]src[/code] å¤åˆ¶åˆ°æœ¬å›¾åƒã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34291,8 +34499,8 @@ msgid ""
"the specified size is larger than the current size, the extra area is filled "
"with black pixels."
msgstr ""
-"将图åƒè£å‰ªæˆç»™å®šçš„[code]width[/code]å’Œ[code]height[/code]。如果指定的尺寸大于"
-"当å‰å°ºå¯¸ï¼Œå¤šä½™çš„区域将被填充为黑色åƒç´ ã€‚"
+"将图åƒè£å‰ªæˆç»™å®šçš„宽度 [code]width[/code] 和高度 [code]height[/code]。如果指"
+"定的尺寸大于当å‰å°ºå¯¸ï¼Œå¤šå‡ºçš„区域将被填充为黑色。"
#: doc/classes/Image.xml
msgid ""
@@ -34306,9 +34514,9 @@ msgid ""
"Returns [constant ALPHA_BIT] if all the alpha values are stored in a single "
"bit. Returns [constant ALPHA_NONE] if no data for alpha values is found."
msgstr ""
-"å¦‚æžœå›¾åƒæœ‰alpha值的数æ®ï¼Œåˆ™è¿”回[constant ALPHA_BLEND]。如果所有的alpha值都存"
-"储在一个ä½ä¸Šï¼Œåˆ™è¿”回[constant ALPHA_BIT]。如果没有找到alpha值的数æ®ï¼Œåˆ™è¿”回"
-"[constant ALPHA_NONE]。"
+"å¦‚æžœå›¾åƒæœ‰ Alpha 值的数æ®ï¼Œåˆ™è¿”回 [constant ALPHA_BLEND]。如果所有的 Alpha 值"
+"都存储在一个ä½ä¸Šï¼Œåˆ™è¿”回 [constant ALPHA_BIT]。如果没有找到 Alpha 值的数æ®ï¼Œ"
+"则返回 [constant ALPHA_NONE]。"
#: doc/classes/Image.xml
msgid ""
@@ -34317,18 +34525,16 @@ msgid ""
msgstr "拉伸图åƒå¹¶å°†å…¶æ”¾å¤§2å€ï¼Œä¸è¿›è¡Œæ’值。"
#: doc/classes/Image.xml
-#, fuzzy
msgid "Fills the image with [code]color[/code]."
-msgstr "用给定的 [Color] 填充图åƒã€‚"
+msgstr "使用颜色 [code]color[/code] 填充图åƒã€‚"
#: doc/classes/Image.xml
-#, fuzzy
msgid "Fills [code]rect[/code] with [code]color[/code]."
-msgstr "将选项å¡ä»Ž [code]from[/code] 移动到 [code]to[/code]。"
+msgstr "使用颜色 [code]color[/code] 填充矩形 [code]rect[/code]。"
#: doc/classes/Image.xml
msgid "Blends low-alpha pixels with nearby pixels."
-msgstr "å°†ä½Žé€æ˜Žåº¦(alpha)åƒç´ ä¸Žé™„è¿‘åƒç´ æ··åˆã€‚"
+msgstr "å°† Alpha 较低的åƒç´ ä¸Žé™„è¿‘åƒç´ æ··åˆã€‚"
#: doc/classes/Image.xml
msgid "Flips the image horizontally."
@@ -34414,7 +34620,7 @@ msgid ""
"Returns a [Rect2] enclosing the visible portion of the image, considering "
"each pixel with a non-zero alpha channel as visible."
msgstr ""
-"返回一个包围图åƒå¯è§éƒ¨åˆ†çš„ [Rect2] 矩形,åƒç´ çš„ alpha 通é“值éžé›¶æ—¶è§†ä¸ºå¯è§ã€‚"
+"返回一个包围图åƒå¯è§éƒ¨åˆ†çš„ [Rect2] 矩形,åƒç´ çš„ Alpha 通é“值éžé›¶æ—¶è§†ä¸ºå¯è§ã€‚"
#: doc/classes/Image.xml
msgid "Returns the image's width."
@@ -34437,11 +34643,10 @@ msgid ""
"Returns [code]true[/code] if all the image's pixels have an alpha value of "
"0. Returns [code]false[/code] if any pixel has an alpha value higher than 0."
msgstr ""
-"如果图åƒä¸­æ‰€æœ‰åƒç´ çš„ä¸é€æ˜Žåº¦ï¼ˆalpha)都是 0,则返回 [code]true[/code]。如果有"
-"任何åƒç´ çš„ä¸é€æ˜Žåº¦ï¼ˆalpha)高于 0,则返回 [code]false[/code]。"
+"如果图åƒä¸­æ‰€æœ‰åƒç´ çš„ Alpha 都是 0,则返回 [code]true[/code]。如果有任何åƒç´ "
+"的 Alpha 高于 0,则返回 [code]false[/code]。"
#: doc/classes/Image.xml
-#, fuzzy
msgid ""
"Loads an image from file [code]path[/code]. See [url=$DOCS_URL/tutorials/"
"assets_pipeline/importing_images.html#supported-image-formats]Supported "
@@ -34451,9 +34656,9 @@ msgid ""
"the [code]user://[/code] directory, and may not work in exported projects.\n"
"See also [ImageTexture] description for usage examples."
msgstr ""
-"从文件 [code]path[/code] 加载图åƒã€‚请å‚阅 [url=https://docs.godotengine.org/"
-"zh_CN/stable/tutorials/assets_pipeline/importing_images.html#supported-image-"
-"formats]支æŒçš„å›¾åƒæ ¼å¼[/url],了解支æŒçš„å›¾åƒæ ¼å¼å’Œé™åˆ¶ã€‚\n"
+"从文件 [code]path[/code] 加载图åƒã€‚请å‚阅[url=$DOCS_URL/tutorials/"
+"assets_pipeline/importing_images.html#supported-image-formats]支æŒçš„å›¾åƒæ ¼å¼"
+"[/url],了解支æŒçš„å›¾åƒæ ¼å¼å’Œé™åˆ¶ã€‚\n"
"[b]警告:[/b]这个方法åªèƒ½åœ¨ç¼–辑器中使用,或者在è¿è¡Œæ—¶éœ€è¦åŠ è½½å¤–éƒ¨å›¾åƒçš„æƒ…况下"
"使用,比如ä½äºŽ [code]user://[/code] 目录下的图åƒï¼Œåœ¨å¯¼å‡ºçš„项目中å¯èƒ½æ— æ³•å·¥"
"作。\n"
@@ -34507,7 +34712,7 @@ msgid ""
"Multiplies color values with alpha values. Resulting color values for a "
"pixel are [code](color * alpha)/256[/code]."
msgstr ""
-"将颜色值与alpha值相乘。一个åƒç´ çš„结果颜色值是[code](color * alpha)/256[/"
+"将颜色值与 Alpha 值相乘。一个åƒç´ çš„结果颜色值是 [code](color * alpha)/256[/"
"code]。"
#: doc/classes/Image.xml
@@ -34638,7 +34843,7 @@ msgstr "çº¹ç†æ ¼å¼ï¼Œå…·æœ‰ä»£è¡¨äº®åº¦çš„å•一8使·±åº¦ã€‚"
msgid ""
"OpenGL texture format with two values, luminance and alpha each stored with "
"8 bits."
-msgstr "OpenGL çº¹ç†æ ¼å¼ï¼Œå…·æœ‰ä¸¤ä¸ªå€¼ï¼Œäº®åº¦å’Œ alpha,æ¯ä¸ªå€¼ä»¥ 8 ä½å­˜å‚¨ã€‚"
+msgstr "OpenGL çº¹ç†æ ¼å¼ï¼Œå…·æœ‰ä¸¤ä¸ªå€¼ï¼Œäº®åº¦å’Œ Alpha,都以 8 ä½å­˜å‚¨ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34648,7 +34853,7 @@ msgid ""
"instead of the red channel for storage."
msgstr ""
"OpenGL çº¹ç†æ ¼å¼ [code]RED[/code],具有å•个分é‡å’Œ 8 使·±åº¦ã€‚\n"
-"[b]注æ„:[/b] 当使用 GLES2 åŽç«¯æ—¶ï¼Œå®ƒä½¿ç”¨ alpha 通é“è€Œä¸æ˜¯çº¢è‰²é€šé“进行存储。"
+"[b]注æ„:[/b] 当使用 GLES2 åŽç«¯æ—¶ï¼Œå®ƒä½¿ç”¨ Alpha 通é“è€Œä¸æ˜¯çº¢è‰²é€šé“进行存储。"
#: doc/classes/Image.xml
msgid ""
@@ -34664,7 +34869,7 @@ msgid ""
"conversion is performed."
msgstr ""
"OpenGL çº¹ç†æ ¼å¼ [code]RGB[/code] 具有三个部分,æ¯ä¸ªåˆ†é‡éƒ¨åˆ†çš„使·±åº¦ä¸º 8。\n"
-"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行sRGB到线性色彩空间的转æ¢ã€‚"
+"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转æ¢ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34674,7 +34879,7 @@ msgid ""
"conversion is performed."
msgstr ""
"OpenGL çº¹ç†æ ¼å¼ [code]RGBA[/code] 有四个部分,æ¯ä¸ªåˆ†é‡éƒ¨åˆ†çš„使·±åº¦ä¸º 8。\n"
-"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行sRGB到线性色彩空间的转æ¢ã€‚"
+"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转æ¢ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34688,8 +34893,8 @@ msgid ""
"OpenGL texture format [code]GL_RGB5_A1[/code] where 5 bits of depth for each "
"component of RGB and one bit for alpha."
msgstr ""
-"OpenGLçº¹ç†æ ¼å¼[code]GL_RGB5_A1[/code],其中RGBæ¯ä¸ªåˆ†é‡çš„æ·±åº¦ä¸º5ä½ï¼Œalpha为1"
-"ä½ã€‚"
+"OpenGLçº¹ç†æ ¼å¼ [code]GL_RGB5_A1[/code],其中 RGB æ¯ä¸ªåˆ†é‡çš„æ·±åº¦ä¸º 5 ä½ï¼ŒAlpha"
+"为 1 ä½ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34771,8 +34976,9 @@ msgid ""
"conversion is performed."
msgstr ""
"[url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] çº¹ç†æ ¼å¼"
-"使用å—压缩1,并且是S3TC的最å°å˜åŒ–,ä»…æä¾›1ä½çš„alphaå’Œé¢œè‰²æ•°æ® é¢„ä¹˜ä»¥alpha.\n"
-"[b]注æ„:[/b]创建 ImageTexture 时,将执行 sRGB 到线性色彩空间的转æ¢ã€‚"
+"使用å—压缩 1,并且是 S3TC 的最å°å˜åŒ–,仅æä¾› 1 ä½çš„ Alpha å’Œé¢œè‰²æ•°æ® é¢„ä¹˜ä»¥ "
+"Alpha。\n"
+"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转æ¢ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34783,10 +34989,10 @@ msgid ""
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
-"使用å—压缩2çš„[url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/"
-"url]贴图格å¼,并且颜色数æ®è¢«è§£æžä¸ºæ²¡æœ‰ä¸Žalpha预先相乘.éžå¸¸é€‚用于具有 åŠé€æ˜Žå’Œ"
-"ä¸é€æ˜ŽåŒºåŸŸä¹‹é—´çš„æ¸…æ™°çš„alpha过渡.\n"
-"[b]注æ„:[/b]创建ImageTextureæ—¶,将执行sRGB到线性色彩空间的转æ¢."
+"使用å—压缩 2 çš„ [url=https://en.wikipedia.org/wiki/"
+"S3_Texture_Compression]S3TC[/url] 贴图格å¼,并且颜色数æ®è¢«è§£æžä¸ºæ²¡æœ‰ä¸Ž Alpha "
+"预先相乘。éžå¸¸é€‚用于具有 åŠé€æ˜Žå’Œä¸é€æ˜ŽåŒºåŸŸä¹‹é—´çš„æ¸…æ™°çš„ Alpha 过渡。\n"
+"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转æ¢ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34799,10 +35005,10 @@ msgid ""
"conversion is performed."
msgstr ""
"[url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] çº¹ç†æ ¼å¼"
-"也称为å—压缩3或BC3,其中包å«64ä½çš„alphaé€šé“æ•°æ®,åŽè·Ÿ64ä½çš„DXT1ç¼–ç  é¢œè‰²æ•°æ®:颜"
-"色数æ®ä¸ä¼šä¸ŽDXT3预先乘以alpha.与DXT3相比,DXT5å¯¹äºŽé€æ˜Žæ¸å˜é€šå¸¸ä¼šäº§ç”Ÿæ›´å¥½çš„结"
-"果.\n"
-"[b]注æ„:[/b]创建 ImageTexture 时,将执行 sRGB 到线性色彩空间的转æ¢ã€‚"
+"也称为å—压缩 3 或 BC3ï¼Œå…¶ä¸­åŒ…å« 64 ä½çš„ Alpha é€šé“æ•°æ®ï¼ŒåŽè·Ÿ 64 ä½çš„ DXT1 ç¼–"
+"ç é¢œè‰²æ•°æ®ã€‚颜色数æ®ä¸ä¼šä¸Ž DXT3 预先乘以 Alpha。与 DXT3 相比,DXT5 å¯¹äºŽé€æ˜Žæ¸"
+"å˜é€šå¸¸ä¼šäº§ç”Ÿæ›´å¥½çš„结果。\n"
+"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转æ¢ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34811,9 +35017,9 @@ msgid ""
"normalizing the red channel data using the same compression algorithm that "
"DXT5 uses for the alpha channel."
msgstr ""
-"使用 [url=https://www.khronos.org/opengl/wiki/Red_Green_Texture_Compression]"
-"红绿贴图压缩[/url]的贴图格å¼,使用与DXT5用于alpha通é“相åŒçš„压缩算法对红色通é“"
-"æ•°æ®è¿›è¡Œå½’一化."
+"使用[url=https://www.khronos.org/opengl/wiki/Red_Green_Texture_Compression]红"
+"绿贴图压缩[/url]的贴图格å¼ï¼Œä½¿ç”¨ä¸Ž DXT5 用于 Alpha 通é“相åŒçš„压缩算法对红色通"
+"铿•°æ®è¿›è¡Œå½’一化。"
#: doc/classes/Image.xml
msgid ""
@@ -34822,8 +35028,9 @@ msgid ""
"normalizing the red and green channel data using the same compression "
"algorithm that DXT5 uses for the alpha channel."
msgstr ""
-"使用 [url=https://www.khronos.org/opengl/wiki/Red_Green_Texture_Compression]"
-"红绿贴图压缩[/url]的贴图格å¼,使用与DXT5用于alpha的压缩算法相åŒçš„红绿数æ®é€šé“."
+"使用[url=https://www.khronos.org/opengl/wiki/Red_Green_Texture_Compression]红"
+"绿贴图压缩[/url]的贴图格å¼ï¼Œä½¿ç”¨ä¸Ž DXT5 用于 Alpha 的压缩算法相åŒçš„红绿数æ®é€š"
+"é“。"
#: doc/classes/Image.xml
msgid ""
@@ -34835,7 +35042,7 @@ msgid ""
msgstr ""
"使用 [url=https://www.khronos.org/opengl/wiki/BPTC_Texture_Compression]BPTC压"
"缩[/url] 和无符å·å½’一化RGBA分é‡çš„贴图格å¼.\n"
-"[b]注æ„:[/b]创建[ImageTexture]æ—¶,将执行sRGB到线性色彩空间的转æ¢."
+"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转æ¢ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34863,31 +35070,33 @@ msgid ""
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
-"PowerVR支æŒçš„移动平å°ä¸Šä½¿ç”¨çš„贴图格å¼,使用2ä½é¢œè‰²æ·±åº¦,没有alpha.更多信æ¯å¯ä»¥"
-"在 [url=https://en.wikipedia.org/wiki/PVRTC]这里[/url]找到.\n"
-"[b]注æ„:[/b]在创建ImageTextureæ—¶,会进行sRGB到线性色彩空间的转æ¢."
+"PowerVR 支æŒçš„移动平å°ä¸Šä½¿ç”¨çš„贴图格å¼ï¼Œä½¿ç”¨ 2 ä½é¢œè‰²æ·±åº¦ï¼Œæ²¡æœ‰ Alpha。更多信"
+"æ¯å¯ä»¥åœ¨[url=https://en.wikipedia.org/wiki/PVRTC]这里[/url]找到。\n"
+"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转æ¢ã€‚"
#: doc/classes/Image.xml
msgid ""
"Same as [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url], but with an "
"alpha component."
msgstr ""
-"与 [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url]相åŒ,但带有alpha组件."
+"与 [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url] 相åŒï¼Œä½†å¸¦æœ‰ Alpha "
+"分é‡ã€‚"
#: doc/classes/Image.xml
msgid ""
"Similar to [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url], but with 4-"
"bit color depth and no alpha."
msgstr ""
-"与 [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url]相似,但具有4ä½è‰²æ·±ä¸”"
-"没有Alpha通é“."
+"与 [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url] 类似,但具有 4 ä½è‰²"
+"深且ä¸å¸¦ Alpha。"
#: doc/classes/Image.xml
msgid ""
"Same as [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC4[/url], but with an "
"alpha component."
msgstr ""
-"与 [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC4[/url]相åŒ,但带有alpha组件."
+"与 [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC4[/url] 相åŒï¼Œä½†å¸¦æœ‰ Alpha "
+"分é‡ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34896,9 +35105,9 @@ msgid ""
"url], also referred to as \"ETC1\", and is part of the OpenGL ES graphics "
"standard. This format cannot store an alpha channel."
msgstr ""
-"[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC1]Ericsson"
-"纹ç†åŽ‹ç¼©æ ¼å¼1[/url],åˆç§° \"ETC1\",是OpenGL ES图形标准的一部分.è¿™ç§æ ¼å¼ä¸èƒ½å­˜"
-"储alpha通é“."
+"[url=https://zh.wikipedia.org/zh-cn/%E7%88%B1%E7%AB%8B%E4%BF%A1%E7%BA"
+"%B9%E7%90%86%E5%8E%8B%E7%BC%A9#ETC1]爱立信纹ç†åŽ‹ç¼©æ ¼å¼ 1[/url],åˆç§°â€œETC1â€ï¼Œ"
+"是 OpenGL ES å›¾å½¢æ ‡å‡†çš„ä¸€éƒ¨åˆ†ã€‚è¿™ç§æ ¼å¼æ— æ³•存储 Alpha 通é“。"
#: doc/classes/Image.xml
msgid ""
@@ -34907,9 +35116,9 @@ msgid ""
"format 2[/url] ([code]R11_EAC[/code] variant), which provides one channel of "
"unsigned data."
msgstr ""
-"[url=https://en.wikipedia.org/wiki/"
-"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹ç†åŽ‹ç¼©æ ¼å¼2[/url] "
-"([code]R11_EACvariant[/code]),它æä¾›ä¸€ä¸ªæ— ç¬¦å·æ•°æ®é€šé“."
+"[url=https://zh.wikipedia.org/zh-cn/%E7%88%B1%E7%AB%8B%E4%BF%A1%E7%BA"
+"%B9%E7%90%86%E5%8E%8B%E7%BC%A9#[3]ETC2%E5%92%8CEAC]爱立信纹ç†åŽ‹ç¼©æ ¼å¼ 2[/url]"
+"([code]R11_EAC[/code] å˜ä½“),它æä¾›ä¸€ä¸ªæ— ç¬¦å·æ•°æ®é€šé“。"
#: doc/classes/Image.xml
msgid ""
@@ -34918,9 +35127,9 @@ msgid ""
"format 2[/url] ([code]SIGNED_R11_EAC[/code] variant), which provides one "
"channel of signed data."
msgstr ""
-"[url=https://en.wikipedia.org/wiki/"
-"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹ç†åŽ‹ç¼©æ ¼å¼2[/url]"
-"([code]SIGNED_R11_EACvariant[/code]),它æä¾›ä¸€ä¸ªé€šé“çš„æœ‰ç¬¦å·æ•°æ®."
+"[url=https://zh.wikipedia.org/zh-cn/%E7%88%B1%E7%AB%8B%E4%BF%A1%E7%BA"
+"%B9%E7%90%86%E5%8E%8B%E7%BC%A9#[3]ETC2%E5%92%8CEAC]爱立信纹ç†åŽ‹ç¼©æ ¼å¼ 2[/url]"
+"([code]SIGNED_R11_EAC[/code] å˜ä½“),它æä¾›ä¸€ä¸ªæœ‰ç¬¦å·æ•°æ®é€šé“。"
#: doc/classes/Image.xml
msgid ""
@@ -34929,9 +35138,9 @@ msgid ""
"format 2[/url] ([code]RG11_EAC[/code] variant), which provides two channels "
"of unsigned data."
msgstr ""
-"[url=https://en.wikipedia.org/wiki/"
-"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹ç†åŽ‹ç¼©æ ¼å¼2[/url]"
-"([code]RG11_EAC[/code] variant),它æä¾›ä¸€ä¸ªæ— ç¬¦å·æ•°æ®é€šé“."
+"[url=https://zh.wikipedia.org/zh-cn/%E7%88%B1%E7%AB%8B%E4%BF%A1%E7%BA"
+"%B9%E7%90%86%E5%8E%8B%E7%BC%A9#[3]ETC2%E5%92%8CEAC]爱立信纹ç†åŽ‹ç¼©æ ¼å¼ 2[/url]"
+"([code]RG11_EAC[/code] å˜ä½“),它æä¾›ä¸€ä¸ªæ— ç¬¦å·æ•°æ®é€šé“。"
#: doc/classes/Image.xml
msgid ""
@@ -34940,9 +35149,9 @@ msgid ""
"format 2[/url] ([code]SIGNED_RG11_EAC[/code] variant), which provides two "
"channels of signed data."
msgstr ""
-"[url=https://en.wikipedia.org/wiki/"
-"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹ç†åŽ‹ç¼©æ ¼å¼2[/url]"
-"([code]SIGNED_RG11_EAC[/code] å˜ä½“),它æä¾›ä¸¤ä¸ªé€šé“çš„æœ‰ç¬¦å·æ•°æ®ã€‚"
+"[url=https://zh.wikipedia.org/zh-cn/%E7%88%B1%E7%AB%8B%E4%BF%A1%E7%BA"
+"%B9%E7%90%86%E5%8E%8B%E7%BC%A9#[3]ETC2%E5%92%8CEAC]爱立信纹ç†åŽ‹ç¼©æ ¼å¼ 2[/url]"
+"([code]SIGNED_RG11_EAC[/code] å˜ä½“),它æä¾›ä¸¤ä¸ªæœ‰ç¬¦å·æ•°æ®é€šé“。"
#: doc/classes/Image.xml
msgid ""
@@ -34953,10 +35162,10 @@ msgid ""
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
-"[url=https://en.wikipedia.org/wiki/"
-"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹ç†åŽ‹ç¼©æ ¼å¼2[/url] "
-"([code]RGB8[/code] å˜ä½“),它是ETC1çš„åŽç»­ç‰ˆæœ¬,å¯åŽ‹ç¼©RGB888æ•°æ®.\n"
-"[b]注æ„:[/b]创建[ImageTexture]æ—¶,会进行sRGB到线性色彩空间的转æ¢."
+"[url=https://zh.wikipedia.org/zh-cn/%E7%88%B1%E7%AB%8B%E4%BF%A1%E7%BA"
+"%B9%E7%90%86%E5%8E%8B%E7%BC%A9#[3]ETC2%E5%92%8CEAC]爱立信纹ç†åŽ‹ç¼©æ ¼å¼ 2[/url]"
+"([code]RGB8[/code] å˜ä½“),它是 ETC1 çš„åŽç»­ç‰ˆæœ¬ï¼Œå¯åŽ‹ç¼© RGB888 æ•°æ®ã€‚\n"
+"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转æ¢ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34967,10 +35176,10 @@ msgid ""
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
-"[url=https://en.wikipedia.org/wiki/"
-"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹ç†åŽ‹ç¼©æ ¼å¼2[/url]"
-"([code]RGBA8[/code] å˜ä½“),它å¯ä»¥åŽ‹ç¼©RGBA8888æ•°æ®,完全支æŒalpha.\n"
-"[b]注æ„:[/b]在创建[ImageTexture]æ—¶,会进行sRGB到线性色彩空间的转æ¢."
+"[url=https://zh.wikipedia.org/zh-cn/%E7%88%B1%E7%AB%8B%E4%BF%A1%E7%BA"
+"%B9%E7%90%86%E5%8E%8B%E7%BC%A9#[3]ETC2%E5%92%8CEAC]爱立信纹ç†åŽ‹ç¼©æ ¼å¼ 2[/url]"
+"([code]RGBA8[/code] å˜ä½“),它å¯ä»¥åŽ‹ç¼© RGBA8888 æ•°æ®ï¼Œå®Œå…¨æ”¯æŒ Alpha。\n"
+"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转æ¢ã€‚"
#: doc/classes/Image.xml
msgid ""
@@ -34982,11 +35191,11 @@ msgid ""
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
-"[url=https://en.wikipedia.org/wiki/"
-"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹ç†åŽ‹ç¼©æ ¼å¼2[/url]"
-"([code]RGB8_PUNCHTHROUGH_ALPHA1[/code] å˜ä½“),它å¯ä»¥åŽ‹ç¼©RGBAæ•°æ®,使alpha完全é€"
-"明或完全ä¸é€æ˜Ž.\n"
-"[b]注æ„:[/b] 创建[ImageTexture]æ—¶,会进行sRGB到线性色彩空间的转æ¢."
+"[url=https://zh.wikipedia.org/zh-cn/%E7%88%B1%E7%AB%8B%E4%BF%A1%E7%BA"
+"%B9%E7%90%86%E5%8E%8B%E7%BC%A9#[3]ETC2%E5%92%8CEAC]爱立信纹ç†åŽ‹ç¼©æ ¼å¼ 2[/url]"
+"([code]RGB8_PUNCHTHROUGH_ALPHA1[/code] å˜ä½“),它å¯ä»¥åŽ‹ç¼© RGBA æ•°æ®ï¼Œä½¿ "
+"Alpha å®Œå…¨é€æ˜Žæˆ–完全ä¸é€æ˜Žã€‚\n"
+"[b]注æ„:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转æ¢ã€‚"
#: doc/classes/Image.xml
msgid "Represents the size of the [enum Format] enum."
@@ -35204,9 +35413,9 @@ msgid ""
"[b]Note:[/b] This method is deprecated and will be removed in Godot 4.0, use "
"[method Image.load] and [method create_from_image] instead."
msgstr ""
-"从文件路径加载图åƒ,并从中创建一个纹ç†å›¾ç‰‡ã€‚\n"
-"[b]注释:[/b]:该方法已被废弃,并将在Godot 4.0中被删除,请建议使用Image.load()和"
-"create_from_image()代替。"
+"从文件路径加载图åƒï¼Œå¹¶ä»Žä¸­åˆ›å»ºä¸€ä¸ªçº¹ç†å›¾ç‰‡ã€‚\n"
+"[b]注æ„:[/b]该方法已被废弃,并将在 Godot 4.0 中删除,请使用 [method Image."
+"load] 和 [method create_from_image] 代替。"
#: doc/classes/ImageTexture.xml
msgid ""
@@ -35352,7 +35561,7 @@ msgstr ""
#: doc/classes/Input.xml
msgid "$DOCS_URL/tutorials/inputs/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/inputs/index.html"
#: doc/classes/Input.xml
msgid ""
@@ -35602,6 +35811,7 @@ msgstr ""
"想è¦çš„值(在 0 到 1 的范围内)。"
#: doc/classes/Input.xml
+#, fuzzy
msgid ""
"Returns [code]true[/code] when the user starts pressing the action event, "
"meaning it's [code]true[/code] only on the frame that the user pressed down "
@@ -35610,7 +35820,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
"当用户开始按下动作事件时,返回[code]true[/code]ï¼Œä¹Ÿå°±æ˜¯è¯´ï¼Œåªæœ‰åœ¨ç”¨æˆ·æŒ‰ä¸‹æŒ‰é’®"
"çš„é‚£ä¸€å¸§æ‰æ˜¯[code]true[/code]。\n"
@@ -35636,6 +35850,7 @@ msgstr ""
"å‘。"
#: doc/classes/Input.xml
+#, fuzzy
msgid ""
"Returns [code]true[/code] if you are pressing the action event. Note that if "
"an action has multiple buttons assigned and more than one of them is "
@@ -35643,7 +35858,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
"如果你正在按下动作事件,返回[code]true[/code]。请注æ„,如果一个动作有多个分é…"
"çš„æŒ‰é’®ï¼Œå¹¶ä¸”ä¸æ­¢ä¸€ä¸ªè¢«æŒ‰ä¸‹ï¼Œé‡Šæ”¾ä¸€ä¸ªæŒ‰é’®å°†é‡Šæ”¾è¿™ä¸ªåŠ¨ä½œï¼Œå³ä½¿å…¶ä»–分é…给这个动"
@@ -35672,11 +35891,18 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
-"如果你正在按压该键,则返回 [code]true[/code]。你å¯ä»¥ä¼ é€’ [enum KeyList] 常"
-"é‡ã€‚"
#: doc/classes/Input.xml
msgid ""
@@ -35689,10 +35915,17 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
-"如果你正在按压该键,则返回[code]true[/code]。按键由 101/102 é”®ç¾Žå¼ QWERTY é”®"
-"盘上该键的物ç†ä½ç½®ç¡®å®šã€‚ä½ å¯ä»¥ä¼ é€’ [enum KeyList] 常é‡ã€‚"
#: doc/classes/Input.xml
msgid ""
@@ -36036,10 +36269,8 @@ msgstr "å„ç§è¾“入事件的基类。请å‚阅 [method Node._input]。"
#: doc/classes/InputEventMouse.xml doc/classes/InputEventScreenDrag.xml
#: doc/classes/InputEventScreenTouch.xml
#: doc/classes/InputEventWithModifiers.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/inputs/inputevent.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/inputs/inputevent.html"
+msgstr "$DOCS_URL/tutorials/inputs/inputevent.html"
#: doc/classes/InputEvent.xml
msgid ""
@@ -36086,6 +36317,7 @@ msgstr ""
"å‘。"
#: doc/classes/InputEvent.xml
+#, fuzzy
msgid ""
"Returns [code]true[/code] if the given action is being pressed (and is not "
"an echo event for [InputEventKey] events, unless [code]allow_echo[/code] is "
@@ -36093,7 +36325,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
"如果给定的动作被按下,则返回[code]true[/code]ï¼Œå¹¶ä¸”ä¸æ˜¯ [InputEventKey] 事件"
"çš„å›žæ˜¾äº‹ä»¶ï¼Œé™¤éž [code]allow_echo[/code] 是 [code]true[/code]。与"
@@ -36133,12 +36369,20 @@ msgstr ""
"[code]true[/code]。"
#: doc/classes/InputEvent.xml
+#, fuzzy
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
-"如果此输入事件为按下,则返回 [code]true[/code]。与类型 "
-"[InputEventMouseMotion] 或 [InputEventScreenDrag] 的事件无关。"
+"å¦‚æžœç»™å®šçš„åŠ¨ä½œè¢«é‡Šæ”¾ï¼Œå³æœªè¢«æŒ‰ä¸‹ï¼Œåˆ™è¿”回[code]true[/code]。与"
+"[InputEventMouseMotion]或[InputEventScreenDrag]类型的事件无关。\n"
+"如果[code]exact_match[/code]是[code]false[/code],它将忽略[InputEventKey]和"
+"[InputEventMouseButton]事件的输入修饰符,以åŠ[InputEventJoypadMotion]事件的方"
+"å‘。"
#: doc/classes/InputEvent.xml
msgid ""
@@ -36196,11 +36440,8 @@ msgstr ""
"èœå•中的[b]键使˜ å°„[/b]选项å¡ä¸­åˆ›å»ºã€‚请å‚阅 [method Node._input]。"
#: doc/classes/InputEventAction.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/inputs/inputevent.html#actions"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/inputs/inputevent."
-"html#actions"
+msgstr "$DOCS_URL/tutorials/inputs/inputevent.html#actions"
#: doc/classes/InputEventAction.xml
msgid "The action's name. Actions are accessed via this [String]."
@@ -36316,8 +36557,8 @@ msgid ""
"get_physical_scancode_with_modifiers())[/code] where [code]event[/code] is "
"the [InputEventKey]."
msgstr ""
-"返回与修改键组åˆçš„物ç†é”®ç ï¼Œä¾‹å¦‚ [code]Shift[/code] 或 [code]Alt[/code]。å‚阅"
-"[InputEventWithModifiers]。\n"
+"返回与修改键组åˆçš„ç‰©ç†æ‰«æç ï¼Œä¾‹å¦‚ [code]Shift[/code] 或 [code]Alt[/code]。请"
+"å‚阅 [InputEventWithModifiers]。\n"
"è¦èŽ·å¾—å¸¦æœ‰ä¿®é¥°ç¬¦çš„ [InputEventKey] 的人类å¯è¯»è¡¨ç¤ºï¼Œè¯·ä½¿ç”¨ [code]OS."
"get_scancode_string(event.get_physical_scancode_with_modifiers())[/code] å…¶"
"中 [code]event[/code] 是 [InputEventKey]。"
@@ -36331,7 +36572,7 @@ msgid ""
"get_scancode_with_modifiers())[/code] where [code]event[/code] is the "
"[InputEventKey]."
msgstr ""
-"返回与 [code]Shift[/code] 或 [code]Alt[/code] 等修饰键组åˆçš„é”®ç ã€‚å‚阅"
+"返回与 [code]Shift[/code] 或 [code]Alt[/code] 等修饰键组åˆçš„æ‰«æç ã€‚请å‚阅 "
"[InputEventWithModifiers]。\n"
"è¦èŽ·å¾—å¸¦æœ‰ä¿®é¥°ç¬¦çš„ [InputEventKey] 的人类å¯è¯»è¡¨ç¤ºï¼Œè¯·ä½¿ç”¨ [code]OS."
"get_scancode_string(event.get_scancode_with_modifiers())[/code] 其中 "
@@ -36354,8 +36595,8 @@ msgid ""
"get_scancode_string(event.physical_scancode)[/code] where [code]event[/code] "
"is the [InputEventKey]."
msgstr ""
-"键的物ç†ç¼–ç ï¼Œå¯¹åº”于 [enum KeyList] 常é‡ä¹‹ä¸€ã€‚表示 101/102 键美国 QWERTY 键盘"
-"上按键的物ç†ä½ç½®ã€‚\n"
+"é”®çš„ç‰©ç†æ‰«æç ï¼Œå¯¹åº”于 [enum KeyList] 常é‡ä¹‹ä¸€ã€‚表示 101/102 键美国 QWERTY é”®"
+"盘上按键的物ç†ä½ç½®ã€‚\n"
"è¦èŽ·å¾— [InputEventKey] 的人类å¯è¯»è¡¨ç¤ºï¼Œè¯·ä½¿ç”¨ [code]OS."
"get_scancode_string(event.physical_scancode)[/code] 其中 [code]event[/code] "
"是 [InputEventKey]。"
@@ -36376,7 +36617,7 @@ msgid ""
"get_scancode_string(event.scancode)[/code] where [code]event[/code] is the "
"[InputEventKey]."
msgstr ""
-"é”®ç ï¼Œå¯¹åº”于 [enum KeyList] 常é‡ä¹‹ä¸€ã€‚表示当å‰é”®ç›˜å¸ƒå±€ä¸­çš„键。\n"
+"该按键的扫æç ï¼Œå¯¹åº”于 [enum KeyList] 常é‡ä¹‹ä¸€ã€‚表示当å‰é”®ç›˜å¸ƒå±€ä¸­çš„键。\n"
"è¦èŽ·å¾— [InputEventKey] 的人类å¯è¯»è¡¨ç¤ºï¼Œè¯·ä½¿ç”¨ [code]OS."
"get_scancode_string(event.scancode)[/code] 其中 [code]event[/code] 是 "
"[InputEventKey]。"
@@ -36387,8 +36628,113 @@ msgid ""
"composite characters and complex scripts may not be available unless IME "
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
-"Unicodeé”®æ ‡è¯†ç¬¦ï¼ˆå¦‚æžœç›¸å…³ï¼‰ã€‚é™¤éž IME 输入模å¼å¤„于激活状æ€ï¼Œå¦åˆ™å¤åˆå­—符和å¤"
-"æ‚脚本的 Unicode 标识符å¯èƒ½æ— æ³•使用。更多信æ¯å‚阅[method OS.set_ime_active]。"
+"按键的 Unicode æ ‡è¯†ç¬¦ï¼ˆå¦‚æžœç›¸å…³ï¼‰ã€‚é™¤éž IME 输入模å¼å¤„于激活状æ€ï¼Œå¦åˆ™å¤åˆå­—"
+"ç¬¦å’Œå¤æ‚文字的 Unicode 标识符å¯èƒ½æ— æ³•使用。更多信æ¯å‚阅 [method OS."
+"set_ime_active]。"
+
+#: doc/classes/InputEventMIDI.xml
+#, fuzzy
+msgid "Input event for MIDI inputs."
+msgstr "动作的输入事件类型。"
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+#, fuzzy
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+"https://zh.wikipedia.org/zh-cn/%E5%96%AE%E7%B2%BE%E5%BA%A6%E6%B5%AE%E9%BB%9E"
+"%E6%95%B8"
+
+#: doc/classes/InputEventMIDI.xml
+#, fuzzy
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+"https://zh.wikipedia.org/zh-cn/%E5%96%AE%E7%B2%BE%E5%BA%A6%E6%B5%AE%E9%BB%9E"
+"%E6%95%B8"
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
@@ -36405,18 +36751,22 @@ msgid ""
msgstr "é¼ æ ‡æŒ‰é’®æŽ©ç æ ‡è¯†ç¬¦ï¼Œæ˜¯[enum ButtonList] 按钮掩ç ä¹‹ä¸€æˆ–按ä½ç»„åˆã€‚"
#: doc/classes/InputEventMouse.xml
+#, fuzzy
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
-"在[method Control._gui_input]中使用时,相对于当å‰[Viewport]的全局鼠标ä½ç½®ï¼Œå¦"
-"则是在0,0处。"
+"相对于[Viewport]的本地局部鼠标ä½ç½®ã€‚如果在[method Control._gui_input]中使用,"
+"ä½ç½®æ˜¯ç›¸å¯¹äºŽå½“å‰å¤„于鼠标下的控件[Control]。"
#: doc/classes/InputEventMouse.xml
+#, fuzzy
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
"相对于[Viewport]的本地局部鼠标ä½ç½®ã€‚如果在[method Control._gui_input]中使用,"
"ä½ç½®æ˜¯ç›¸å¯¹äºŽå½“å‰å¤„于鼠标下的控件[Control]。"
@@ -36430,11 +36780,8 @@ msgid "Contains mouse click information. See [method Node._input]."
msgstr "包å«é¼ æ ‡ç‚¹å‡»ä¿¡æ¯ã€‚è§[method Node._input]。"
#: doc/classes/InputEventMouseButton.xml doc/classes/InputEventMouseMotion.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/inputs/mouse_and_input_coordinates.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/inputs/"
-"mouse_and_input_coordinates.html"
+msgstr "$DOCS_URL/tutorials/inputs/mouse_and_input_coordinates.html"
#: doc/classes/InputEventMouseButton.xml
msgid ""
@@ -36630,11 +36977,8 @@ msgstr ""
"改。请å‚阅 [method Node._input]。"
#: doc/classes/InputMap.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/inputs/inputevent.html#inputmap"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/inputs/inputevent."
-"html#inputmap"
+msgstr "$DOCS_URL/tutorials/inputs/inputevent.html#inputmap"
#: doc/classes/InputMap.xml
msgid ""
@@ -36884,7 +37228,7 @@ msgstr "目标的[NodePath]。"
#: doc/classes/IP.xml
msgid "Internet protocol (IP) support functions such as DNS resolution."
-msgstr "互è”网å议(IP)支æŒåŠŸèƒ½ï¼Œå¦‚DNSè§£æžã€‚"
+msgstr "网际å议(IP)支æŒå‡½æ•°ï¼Œå¦‚ DNS è§£æžã€‚"
#: doc/classes/IP.xml
msgid ""
@@ -36892,9 +37236,9 @@ msgid ""
"is in different classes (see [StreamPeerTCP] and [TCP_Server]). IP provides "
"DNS hostname resolution support, both blocking and threaded."
msgstr ""
-"IP包å«å¯¹äº’è”网å议(IP)的支æŒåŠŸèƒ½ã€‚TCP/IP支æŒåœ¨ä¸åŒçš„类别中(è§"
-"[StreamPeerTCP]å’Œ[TCP_Server])。IPæä¾›DNS主机åè§£æžæ”¯æŒï¼ŒåŒ…括阻塞å¼å’Œçº¿ç¨‹"
-"å¼ã€‚"
+"IP 包å«ç½‘é™…å议(IP)的支æŒå‡½æ•°ã€‚TCP/IP 的支æŒåœ¨å…¶ä»–类中(请å‚阅 "
+"[StreamPeerTCP] å’Œ [TCP_Server])。IP æä¾› DNS 主机åè§£æžæ”¯æŒï¼ŒåŒ…括阻塞å¼å’Œçº¿"
+"程å¼ã€‚"
#: doc/classes/IP.xml
msgid ""
@@ -37027,11 +37371,11 @@ msgstr "地å€ç±»åž‹ï¼šæ— ã€‚"
#: doc/classes/IP.xml
msgid "Address type: Internet protocol version 4 (IPv4)."
-msgstr "地å€ç±»åž‹ï¼šäº’è”网å议版本4(IPv4)。"
+msgstr "地å€ç±»åž‹ï¼šç½‘é™…å议版本 4(IPv4)。"
#: doc/classes/IP.xml
msgid "Address type: Internet protocol version 6 (IPv6)."
-msgstr "地å€ç±»åž‹ï¼šäº’è”网å议版本6(IPv6)。"
+msgstr "地å€ç±»åž‹ï¼šç½‘é™…å议版本 6(IPv6)。"
#: doc/classes/IP.xml
msgid "Address type: Any."
@@ -37152,16 +37496,16 @@ msgstr "返回与指定索引关è”的工具æç¤ºã€‚"
msgid "Returns an array with the indexes of the selected items."
msgstr "è¿”å›žä¸€ä¸ªåŒ…å«æ‰€é€‰é¡¹ç›®ç´¢å¼•的数组。"
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
msgstr ""
-"返回与列表相关的[Object]ID。\n"
-"[b]警告:[/b] 这是一个必è¦çš„内部节点,移除和释放它å¯èƒ½ä¼šå¯¼è‡´å´©æºƒã€‚如果你想éš"
-"è—它或它的任æ„å­èŠ‚ç‚¹ï¼Œè¯·ä½¿ç”¨å…¶çš„ [member CanvasItem.visible] 属性。"
+"返回垂直滚动æ¡ã€‚\n"
+"[b]警告:[/b] 这是一个必需的内部节点,删除和释放它å¯èƒ½ä¼šå¯¼è‡´å´©æºƒã€‚如果您希望"
+"éšè—它或其任何å­é¡¹ï¼Œè¯·ä½¿ç”¨å®ƒä»¬çš„ [member CanvasItem.visible] 属性。"
#: doc/classes/ItemList.xml
msgid "Returns [code]true[/code] if one or more items are selected."
@@ -37208,7 +37552,7 @@ msgid ""
"[b]Note:[/b] This method does not trigger the item selection signal."
msgstr ""
"选择指定索引处的项目。\n"
-"[b]注:[/b]此方法ä¸è§¦å‘项目选择信å·ã€‚"
+"[b]注æ„:[/b]此方法ä¸è§¦å‘项目选择信å·ã€‚"
#: doc/classes/ItemList.xml
msgid ""
@@ -37505,7 +37849,6 @@ msgid ""
msgstr "在 HTML5 导出中将引擎与æµè§ˆå™¨çš„ JavaScript 上下文连接的å•例。"
#: doc/classes/JavaScript.xml
-#, fuzzy
msgid ""
"The JavaScript singleton is implemented only in the HTML5 export. It's used "
"to access the browser's JavaScript context. This allows interaction with "
@@ -37518,19 +37861,18 @@ msgid ""
msgstr ""
"JavaScript å•例仅在 HTML5 导出中实现。它用于访问æµè§ˆå™¨çš„ JavaScript 上下文。"
"è¿™å…许与嵌入页é¢äº¤äº’或调用第三方 JavaScript API。\n"
-"[b]注æ„:[/b] å¯ä»¥åœ¨æž„建时ç¦ç”¨æ­¤å•例以æé«˜å®‰å…¨æ€§ã€‚默认情况下,å¯ç”¨ "
-"JavaScript å•例。官方导出模æ¿ä¹Ÿå¯ç”¨äº† JavaScript å•例。有关详细信æ¯ï¼Œè¯·å‚阅文"
-"档中的 [url=https://docs.godotengine.org/zh_CN/stable/development/compiling/"
-"compiling_for_web.html]为 Webå¹³å°ç¼–译[/url]。"
+"[b]注æ„:[/b]å¯ä»¥åœ¨æž„建时ç¦ç”¨æ­¤å•例以æé«˜å®‰å…¨æ€§ã€‚默认情况下,å¯ç”¨ JavaScript "
+"å•例。官方导出模æ¿ä¹Ÿå¯ç”¨äº† JavaScript å•例。有关详细信æ¯ï¼Œè¯·å‚阅文档中的 "
+"[url=$DOCS_URL/development/compiling/compiling_for_web.html]《为 Web å¹³å°ç¼–"
+"译》[/url]。"
#: doc/classes/JavaScript.xml
-#, fuzzy
msgid ""
"$DOCS_URL/tutorials/export/exporting_for_web.html#calling-javascript-from-"
"script"
msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/export/exporting_for_web."
-"html#calling-javascript-from-script"
+"$DOCS_URL/tutorials/export/exporting_for_web.html#calling-javascript-from-"
+"script"
#: doc/classes/JavaScript.xml
msgid ""
@@ -37601,7 +37943,7 @@ msgstr ""
#: doc/classes/JavaScriptObject.xml
msgid "A wrapper class for native JavaScript objects."
-msgstr "本地JavaScript对象的å°è£…类。"
+msgstr "原生 JavaScript 对象的å°è£…类。"
#: doc/classes/JavaScriptObject.xml
msgid ""
@@ -37693,17 +38035,14 @@ msgid ""
"information."
msgstr ""
"JNISingleton 仅在 Android 导出中实现。它用于从用 Java 或 Kotlin 编写的 "
-"Android æ’件调用方法和连接信å·ã€‚方法和信å·å¯ä»¥è¢«è°ƒç”¨å¹¶è¿žæŽ¥åˆ° JNISingleton,就"
-"好åƒå®ƒæ˜¯ä¸€ä¸ªèŠ‚ç‚¹ä¸€æ ·ã€‚æœ‰å…³æ›´å¤šä¿¡æ¯ï¼Œè¯·å‚阅 [url=https://en.wikipedia.org/"
-"wiki/Java_Native_Interface]Java Native Interface - Wikipedia[/url] Java 本机"
-"接å£ç»´åŸºç™¾ç§‘。"
+"Android æ’件调用方法ã€è¿žæŽ¥ä¿¡å·ã€‚方法和信å·å¯ä»¥è¢«è°ƒç”¨å¹¶è¿žæŽ¥åˆ° JNISingleton,就"
+"好åƒå®ƒæ˜¯ä¸€ä¸ª Node 一样。有关更多信æ¯ï¼Œè¯·å‚阅 [url=https://zh.wikipedia.org/"
+"zh-cn/Java%E6%9C%AC%E5%9C%B0%E6%8E%A5%E5%8F%A3]Java æœ¬åœ°æŽ¥å£ - 维基百科[/"
+"url]。"
#: doc/classes/JNISingleton.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/platform/android/android_plugin.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/platform/android/"
-"android_plugin.html"
+msgstr "$DOCS_URL/tutorials/platform/android/android_plugin.html"
#: doc/classes/Joint.xml
msgid "Base class for all 3D joints."
@@ -37781,14 +38120,14 @@ msgstr "连接到关节的第二实体。必须继承自[PhysicsBody2D]。"
#: doc/classes/JSON.xml
msgid "Helper class for parsing JSON data."
-msgstr "用于解æžJSONæ•°æ®çš„辅助类。"
+msgstr "ç”¨äºŽè§£æž JSON æ•°æ®çš„辅助类。"
#: doc/classes/JSON.xml
msgid ""
"Helper class for parsing JSON data. For usage example and other important "
"hints, see [JSONParseResult]."
msgstr ""
-"用于解æžJSONæ•°æ®çš„辅助类。关于使用实例和其他é‡è¦æç¤ºï¼Œè¯·å‚阅"
+"ç”¨äºŽè§£æž JSON æ•°æ®çš„辅助类。关于使用实例和其他é‡è¦æç¤ºï¼Œè¯·å‚阅 "
"[JSONParseResult]。"
#: doc/classes/JSON.xml
@@ -37869,9 +38208,9 @@ msgid ""
"check if the JSON source was successfully parsed with [code]if json_result."
"error == OK[/code]."
msgstr ""
-"ç”±[method JSON.parse]返回,[JSONParseResult]包å«è§£ç çš„JSON或错误信æ¯ï¼ˆå¦‚æžœ"
-"JSONæºæ²¡æœ‰è¢«æˆåŠŸè§£æžï¼‰ã€‚ä½ å¯ä»¥ç”¨[code]if json_result.error == OK[/code]检查"
-"JSONæºæ˜¯å¦è¢«æˆåŠŸè§£æžã€‚"
+"ç”± [method JSON.parse] 返回,[JSONParseResult] 包å«è§£ç å¾—到的 JSON,如果未æˆ"
+"åŠŸè§£æž JSON æºåˆ™ä¸ºé”™è¯¯ä¿¡æ¯ã€‚ä½ å¯ä»¥ç”¨ [code]if json_result.error == OK[/code] "
+"检查 JSON æºæ˜¯å¦è¢«æˆåŠŸè§£æžã€‚"
#: doc/classes/JSONParseResult.xml
msgid ""
@@ -38060,11 +38399,8 @@ msgstr ""
"们在实现对世界进行碰撞,但ä¸éœ€è¦é«˜çº§ç‰©ç†çš„角色时éžå¸¸æœ‰ç”¨ã€‚"
#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/physics/kinematic_character_2d.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/physics/"
-"kinematic_character_2d.html"
+msgstr "$DOCS_URL/tutorials/physics/kinematic_character_2d.html"
#: doc/classes/KinematicBody.xml
msgid ""
@@ -38221,25 +38557,25 @@ msgstr ""
"沿ç€å‘é‡ç§»åŠ¨ç‰©ä½“ã€‚å¦‚æžœè¿™ä¸ªç‰©ä½“ä¸Žå¦ä¸€ä¸ªç‰©ä½“相撞,它将沿ç€å¦ä¸€ä¸ªç‰©ä½“滑动,而ä¸"
"是立å³åœæ­¢ã€‚如果å¦ä¸€ä¸ªç‰©ä½“是[KinematicBody]或[RigidBody],它也会被å¦ä¸€ä¸ªç‰©ä½“"
"çš„è¿åŠ¨æ‰€å½±å“。你å¯ä»¥ç”¨å®ƒæ¥åˆ¶ä½œç§»åŠ¨å’Œæ—‹è½¬çš„å¹³å°ï¼Œæˆ–者让节点推动其他节点。\n"
-"这个方法应该在[method Node._physics_process]中使用,或者在被[method Node."
-"_physics_process]è°ƒç”¨çš„æ–¹æ³•ä¸­ä½¿ç”¨ï¼Œå› ä¸ºå®ƒåœ¨è®¡ç®—æ—¶ï¼Œè‡ªåŠ¨ä½¿ç”¨ç‰©ç†æ­¥éª¤çš„"
-"[code]delta[/code]值。å¦åˆ™ï¼Œæ¨¡æ‹Ÿå°†ä»¥ä¸æ­£ç¡®çš„速度è¿è¡Œã€‚\n"
-"[code]linear_velocity[/code]是速度å‘é‡ï¼Œé€šå¸¸æ˜¯ç±³/秒。与[method "
-"move_and_collide]ä¸åŒçš„æ˜¯ï¼Œä½ [i]ä¸åº”该[/i]把它乘以[code]delta[/code]--物ç†å¼•"
-"擎会处ç†åº”用速度。\n"
+"这个方法应该在 [method Node._physics_process] 中使用,或者在被 [method Node."
+"_physics_process] è°ƒç”¨çš„æ–¹æ³•ä¸­ä½¿ç”¨ï¼Œå› ä¸ºå®ƒåœ¨è®¡ç®—æ—¶ï¼Œè‡ªåŠ¨ä½¿ç”¨ç‰©ç†æ­¥éª¤çš„ "
+"[code]delta[/code] 值。å¦åˆ™ï¼Œæ¨¡æ‹Ÿå°†ä»¥ä¸æ­£ç¡®çš„速度è¿è¡Œã€‚\n"
+"[code]linear_velocity[/code] 是速度å‘é‡ï¼Œé€šå¸¸æ˜¯ç±³/秒。与 [method "
+"move_and_collide] ä¸åŒçš„æ˜¯ï¼Œä½ [i]ä¸åº”该[/i]把它乘以 [code]delta[/code]——物ç†"
+"引擎会处ç†åº”用速度。\n"
"[code]up_direction[/code] 是å‘上的方å‘,用æ¥ç¡®å®šä»€ä¹ˆæ˜¯å¢™ï¼Œä»€ä¹ˆæ˜¯åœ°æ¿æˆ–天花"
-"æ¿ã€‚如果设置为默认值[code]Vector3(0, 0, 0)[/code],一切都被认为是墙。\n"
-"如果[code]stop_on_slope[/code]是[code]true[/code],当你在"
-"[code]linear_velocity[/code]中包å«é‡åŠ›å¹¶ä¸”ç‰©ä½“é™æ­¢æ—¶ï¼Œç‰©ä½“å°†ä¸ä¼šåœ¨æ–œå¡ä¸Šæ»‘"
+"æ¿ã€‚如果设置为默认值 [code]Vector3(0, 0, 0)[/code],一切都被认为是墙。\n"
+"如果[code]stop_on_slope[/code]是[code]true[/code],当你在 "
+"[code]linear_velocity[/code] 中包å«é‡åŠ›å¹¶ä¸”ç‰©ä½“é™æ­¢æ—¶ï¼Œç‰©ä½“å°†ä¸ä¼šåœ¨æ–œå¡ä¸Šæ»‘"
"动。\n"
-"如果物体å‘ç”Ÿç¢°æ’žï¼Œå®ƒæœ€å¤šä¼šæ”¹å˜æ–¹å‘[code]max_slides[/code]次æ‰ä¼šåœæ­¢ã€‚\n"
-"[code]floor_max_angle[/code]是一个最大的角度(弧度),在这个角度下,一个斜å¡"
+"如果物体å‘ç”Ÿç¢°æ’žï¼Œå®ƒæœ€å¤šä¼šæ”¹å˜æ–¹å‘ [code]max_slides[/code] 次æ‰ä¼šåœæ­¢ã€‚\n"
+"[code]floor_max_angle[/code] 是一个最大的角度(弧度),在这个角度下,一个斜å¡"
"ä»ç„¶è¢«è®¤ä¸ºæ˜¯åœ°æ¿æˆ–天花æ¿ï¼Œè€Œä¸æ˜¯å¢™å£ã€‚默认值等于45度。\n"
-"如果[code]infinite_inertia[/code]是[code]true[/code],物体将能够推动"
-"[RigidBody]节点,但它也ä¸ä¼šæ£€æµ‹åˆ°ä»»ä½•与它们的碰撞。如果[code]false[/code],它"
-"将与[RigidBody]节点åƒ[StaticBody]一样交互。\n"
-"返回[code]linear_velocity[/code]å‘é‡ï¼Œå¦‚æžœå‘生滑动碰撞,则旋转和/或缩放。è¦èŽ·"
-"å¾—å‘生碰撞的详细信æ¯ï¼Œè¯·ä½¿ç”¨[method get_slide_collision]。\n"
+"如果 [code]infinite_inertia[/code] 是 [code]true[/code],物体将能够推动 "
+"[RigidBody] 节点,但它也ä¸ä¼šæ£€æµ‹åˆ°ä»»ä½•与它们的碰撞。如果 [code]false[/code],"
+"它将与 [RigidBody] èŠ‚ç‚¹åƒ [StaticBody] 一样交互。\n"
+"返回 [code]linear_velocity[/code] å‘é‡ï¼Œå¦‚æžœå‘生滑动碰撞,则旋转和/或缩放。è¦"
+"获得å‘生碰撞的详细信æ¯ï¼Œè¯·ä½¿ç”¨ [method get_slide_collision]。\n"
"å½“ç‰©ä½“æŽ¥è§¦åˆ°ä¸€ä¸ªç§»åŠ¨çš„å¹³å°æ—¶ï¼Œå¹³å°çš„速度会自动加入到物体的è¿åŠ¨ä¸­ã€‚å¦‚æžœç”±äºŽå¹³"
"å°çš„è¿åŠ¨è€Œå‘生碰撞,它将始终是滑动碰撞中的第一个。"
@@ -38252,10 +38588,10 @@ msgid ""
"in order to jump, for example. You can do this by setting [code]snap[/code] "
"to [code](0, 0, 0)[/code] or by using [method move_and_slide] instead."
msgstr ""
-"ç§»åŠ¨ç‰©ä½“ï¼Œå…¶åŒæ—¶ä¿æŒä¸Žæ–œå¡çš„连接。类似于[method move_and_slide]。\n"
-"åªè¦[code]snap[/code]å‘é‡ä¸Žåœ°é¢æŽ¥è§¦ï¼Œç‰©ä½“就会一直å¸é™„在地é¢ä¸Šã€‚è¿™æ„味ç€ä½ å¿…é¡»"
-"ç¦ç”¨snapæ¥è¿›è¡Œè·³è·ƒï¼Œæ¯”如,å¯ä»¥é€šè¿‡å°†[code]snap[/code]设置为[code](0, 0, 0)[/"
-"code]或者使用[method move_and_slide]æ¥å®žçŽ°ã€‚"
+"ç§»åŠ¨ç‰©ä½“ï¼Œå…¶åŒæ—¶ä¿æŒä¸Žæ–œå¡çš„连接。类似于 [method move_and_slide]。\n"
+"åªè¦ [code]snap[/code] å‘é‡ä¸Žåœ°é¢æŽ¥è§¦ï¼Œç‰©ä½“就会一直å¸é™„在地é¢ä¸Šã€‚例如,这æ„味"
+"ç€ä½ å¿…é¡»ç¦ç”¨ snap æ‰èƒ½è¿›è¡Œè·³è·ƒã€‚å¯ä»¥é€šè¿‡å°† [code]snap[/code] 设置为 [code]"
+"(0, 0, 0)[/code] æ¥å®žçŽ°ï¼Œä¹Ÿå¯ä»¥ç”¨ [method move_and_slide] 代替。"
#: doc/classes/KinematicBody.xml
msgid ""
@@ -38306,8 +38642,8 @@ msgid ""
"scale to avoid visible jittering, or for stability with a stack of kinematic "
"bodies."
msgstr ""
-"在è¿åŠ¨å‡½æ•°ä¸­ç”¨äºŽç¢°æ’žæ¢å¤çš„é¢å¤–è¾¹è·ï¼Œå‚阅[method move_and_collide], [method "
-"move_and_slide], [method move_and_slide_with_snap]。\n"
+"在è¿åŠ¨å‡½æ•°ä¸­ç”¨äºŽç¢°æ’žæ¢å¤çš„é¢å¤–è¾¹è·ï¼Œå‚阅 [method move_and_collide]ã€[method "
+"move_and_slide]ã€[method move_and_slide_with_snap]。\n"
"如果物体离å¦ä¸€ä¸ªç‰©ä½“至少这么近,它就会认为它们正在å‘生碰撞,并在执行实际è¿åЍ"
"之å‰è¢«æŽ¨å¼€ã€‚\n"
"一个较高的值æ„味ç€å®ƒåœ¨æ£€æµ‹ç¢°æ’žæ—¶æ›´åŠ çµæ´»ï¼Œè¿™æœ‰åŠ©äºŽæŒç»­æ£€æµ‹å¢™å£å’Œåœ°æ¿ã€‚\n"
@@ -38343,6 +38679,30 @@ msgid ""
"axis_lock_motion_z]."
msgstr "é”定物体的Zè½´è¿åŠ¨ã€‚å·²è¢«åºŸå¼ƒçš„[member axis_lock_motion_z]的别å。"
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+#, fuzzy
+msgid "Do nothing when leaving a platform."
+msgstr "使用 2D å˜æ¢æ—¶ä½¿ç”¨æ­¤é€‰é¡¹ã€‚"
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr "2Dè¿åŠ¨ä½“èŠ‚ç‚¹ã€‚"
@@ -38375,11 +38735,8 @@ msgstr ""
"们在实现对世界进行碰撞,但ä¸éœ€è¦é«˜çº§ç‰©ç†çš„角色时éžå¸¸æœ‰ç”¨ã€‚"
#: doc/classes/KinematicBody2D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/physics/using_kinematic_body_2d.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/physics/"
-"using_kinematic_body_2d.html"
+msgstr "$DOCS_URL/tutorials/physics/using_kinematic_body_2d.html"
#: doc/classes/KinematicBody2D.xml
msgid ""
@@ -38478,29 +38835,29 @@ msgid ""
"platform's motion, it will always be first in the slide collisions."
msgstr ""
"沿ç€å‘é‡ç§»åŠ¨ç‰©ä½“ã€‚å¦‚æžœè¿™ä¸ªç‰©ä½“ä¸Žå¦ä¸€ä¸ªç‰©ä½“相撞,它将沿ç€å¦ä¸€ä¸ªç‰©ä½“滑动,而ä¸"
-"是立å³åœæ­¢ã€‚如果å¦ä¸€ä¸ªç‰©ä½“是[KinematicBody2D]或[RigidBody2D],它也会被å¦ä¸€ä¸ª"
-"物体的è¿åŠ¨æ‰€å½±å“。你å¯ä»¥ç”¨å®ƒæ¥åˆ¶ä½œç§»åŠ¨å’Œæ—‹è½¬çš„å¹³å°ï¼Œæˆ–者让节点推动其他节"
+"是立å³åœæ­¢ã€‚如果å¦ä¸€ä¸ªç‰©ä½“是 [KinematicBody2D] 或 [RigidBody2D],它也会被å¦ä¸€"
+"个物体的è¿åŠ¨æ‰€å½±å“。你å¯ä»¥ç”¨å®ƒæ¥åˆ¶ä½œç§»åŠ¨å’Œæ—‹è½¬çš„å¹³å°ï¼Œæˆ–者让节点推动其他节"
"点。\n"
-"这个方法应该在[method Node._physics_process]中使用,或者在被[method Node."
-"_physics_process]è°ƒç”¨çš„æ–¹æ³•ä¸­ä½¿ç”¨ï¼Œå› ä¸ºå®ƒåœ¨è®¡ç®—æ—¶è‡ªåŠ¨ä½¿ç”¨ç‰©ç†æ­¥éª¤çš„"
-"[code]delta[/code]值。å¦åˆ™ï¼Œæ¨¡æ‹Ÿå°†ä»¥ä¸æ­£ç¡®çš„速度è¿è¡Œã€‚\n"
-"[code]linear_velocity[/code]是速度å‘é‡ï¼Œå•使˜¯åƒç´ æ¯ç§’。与[method "
-"move_and_collide]ä¸åŒçš„æ˜¯ï¼Œä½ [i]ä¸åº”该[/i]将它乘以[code]delta[/code]--物ç†å¼•"
-"擎会处ç†åº”用速度。\n"
+"这个方法应该在 [method Node._physics_process] 中使用,或者在被 [method Node."
+"_physics_process] è°ƒç”¨çš„æ–¹æ³•ä¸­ä½¿ç”¨ï¼Œå› ä¸ºå®ƒåœ¨è®¡ç®—æ—¶è‡ªåŠ¨ä½¿ç”¨ç‰©ç†æ­¥éª¤çš„ "
+"[code]delta[/code] 值。å¦åˆ™ï¼Œæ¨¡æ‹Ÿå°†ä»¥ä¸æ­£ç¡®çš„速度è¿è¡Œã€‚\n"
+"[code]linear_velocity[/code] 是速度å‘é‡ï¼Œå•使˜¯åƒç´ æ¯ç§’。与 [method "
+"move_and_collide] ä¸åŒçš„æ˜¯ï¼Œä½ [i]ä¸åº”该[/i]将它乘以 [code]delta[/code]——物ç†"
+"引擎会处ç†åº”用速度。\n"
"[code]up_direction[/code] 是å‘上的方å‘,用æ¥ç¡®å®šä»€ä¹ˆæ˜¯å¢™ï¼Œä»€ä¹ˆæ˜¯åœ°æ¿æˆ–天花"
-"æ¿ã€‚如果设置为默认值[code]Vector2(0, 0)[/code],一切都被认为是墙。这对于自上"
+"æ¿ã€‚如果设置为默认值 [code]Vector2(0, 0)[/code],一切都被认为是墙。这对于自上"
"而下的游æˆå¾ˆæœ‰ç”¨ã€‚\n"
-"如果[code]stop_on_slope[/code]是[code]true[/code],当你在"
-"[code]linear_velocity[/code]中包å«é‡åŠ›å¹¶ä¸”ç‰©ä½“é™æ­¢æ—¶ï¼Œç‰©ä½“å°±ä¸ä¼šåœ¨æ–œå¡ä¸Šæ»‘"
+"如果 [code]stop_on_slope[/code] 是 [code]true[/code],当你在 "
+"[code]linear_velocity[/code] 中包å«é‡åŠ›å¹¶ä¸”ç‰©ä½“é™æ­¢æ—¶ï¼Œç‰©ä½“å°±ä¸ä¼šåœ¨æ–œå¡ä¸Šæ»‘"
"动。\n"
-"如果物体å‘ç”Ÿç¢°æ’žï¼Œå®ƒæœ€å¤šä¼šæ”¹å˜æ–¹å‘[code]max_slides[/code]次æ‰ä¼šåœæ­¢ã€‚\n"
-"[code]floor_max_angle[/code]是一个最大的角度(弧度),在这个角度下,一个斜å¡"
+"如果物体å‘ç”Ÿç¢°æ’žï¼Œå®ƒæœ€å¤šä¼šæ”¹å˜æ–¹å‘ [code]max_slides[/code] 次æ‰ä¼šåœæ­¢ã€‚\n"
+"[code]floor_max_angle[/code] 是一个最大的角度(弧度),在这个角度下,一个斜å¡"
"ä»ç„¶è¢«è®¤ä¸ºæ˜¯åœ°æ¿æˆ–天花æ¿ï¼Œè€Œä¸æ˜¯å¢™ã€‚默认值等于45度。\n"
-"如果[code]infinite_inertia[/code]是[code]true[/code],物体将能够推动"
-"[RigidBody2D]节点,但它也ä¸ä¼šæ£€æµ‹åˆ°ä»»ä½•与它们的碰撞。如果[code]false[/code],"
-"它将与[RigidBody2D]节点åƒ[StaticBody2D]一样交互。\n"
-"返回[code]linear_velocity[/code]å‘é‡ï¼Œå¦‚æžœå‘生滑动碰撞,则旋转和/或缩放。è¦èŽ·"
-"å¾—å‘生碰撞的详细信æ¯ï¼Œè¯·ä½¿ç”¨[method get_slide_collision]。\n"
+"如果 [code]infinite_inertia[/code] 是 [code]true[/code],物体将能够推动"
+"[RigidBody2D]节点,但它也ä¸ä¼šæ£€æµ‹åˆ°ä»»ä½•与它们的碰撞。如果 [code]false[/"
+"code],它将与 [RigidBody2D] èŠ‚ç‚¹åƒ [StaticBody2D] 一样交互。\n"
+"返回 [code]linear_velocity[/code] å‘é‡ï¼Œå¦‚æžœå‘生滑动碰撞,则旋转和/或缩放。è¦"
+"获得å‘生碰撞的详细信æ¯ï¼Œè¯·ä½¿ç”¨ [method get_slide_collision]。\n"
"å½“ç‰©ä½“æŽ¥è§¦åˆ°ä¸€ä¸ªç§»åŠ¨çš„å¹³å°æ—¶ï¼Œå¹³å°çš„速度会自动加入到物体的è¿åŠ¨ä¸­ã€‚å¦‚æžœç”±äºŽå¹³"
"å°çš„è¿åŠ¨è€Œå‘生碰撞,它将始终是滑动碰撞中的第一个。"
@@ -38514,9 +38871,9 @@ msgid ""
"to [code](0, 0)[/code] or by using [method move_and_slide] instead."
msgstr ""
"ç§»åŠ¨ç‰©ä½“ï¼ŒåŒæ—¶ä½¿å…¶ä¿æŒé™„ç€åœ¨æ–œå¡ä¸Šã€‚类似于 [method move_and_slide]。\n"
-"åªè¦[code]snap[/code]å‘é‡ä¸Žåœ°é¢æŽ¥è§¦ï¼Œç‰©ä½“å°±ä¼šä¿æŒé™„ç€åœ¨è¡¨é¢ä¸Šã€‚例如,这æ„味ç€"
-"您必须ç¦ç”¨å¸é™„æ‰èƒ½è·³è½¬ã€‚您å¯ä»¥é€šè¿‡å°†[code]snap[/code]设置为[code](0,0)[/code]"
-"或使用 [method move_and_slide]æ¥åšåˆ°è¿™ä¸€ç‚¹ã€‚"
+"åªè¦ [code]snap[/code] å‘é‡ä¸Žåœ°é¢æŽ¥è§¦ï¼Œç‰©ä½“å°±ä¼šä¿æŒé™„ç€åœ¨è¡¨é¢ä¸Šã€‚例如,这æ„味"
+"ç€æ‚¨å¿…é¡»ç¦ç”¨å¸é™„æ‰èƒ½è¿›è¡Œè·³è·ƒã€‚您å¯ä»¥é€šè¿‡å°† [code]snap[/code] 设置为 [code]"
+"(0, 0)[/code] æ¥å®žçŽ°ï¼Œæˆ–è€…ç”¨ [method move_and_slide] 代替。"
#: doc/classes/KinematicBody2D.xml
msgid ""
@@ -39132,11 +39489,8 @@ msgstr ""
"[b]注æ„:[/b] Light2D也å¯ä»¥ä½œä¸ºä¸€ä¸ªé®ç½©ä½¿ç”¨ã€‚"
#: doc/classes/Light2D.xml doc/classes/LightOccluder2D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/2d/2d_lights_and_shadows.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/2d/2d_lights_and_shadows."
-"html"
+msgstr "$DOCS_URL/tutorials/2d/2d_lights_and_shadows.html"
#: doc/classes/Light2D.xml
msgid "The Light2D's [Color]."
@@ -39422,12 +39776,11 @@ msgid ""
msgstr "圆形接头和盖å­çš„å¹³æ»‘åº¦ã€‚ä»…å½“ç›–å­æˆ–接头设置为圆形时æ‰ä½¿ç”¨æ­¤é€‰é¡¹ã€‚"
#: doc/classes/Line2D.xml
-#, fuzzy
msgid ""
"The direction difference in radians between vector points. This value is "
"only used if [member joint_mode] is set to [constant LINE_JOINT_SHARP]."
msgstr ""
-"å‘é‡ç‚¹ä¹‹é—´å¼§åº¦çš„æ–¹å‘差。仅当 [code]joint mode[/code] 设置为 [constant "
+"å‘é‡ç‚¹ä¹‹é—´çš„æ–¹å‘差,å•ä½ä¸ºå¼§åº¦ã€‚仅当 [member joint_mode] 设置为 [constant "
"LINE_JOINT_SHARP] 时,æ‰ä½¿ç”¨æ­¤å€¼ã€‚"
#: doc/classes/Line2D.xml
@@ -40712,8 +41065,8 @@ msgid ""
"[b]Note:[/b] This method typically returns the vertices in reverse order (e."
"g. clockwise to counterclockwise)."
msgstr ""
-"以一定的offset(è¾¹è·),计算出该网格的外轮廓。\n"
-"[b]Note:[/b] 这个方法实际上ååºè¿”回顶点(例如输入顺时针,返回逆时针)。"
+"以一定的åç§»é‡ï¼ˆè¾¹è·),计算出该网格的外轮廓。\n"
+"[b]注æ„:[/b]这个方法实际上ååºè¿”回顶点(例如输入顺时针,返回逆时针)。"
#: doc/classes/Mesh.xml
msgid "Calculate a [ConcavePolygonShape] from the mesh."
@@ -41335,7 +41688,7 @@ msgstr ""
#: doc/classes/MeshInstance2D.xml
msgid "$DOCS_URL/tutorials/2d/2d_meshes.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/2d/2d_meshes.html"
#: doc/classes/MeshInstance2D.xml
msgid "The [Mesh] that will be drawn by the [MeshInstance2D]."
@@ -41484,8 +41837,8 @@ msgid ""
"[constant Transform.IDENTITY]."
msgstr ""
"设置项目的碰撞形状。\n"
-"数组应由[Shape]对象组æˆï¼Œæ¯ä¸ªå¯¹è±¡ä¹‹åŽéƒ½æœ‰åº”用于它的[Transform]。对于ä¸åº”有å˜"
-"æ¢çš„形状,使用[constant Transform.IDENTITY]。"
+"数组应由 [Shape] 对象组æˆï¼Œæ¯ä¸ªå¯¹è±¡ä¹‹åŽéƒ½æœ‰åº”用于它的 [Transform]。对于ä¸åº”有"
+"å˜æ¢çš„形状,请使用 [constant Transform.IDENTITY]。"
#: doc/classes/MeshTexture.xml
msgid "Simple texture that uses a mesh to draw itself."
@@ -41611,20 +41964,16 @@ msgstr ""
"由于实例å¯èƒ½å…·æœ‰ä»»ä½•行为,用于å¯è§æ€§çš„AABB必须由用户æä¾›ã€‚"
#: doc/classes/MultiMesh.xml doc/classes/MultiMeshInstance.xml
-#, fuzzy
msgid ""
"$DOCS_URL/tutorials/performance/vertex_animation/animating_thousands_of_fish."
"html"
msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/performance/"
-"vertex_animation/animating_thousands_of_fish.html"
+"$DOCS_URL/tutorials/performance/vertex_animation/animating_thousands_of_fish."
+"html"
#: doc/classes/MultiMesh.xml doc/classes/MultiMeshInstance.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/performance/using_multimesh.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/performance/"
-"using_multimesh.html"
+msgstr "$DOCS_URL/tutorials/performance/using_multimesh.html"
#: doc/classes/MultiMesh.xml
msgid ""
@@ -41799,11 +42148,8 @@ msgstr ""
"这对于优化给定网格的大é‡å®žä¾‹çš„æ¸²æŸ“是éžå¸¸æœ‰ç”¨çš„(例如,森林中的树木或è‰ä¸›ï¼‰ã€‚"
#: doc/classes/MultiMeshInstance.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/using_multi_mesh_instance.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/"
-"using_multi_mesh_instance.html"
+msgstr "$DOCS_URL/tutorials/3d/using_multi_mesh_instance.html"
#: doc/classes/MultiMeshInstance.xml
msgid ""
@@ -42124,11 +42470,8 @@ msgstr ""
"æ˜¯ï¼Œè¦æ³¨æ„é¿å…æ­»é”。"
#: doc/classes/Mutex.xml doc/classes/Semaphore.xml doc/classes/Thread.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/performance/threads/using_multiple_threads.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/performance/threads/"
-"using_multiple_threads.html"
+msgstr "$DOCS_URL/tutorials/performance/threads/using_multiple_threads.html"
#: doc/classes/Mutex.xml
msgid ""
@@ -42210,16 +42553,13 @@ msgid "Mesh-based navigation and pathfinding node."
msgstr "基于网格的导航和寻路节点。"
#: doc/classes/Navigation.xml
+#, fuzzy
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
"在[NavigationMesh]的集åˆä¸­æä¾›å¯¼èˆªå’Œå¯»è·¯åŠŸèƒ½ã€‚é»˜è®¤æƒ…å†µä¸‹ï¼Œè¿™äº›å°†è‡ªåŠ¨ä»Žå­"
"[NavigationMeshInstance]节点中收集,也å¯ä»¥é€šè¿‡[method navmesh_add]峿—¶æ·»åŠ ã€‚"
@@ -42228,6 +42568,7 @@ msgstr ""
"路径。这些问题将在Godot 4.0中得到解决。"
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://godotengine.org/asset-library/asset/124"
@@ -42247,12 +42588,10 @@ msgstr ""
"代ç†ã€‚"
#: doc/classes/Navigation.xml
+#, fuzzy
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
"è¿”å›žåŒ…å«æœ€æŽ¥è¿‘给定点的导航点的 [NavigationMesh] 的所有者。这通常是一个 "
"[NavigationMeshInstance]。对于通过 [method navmesh_add] 添加的网格,返回给定"
@@ -42269,13 +42608,12 @@ msgstr ""
"导航网格之间的交点。如果找到多个交点,则返回最接近线段起点的交点。"
#: doc/classes/Navigation.xml
+#, fuzzy
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
"è¿”å›žä¸¤ä¸ªç»™å®šç‚¹ä¹‹é—´çš„è·¯å¾„ã€‚ç‚¹æ˜¯åœ¨å±€éƒ¨åæ ‡ç©ºé—´ä¸­ã€‚如果[code]optimize[/code]是"
"[code]true[/code](默认),与æ¯ä¸ª[NavigationMesh]相关的代ç†å±žæ€§ï¼ˆåŠå¾„ã€é«˜åº¦"
@@ -42283,24 +42621,14 @@ msgstr ""
"[b]注æ„:[/b] 这个方法有已知的问题,ç»å¸¸ä¼šè¿”å›žéžæœ€ä½³çš„路径。这些问题将在"
"Godot 4.0中得到修正。"
-#: doc/classes/Navigation.xml
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
+msgstr "用于字段的XZå¹³é¢å•元尺寸。"
+
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
-"添加一个 [NavigationMesh]。返回用于 [method navmesh_remove] 或 [method "
-"navmesh_set_transform] çš„ ID。如果给定,则将 [Transform2D] 应用于多边形。å¯é€‰"
-"的 [code]owner[/code] 用作 [method get_closest_point_owner] 的返回值。"
-
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
-msgstr "移除具有指定ID的[NavigationMesh]。"
-
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
-msgstr "设置应用于具有指定IDçš„[NavigationMesh]çš„å˜æ¢ã€‚"
#: doc/classes/Navigation.xml
msgid ""
@@ -42315,14 +42643,11 @@ msgid "2D navigation and pathfinding node."
msgstr "2D导航和寻路节点。"
#: doc/classes/Navigation2D.xml
+#, fuzzy
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
"Navigation2D在2D区域内æä¾›å¯¼èˆªå’Œå¯»è·¯ï¼ŒæŒ‡å®šä¸º[NavigationPolygon]资æºçš„集åˆã€‚默"
"认情况下,这些资æºè‡ªåŠ¨ä»Žå­[NavigationPolygonInstance]节点中收集,但其也å¯ä»¥é€š"
@@ -42330,29 +42655,28 @@ msgstr ""
"[b]注æ„:[/b] 当å‰çš„å¯¼èˆªç³»ç»Ÿæœ‰è®¸å¤šå·²çŸ¥çš„é—®é¢˜ï¼Œå¹¶ä¸æ€»æ˜¯èƒ½åƒé¢„期的那样返回最佳"
"的路径。这些问题将在Godot 4.0中得到解决。"
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://godotengine.org/asset-library/asset/117"
#: doc/classes/Navigation2D.xml
+#, fuzzy
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
"è¿”å›žåŒ…å«æœ€æŽ¥è¿‘给定点的导航点的 [NavigationPolygon] 的所有者。这通常是一个 "
"[NavigationPolygonInstance]。对于通过 [method navpoly_add] 添加的多边形,返回"
"给定的所有者(如果çœç•¥ [code]owner[/code] 傿•°ï¼Œåˆ™è¿”回 [code]null[/code])。"
#: doc/classes/Navigation2D.xml
+#, fuzzy
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
"è¿”å›žä¸¤ä¸ªç»™å®šç‚¹ä¹‹é—´çš„è·¯å¾„ã€‚ç‚¹æ˜¯åœ¨å±€éƒ¨åæ ‡ç©ºé—´ä¸­ã€‚如果[code]optimize[/code]为"
"[code]true[/code](默认值),路径将尽å¯èƒ½åœ°åˆå¹¶è·¯å¾„段,从而平滑。\n"
@@ -42360,24 +42684,418 @@ msgstr ""
"Godot 4.0中得到解决。"
#: doc/classes/Navigation2D.xml
+#, fuzzy
+msgid "The XY plane cell size to use for fields."
+msgstr "用于字段的XZå¹³é¢å•元尺寸。"
+
+#: doc/classes/Navigation2DServer.xml
+#, fuzzy
+msgid "Server interface for low-level 2D navigation access."
+msgstr "低级音频访问的æœåŠ¡å™¨æŽ¥å£ã€‚"
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Creates the agent."
+msgstr "创建一个 [HingeJoint]关节。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr "如果脚本å¯ä»¥å®žä¾‹åŒ–,则返回 [code]true[/code]。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "返回输入的正切值。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
msgstr ""
-"添加 [NavigationPolygon]。返回用于 [method navpoly_remove] 或 [method "
-"navpoly_set_transform] çš„ ID。如果给定,则将 [Transform2D] 应用于多边形。å¯é€‰"
-"的 [code]owner[/code] 用作 [method get_closest_point_owner] 的返回值。"
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
-msgstr "移除具有指定ID的[NavigationPolygon]。"
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "设置自动图å—çš„[enum BitmaskMode]ä½æŽ©ç æ¨¡å¼ã€‚"
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "设置给定顶点的ä½ç½®ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "设置给定顶点的法线。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "设置给定顶点的骨架。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "è¿”å›žè¡¥é—´çš„å½“å‰æ—¶é—´ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Destroys the given RID."
+msgstr "ç§»é™¤ç»™å®šçš„å›¾å— ID。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Create a new map."
+msgstr "创建一个[Area]区域。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "返回数组大å°ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+"返回索引[code]point[/code]处的点在索引[code]triangle[/code]的三角形中的ä½ç½®ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr "返回正在使用的输入端å£çš„æ•°é‡ã€‚替代[method get_free_input_port_id]。"
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr "返回图å—的导航多边形。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "如果选择处于活动状æ€ï¼Œåˆ™è¿”回 [code]true[/code]。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "åœæ­¢å®šæ—¶å™¨ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr "返回应用于该项导航网格的转æ¢ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Creates a new region."
+msgstr "创建一个[Area]区域。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "设置给定边的元数æ®ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "设置此项的导航网格。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "è®¾ç½®è§†çª—çš„å…¨å±€å˜æ¢çŸ©é˜µã€‚"
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Returns the path from start to finish in global coordinates."
+msgstr "返回全局å±å¹•åæ ‡ä¸­çš„å¯è§çŸ©å½¢ã€‚"
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "以 [PoolVector3Array] 的形å¼è¿”回缓存的点。"
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr "返回指定å称的动画节点。"
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr "返回用[method set_size_override]设置的尺寸é‡å†™ã€‚"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr "返回[code]true[/code]是å¦å¯¹æŒ‡å®šè·¯å¾„进行过滤。"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+"如果å¯ç”¨äº†å°ºå¯¸é‡å†™ï¼Œè¿”回[code]true[/code]。å‚阅[method set_size_override]。"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid "The agent height offset to match the navigation mesh height."
+msgstr "返回图å—的导航多边形的åç§»é‡ã€‚"
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr "自动æ›å…‰çš„æœ€å¤§äº®åº¦å€¼ã€‚"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The maximum speed that an agent can move."
+msgstr "曲线能达到的最大值。"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The distance to search for other agents."
+msgstr "实例没有类型。"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
-msgstr "设置应用于具有指定IDçš„[NavigationPolygon]çš„å˜æ¢ã€‚"
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "The radius of the agent."
+msgstr "圆柱体的åŠå¾„。"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid "Notifies when the final location is reached."
+msgstr "å½“åŠ¨ç”»æ’­æ”¾ç»“æŸæ—¶é€šçŸ¥ã€‚"
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "以[PoolVector2Array]的形å¼è¿”回缓存的点。"
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr "返回指定å称的动画节点。"
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
#: doc/classes/NavigationMesh.xml
msgid "A mesh to approximate the walkable areas and obstacles."
@@ -42487,10 +43205,6 @@ msgid "The Y axis cell size to use for fields."
msgstr "用于字段Yè½´å•元的尺寸。"
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr "用于字段的XZå¹³é¢å•元尺寸。"
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr "生æˆç»†åˆ†ç½‘格时使用的采样è·ç¦»ï¼Œä»¥å•元为å•ä½ã€‚"
@@ -42679,26 +43393,124 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr "表示[enum SourceGeometryMode]枚举的大å°ã€‚"
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+#, fuzzy
+msgid "Clears the navigation mesh."
+msgstr "设置此项的导航网格。"
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
-msgstr "将导航网格实例化为场景的节点。"
+#, fuzzy
+msgid "An instance of a [NavigationMesh]."
+msgstr "实例化 [MultiMesh] 的节点。"
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
-"NavigationMeshInstance 节点å¯ä»¥æŽ¥æ”¶ä¸€ä¸ª [NavigationMesh] 资æºï¼Œå¹¶é€šè¿‡åˆ›å»ºå®ƒçš„"
-"一个实例将其添加到当å‰åœºæ™¯ä¸­ã€‚"
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
-msgstr "为 [code]true[/code] 时导航网格将被 [Navigation] 使用。"
+msgid ""
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr "递归扫æ [NavigationMeshInstance] çš„å­èŠ‚ç‚¹ä»¥èŽ·å–几何体。"
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+#, fuzzy
+msgid "The [NavigationMesh] resource to use."
msgstr "实例的 [NavigationMesh] 资æºã€‚"
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the navigation mesh bake operation is completed."
+msgstr "当动画开始播放时通知。"
+
+#: doc/classes/NavigationMeshInstance.xml
+#, fuzzy
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr "当动画开始播放时通知。"
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+#, fuzzy
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr "返回指定å称的动画节点。"
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+#, fuzzy
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+"è®¾ç½®ä¸»æŒ‰é’®çš„åˆ‡æ¢æ¨¡å¼çжæ€ã€‚åªæœ‰å½“ [member toggle_mode] 被设置为 [code]true[/"
+"code] æ—¶æ‰èµ·ä½œç”¨ã€‚"
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
+msgstr ""
+
#: doc/classes/NavigationPolygon.xml
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
@@ -42825,6 +43637,79 @@ msgstr ""
"更改在编辑器或脚本中创建的轮廓。你必须调用 [method "
"make_polygons_from_outlines] æ¥æ›´æ–°å¤šè¾¹å½¢ã€‚"
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Server interface for low-level 3D navigation access."
+msgstr "低级音频访问的æœåŠ¡å™¨æŽ¥å£ã€‚"
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "返回碰撞点相交物体形状的法线。"
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr "起点和终点之间点的样å¼ã€‚"
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "返回ä½å›¾çš„尺寸。"
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "åœæ­¢éŸ³é¢‘。"
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Bakes the navigation mesh."
+msgstr "设置此项的导航网格。"
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Control activation of this server."
+msgstr "æ­¤èŠ‚ç‚¹çš„å±€éƒ¨å˜æ¢ã€‚"
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -42854,11 +43739,8 @@ msgstr ""
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
#: doc/classes/NetworkedMultiplayerPeer.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/networking/high_level_multiplayer.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/networking/"
-"high_level_multiplayer.html"
+msgstr "$DOCS_URL/tutorials/networking/high_level_multiplayer.html"
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid "http://enet.bespin.org/usergroup0.html"
@@ -43565,11 +44447,8 @@ msgstr ""
"外,请å‚阅高级网络教程和相应的演示。"
#: doc/classes/Node.xml
-#, fuzzy
msgid "$DOCS_URL/getting_started/step_by_step/nodes_and_scenes.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/getting_started/step_by_step/"
-"nodes_and_scenes.html"
+msgstr "$DOCS_URL/getting_started/step_by_step/nodes_and_scenes.html"
#: doc/classes/Node.xml
msgid "https://github.com/godotengine/godot-demo-projects/"
@@ -43636,15 +44515,15 @@ msgid ""
"[b]Note:[/b] This method is only called if the node is present in the scene "
"tree (i.e. if it's not orphan)."
msgstr ""
-"当有输入事件时被调用。输入事件通过节点树å‘上传播,直到一个节点消耗它。\n"
-"åªæœ‰å½“输入处ç†è¢«å¯ç”¨æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼Œå¦‚果这个方法被é‡å†™ï¼Œå®ƒå°±ä¼šè‡ªåŠ¨å®Œæˆï¼Œå¯ä»¥ç”¨"
-"[method set_process_input]æ¥åˆ‡æ¢ã€‚\n"
-"è¦æ¶ˆè€—输入事件并阻止它进一步传播到其他节点,å¯ä»¥è°ƒç”¨[method SceneTree."
+"当有输入事件时被调用。输入事件通过节点树å‘上传播,直到有节点将其消耗。\n"
+"åªæœ‰å½“输入处ç†è¢«å¯ç”¨æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼Œå¦‚果这个方法被é‡å†™ï¼Œå®ƒå°±ä¼šè‡ªåŠ¨å®Œæˆï¼Œå¯ä»¥ç”¨ "
+"[method set_process_input] æ¥åˆ‡æ¢ã€‚\n"
+"è¦æ¶ˆè€—输入事件并阻止它进一步传播到其他节点,å¯ä»¥è°ƒç”¨ [method SceneTree."
"set_input_as_handled]。\n"
-"对于游æˆè¾“入,[method _unhandled_input]å’Œ[method _unhandled_key_input]通常更"
-"适åˆï¼Œå› ä¸ºå®ƒä»¬å…许GUI首先拦截事件。\n"
-"[b]注æ„:[/b] è¿™ä¸ªæ–¹æ³•åªæœ‰åœ¨èŠ‚ç‚¹å­˜åœ¨äºŽåœºæ™¯æ ‘ä¸­æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼ˆä¹Ÿå°±æ˜¯è¯´ï¼Œå¦‚果它"
-"éž\"孤儿\")。"
+"对于游æˆè¾“入,[method _unhandled_input] å’Œ [method _unhandled_key_input] 通常"
+"更适åˆï¼Œå› ä¸ºå®ƒä»¬å…许 GUI 首先拦截事件。\n"
+"[b]注æ„:[/b]è¿™ä¸ªæ–¹æ³•åªæœ‰åœ¨èŠ‚ç‚¹å­˜åœ¨äºŽåœºæ™¯æ ‘ä¸­æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼ˆä¹Ÿå°±æ˜¯è¯´ï¼Œå¦‚果它"
+"éžâ€œå­¤å„¿â€ï¼‰ã€‚"
#: doc/classes/Node.xml
msgid ""
@@ -43660,14 +44539,14 @@ msgid ""
"[b]Note:[/b] This method is only called if the node is present in the scene "
"tree (i.e. if it's not orphan)."
msgstr ""
-"在主循环的物ç†å¤„ç†æ­¥éª¤ä¸­è¢«è°ƒç”¨ã€‚物ç†å¤„ç†æ„味ç€å¸§çŽ‡ä¸Žç‰©ç†åŒæ­¥ï¼Œå³[code]delta[/"
-"code]å˜é‡åº”该是常é‡ã€‚[code]delta[/code]çš„å•使˜¯ç§’。\n"
-"åªæœ‰å½“物ç†å¤„ç†è¢«å¯ç”¨æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼Œå¦‚果这个方法被é‡å†™ï¼Œå°±ä¼šè‡ªåŠ¨å®Œæˆï¼Œå¯ä»¥ç”¨"
-"[method set_physics_process]æ¥åˆ‡æ¢ã€‚\n"
-"对应于[method Object._notification]中的[constant "
-"NOTIFICATION_PHYSICS_PROCESS]通知。\n"
-"[b]注æ„:[/b] è¿™ä¸ªæ–¹æ³•åªæœ‰åœ¨èŠ‚ç‚¹å­˜åœ¨äºŽåœºæ™¯æ ‘ä¸­æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼ˆä¹Ÿå°±æ˜¯è¯´ï¼Œå¦‚果它"
-"䏿˜¯\"孤儿\")。"
+"在主循环的物ç†å¤„ç†æ­¥éª¤ä¸­è¢«è°ƒç”¨ã€‚物ç†å¤„ç†æ„味ç€å¸§çŽ‡ä¸Žç‰©ç†åŒæ­¥ï¼Œå³ "
+"[code]delta[/code] å˜é‡åº”该是常é‡ã€‚[code]delta[/code] çš„å•使˜¯ç§’。\n"
+"åªæœ‰å½“物ç†å¤„ç†è¢«å¯ç”¨æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼Œå¦‚果这个方法被é‡å†™ï¼Œå°±ä¼šè‡ªåŠ¨å®Œæˆï¼Œå¯ä»¥ç”¨ "
+"[method set_physics_process] æ¥åˆ‡æ¢ã€‚\n"
+"对应于 [method Object._notification] 中的 [constant "
+"NOTIFICATION_PHYSICS_PROCESS] 通知。\n"
+"[b]注æ„:[/b]è¿™ä¸ªæ–¹æ³•åªæœ‰åœ¨èŠ‚ç‚¹å­˜åœ¨äºŽåœºæ™¯æ ‘ä¸­æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼ˆä¹Ÿå°±æ˜¯è¯´ï¼Œå¦‚果它ä¸"
+"是“孤儿â€ï¼‰ã€‚"
#: doc/classes/Node.xml
msgid ""
@@ -43682,13 +44561,13 @@ msgid ""
"tree (i.e. if it's not orphan)."
msgstr ""
"åœ¨ä¸»å¾ªçŽ¯çš„å¤„ç†æ­¥éª¤ä¸­è¢«è°ƒç”¨ã€‚处ç†å‘生在æ¯ä¸€å¸§ï¼Œå¹¶ä¸”å°½å¯èƒ½å¿«ï¼Œæ‰€ä»¥ä»Žä¸Šä¸€å¸§å¼€å§‹"
-"çš„[code]delta[/code]æ—¶é—´ä¸æ˜¯æ’定的。[code]delta[/code]çš„å•使˜¯ç§’。\n"
-"åªæœ‰åœ¨å¯ç”¨å¤„ç†çš„æƒ…况下æ‰ä¼šè¢«è°ƒç”¨ï¼Œå¦‚果这个方法被é‡å†™ï¼Œä¼šè‡ªåŠ¨è¿›è¡Œå¤„ç†ï¼Œå¯ä»¥ç”¨"
-"[method set_process]æ¥åˆ‡æ¢ã€‚\n"
-"对应于[method Object._notification]中的[constant NOTIFICATION_PROCESS]通"
+"çš„ [code]delta[/code] æ—¶é—´ä¸æ˜¯æ’定的。[code]delta[/code] çš„å•使˜¯ç§’。\n"
+"åªæœ‰åœ¨å¯ç”¨å¤„ç†çš„æƒ…况下æ‰ä¼šè¢«è°ƒç”¨ï¼Œå¦‚果这个方法被é‡å†™ï¼Œä¼šè‡ªåŠ¨è¿›è¡Œå¤„ç†ï¼Œå¯ä»¥ç”¨ "
+"[method set_process] æ¥åˆ‡æ¢ã€‚\n"
+"对应于 [method Object._notification] 中的 [constant NOTIFICATION_PROCESS] 通"
"知。\n"
-"[b]注æ„:[/b] è¿™ä¸ªæ–¹æ³•åªæœ‰åœ¨èŠ‚ç‚¹å­˜åœ¨äºŽåœºæ™¯æ ‘ä¸­æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼ˆä¹Ÿå°±æ˜¯è¯´ï¼Œå¦‚果它"
-"䏿˜¯\"孤儿\")。"
+"[b]注æ„:[/b]è¿™ä¸ªæ–¹æ³•åªæœ‰åœ¨èŠ‚ç‚¹å­˜åœ¨äºŽåœºæ™¯æ ‘ä¸­æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼ˆä¹Ÿå°±æ˜¯è¯´ï¼Œå¦‚果它ä¸"
+"是“孤儿â€ï¼‰ã€‚"
#: doc/classes/Node.xml
msgid ""
@@ -43733,16 +44612,16 @@ msgid ""
"[b]Note:[/b] This method is only called if the node is present in the scene "
"tree (i.e. if it's not orphan)."
msgstr ""
-"当[InputEvent]还未被[method _input]或任何GUI消耗时调用。输入事件通过节点树å‘"
-"上传播,直到一个节点消耗它。\n"
+"当 [InputEvent] 还未被 [method _input] 或任何 GUI 消耗时调用。输入事件通过节"
+"点树å‘上传播,直到一个节点消耗它。\n"
"åªæœ‰åœ¨å¯ç”¨äº†æœªå¤„ç†çš„è¾“å…¥å¤„ç†æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼Œå¦‚果这个方法被é‡å†™ï¼Œå®ƒå°±ä¼šè‡ªåŠ¨å®Œ"
-"æˆï¼Œå¹¶ä¸”å¯ä»¥ç”¨[method set_process_unhandled_input]æ¥åˆ‡æ¢ã€‚\n"
-"è¦æ¶ˆè€—输入事件并阻止它进一步传播到其他节点,å¯ä»¥è°ƒç”¨[method SceneTree."
+"æˆï¼Œå¹¶ä¸”å¯ä»¥ç”¨ [method set_process_unhandled_input] æ¥åˆ‡æ¢ã€‚\n"
+"è¦æ¶ˆè€—输入事件并阻止它进一步传播到其他节点,å¯ä»¥è°ƒç”¨ [method SceneTree."
"set_input_as_handled]。\n"
-"对于游æˆè¾“入,这和[method _unhandled_key_input]通常比[method _input]更适åˆï¼Œ"
-"因为它们å…许GUI首先拦截事件。\n"
-"[b]注æ„:[/b] è¿™ä¸ªæ–¹æ³•åªæœ‰åœ¨èŠ‚ç‚¹å­˜åœ¨äºŽåœºæ™¯æ ‘ä¸­æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼ˆä¹Ÿå°±æ˜¯è¯´ï¼Œå¦‚果它"
-"䏿˜¯\"孤儿\")。"
+"对于游æˆè¾“入,这和 [method _unhandled_key_input] 通常比 [method _input] 更适"
+"åˆï¼Œå› ä¸ºå®ƒä»¬å…许 GUI 首先拦截事件。\n"
+"[b]注æ„:[/b]è¿™ä¸ªæ–¹æ³•åªæœ‰åœ¨èŠ‚ç‚¹å­˜åœ¨äºŽåœºæ™¯æ ‘ä¸­æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼ˆä¹Ÿå°±æ˜¯è¯´ï¼Œå¦‚果它ä¸"
+"是“孤儿â€ï¼‰ã€‚"
#: doc/classes/Node.xml
msgid ""
@@ -43760,16 +44639,16 @@ msgid ""
"[b]Note:[/b] This method is only called if the node is present in the scene "
"tree (i.e. if it's not orphan)."
msgstr ""
-"当[InputEventKey]没有被[method _input]或任何GUI消耗时被调用。输入事件通过节点"
-"æ ‘å‘上传播,直到一个节点消耗它。\n"
+"当 [InputEventKey] 没有被 [method _input] 或任何 GUI 消耗时被调用。输入事件通"
+"过节点树å‘上传播,直到一个节点消耗它。\n"
"åªæœ‰åœ¨å¯ç”¨äº†æœªå¤„ç†çš„é”®è¾“å…¥å¤„ç†æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼Œå¦‚果这个方法被é‡å†™ï¼Œå®ƒå°±ä¼šè‡ªåŠ¨å®Œ"
-"æˆï¼Œå¹¶ä¸”å¯ä»¥ç”¨[method set_process_unhandled_key_input]æ¥åˆ‡æ¢ã€‚\n"
-"è¦æ¶ˆè€—输入事件并阻止它进一步传播到其他节点,å¯ä»¥è°ƒç”¨[method SceneTree."
+"æˆï¼Œå¹¶ä¸”å¯ä»¥ç”¨ [method set_process_unhandled_key_input] æ¥åˆ‡æ¢ã€‚\n"
+"è¦æ¶ˆè€—输入事件并阻止它进一步传播到其他节点,å¯ä»¥è°ƒç”¨ [method SceneTree."
"set_input_as_handled]。\n"
-"对于游æˆè¾“入,这和[method _unhandled_input]通常比[method _input]更适åˆï¼Œå› ä¸º"
-"它们å…许GUI首先拦截事件。\n"
-"[b]注æ„:[/b] è¿™ä¸ªæ–¹æ³•åªæœ‰åœ¨èŠ‚ç‚¹å­˜åœ¨äºŽåœºæ™¯æ ‘ä¸­æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼ˆä¹Ÿå°±æ˜¯è¯´ï¼Œå¦‚果它"
-"䏿˜¯\"孤儿\")。"
+"对于游æˆè¾“入,这和 [method _unhandled_input] 通常比 [method _input] 更适åˆï¼Œ"
+"因为它们å…许 GUI 首先拦截事件。\n"
+"[b]注æ„:[/b]è¿™ä¸ªæ–¹æ³•åªæœ‰åœ¨èŠ‚ç‚¹å­˜åœ¨äºŽåœºæ™¯æ ‘ä¸­æ—¶æ‰ä¼šè¢«è°ƒç”¨ï¼ˆä¹Ÿå°±æ˜¯è¯´ï¼Œå¦‚果它ä¸"
+"是“孤儿â€ï¼‰ã€‚"
#: doc/classes/Node.xml
msgid ""
@@ -43878,7 +44757,6 @@ msgstr ""
"本。"
#: doc/classes/Node.xml
-#, fuzzy
msgid ""
"Finds a descendant of this node whose name matches [code]mask[/code] as in "
"[method String.match] (i.e. case-sensitive, but [code]\"*\"[/code] matches "
@@ -43895,15 +44773,16 @@ msgid ""
"consider using [method get_node] instead. To avoid using [method find_node] "
"too often, consider caching the node reference into a variable."
msgstr ""
-"查找该节点的å­çº§ï¼Œå…¶å称与[method String.match]中的[code]mask[/code]相匹é…,"
-"区分大å°å†™ï¼Œä»¥[code]\"*\"[/code]匹é…零或多个字符,[code]\"?\"[/code]匹é…除"
-"[code]\".\"[/code]以外的任何å•字符。\n"
-"[b]注æ„:[/b]å®ƒä¸æ˜¯å…¨è·¯å¾„匹é…,åªä¸Žå•个节点å称匹é…。\n"
-"如果[code]owner[/code]是[code]true[/code]ï¼Œè¿™ä¸ªæ–¹æ³•åªæ‰¾åˆ°æ‰€æœ‰è€…是这个节点的节"
-"点。这对通过脚本实例化的场景特别é‡è¦ï¼Œå› ä¸ºè¿™äº›åœºæ™¯æ²¡æœ‰æ‰€æœ‰è€…。\n"
+"查找该节点的å­çº§ï¼Œå…¶å称与 [code]mask[/code] 相匹é…,匹é…è§„åˆ™åŒ [method "
+"String.match](区分大å°å†™ï¼Œä½† [code]\"*\"[/code] å¯ä»¥åŒ¹é…零或多个字符,"
+"[code]\"?\"[/code] å¯ä»¥åŒ¹é…除 [code]\".\"[/code] 以外的任何å•个字符)。如果没"
+"有找到匹é…çš„ [Node],则返回 [code]null[/code]。\n"
+"[b]注æ„:[/b]匹é…çš„ä¸æ˜¯å®Œæ•´è·¯å¾„,åªåŒ¹é…å•独的节点å称。\n"
+"如果 [code]owner[/code] 为 [code]true[/code],这个方法åªä¼šå¯»æ‰¾æ‰€æœ‰è€…是这个节"
+"点的节点。这对通过脚本实例化的场景特别é‡è¦ï¼Œå› ä¸ºè¿™äº›åœºæ™¯æ²¡æœ‰æ‰€æœ‰è€…。\n"
"[b]注æ„:[/b]由于这个方法会é历节点的所有å­çº§ï¼Œå®ƒæ˜¯èŽ·å¾—å¦ä¸€ä¸ªèŠ‚ç‚¹çš„å¼•ç”¨çš„æœ€æ…¢"
-"的方法。åªè¦æœ‰å¯èƒ½ï¼Œè¯·è€ƒè™‘使用[method get_node]代替。为了é¿å…过于频ç¹åœ°ä½¿ç”¨"
-"[method find_node],å¯ä»¥è€ƒè™‘将节点引用缓存到一个å˜é‡ä¸­ã€‚"
+"的方法。åªè¦æœ‰å¯èƒ½ï¼Œè¯·è€ƒè™‘使用 [method get_node] 代替。为了é¿å…过于频ç¹åœ°ä½¿"
+"用 [method find_node],å¯ä»¥è€ƒè™‘将节点引用缓存到å˜é‡ä¸­ã€‚"
#: doc/classes/Node.xml
msgid ""
@@ -43988,7 +44867,6 @@ msgid ""
msgstr "返回此节点的网络主节点的对等 ID。请å‚阅 [method set_network_master]。"
#: doc/classes/Node.xml
-#, fuzzy
msgid ""
"Fetches a node. The [NodePath] can be either a relative path (from the "
"current node) or an absolute path (in the scene tree) to a node. If the path "
@@ -44018,9 +44896,8 @@ msgid ""
"[/codeblock]"
msgstr ""
"获å–一个节点。[NodePath] å¯ä»¥æ˜¯ä¸€ä¸ªç›¸å¯¹è·¯å¾„(从当å‰èŠ‚ç‚¹ï¼‰ï¼Œä¹Ÿå¯ä»¥æ˜¯ä¸€ä¸ªç»å¯¹è·¯"
-"径(在场景树中)。如果路径ä¸å­˜åœ¨ï¼Œåˆ™è¿”回 [code]null instance[/code],并记录错"
-"误。å°è¯•访问返回值上的方法将导致“Attempt to call <method> on a null "
-"instance.â€é”™è¯¯ã€‚\n"
+"径(在场景树中)。如果路径ä¸å­˜åœ¨ï¼Œåˆ™è¿”回 [code]null[/code],并记录错误。å°è¯•访"
+"问返回值上的方法将导致“Attempt to call <method> on a null instance.â€é”™è¯¯ã€‚\n"
"[b]注æ„:[/b]获å–ç»å¯¹è·¯å¾„åªåœ¨èŠ‚ç‚¹åœ¨åœºæ™¯æ ‘ä¸­æ—¶ç”Ÿæ•ˆï¼ˆè¯·å‚阅 [method "
"is_inside_tree])。\n"
"[b]示例:[/b]å‡è®¾ä½ å½“å‰çš„节点是 Character,并且有一下树结构:\n"
@@ -44084,16 +44961,14 @@ msgid ""
"Similar to [method get_node], but does not log an error if [code]path[/code] "
"does not point to a valid [Node]."
msgstr ""
-"类似于[method get_node],但如果[code]路径[/code]æ²¡æœ‰æŒ‡å‘æœ‰æ•ˆçš„[Node],则ä¸ä¼š"
-"记录错误。"
+"类似于 [method get_node],但如果 [code]path[/code] æ²¡æœ‰æŒ‡å‘æœ‰æ•ˆçš„ [Node],则"
+"ä¸ä¼šè®°å½•错误。"
#: doc/classes/Node.xml
-#, fuzzy
msgid ""
"Returns the parent node of the current node, or [code]null[/code] if the "
"node lacks a parent."
-msgstr ""
-"返回当å‰èŠ‚ç‚¹çš„çˆ¶èŠ‚ç‚¹ï¼Œå¦‚æžœèŠ‚ç‚¹ç¼ºå°‘çˆ¶èŠ‚ç‚¹ï¼Œåˆ™è¿”å›ž[code]null instance[/code]。"
+msgstr "返回当å‰èŠ‚ç‚¹çš„çˆ¶èŠ‚ç‚¹ï¼Œå¦‚æžœèŠ‚ç‚¹ç¼ºå°‘çˆ¶èŠ‚ç‚¹ï¼Œåˆ™è¿”å›ž [code]null[/code]。"
#: doc/classes/Node.xml
msgid ""
@@ -44134,7 +45009,7 @@ msgstr ""
msgid ""
"Returns the time elapsed (in seconds) since the last process callback. This "
"value may vary from frame to frame."
-msgstr "返回自上次进程回调以æ¥ç»è¿‡çš„æ—¶é—´(以秒为å•ä½)。这个值å¯èƒ½å› å¸§è€Œå¼‚。"
+msgstr "返回自上次处ç†å›žè°ƒä»¥æ¥ç»è¿‡çš„æ—¶é—´ï¼ˆå•ä½ä¸ºç§’)。这个值å¯èƒ½å› å¸§è€Œå¼‚。"
#: doc/classes/Node.xml
msgid ""
@@ -44413,7 +45288,6 @@ msgstr ""
"将一个节点从一个组中移除。å‚阅æè¿°ä¸­çš„æ³¨é‡Šï¼Œä»¥åŠ[SceneTree]中的组方法。"
#: doc/classes/Node.xml
-#, fuzzy
msgid ""
"Replaces a node in a scene by the given one. Subscriptions that pass through "
"this node will be lost.\n"
@@ -44424,8 +45298,9 @@ msgid ""
"free]."
msgstr ""
"将场景中的æŸä¸ªèŠ‚ç‚¹æ›¿æ¢ä¸ºç»™å®šçš„节点。ç»è¿‡è¯¥èŠ‚ç‚¹çš„è®¢é˜…ä¼šä¸¢å¤±ã€‚\n"
-"请注æ„,被替æ¢çš„节点ä¸ä¼šè¢«è‡ªåŠ¨é‡Šæ”¾ï¼Œæ‰€ä»¥ä½ éœ€è¦å°†å®ƒæ”¾å…¥å˜é‡ä»¥å¤‡åŽç»­ä½¿ç”¨ï¼Œæˆ–者"
-"使用 [method Object.free] 将其释放。"
+"[b]注æ„:[/b]给定的节点将æˆä¸ºè¢«æ›¿æ¢èŠ‚ç‚¹çš„å­èŠ‚ç‚¹çš„æ–°çš„çˆ¶èŠ‚ç‚¹ã€‚\n"
+"[b]注æ„:[/b]被替æ¢çš„节点ä¸ä¼šè¢«è‡ªåŠ¨é‡Šæ”¾ï¼Œæ‰€ä»¥ä½ éœ€è¦å°†å®ƒæ”¾å…¥å˜é‡ä»¥å¤‡åŽç»­ä½¿ç”¨ï¼Œ"
+"或者使用 [method Object.free] 将其释放。"
#: doc/classes/Node.xml
msgid ""
@@ -44531,12 +45406,12 @@ msgid ""
"By default, properties are not exposed to networking (and RPCs). See also "
"[method rpc] and [method rpc_config] for methods."
msgstr ""
-"将给定的[code]属性[/code]çš„RPCæ¨¡å¼æ”¹ä¸ºç»™å®šçš„[code]mode[/code]。å‚阅[enum "
-"MultiplayerAPI.RPCMode]。å¦ä¸€ç§æ–¹æ³•是用相应的关键字([code]remote[/code], "
-"[code]master[/code], [code]puppet[/code], [code]remoteesync[/code], "
-"[code]masterync[/code], [code]puppetsync[/code]ï¼‰æ¥æ³¨é‡Šæ–¹æ³•和属性。默认情况"
-"下,属性ä¸ä¼šæš´éœ²ç»™ç½‘络(和RPC)。也请å‚阅[method rpc]å’Œ[method rpc_config]çš„"
-"方法。"
+"将给定的 [code]property[/code] çš„ RPC æ¨¡å¼æ”¹ä¸ºç»™å®šçš„ [code]mode[/code]。å‚阅 "
+"[enum MultiplayerAPI.RPCMode]。å¦ä¸€ç§æ–¹æ³•是用相应的关键字([code]remote[/"
+"code]ã€[code]master[/code]ã€[code]puppet[/code]ã€[code]remoteesync[/code]ã€"
+"[code]masterync[/code]ã€[code]puppetsync[/code]ï¼‰æ¥æ³¨é‡Šæ–¹æ³•和属性。默认情况"
+"下,属性ä¸ä¼šæš´éœ²ç»™ç½‘络(和 RPC)。也请å‚阅 [method rpc] å’Œ [method "
+"rpc_config] 的方法。"
#: doc/classes/Node.xml
msgid ""
@@ -44689,8 +45564,8 @@ msgid ""
"Use [method _get_configuration_warning] to setup the warning message to "
"display."
msgstr ""
-"更新在Scene Dock中为这个节点显示的警告。\n"
-"使用[method _get_configuration_warning]æ¥è®¾ç½®è¦æ˜¾ç¤ºçš„警告信æ¯ã€‚"
+"æ›´æ–°åœ¨åœºæ™¯é¢æ¿ä¸­ä¸ºè¿™ä¸ªèŠ‚ç‚¹æ˜¾ç¤ºçš„è­¦å‘Šã€‚\n"
+"使用 [method _get_configuration_warning] æ¥è®¾ç½®è¦æ˜¾ç¤ºçš„警告信æ¯ã€‚"
#: doc/classes/Node.xml
msgid ""
@@ -45063,8 +45938,9 @@ msgid ""
"index. If this node's Z index is 2 and its parent's effective Z index is 3, "
"then this node's effective Z index will be 2 + 3 = 5."
msgstr ""
-"如果[code]true[/code],节点的Z索引是相对于它的父节点的Z索引而言的。如果这个节"
-"点的Z索引是2,它的父节点的有效Z索引是3,那么这个节点的有效Z索引将是2+3=5。"
+"如果 [code]true[/code],节点的 Z 索引是相对于它的父节点的 Z 索引而言的。如果"
+"这个节点的 Z 索引是 2,它的父节点的实际 Z 索引是 3,那么这个节点的实际 Z 索引"
+"将是 2 + 3 = 5。"
#: doc/classes/Node2D.xml
msgid ""
@@ -45447,7 +46323,7 @@ msgstr ""
"对象导出属性,这些属性主è¦ç”¨äºŽå­˜å‚¨å’Œç¼–è¾‘ï¼Œä½†åœ¨ç¼–ç¨‹ä¸­å¹¶ä¸æ˜¯é‚£ä¹ˆæœ‰ç”¨ã€‚属性在 "
"[method _get_property_list] 中导出并在 [method _get] 和 [method _set] 中处"
"ç†ã€‚然而,脚本语言和 C++ 有更简å•的方法æ¥å¯¼å‡ºå®ƒä»¬ã€‚\n"
-"在GDScript中å¯ä»¥ä½¿ç”¨ [code]in[/code] 直接测试属性æˆå‘˜ã€‚\n"
+"在 GDScript 中å¯ä»¥ä½¿ç”¨ [code]in[/code] 直接检查是å¦ä¸ºå±žæ€§æˆå‘˜ã€‚\n"
"[codeblock]\n"
"var n = Node2D.new()\n"
"print(\"position\" in n) # æ‰“å° \"True\"。\n"
@@ -45457,27 +46333,22 @@ msgstr ""
"[code]null[/code]。\n"
"对象也会收到通知。通知是一ç§å°†ä¸åŒäº‹ä»¶é€šçŸ¥ç»™å¯¹è±¡çš„ç®€å•æ–¹æ³•,因此它们å¯ä»¥ä¸€èµ·"
"处ç†ã€‚è§ [method _notification]。\n"
-"[b]注æ„:[/b] 与对 [Reference] 的引用ä¸åŒï¼Œå¯¹å­˜å‚¨åœ¨å˜é‡ä¸­çš„对象的引用å¯èƒ½ä¼šåœ¨"
+"[b]注æ„:[/b]与对 [Reference] 的引用ä¸åŒï¼Œå¯¹å­˜å‚¨åœ¨å˜é‡ä¸­çš„对象的引用å¯èƒ½ä¼šåœ¨"
"没有警告的情况下å˜å¾—无效。因此,建议对数æ®ç±»ä½¿ç”¨ [Reference] è€Œä¸æ˜¯ "
"[Object]。\n"
-"[b]注æ„:[/b]由于一个错误,你ä¸èƒ½ä½¿ç”¨ [code]Object.new()[/code] 创建一个“普"
-"通â€å¯¹è±¡ã€‚请使用 [code]ClassDB.instance(\"Object\")[/code]。这个错误åªé€‚用于"
-"Objectæœ¬èº«ï¼Œè€Œä¸æ˜¯å®ƒçš„任何å­ç±»ï¼Œå¦‚[Reference]。"
+"[b]注æ„:[/b]由于一个 bug,你无法使用 [code]Object.new()[/code] 创建“普通†"
+"Object 对象。请æ¢ç”¨ [code]ClassDB.instance(\"Object\")[/code]。这个 bug ä»…é™"
+"于 Object 本身,[Reference] 等派生类ä¸å—å½±å“。"
#: doc/classes/Object.xml doc/classes/Reference.xml doc/classes/Resource.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/best_practices/node_alternatives.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/best_practices/"
-"node_alternatives.html"
+msgstr "$DOCS_URL/tutorials/best_practices/node_alternatives.html"
#: doc/classes/Object.xml
-#, fuzzy
msgid ""
"$DOCS_URL/tutorials/scripting/gdscript/gdscript_exports.html#advanced-exports"
msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/scripting/gdscript/"
-"gdscript_exports.html#advanced-exports"
+"$DOCS_URL/tutorials/scripting/gdscript/gdscript_exports.html#advanced-exports"
#: doc/classes/Object.xml
msgid ""
@@ -46121,8 +46992,8 @@ msgstr ""
"å¤„çš„å¤§é®æŒ¡ç‰©æ›´å¥½ã€‚\n"
"鮿Œ¡å›¾å…ƒçš„类型由您添加到 [Occluder] çš„ [OccluderShape] 决定。æŸäº› "
"[OccluderShape] å¯èƒ½å…许在å•个节点中有多个图元,以æé«˜æ•ˆçŽ‡ã€‚\n"
-"尽管 [Occluder] 在一般用途中工作,但与门户系统结åˆä½¿ç”¨æ—¶ï¼Œå®ƒä»¬ä¹Ÿä¼šå˜å¾—更加强"
-"å¤§ã€‚é®æŒ¡ç‰©æ”¾ç½®åœ¨æˆ¿é—´ä¸­ï¼ˆåŸºäºŽå®ƒä»¬çš„原点),并且å¯ä»¥é˜»æŒ¡é—¨æˆ·ï¼ˆä»¥åŠæ•´ä¸ªæˆ¿é—´ï¼‰ä»¥"
+"尽管 [Occluder] 在一般用途中工作,但与入å£ç³»ç»Ÿç»“åˆä½¿ç”¨æ—¶ï¼Œå®ƒä»¬ä¹Ÿä¼šå˜å¾—更加强"
+"å¤§ã€‚é®æŒ¡ç‰©æ”¾ç½®åœ¨æˆ¿é—´ä¸­ï¼ˆåŸºäºŽå®ƒä»¬çš„原点),并且å¯ä»¥é˜»æŒ¡å…¥å£ï¼ˆä»¥åŠæ•´ä¸ªæˆ¿é—´ï¼‰ä»¥"
"åŠæ¸²æŸ“对象。"
#: doc/classes/OccluderPolygon2D.xml
@@ -46689,6 +47560,10 @@ msgid ""
"order of preference) [method @GDScript.assert], [method @GDScript."
"push_error] or [method alert]. See also [method kill]."
msgstr ""
+"让引擎崩溃(如果是在 [code]tool[/code] 脚本中调用则是编辑器崩溃)。此方法应该"
+"[i]ä»…[/i]用于测试系统的崩溃处ç†å™¨ï¼Œä¸åº”用于其他目的。通用的错误汇报请使用 "
+"[method @GDScript.assert]ã€[method @GDScript.push_error]ã€[method alert](按"
+"推èé¡ºåºæŽ’åˆ—ï¼‰ã€‚å¦è¯·å‚阅 [method kill]。"
#: doc/classes/OS.xml
msgid ""
@@ -46860,7 +47735,6 @@ msgid "Returns the audio driver name for the given index."
msgstr "返回给定索引的音频驱动程åºå称。"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Returns the [i]global[/i] cache data directory according to the operating "
"system's standards. On desktop platforms, this path can be overridden by "
@@ -46873,11 +47747,10 @@ msgid ""
msgstr ""
"æ ¹æ®æ“作系统的标准返回[i]全局[/i]缓存数æ®ç›®å½•。在桌é¢å¹³å°ä¸Šï¼Œå¯ä»¥é€šè¿‡åœ¨å¯åЍ项"
"目之å‰è®¾ç½® [code]XDG_CACHE_HOME[/code] 环境å˜é‡æ¥è¦†ç›–此路径。有关更多信æ¯ï¼Œè¯·"
-"å‚阅文档中的 [url=https://docs.godotengine.org/zh_CN/latest/tutorials/io/"
-"data_paths.html]Godot 项目中的文件路径[/url]。å¦è¯·å‚阅 [method "
-"get_config_dir] 和 [method get_data_dir]。\n"
-"ä¸è¦ä¸Ž [method get_user_data_dir] 混淆,åŽè€…返回 [i] 项目特定的 [/i] 用户数æ®"
-"路径。"
+"å‚阅文档中的 [url=$DOCS_URL/tutorials/io/data_paths.html]《Godot 项目中的文件"
+"路径》[/url]。å¦è¯·å‚阅 [method get_config_dir] å’Œ [method get_data_dir]。\n"
+"ä¸è¦ä¸Ž [method get_user_data_dir] 混淆,åŽè€…返回[i]项目特定的[/i]用户数æ®è·¯"
+"径。"
#: doc/classes/OS.xml
msgid ""
@@ -46918,7 +47791,6 @@ msgstr ""
"[/codeblock]"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Returns the [i]global[/i] user configuration directory according to the "
"operating system's standards. On desktop platforms, this path can be "
@@ -46931,9 +47803,8 @@ msgid ""
msgstr ""
"æ ¹æ®æ“作系统的标准,返回[i]全局[/i]用户é…置目录。在桌é¢å¹³å°ä¸Šï¼Œè¿™ä¸ªè·¯å¾„å¯ä»¥åœ¨"
"å¯åŠ¨é¡¹ç›®å‰é€šè¿‡è®¾ç½®[code]XDG_CONFIG_HOME[/code]环境å˜é‡æ¥è¦†ç›–。更多信æ¯è¯·å‚è§"
-"文档中[url=https://docs.godotengine.org/zh_CN/latest/tutorials/io/data_paths."
-"html]Godot项目中的文件路径[/url]。也请å‚è§ [method get_cache_dir] å’Œ [method "
-"get_data_dir]。\n"
+"文档中[url=$DOCS_URL/tutorials/io/data_paths.html]《Godot 项目中的文件路径》"
+"[/url]。å¦è¯·å‚阅 [method get_cache_dir] å’Œ [method get_data_dir]。\n"
"ä¸è¦ä¸Ž[method get_user_data_dir]混淆,åŽè€…返回[i]项目专用[/i]用户数æ®è·¯å¾„。"
#: doc/classes/OS.xml
@@ -46955,7 +47826,6 @@ msgid ""
msgstr "返回当å‰ä½¿ç”¨çš„视频驱动程åºï¼Œä½¿ç”¨[enum VideoDriver]中的一个值。"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Returns the [i]global[/i] user data directory according to the operating "
"system's standards. On desktop platforms, this path can be overridden by "
@@ -46968,24 +47838,22 @@ msgid ""
msgstr ""
"æ ¹æ®æ“作系统的标准,返回[i]全局[/i]用户数æ®ç›®å½•。在桌é¢å¹³å°ä¸Šï¼Œè¿™ä¸ªè·¯å¾„å¯ä»¥åœ¨"
"å¯åŠ¨é¡¹ç›®å‰é€šè¿‡è®¾ç½®[code]XDG_DATA_HOME[/code]环境å˜é‡æ¥è¦†ç›–。更多信æ¯è¯·å‚è§æ–‡"
-"档中[url=https://docs.godotengine.org/zh_CN/latest/tutorials/io/data_paths."
-"html]Godot项目中的文件路径[/url]。也请å‚è§ [method get_cache_dir] å’Œ [method "
-"get_config_dir]。\n"
-"ä¸è¦ä¸Ž[method get_user_data_dir]混淆,åŽè€…返回[i]项目专用[/i]用户数æ®è·¯å¾„。"
+"档中[url=$DOCS_URL/tutorials/io/data_paths.html]《Godot 项目中的文件路径》[/"
+"url]。å¦è¯·å‚阅 [method get_cache_dir] å’Œ [method get_config_dir]。\n"
+"ä¸è¦ä¸Ž [method get_user_data_dir] 混淆,åŽè€…返回[i]项目专用[/i]用户数æ®è·¯å¾„。"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Deprecated, use [method Time.get_date_dict_from_system] instead.\n"
"Returns current date as a dictionary of keys: [code]year[/code], "
"[code]month[/code], [code]day[/code], [code]weekday[/code], [code]dst[/code] "
"(Daylight Savings Time)."
msgstr ""
-"è¿”å›žå½“å‰æ—¥æœŸä½œä¸ºé”®çš„å­—å…¸:[code]year[/code], [code]month[/code], [code]day[/"
-"code], [code]weekday[/code], [code]dst[/code](å¤ä»¤æ—¶)。"
+"å·²å¯ç”¨ï¼Œè¯·æ¢ç”¨ [method Time.get_date_dict_from_system]。\n"
+"è¿”å›žå½“å‰æ—¥æœŸä½œä¸ºé”®çš„字典:[code]year[/code]〠[code]month[/code]ã€[code]day[/"
+"code]ã€[code]weekday[/code]ã€[code]dst[/code](å¤ä»¤æ—¶ï¼‰ã€‚"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Deprecated, use [method Time.get_datetime_dict_from_system] instead.\n"
"Returns current datetime as a dictionary of keys: [code]year[/code], "
@@ -46993,12 +47861,12 @@ msgid ""
"(Daylight Savings Time), [code]hour[/code], [code]minute[/code], "
"[code]second[/code]."
msgstr ""
-"è¿”å›žå½“å‰æ—¥æœŸæ—¶é—´ä½œä¸ºå…³é”®å­—å­—å…¸:[code]year[/code], [code]month[/code], "
-"[code]day[/code], [code]weekday[/code], [code]dst[/code](å¤ä»¤æ—¶),"
-"[code]hour[/code], [code]minute[/code], [code]second[/code]。"
+"已弃用,请æ¢ç”¨ [method Time.get_datetime_dict_from_system]。\n"
+"è¿”å›žå½“å‰æ—¥æœŸæ—¶é—´ä½œä¸ºé”®çš„字典:[code]year[/code]ã€[code]month[/code]ã€"
+"[code]day[/code]ã€[code]weekday[/code]ã€[code]dst[/code](å¤ä»¤æ—¶ï¼‰ã€"
+"[code]hour[/code]ã€[code]minute[/code]ã€[code]second[/code]。"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Deprecated, use [method Time.get_datetime_dict_from_unix_time] instead.\n"
"Gets a dictionary of time values corresponding to the given UNIX epoch time "
@@ -47007,9 +47875,10 @@ msgid ""
"with the exception of Daylight Savings Time as it cannot be determined from "
"the epoch."
msgstr ""
-"获å–与给定UNIX历元时间(以秒为å•ä½)对应的时间值字典。\n"
-"返回的Dictionary值将与[method get_datetime]相åŒï¼Œé™¤äº†Daylight Savings Time,"
-"因为它ä¸èƒ½ä»Žepoch确定。"
+"已废弃,请æ¢ç”¨ [method Time.get_datetime_dict_from_unix_time]。\n"
+"æ ¹æ®ç»™å®šçš„ UNIX 纪元时间(å•ä½ä¸ºç§’)获å–对应的时间值字典。\n"
+"返回的 Dictionary 的值与 [method get_datetime] 相åŒï¼ŒåŒºåˆ«æ˜¯æ— æ³•æ ¹æ®çºªå…ƒæŽ¨å®šå¤"
+"令时。"
#: doc/classes/OS.xml
msgid "Returns the total amount of dynamic memory used (only works in debug)."
@@ -47131,14 +48000,13 @@ msgstr ""
"法语用户,这将返回 [code]fr[/code]。"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Returns the ID of the main thread. See [method get_thread_caller_id].\n"
"[b]Note:[/b] Thread IDs are not deterministic and may be reused across "
"application restarts."
msgstr ""
-"返回当å‰çº¿ç¨‹çš„ ID。这å¯ç”¨äºŽæ—¥å¿—,以简化多线程应用程åºçš„调试。\n"
-"[b]注:[/b] 线程 ID 䏿˜¯ç¡®å®šçš„,也许会在应用程åºé‡æ–°å¯åŠ¨æ—¶è¢«é‡å¤ä½¿ç”¨ã€‚"
+"返回主线程的 ID。请å‚阅 [method get_thread_caller_id]。\n"
+"[b]注æ„:[/b]线程 ID 䏿˜¯ç¡®å®šçš„,也许会在应用程åºé‡æ–°å¯åŠ¨æ—¶è¢«é‡å¤ä½¿ç”¨ã€‚"
#: doc/classes/OS.xml
msgid ""
@@ -47223,7 +48091,7 @@ msgid ""
"See also [member InputEventKey.scancode] and [method InputEventKey."
"get_scancode_with_modifiers]."
msgstr ""
-"将给定的扫æç ä½œä¸ºå­—符串返回(例如返回值:[code]\"Escape\"[/code],"
+"将给定的扫æç ä½œä¸ºå­—符串返回(例如返回值:[code]\"Escape\"[/code]ã€"
"[code]\"Shift+Escape\"[/code])。\n"
"å¦è¯·å‚阅 [member InputEventKey.scancode] å’Œ [method InputEventKey."
"get_scancode_with_modifiers] 。"
@@ -47324,7 +48192,10 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr "è¿”å›žä½¿ç”¨çš„é™æ€å†…存的最大数é‡(仅在调试中有效)。"
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+#, fuzzy
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr "è¿”å›žç¨‹åºæ‰€ä½¿ç”¨çš„陿€å†…å­˜é‡ï¼Œä»¥å­—节为å•ä½ã€‚"
#: doc/classes/OS.xml
@@ -47378,25 +48249,28 @@ msgstr ""
"[b]注:[/b] 线程 ID 䏿˜¯ç¡®å®šçš„,也许会在应用程åºé‡æ–°å¯åŠ¨æ—¶è¢«é‡å¤ä½¿ç”¨ã€‚"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Deprecated, use [method Time.get_ticks_msec] instead.\n"
"Returns the amount of time passed in milliseconds since the engine started."
-msgstr "返回引擎å¯åЍåŽç»è¿‡çš„æ—¶é—´(以毫秒为å•ä½)。"
+msgstr ""
+"已弃用,请æ¢ç”¨ [method Time.get_ticks_msec]。\n"
+"返回引擎å¯åЍåŽç»è¿‡çš„æ—¶é—´ï¼ˆä»¥æ¯«ç§’为å•ä½ï¼‰ã€‚"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Deprecated, use [method Time.get_ticks_usec] instead.\n"
"Returns the amount of time passed in microseconds since the engine started."
-msgstr "返回引擎å¯åЍåŽç»è¿‡çš„æ—¶é—´(以微秒为å•ä½)。"
+msgstr ""
+"已弃用,请æ¢ç”¨ [method Time.get_ticks_usec]。\n"
+"返回引擎å¯åЍåŽç»è¿‡çš„æ—¶é—´ï¼ˆä»¥å¾®ç§’为å•ä½ï¼‰ã€‚"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Deprecated, use [method Time.get_time_dict_from_system] instead.\n"
"Returns current time as a dictionary of keys: hour, minute, second."
-msgstr "以字典形å¼è¿”回当å‰çš„æ—¶é—´ï¼Œæ‰€åŒ…å«çš„键:hourã€minuteã€second。"
+msgstr ""
+"已弃用,请æ¢ç”¨ [method Time.get_time_dict_from_system]。\n"
+"以字典形å¼è¿”回当å‰çš„æ—¶é—´ï¼Œæ‰€åŒ…å«çš„键:hourã€minuteã€second。"
#: doc/classes/OS.xml
msgid ""
@@ -47570,7 +48444,6 @@ msgstr ""
"Windows 之外的所有平å°ä¸Šéƒ½åŒºåˆ†å¤§å°å†™ã€‚"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Returns [code]true[/code] if the feature for the given feature tag is "
"supported in the currently running instance, depending on the platform, "
@@ -47582,21 +48455,21 @@ msgid ""
msgstr ""
"å¦‚æžœç»™å®šçš„ç‰¹å¾æ ‡ç­¾çš„特å¾åœ¨å½“å‰è¿è¡Œçš„实例中得到支æŒï¼Œåˆ™è¿”回 [code]true[/"
"code],具体å–决于平å°å’Œæž„建等。å¯ä»¥ç”¨æ¥æ£€æŸ¥ä½ å½“剿˜¯å¦åœ¨è¿è¡Œä¸€ä¸ªè°ƒè¯•构建,是å¦"
-"在æŸä¸ªå¹³å°æˆ–架构上,等等。更多细节请å‚考[url=https://docs.godotengine.org/"
-"zh_CN/stable/tutorials/export/feature_tags.html]功能标签[/url]文档。\n"
+"在æŸä¸ªå¹³å°æˆ–架构上,等等。更多细节请å‚考[url=$DOCS_URL/tutorials/export/"
+"feature_tags.html]功能标签[/url]文档。\n"
"[b]注æ„:[/b]标签å称区分大å°å†™ã€‚"
#: doc/classes/OS.xml
msgid ""
"Returns [code]true[/code] if the device has a touchscreen or emulates one."
-msgstr "å¦‚æžœè®¾å¤‡æœ‰è§¦æ‘¸å±æˆ–模拟有触摸å±ï¼Œåˆ™è¿”回[code]true[/code]。"
+msgstr "å¦‚æžœè®¾å¤‡æœ‰è§¦æ‘¸å±æˆ–模拟有触摸å±ï¼Œåˆ™è¿”回 [code]true[/code]。"
#: doc/classes/OS.xml
msgid ""
"Returns [code]true[/code] if the platform has a virtual keyboard, "
"[code]false[/code] otherwise."
msgstr ""
-"å¦‚æžœå¹³å°æœ‰è™šæ‹Ÿé”®ç›˜ï¼Œè¿”回[code]true[/code],å¦åˆ™è¿”回[code]false[/code]。"
+"å¦‚æžœå¹³å°æœ‰è™šæ‹Ÿé”®ç›˜ï¼Œè¿”回 [code]true[/code],å¦åˆ™è¿”回 [code]false[/code]。"
#: doc/classes/OS.xml
msgid "Hides the virtual keyboard if it is shown, does nothing otherwise."
@@ -47624,21 +48497,22 @@ msgid ""
"Returns [code]true[/code] if the [b]OK[/b] button should appear on the left "
"and [b]Cancel[/b] on the right."
msgstr ""
-"如果[b]OK[/b]按钮应该显示在左边,[b]Cancel[/b]显示在å³è¾¹ï¼Œåˆ™è¿”回[code]true[/"
+"如果[b]确定[/b]按钮应该显示在左边,[b]å–æ¶ˆ[/b]显示在å³è¾¹ï¼Œåˆ™è¿”回 [code]true[/"
"code]。"
#: doc/classes/OS.xml
msgid ""
"Returns [code]true[/code] if the input scancode corresponds to a Unicode "
"character."
-msgstr "如果输入的键ç ä¸ŽUnicode字符对应,则返回[code]true[/code]。"
+msgstr "如果输入的扫æç ä¸Ž Unicode 字符对应,则返回 [code]true[/code]。"
#: doc/classes/OS.xml
msgid ""
"Returns [code]true[/code] if the engine was executed with [code]-v[/code] "
"(verbose stdout)."
msgstr ""
-"如果引擎是用[code]-v[/code](verbose stdout)执行的,返回[code]true[/code]。"
+"如果引擎是用 [code]-v[/code](verbose stdout)执行的,返回 [code]true[/"
+"code]。"
#: doc/classes/OS.xml
msgid ""
@@ -47709,7 +48583,6 @@ msgstr ""
"[b]注:[/b]此方法å¯åœ¨Linuxã€macOSå’ŒWindows上实现。"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Kill (terminate) the process identified by the given process ID ([code]pid[/"
"code]), e.g. the one returned by [method execute] in non-blocking mode. See "
@@ -47720,7 +48593,7 @@ msgid ""
"Windows."
msgstr ""
"æ€æ­»ï¼ˆç»ˆæ­¢ï¼‰ç”±ç»™å®šçš„进程 ID([code]pid[/code])标识的进程,例如,在éžé˜»å¡žæ¨¡å¼"
-"下由 [method execute] 返回的进程。\n"
+"下由 [method execute] 返回的进程。å¦è¯·å‚阅 [method crash]。\n"
"[b]注æ„:[/b]这个方法也å¯ä»¥ç”¨æ¥æ€æ­»ä¸æ˜¯ç”±æ¸¸æˆäº§ç”Ÿçš„进程。\n"
"[b]注æ„:[/b]这个方法在 Androidã€iOSã€Linuxã€macOS å’Œ Windows 上实现。"
@@ -47852,10 +48725,10 @@ msgid ""
"dialog. Image is scaled as needed.\n"
"[b]Note:[/b] This method is implemented on HTML5, Linux, macOS and Windows."
msgstr ""
-"使用图åƒ[Image]资æºè®¾ç½®æ¸¸æˆçš„图标。\n"
-"åŒæ ·çš„图åƒç”¨äºŽçª—壿 ‡é¢˜ã€ä»»åŠ¡æ /dock和窗å£é€‰æ‹©å¯¹è¯æ¡†ã€‚图åƒä¼šæ ¹æ®éœ€è¦è¿›è¡Œç¼©"
+"ä½¿ç”¨å›¾åƒ [Image] 资æºè®¾ç½®æ¸¸æˆçš„图标。\n"
+"åŒæ ·çš„图åƒç”¨äºŽçª—壿 ‡é¢˜ã€ä»»åŠ¡æ /程åºåžå’Œçª—å£é€‰æ‹©å¯¹è¯æ¡†ã€‚图åƒä¼šæ ¹æ®éœ€è¦è¿›è¡Œç¼©"
"放。\n"
-"[b]注æ„:[/b] 这个方法在HTML5ã€Linuxã€macOSå’ŒWindows上实现。"
+"[b]注æ„:[/b]这个方法在 HTML5ã€Linuxã€macOS å’Œ Windows 上实现。"
#: doc/classes/OS.xml
msgid ""
@@ -47868,12 +48741,12 @@ msgid ""
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"设置是å¦åº”å¯ç”¨ IME 输入法模å¼ã€‚\n"
-"如果激活,IME输入法编辑器在应用程åºä¹‹å‰å¤„ç†å…³é”®äº‹ä»¶å¹¶åˆ›å»ºç»„åˆå­—符串和建议列"
+"如果激活,IME 输入法编辑器在应用程åºä¹‹å‰å¤„ç†å…³é”®äº‹ä»¶å¹¶åˆ›å»ºç»„åˆå­—符串和建议列"
"表。\n"
"应用程åºå¯ä»¥é€šè¿‡ä½¿ç”¨ [method get_ime_selection] å’Œ [method get_ime_text] 函数"
"æ¥æ£€ç´¢ç»„åˆçжæ€ã€‚\n"
"è¾“å…¥å®Œæˆæ—¶æäº¤å®Œæˆçš„组åˆå­—符串。\n"
-"[b]注:[/b]该方法在Linuxã€macOSå’ŒWindows上实现。"
+"[b]注æ„:[/b]该方法在 Linuxã€macOS å’Œ Windows 上实现。"
#: doc/classes/OS.xml
msgid ""
@@ -47891,10 +48764,10 @@ msgid ""
"window selection dialog.\n"
"[b]Note:[/b] This method is implemented on macOS and Windows."
msgstr ""
-"使用多尺寸平å°ç‰¹å®šå›¾æ ‡æ–‡ä»¶ï¼ˆ[code]*.ico[/code] 在 Windows 上设置游æˆå›¾æ ‡ï¼Œåœ¨ "
-"macOS 上设置 [code]*.icns[/code] ) 。\n"
-"适当的大å°å­å›¾æ ‡ç”¨äºŽçª—壿 ‡é¢˜ã€ä»»åŠ¡æ /åœé é¢æ¿å’Œçª—å£é€‰æ‹©å¯¹è¯æ¡†ã€‚\n"
-"[b]注æ„:[/b] 此方法在 macOS å’Œ Windows 上实现。"
+"使用多尺寸平å°ç‰¹å®šå›¾æ ‡æ–‡ä»¶è®¾ç½®æ¸¸æˆçš„图标(在 Windows 上是 [code]*.ico[/"
+"code],在 macOS 上是 [code]*.icns[/code])。\n"
+"适当的大å°å­å›¾æ ‡ç”¨äºŽçª—壿 ‡é¢˜ã€ä»»åŠ¡æ /程åºåžå’Œçª—å£é€‰æ‹©å¯¹è¯æ¡†ã€‚\n"
+"[b]注æ„:[/b]此方法在 macOS å’Œ Windows 上实现。"
#: doc/classes/OS.xml
msgid "Sets the name of the current thread."
@@ -47910,7 +48783,7 @@ msgid ""
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"è®¾ç½®çª—å£æ˜¯å¦åº”始终ä½äºŽé¡¶éƒ¨ã€‚\n"
-"[b]注:[/b] 该方法在 Linuxã€macOS å’Œ Windows 上实现。"
+"[b]注æ„:[/b]该方法在 Linuxã€macOS å’Œ Windows 上实现。"
#: doc/classes/OS.xml
msgid ""
@@ -47956,9 +48829,9 @@ msgid ""
"[b]Note:[/b] This method is implemented on HTML5, Linux, macOS and Windows."
msgstr ""
"å°†çª—å£æ ‡é¢˜è®¾ç½®ä¸ºæŒ‡å®šçš„字符串。\n"
-"[b]注æ„:[/b] 这个应该å¶å°”使用。ä¸è¦æ¯å¸§éƒ½è®¾ç½®è¿™ä¸ªï¼Œå› ä¸ºè¿™ä¼šå¯¹æŸäº›çª—å£ç®¡ç†å™¨"
-"的性能产生负é¢å½±å“。\n"
-"[b]注:[/b] 该方法在 HTML5ã€Linuxã€macOS å’Œ Windows 上实现。"
+"[b]注æ„:[/b]应该å¶å°”使用,ä¸è¦æ¯å¸§éƒ½è®¾ç½®ï¼Œå› ä¸ºè¿™ä¼šå¯¹æŸäº›çª—å£ç®¡ç†å™¨çš„æ€§èƒ½äº§ç”Ÿ"
+"è´Ÿé¢å½±å“。\n"
+"[b]注æ„:[/b]该方法在 HTML5ã€Linuxã€macOS å’Œ Windows 上实现。"
#: doc/classes/OS.xml
msgid ""
@@ -48003,13 +48876,13 @@ msgid ""
"be able to enter multiple lines of text, as in [TextEdit].\n"
"[b]Note:[/b] This method is implemented on Android, iOS and UWP."
msgstr ""
-"å¦‚æžœå¹³å°æœ‰è™šæ‹Ÿé”®ç›˜ï¼Œåˆ™æ˜¾ç¤ºè™šæ‹Ÿé”®ç›˜ã€‚\n"
+"å¦‚æžœè¯¥å¹³å°æœ‰è™šæ‹Ÿé”®ç›˜ï¼Œåˆ™æ˜¾ç¤ºè™šæ‹Ÿé”®ç›˜ã€‚\n"
"[code]existing_text[/code] 傿•°å¯¹äºŽå®žçŽ°æ‚¨è‡ªå·±çš„ [LineEdit] 或 [TextEdit] 很有"
"用,因为它告诉虚拟键盘已ç»è¾“入了哪些文本(虚拟键盘使用它进行自动更正和预"
"测)。\n"
-"[code]multiline[/code]傿•°éœ€è¦è®¾ç½®ä¸º[code]true[/code]æ‰èƒ½è¾“入多行文本,如"
-"[TextEdit]。\n"
-"[b]注:[/b]此方法在Androidã€iOSå’ŒUWP上实现。"
+"éœ€è¦æŠŠ [code]multiline[/code] 傿•°è®¾ç½®ä¸º [code]true[/code] æ‰èƒ½è¾“入多行文本,"
+"如在 [TextEdit] 中。\n"
+"[b]注æ„:[/b]此方法在 Androidã€iOS å’Œ UWP 上实现。"
#: doc/classes/OS.xml
msgid "The clipboard from the host OS. Might be unavailable on some platforms."
@@ -48037,11 +48910,11 @@ msgid ""
"[b]Note:[/b] This value will be ignored if using [method SceneTree.quit] "
"with an [code]exit_code[/code] argument passed."
msgstr ""
-"主循环退出时传递给æ“作系统的退出代ç ã€‚按照惯例,一个[code]0[/code]的退出代ç "
-"表示æˆåŠŸï¼Œè€Œä¸€ä¸ªéžé›¶çš„退出代ç è¡¨ç¤ºé”™è¯¯ã€‚出于å¯ç§»æ¤æ€§çš„考虑,退出代ç åº”该设置"
-"在0到125之间(包括125)。\n"
-"[b]注æ„:[/b] 如果使用[method SceneTree.quit],并传递[code]exit_code[/code]å‚"
-"数,这个值将被忽略。"
+"主循环退出时传递给æ“作系统的退出代ç ã€‚æŒ‰ç…§æƒ¯ä¾‹ï¼Œé€€å‡ºä»£ç  [code]0[/code] 表示"
+"æˆåŠŸï¼Œè€Œéžé›¶çš„退出代ç è¡¨ç¤ºé”™è¯¯ã€‚出于å¯ç§»æ¤æ€§çš„考虑,退出代ç åº”该设置在 0 到 "
+"125 之间(包括 125)。\n"
+"[b]注æ„:[/b]如果使用 [method SceneTree.quit] 并传递了 [code]exit_code[/"
+"code] 傿•°ï¼Œè¿™ä¸ªå€¼å°†è¢«å¿½ç•¥ã€‚"
#: doc/classes/OS.xml
msgid ""
@@ -48084,10 +48957,10 @@ msgid ""
"[code]Vector2(64, 64)[/code]. This prevents issues that can arise when the "
"window is resized to a near-zero size."
msgstr ""
-"窗å£çš„æœ€å°å°ºå¯¸ï¼ˆä»¥åƒç´ ä¸ºå•ä½ï¼‰ï¼ˆä¸è®¡ç®—窗å£ç®¡ç†å™¨è£…饰)。ä¸å½±å“免屿¨¡å¼ã€‚设置"
-"为 [code](0, 0)[/code] å¯é‡ç½®ä¸ºç³»ç»Ÿé»˜è®¤å€¼ã€‚\n"
-"[b]注:[/b] 默认情况下,项目窗å£çš„æœ€å°å°ºå¯¸ä¸º [code]Vector2(64, 64)[/code]。这"
-"å¯ä»¥é˜²æ­¢åœ¨å°†çª—å£å¤§å°è°ƒæ•´ä¸ºæŽ¥è¿‘é›¶æ—¶å¯èƒ½å‡ºçŽ°çš„é—®é¢˜ã€‚"
+"窗å£çš„æœ€å°åƒç´ å°ºå¯¸ï¼ˆä¸è®¡ç®—窗å£ç®¡ç†å™¨è£…饰)。ä¸å½±å“免屿¨¡å¼ã€‚设置为 [code](0, "
+"0)[/code] å¯é‡ç½®ä¸ºç³»ç»Ÿé»˜è®¤å€¼ã€‚\n"
+"[b]注æ„:[/b]默认情况下,项目窗å£çš„æœ€å°å°ºå¯¸ä¸º [code]Vector2(64, 64)[/code]。"
+"è¿™å¯ä»¥é˜²æ­¢åœ¨å°†çª—å£å¤§å°è°ƒæ•´ä¸ºæŽ¥è¿‘é›¶æ—¶å¯èƒ½å‡ºçŽ°çš„é—®é¢˜ã€‚"
#: doc/classes/OS.xml
msgid "The current screen orientation."
@@ -48180,8 +49053,8 @@ msgid ""
"The GLES2 rendering backend. It uses OpenGL ES 2.0 on mobile devices, OpenGL "
"2.1 on desktop platforms and WebGL 1.0 on the web."
msgstr ""
-"GLES2的渲染åŽç«¯ã€‚它在移动设备上使用OpenGL ES 2.0,在桌é¢å¹³å°ä¸Šä½¿ç”¨OpenGL "
-"2.1,在网络上使用WebGL 1.0。"
+"GLES2 渲染åŽç«¯ã€‚它在移动设备上使用 OpenGL ES 2.0,在桌é¢å¹³å°ä¸Šä½¿ç”¨ OpenGL "
+"2.1,在 Web 上使用 WebGL 1.0。"
#: doc/classes/OS.xml
msgid ""
@@ -48189,7 +49062,7 @@ msgid ""
"3.3 on desktop platforms and WebGL 2.0 on the web."
msgstr ""
"GLES3 渲染åŽç«¯ã€‚它在移动设备上使用 OpenGL ES 3.0,在桌é¢å¹³å°ä¸Šä½¿ç”¨ OpenGL "
-"3.3,在网络上使用 WebGL 2.0。"
+"3.3,在 Web 上使用 WebGL 2.0。"
#: doc/classes/OS.xml
msgid "Sunday."
@@ -48276,9 +49149,9 @@ msgid ""
"- Android: [code]JNIEnv*[/code] of the application (not yet implemented)"
msgstr ""
"应用程åºå¥æŸ„:\n"
-"- Windows: [code]HINSTANCE[/code] 的应用程åº\n"
-"- MacOS: [code]NSApplication*[/code] 的应用程åºï¼ˆå°šæœªå®žçŽ°ï¼‰\n"
-"- Android: [code]JNIEnv*[/code] çš„åº”ç”¨ç¨‹åº ï¼ˆå°šæœªå®žçŽ°ï¼‰"
+"- Windows:应用程åºçš„ [code]HINSTANCE[/code]\n"
+"- MacOS:应用程åºçš„ [code]NSApplication*[/code](尚未实现)\n"
+"- Android:应用程åºçš„ [code]JNIEnv*[/code](尚未实现)"
#: doc/classes/OS.xml
msgid ""
@@ -48407,7 +49280,7 @@ msgstr "æ’上电æºï¼Œç”µæ± å……满电。"
#: doc/classes/PackedDataContainerRef.xml
msgid "Reference version of [PackedDataContainer]."
-msgstr "[PackedDataContainer]的引用版本。"
+msgstr "[PackedDataContainer] 的引用版本。"
#: doc/classes/PackedScene.xml
msgid "An abstraction of a serialized scene."
@@ -48561,15 +49434,14 @@ msgstr ""
"[b]注æ„:[/b] åªåœ¨ç¼–辑器构建中å¯ç”¨ã€‚"
#: doc/classes/PackedScene.xml
-#, fuzzy
msgid ""
"It's similar to [constant GEN_EDIT_STATE_MAIN], but for the case where the "
"scene is being instantiated to be the base of another one.\n"
"[b]Note:[/b] Only available in editor builds."
msgstr ""
-"如果传递给[method instance]ï¼Œå‘æœ¬åœ°åœºæ™¯æä¾›æœ¬åœ°åœºæ™¯èµ„æºã€‚åªæœ‰ä¸»åœºæ™¯åº”该接收主"
-"编辑状æ€ã€‚\n"
-"[b]注æ„:[/b] åªåœ¨ç¼–辑器构建中å¯ç”¨ã€‚"
+"与 [constant GEN_EDIT_STATE_MAIN] 类似,但适用于场景作为å¦ä¸€ä¸ªåœºæ™¯çš„基类实例"
+"化的情况。\n"
+"[b]注æ„:[/b]仅在编辑器构建中å¯ç”¨ã€‚"
#: doc/classes/PacketPeer.xml
msgid "Abstraction and base class for packet-based protocols."
@@ -49129,13 +50001,12 @@ msgstr ""
"è§ AABB[/b]。å¦åˆ™ï¼Œç²’å­å¯èƒ½ä¼šç”±äºŽç›¸æœºä½ç½®å’Œè§’度的改å˜çªç„¶æ¶ˆå¤±ã€‚"
#: doc/classes/Particles.xml
-#, fuzzy
msgid ""
"$DOCS_URL/tutorials/performance/vertex_animation/"
"controlling_thousands_of_fish.html"
msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/performance/"
-"vertex_animation/controlling_thousands_of_fish.html"
+"$DOCS_URL/tutorials/performance/vertex_animation/"
+"controlling_thousands_of_fish.html"
#: doc/classes/Particles.xml
msgid ""
@@ -50163,10 +51034,8 @@ msgstr ""
#: doc/classes/PhysicsDirectBodyState.xml
#: doc/classes/PhysicsDirectSpaceState.xml doc/classes/RayCast.xml
#: doc/classes/RayCast2D.xml doc/classes/World.xml doc/classes/World2D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/physics/ray-casting.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/physics/ray-casting.html"
+msgstr "$DOCS_URL/tutorials/physics/ray-casting.html"
#: doc/classes/Physics2DDirectBodyState.xml doc/classes/RigidBody2D.xml
msgid "Adds a constant directional force without affecting rotation."
@@ -50534,7 +51403,6 @@ msgstr ""
"值æ¥ç¡®å®šå°„线是å¦åº”该分别与 [PhysicsBody2D] 或 [Area2D] å‘生碰撞。"
#: doc/classes/Physics2DDirectSpaceState.xml
-#, fuzzy
msgid ""
"Checks the intersections of a shape, given through a "
"[Physics2DShapeQueryParameters] object, against the space. The intersected "
@@ -50550,16 +51418,15 @@ msgid ""
"The number of intersections can be limited with the [code]max_results[/code] "
"parameter, to reduce the processing time."
msgstr ""
-"通过[Physics2DShapeQueryParameters]对象给出的形状与空间的检查交点。\n"
-"[b]注æ„:[/b] 这个方法ä¸è€ƒè™‘对象的[code]motion[/code]属性。相交的形状会以数组"
-"的形å¼è¿”å›žï¼Œè¯¥æ•°ç»„åŒ…å«æœ‰ä»¥ä¸‹å­—段的字典:\n"
-"[code]collider[/code]:碰撞的对象。\n"
-"[code]collider_id[/code]:碰撞对象的ID。\n"
-"[code]metadata[/code]:相交形状的元数æ®ã€‚这个元数æ®ä¸Ž[method Object.get_meta]"
-"ä¸åŒï¼Œæ˜¯ç”¨[method Physics2DServer.shape_set_data]设置的。\n"
-"[code]rid[/code]:相交物体的[RID]。\n"
-"[code]shape[/code]:碰撞形状的形状索引。\n"
-"å¯ä»¥ç”¨[code]max_results[/code]傿•°é™åˆ¶ç›¸äº¤çš„æ•°é‡ï¼Œä»¥å‡å°‘å¤„ç†æ—¶é—´ã€‚"
+"通过 [Physics2DShapeQueryParameters] 对象检查给出的形状与空间的交点。返回的相"
+"交形状是一个字典数组,包å«ä»¥ä¸‹å­—段:\n"
+"[code]collider[/code]:碰撞的对象。\n"
+"[code]collider_id[/code]:碰撞对象的ID。\n"
+"[code]metadata[/code]:相交形状的元数æ®ã€‚这个元数æ®ä¸Ž [method Object."
+"get_meta] ä¸åŒï¼Œæ˜¯ç”¨ [method Physics2DServer.shape_set_data] 设置的。\n"
+"[code]rid[/code]:相交对象的 [RID]。\n"
+"[code]shape[/code]:碰撞形状的形状索引。\n"
+"å¯ä»¥ç”¨ [code]max_results[/code] 傿•°é™åˆ¶ç›¸äº¤çš„æ•°é‡ï¼Œä»¥å‡å°‘å¤„ç†æ—¶é—´ã€‚"
#: doc/classes/Physics2DServer.xml
msgid "Server interface for low-level 2D physics access."
@@ -51454,16 +52321,15 @@ msgstr "如果[code]true[/code],查询将考虑[PhysicsBody2D]。"
#: doc/classes/Physics2DShapeQueryParameters.xml
#: doc/classes/PhysicsShapeQueryParameters.xml
-#, fuzzy
msgid ""
"The physics layer(s) the query will take into account (as a bitmask). See "
"[url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-"
"and-masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""
-"查询将考虑的物ç†å±‚ï¼ˆä½œä¸ºä½æŽ©ç ï¼‰ã€‚有关更多信æ¯ï¼Œè¯·å‚阅文档中的 [url=https://"
-"docs.godotengine.org/zh_CN/stable/tutorials/physics/physics_introduction."
-"html#collision-layers-and-masks]碰撞层和掩ç [/url]。"
+"查询将考虑的物ç†å±‚ï¼ˆä½œä¸ºä½æŽ©ç ï¼‰ã€‚有关更多信æ¯ï¼Œè¯·å‚阅文档中的[url=$DOCS_URL/"
+"tutorials/physics/physics_introduction.html#collision-layers-and-masks]《碰撞"
+"层与掩ç ã€‹[/url]。"
#: doc/classes/Physics2DShapeQueryParameters.xml
#: doc/classes/PhysicsShapeQueryParameters.xml
@@ -51527,7 +52393,7 @@ msgid ""
"PhysicsBody2D is an abstract base class for implementing a physics body. All "
"*Body2D types inherit from it."
msgstr ""
-"PhysicsBody2D是一个用于实现物ç†å®žä½“的抽象基类。所有*Body2D类型都继承自它。"
+"PhysicsBody2D 是一个用于实现物ç†å®žä½“的抽象基类。所有 *Body2D 类型都继承自它。"
#: doc/classes/PhysicsBody2D.xml
msgid ""
@@ -52280,7 +53146,7 @@ msgstr "垂直于滑å—的轴上的旋转阻尼é‡ã€‚"
#: doc/classes/PhysicsServer.xml
msgid "Represents the size of the [enum SliderJointParam] enum."
-msgstr "表示[enum SliderJointParam]枚举的大å°ã€‚"
+msgstr "表示 [enum SliderJointParam] 枚举的大å°ã€‚"
#: doc/classes/PhysicsServer.xml
msgid ""
@@ -52323,26 +53189,22 @@ msgstr ""
"当校正轴旋转中的æžé™äº¤å‰æ—¶ï¼Œè¯¥è¯¯å·®å®¹é™å› å­å®šä¹‰äº†æ ¡æ­£çš„凿…¢ç¨‹åº¦ã€‚越低越慢。"
#: doc/classes/PhysicsServer.xml
-#, fuzzy
msgid "If set, linear motion is possible within the given limits."
-msgstr "如果å¯ç”¨ï¼Œåœ¨ç»™å®šèŒƒå›´å†…å¯ä»¥è¿›è¡Œçº¿æ€§è¿åŠ¨ã€‚"
+msgstr "设置时,å¯ä»¥åœ¨ç»™å®šçš„范围内åšçº¿æ€§è¿åŠ¨ã€‚"
#: doc/classes/PhysicsServer.xml
-#, fuzzy
msgid "If set, rotational motion is possible."
-msgstr "如果[code]set[/code],则å¯èƒ½å­˜åœ¨æ—‹è½¬è¿åŠ¨ã€‚"
+msgstr "设置时,å¯ä»¥åšæ—‹è½¬è¿åŠ¨ã€‚"
#: doc/classes/PhysicsServer.xml
-#, fuzzy
msgid "If set, there is a rotational motor across these axes."
-msgstr "如果å¯ç”¨ï¼Œå°±æœ‰ä¸€ä¸ªè·¨è¿™äº›è½´çš„æ—‹è½¬é©¬è¾¾ã€‚"
+msgstr "设置时,在这些轴上有旋转动力。"
#: doc/classes/PhysicsServer.xml
-#, fuzzy
msgid ""
"If set, there is a linear motor on this axis that targets a specific "
"velocity."
-msgstr "如果[code]set[/code],则此轴上有一个以特定速度为目标的线性电机。"
+msgstr "设置时,在该轴上有指定速度的线性动力。"
#: doc/classes/PhysicsServer.xml
msgid "The [Shape] is a [PlaneShape]."
@@ -52792,7 +53654,7 @@ msgstr ""
#: doc/classes/Polygon2D.xml
msgid ""
"The polygon's fill texture. Use [code]uv[/code] to set texture coordinates."
-msgstr "多边形的填充贴图.使用[code]uv[/code]è®¾ç½®è´´å›¾åæ ‡."
+msgstr "多边形的填充纹ç†ã€‚使用 [code]uv[/code] 设置纹ç†å标。"
#: doc/classes/Polygon2D.xml
msgid ""
@@ -52800,24 +53662,24 @@ msgid ""
"the texture's origin (its top-left corner) will be placed at the polygon's "
"[code]position[/code]."
msgstr ""
-"多边形[code]texture[/code](贴图)ä½ç½®å移的值.如果[code](0,0)[/code],则贴图的"
-"原点(其左上角)将放置在多边形的[code]position[/code](åæ ‡)处."
+"多边形 [code]texture[/code] 纹ç†çš„åç§»é‡ã€‚如果为 [code](0, 0)[/code],则纹ç†"
+"的原点(其左上角)将放置在多边形的 [code]position[/code] 处。"
#: doc/classes/Polygon2D.xml
msgid "The texture's rotation in radians."
-msgstr "贴图的旋转(以弧度为å•ä½)."
+msgstr "纹ç†çš„æ—‹è½¬å¼§åº¦ã€‚"
#: doc/classes/Polygon2D.xml
msgid "The texture's rotation in degrees."
-msgstr "贴图的旋转(以度数为å•ä½)."
+msgstr "纹ç†çš„æ—‹è½¬è§’度。"
#: doc/classes/Polygon2D.xml
msgid ""
"Amount to multiply the [code]uv[/code] coordinates when using a "
"[code]texture[/code]. Larger values make the texture smaller, and vice versa."
msgstr ""
-"当使用[code]texture[/code](贴图)æ—¶,乘以[code]uv[/code]åæ ‡çš„值. 值越大,贴图越"
-"å°,å之亦然."
+"使用 [code]texture[/code] çº¹ç†æ—¶ä¹˜ä»¥ [code]uv[/code] åæ ‡çš„值。值越大,纹ç†è¶Š"
+"å°ï¼Œå之亦然。"
#: doc/classes/Polygon2D.xml
msgid ""
@@ -52825,8 +53687,8 @@ msgid ""
"[code]uv[/code] per polygon vertex. If there are fewer, undefined vertices "
"will use [code](0, 0)[/code]."
msgstr ""
-"多边形æ¯ä¸ªé¡¶ç‚¹çš„è´´å›¾åæ ‡.æ¯ä¸ªå¤šè¾¹å½¢é¡¶ç‚¹åº”该有一个[code]uv[/code].如果数é‡å°‘,"
-"则未定义的顶点将使用[code](0,0)[/code]."
+"多边形æ¯ä¸ªé¡¶ç‚¹çš„纹ç†å标。æ¯ä¸ªå¤šè¾¹å½¢é¡¶ç‚¹åº”该有一个 [code]uv[/code]。如果数é‡"
+"少,则未定义的顶点将使用 [code](0, 0)[/code]。"
#: doc/classes/Polygon2D.xml
msgid ""
@@ -52847,9 +53709,8 @@ msgid ""
"does not fragment the memory.\n"
"[b]Note:[/b] This type is passed by value and not by reference."
msgstr ""
-"一个 [Array] 专门设计用于ä¿å­˜å­—节。针对内存使用进行了优化,ä¸ä¼šé€ æˆå†…存碎"
-"片。\n"
-"[b]注æ„:[/b] è¿™ç§ç±»åž‹æ˜¯æŒ‰å€¼ä¼ é€’è€Œä¸æ˜¯æŒ‰å¼•用传递。"
+"专门设计用于ä¿å­˜å­—节的 [Array]。针对内存使用进行了优化,ä¸ä¼šé€ æˆå†…存碎片。\n"
+"[b]注æ„:[/b]è¿™ç§ç±»åž‹æ˜¯æŒ‰å€¼ä¼ é€’è€Œä¸æ˜¯æŒ‰å¼•用传递。"
#: doc/classes/PoolByteArray.xml
msgid ""
@@ -52879,21 +53740,22 @@ msgstr ""
"大å°ã€‚使用 [enum File.CompressionMode] 常é‡ä¹‹ä¸€è®¾ç½®åŽ‹ç¼©æ¨¡å¼ã€‚"
#: doc/classes/PoolByteArray.xml
+#, fuzzy
msgid ""
"Returns a new [PoolByteArray] with the data decompressed. Set the "
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
"返回数æ®è§£åŽ‹åŽçš„æ–° [PoolByteArray] 。使用 [enum File.CompressionMode] 的常数"
"之一设置压缩模å¼ã€‚[b]æ­¤æ–¹æ³•ä»…æŽ¥å— gzip å’Œdeflate压缩模å¼ã€‚[/b]\n"
@@ -52913,10 +53775,10 @@ msgid ""
"Multibyte sequences will not be interpreted correctly. For parsing user "
"input always use [method get_string_from_utf8]."
msgstr ""
-"返回数组内容的副本为[String]。如果内容是ASCIIç ï¼Œå¯ä»¥é€šè¿‡[method "
-"get_string_from_utf8]æ¥å¯¹å…¶å¿«é€Ÿæ›¿ä»£ã€‚与UTF-8函数ä¸åŒï¼Œè¯¥å‡½æ•°å°†æ¯ä¸ªå­—节映射为"
-"数组中的一个字符。多字节的åºåˆ—ä¸ä¼šè¢«æ­£ç¡®è§£é‡Šã€‚对于解æžç”¨æˆ·è¾“入的内容,总是使"
-"用[method get_string_from_utf8]。"
+"以 [String] å½¢å¼è¿”å›žè¯¥æ•°ç»„å†…å®¹çš„å‰¯æœ¬ã€‚å¦‚æžœå†…å®¹ä»…åŒ…å« ASCII 字符,是比 "
+"[method get_string_from_utf8] 更快的选择。与 UTF-8 函数ä¸åŒï¼Œè¯¥å‡½æ•°å°†æ¯ä¸ªå­—节"
+"映射为数组中的一个字符。多字节的åºåˆ—ä¸ä¼šè¢«æ­£ç¡®è§£é‡Šã€‚è§£æžç”¨æˆ·è¾“入的内容请始终"
+"使用 [method get_string_from_utf8]。"
#: doc/classes/PoolByteArray.xml
msgid ""
@@ -52925,9 +53787,9 @@ msgid ""
"you are unsure about the source of the data. For user input this function "
"should always be preferred."
msgstr ""
-"返回数组内容的副本[String]。比[method get_string_from_ascii]慢,但支æŒUTF-8ç¼–"
-"ç çš„æ•°æ®ã€‚如果ä¸ç¡®å®šæ•°æ®çš„æ¥æºï¼Œè¯·ä½¿ç”¨æ­¤å‡½æ•°ã€‚对于用户输入,应该始终首选此函"
-"数。"
+"以 [String] å½¢å¼è¿”回该数组内容的副本。比 [method get_string_from_ascii] 慢,"
+"ä½†æ”¯æŒ UTF-8 ç¼–ç çš„æ•°æ®ã€‚如果ä¸ç¡®å®šæ•°æ®çš„æ¥æºï¼Œè¯·ä½¿ç”¨æ­¤å‡½æ•°ã€‚对于用户输入,应"
+"该始终首选此函数。"
#: doc/classes/PoolByteArray.xml
msgid ""
@@ -52937,10 +53799,10 @@ msgid ""
"print(array.hex_encode()) # Prints: 0b2eff\n"
"[/codeblock]"
msgstr ""
-"返回该数组的å六进制,表示为一个[String]。\n"
+"以 [String] å½¢å¼è¿”回该数组的å六进制表示。\n"
"[codeblock]\n"
"var array = PoolByteArray([11, 46, 255])\n"
-"print(array.hex_encode()) # Prints: 0b2eff\n"
+"print(array.hex_encode()) # 输出:0b2eff\n"
"[/codeblock]"
#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
@@ -52981,20 +53843,14 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr "改å˜ç»™å®šç´¢å¼•处的字节。"
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr "返回数组的大å°ã€‚"
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
"new [PoolByteArray]. Any negative index is considered to be from the end of "
"the array."
msgstr ""
-"返回索引(包括)之间的[PoolByteArray]的片断为一个新的[PoolByteArray]。任何负"
-"的索引都被认为是从数组的末端开始的。"
+"返回索引之间(包括)的 [PoolByteArray] 的片断为一个新的 [PoolByteArray]。任何"
+"负的索引都被认为是从数组的末端开始的。"
#: doc/classes/PoolColorArray.xml
msgid "A pooled [Array] of [Color]."
@@ -53006,8 +53862,8 @@ msgid ""
"usage, does not fragment the memory.\n"
"[b]Note:[/b] This type is passed by value and not by reference."
msgstr ""
-"专门用于ä¿å­˜[Color]çš„[Array]。对内存的使用进行了优化,ä¸ä¼šä½¿å†…存碎片化。\n"
-"[b]注æ„:[/b] è¿™ç§ç±»åž‹æ˜¯é€šè¿‡å€¼ä¼ é€’çš„ï¼Œè€Œä¸æ˜¯å¼•用。"
+"专门用于ä¿å­˜ [Color] çš„ [Array]。对内存的使用进行了优化,ä¸ä¼šä½¿å†…存碎片化。\n"
+"[b]注æ„:[/b]è¿™ç§ç±»åž‹æ˜¯é€šè¿‡å€¼ä¼ é€’çš„ï¼Œè€Œä¸æ˜¯å¼•用。"
#: doc/classes/PoolColorArray.xml
msgid ""
@@ -53053,12 +53909,13 @@ msgid ""
"around. In comparison, [int] uses signed 64-bit integers which can hold much "
"larger values."
msgstr ""
-"一个专门用于ä¿å­˜æ•´æ•°å€¼çš„[Array]([int])。对内存的使用进行了优化,ä¸ä¼šä½¿å†…å­˜"
-"碎片化。\n"
-"[b]注æ„:[/b] è¿™ç§ç±»åž‹æ˜¯é€šè¿‡å€¼ä¼ é€’çš„ï¼Œè€Œä¸æ˜¯å¼•用。\n"
-"[b]注æ„:[/b] 这个类型仅é™äºŽæœ‰ç¬¦å·çš„32使•´æ•°ï¼Œè¿™æ„味ç€å®ƒåªèƒ½åœ¨[code][-2^31, "
-"2^31 - 1][/code]的区间å–值,å³[code][-2147483648, 2147483647][/code]。超过这"
-"些界é™å°±ä¼šè¢«åŒ…èµ·æ¥ã€‚相比之下,[int]使用有符å·çš„64使•´æ•°ï¼Œå¯ä»¥å®¹çº³å¤§å¾—多的值。"
+"专门用于ä¿å­˜æ•´æ•°å€¼ï¼ˆ[int])的 [Array]。对内存的使用进行了优化,ä¸ä¼šä½¿å†…存碎片"
+"化。\n"
+"[b]注æ„:[/b]è¿™ç§ç±»åž‹æ˜¯é€šè¿‡å€¼ä¼ é€’çš„ï¼Œè€Œä¸æ˜¯å¼•用。\n"
+"[b]注æ„:[/b]这个类型仅é™äºŽæœ‰ç¬¦å·çš„ 32 使•´æ•°ï¼Œè¿™æ„味ç€å®ƒåªèƒ½åœ¨ [code]"
+"[-2^31, 2^31 - 1][/code] 的区间å–å€¼ï¼Œå³ [code][-2147483648, 2147483647][/"
+"code]。超过这些界é™å°±ä¼šè¢«åŒ…èµ·æ¥ã€‚相比之下,[int] 使用有符å·çš„ 64 使•´æ•°ï¼Œå¯ä»¥"
+"容纳大得多的值。"
#: doc/classes/PoolIntArray.xml
msgid ""
@@ -53082,10 +53939,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr "更改给定索引处的 int。"
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr "返回数组大å°ã€‚"
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr "实数 [float] çš„[Array]集åˆã€‚"
@@ -53201,7 +54054,7 @@ msgstr "在末尾æ’å…¥[Vector2]。"
#: doc/classes/PoolVector2Array.xml
msgid "Changes the [Vector2] at the given index."
-msgstr "在给定索引处更改[Vector2]。"
+msgstr "更改给定索引处的 [Vector2]。"
#: doc/classes/PoolVector3Array.xml
msgid "A pooled [Array] of [Vector3]."
@@ -53234,7 +54087,7 @@ msgstr "在末尾æ’å…¥[Vector3]。"
#: doc/classes/PoolVector3Array.xml
msgid "Changes the [Vector3] at the given index."
-msgstr "在给定索引处更改[Vector3]。"
+msgstr "更改给定索引处的 [Vector3]。"
#: doc/classes/Popup.xml
msgid "Base container control for popups and dialogs."
@@ -53978,7 +54831,7 @@ msgstr "这个[PopupPanel]çš„èƒŒæ™¯é¢æ¿æ ·å¼ã€‚"
#: doc/classes/Portal.xml
msgid "Portal nodes are used to enable visibility between [Room]s."
-msgstr "门户节点用于实现房间[Room]之间的å¯è§æ€§ã€‚"
+msgstr "å…¥å£èŠ‚ç‚¹ç”¨äºŽå®žçŽ° [Room] 之间的å¯è§æ€§ã€‚"
#: doc/classes/Portal.xml
msgid ""
@@ -53996,14 +54849,14 @@ msgid ""
"There is no need to place an opposite portal in an adjacent room, links are "
"made two-way automatically."
msgstr ""
-"[Portal] 是一ç§ç‰¹æ®Šç±»åž‹çš„ [MeshInstance],å…许门户剔除系统从一个空间“看到â€åˆ°"
-"å¦ä¸€ä¸ªç©ºé—´ã€‚它们通常对应于水平几何中的门窗。åªå…许 [Camera] é€è¿‡ä¼ é€é—¨çœ‹åˆ°ï¼Œ"
-"è¿™å…许系统剔除空间中无法é€è¿‡ä¼ é€é—¨çœ‹åˆ°çš„æ‰€æœ‰ç‰©ä½“。这是[b]鮿Œ¡å‰”除[/b]的一ç§å½¢"
-"å¼ï¼Œå¯ä»¥å¤§å¤§æé«˜æ€§èƒ½ã€‚\n"
-"Portalçš„å½¢å¼æœ‰ä¸€äº›é™åˆ¶ï¼š\n"
-"它们必须是å•é¢å‡¸å¤šè¾¹å½¢ï¼Œå¹¶ä¸”é€šå¸¸æ‚¨ä¼šå°†å®ƒä»¬çš„æ­£é¢ [b]å‘外[/b] 从它们所在的 "
+"[Portal] 是一ç§ç‰¹æ®Šç±»åž‹çš„ [MeshInstance],å…许入å£å‰”除系统从一个空间“看到â€åˆ°"
+"å¦ä¸€ä¸ªç©ºé—´ã€‚它们通常对应于水平几何中的门窗。åªå…许 [Camera] é€è¿‡å…¥å£çœ‹åˆ°ï¼Œè¿™"
+"å…许系统剔除空间中无法é€è¿‡å…¥å£çœ‹åˆ°çš„æ‰€æœ‰ç‰©ä½“。这是[b]鮿Œ¡å‰”除[/b]的一ç§å½¢å¼ï¼Œ"
+"å¯ä»¥å¤§å¤§æé«˜æ€§èƒ½ã€‚\n"
+"å…¥å£çš„形弿œ‰ä¸€äº›é™åˆ¶ï¼š\n"
+"它们必须是å•é¢å‡¸å¤šè¾¹å½¢ï¼Œå¹¶ä¸”通常您会将它们的正é¢[b]æœå¤–[/b]从它们所在的 "
"[Room] 定å‘。顶点应该ä½äºŽä¸€ä¸ªå¹³é¢ä¸Šï¼ˆå°½ç®¡å®ƒä»¬çš„ä½ç½®ä¸å¿…完美)。\n"
-"无需在相邻空间放置对é¢çš„ä¼ é€é—¨ï¼Œå®ƒä»¬ä¼šè‡ªåŠ¨å»ºç«‹åŒå‘链接。"
+"无需在相邻空间放置对é¢çš„å…¥å£ï¼Œå®ƒä»¬ä¼šè‡ªåŠ¨å»ºç«‹åŒå‘链接。"
#: doc/classes/Portal.xml doc/classes/Room.xml
msgid "Sets individual points. Primarily for use by the editor."
@@ -54014,7 +54867,7 @@ msgid ""
"This is a shortcut for setting the linked [Room] in the name of the [Portal] "
"(the name is used during conversion)."
msgstr ""
-"这是在[Portal]çš„å称中设置链接[Room]çš„å¿«æ·æ–¹å¼ï¼ˆå称在转æ¢è¿‡ç¨‹ä¸­ä½¿ç”¨ï¼‰ã€‚"
+"这是在 [Portal] çš„å称中设置链接 [Room] çš„å¿«æ·æ–¹å¼ï¼ˆå称在转æ¢è¿‡ç¨‹ä¸­ä½¿ç”¨ï¼‰ã€‚"
#: doc/classes/Portal.xml
msgid ""
@@ -54342,7 +55195,6 @@ msgid "Contains global variables accessible from everywhere."
msgstr "包å«å…¨å±€å˜é‡ï¼Œå¯ä»¥ä»Žä»»ä½•地方访问。"
#: doc/classes/ProjectSettings.xml
-#, fuzzy
msgid ""
"Contains global variables accessible from everywhere. Use [method "
"get_setting], [method set_setting] or [method has_setting] to access them. "
@@ -54372,15 +55224,13 @@ msgstr ""
"指定“项目设置â€çš„属性时,请使用设置的完整路径,包括类别。例如项目å称应使用 "
"[code]\"application/config/name\"[/code]。类别和属性åç§°å¯ä»¥åœ¨â€œé¡¹ç›®è®¾ç½®â€å¯¹è¯"
"框中查看。\n"
-"[b]特性标签:[/b]å¯ä»¥ä½¿ç”¨[url=https://docs.godotengine.org/zh_CN/stable/"
-"tutorials/export/feature_tags.html]特性标签[/url]æ¥é’ˆå¯¹ç‰¹å®šçš„å¹³å°å’Œé…置(调"
-"试ã€å‘布……)åšé¡¹ç›®è®¾ç½®çš„覆盖。\n"
+"[b]特性标签:[/b]å¯ä»¥ä½¿ç”¨[url=$DOCS_URL/tutorials/export/feature_tags.html]特"
+"性标签[/url]æ¥é’ˆå¯¹ç‰¹å®šçš„å¹³å°å’Œé…置(调试ã€å‘布……)åšé¡¹ç›®è®¾ç½®çš„覆盖。\n"
"[b]覆盖:[/b]在项目的根目录下创建å为 [code]override.cfg[/code] 的文件,就å¯"
"以对任æ„项目设置进行覆盖。对于已导出的项目,把这个文件放在与项目二进制文件相"
-"åŒçš„目录下,也å¯ä»¥è¾¾åˆ°è¦†ç›–的目的。覆盖时ä»ä¼šè€ƒè™‘基础项目设置的[url=https://"
-"docs.godotengine.org/zh_CN/stable/tutorials/export/feature_tags.html]特性标签"
-"[/url]。因此,如果你想让它们在所有平å°å’Œé…置上覆盖基础项目设置,请确ä¿[i]也用"
-"[/i]所需的特性标签覆盖该设置。"
+"åŒçš„目录下,也å¯ä»¥è¾¾åˆ°è¦†ç›–的目的。覆盖时ä»ä¼šè€ƒè™‘基础项目设置的[url=$DOCS_URL/"
+"tutorials/export/feature_tags.html]特性标签[/url]。因此,如果你想让它们在所有"
+"å¹³å°å’Œé…置上覆盖基础项目设置,请确ä¿[i]也用[/i]所需的特性标签覆盖该设置。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -54447,7 +55297,6 @@ msgstr ""
"[/codeblock]"
#: doc/classes/ProjectSettings.xml
-#, fuzzy
msgid ""
"Returns the absolute, native OS path corresponding to the localized "
"[code]path[/code] (starting with [code]res://[/code] or [code]user://[/"
@@ -54477,9 +55326,8 @@ msgid ""
msgstr ""
"返回与本地化 [code]path[/code](以 [code]res://[/code] 或 [code]user://[/"
"code] 开头)相对应的ç»å¯¹åŽŸç”Ÿ OS 路径。返回的路径将因æ“作系统和用户首选项而"
-"异。这些路径会转æ¢ä¸ºä»€ä¹ˆè¯·å‚阅[url=https://docs.godotengine.org/zh_CN/stable/"
-"tutorials/io/data_paths.html]《Godot 项目中的文件路径》[/url]。å¦è¯·å‚阅 "
-"[method localize_path]。\n"
+"异。这些路径会转æ¢ä¸ºä»€ä¹ˆè¯·å‚阅[url=$DOCS_URL/tutorials/io/data_paths.html]"
+"《Godot 项目中的文件路径》[/url]。å¦è¯·å‚阅 [method localize_path]。\n"
"[b]注æ„:[/b]对 [code]res://[/code] 调用 [method globalize_path] 在导出的项目"
"中ä¸ä¼šèµ·ä½œç”¨ã€‚当从导出的项目è¿è¡Œæ—¶ï¼Œè¯·å°†å¯æ‰§è¡Œæ–‡ä»¶çš„基目录添加到路径中:\n"
"[codeblock]\n"
@@ -54621,14 +55469,13 @@ msgid "Background color for the boot splash."
msgstr "å¯åŠ¨ç•Œé¢çš„背景色。"
#: doc/classes/ProjectSettings.xml
-#, fuzzy
msgid ""
"If [code]true[/code], scale the boot splash image to the full window size "
"(preserving the aspect ratio) when the engine starts. If [code]false[/code], "
"the engine will leave it at the default pixel size."
msgstr ""
-"如果为 [code]true[/code],引擎å¯åŠ¨æ—¶ä¼šå°†å¯åŠ¨å›¾ç‰‡æ‰©å±•åˆ°æ•´ä¸ªçª—å£é•¿åº¦ã€‚如果为 "
-"[code]false[/code]ï¼Œå¼•æ“Žå°†ä¿æŒå…¶é»˜è®¤åƒç´ å¤§å°ã€‚"
+"如果为 [code]true[/code],引擎å¯åŠ¨æ—¶ä¼šå°†å¯åŠ¨å›¾ç‰‡ç¼©æ”¾åˆ°æ•´ä¸ªçª—å£çš„大å°ï¼ˆä¿æŒé•¿"
+"宽比)。如果为 [code]false[/code]ï¼Œå¼•æ“Žå°†ä¿æŒå…¶é»˜è®¤åƒç´ å¤§å°ã€‚"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -54637,6 +55484,9 @@ msgid ""
"[b]Note:[/b] Only effective if [member application/boot_splash/show_image] "
"is [code]true[/code]."
msgstr ""
+"用作å¯åŠ¨ç”»é¢çš„图片的路径。留空时将使用默认的 Godot 引擎å¯åŠ¨ç”»é¢ã€‚\n"
+"[b]注æ„:[/b]仅在 [member application/boot_splash/show_image] 为 [code]true[/"
+"code] 时有效。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -54645,16 +55495,18 @@ msgid ""
"displays the plain color specified in [member application/boot_splash/"
"bg_color]."
msgstr ""
+"为 [code]true[/code] 时,将在引擎å¯åŠ¨æ—¶æ˜¾ç¤º [member application/boot_splash/"
+"image] 所指定的图片。为 [code]false[/code] 时,仅显示 [member application/"
+"boot_splash/bg_color] 所指定的纯色。"
#: doc/classes/ProjectSettings.xml
-#, fuzzy
msgid ""
"If [code]true[/code], applies linear filtering when scaling the image "
"(recommended for high-resolution artwork). If [code]false[/code], uses "
"nearest-neighbor interpolation (recommended for pixel art)."
msgstr ""
-"如果[code]true[/code]ï¼Œåˆ™åœ¨ç¼©æ”¾å›¾åƒæ—¶åº”用线性过滤(推è用于高分辨率图稿)。如果"
-"[code]false[/code],则使用最近邻æ’值(推èåƒç´ è‰ºæœ¯)。"
+"如果为 [code]true[/code]ï¼Œç¼©æ”¾å›¾åƒæ—¶ä¼šåº”用线性过滤(推è用于高分辨率图稿)。"
+"如果为 [code]false[/code],则使用最近邻æ’值(推è用于åƒç´ ç”»ï¼‰ã€‚"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -54696,7 +55548,6 @@ msgstr ""
"通过调用[method OS.set_native_icon]自动完æˆã€‚"
#: doc/classes/ProjectSettings.xml
-#, fuzzy
msgid ""
"The project's name. It is used both by the Project Manager and by exporters. "
"The project name can be translated by translating its value in localization "
@@ -54709,13 +55560,13 @@ msgid ""
"match the new project name. See [url=$DOCS_URL/tutorials/io/data_paths."
"html]Data paths[/url] in the documentation for more information."
msgstr ""
-"项目å称。它由项目ç»ç†å’Œå‡ºå£å•†ä½¿ç”¨ã€‚å¯ä»¥é€šè¿‡ç¿»è¯‘本地化文件中的值æ¥ç¿»è¯‘项目å"
-"ç§°ã€‚çª—å£æ ‡é¢˜å°†è®¾ç½®ä¸ºåœ¨å¯åŠ¨æ—¶è‡ªåŠ¨åŒ¹é…项目å称。\n"
-"[b]注æ„:[/b] 如果 [member application/config/use_custom_user_dir] 为 "
+"项目å称。会在项目管ç†å™¨å’Œå¯¼å‡ºå™¨ä¸­ä½¿ç”¨ã€‚å¯ä»¥é€šè¿‡ç¿»è¯‘本地化文件中的值æ¥ç¿»è¯‘项"
+"ç›®åç§°ã€‚çª—å£æ ‡é¢˜å°†è®¾ç½®ä¸ºåœ¨å¯åŠ¨æ—¶è‡ªåŠ¨åŒ¹é…项目å称。\n"
+"[b]注æ„:[/b]如果 [member application/config/use_custom_user_dir] 为 "
"[code]false[/code]ï¼Œæ›´æ”¹æ­¤å€¼ä¹Ÿä¼šæ›´æ”¹ç”¨æˆ·æ•°æ®æ–‡ä»¶å¤¹çš„路径。é‡å‘½å项目åŽï¼Œæ‚¨å°†"
"无法å†è®¿é—® [code]user://[/code] 中的现有数æ®ï¼Œé™¤éžæ‚¨é‡å‘½åæ—§æ–‡ä»¶å¤¹ä»¥åŒ¹é…æ–°é¡¹"
-"ç›®å称。有关更多信æ¯ï¼Œè¯·å‚阅文档中的 [url=https://docs.godotengine.org/zh_CN/"
-"stable/tutorials/io/data_paths.html]æ•°æ®è·¯å¾„[/url]。"
+"ç›®å称。有关更多信æ¯ï¼Œè¯·å‚阅文档中的 [url=$DOCS_URL/tutorials/io/data_paths."
+"html]《数æ®è·¯å¾„》[/url]。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -54880,9 +55731,9 @@ msgid ""
"visually. This is meant for writing applications and editors, but is pretty "
"useless (and can hurt performance) in most games."
msgstr ""
-"如果[code]true[/code],则å¯ç”¨ä½Žå¤„ç†å™¨ä½¿ç”¨æ¨¡å¼ã€‚此设置仅适用于桌é¢å¹³å°ã€‚如果视"
-"觉上没有任何å˜åŒ–,å±å¹•ä¸ä¼šè¢«é‡ç»˜ã€‚这是为了编写应用程åºå’Œç¼–辑器,但在大多数游"
-"æˆä¸­è¿™æ˜¯éžå¸¸æ— ç”¨çš„(å¹¶å¯èƒ½æŸå®³æ€§èƒ½)。"
+"如果 [code]true[/code],则å¯ç”¨ä½Žå¤„ç†å™¨ä½¿ç”¨æ¨¡å¼ã€‚此设置仅适用于桌é¢å¹³å°ã€‚如果"
+"视觉上没有任何å˜åŒ–,å±å¹•ä¸ä¼šè¢«é‡ç»˜ã€‚这是为了编写应用程åºå’Œç¼–辑器,但在大多数"
+"游æˆä¸­è¿™æ˜¯éžå¸¸æ— ç”¨çš„(并å¯èƒ½æŸå®³æ€§èƒ½ï¼‰ã€‚"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -54907,7 +55758,7 @@ msgstr ""
msgid ""
"Default [AudioBusLayout] resource file to use in the project, unless "
"overridden by the scene."
-msgstr "项目中使用的默认[AudioBusLayout]èµ„æºæ–‡ä»¶ï¼Œé™¤éžè¢«åœºæ™¯è¦†ç›–。"
+msgstr "项目中使用的默认 [AudioBusLayout] èµ„æºæ–‡ä»¶ï¼Œé™¤éžè¢«åœºæ™¯è¦†ç›–。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -55260,7 +56111,6 @@ msgid "Message to be displayed before the backtrace when the engine crashes."
msgstr "å½“å¼•æ“Žå´©æºƒæ—¶ï¼Œåœ¨å›žæº¯ä¹‹å‰æ˜¾ç¤ºçš„æ¶ˆæ¯ã€‚"
#: doc/classes/ProjectSettings.xml
-#, fuzzy
msgid ""
"Maximum number of frames per second allowed. The actual number of frames per "
"second may still be below this value if the game is lagging. See also "
@@ -55273,11 +56123,14 @@ msgid ""
"[b]Note:[/b] This property is only read when the project starts. To change "
"the rendering FPS cap at runtime, set [member Engine.target_fps] instead."
msgstr ""
-"å…许的æ¯ç§’最大帧数。如果游æˆå»¶è¿Ÿï¼Œå®žé™…çš„æ¯ç§’帧数å¯èƒ½ä½ŽäºŽè¿™ä¸ªå€¼ã€‚\n"
-"如果å¯ç”¨[member display/window/vsync/use_vsync],这将优先考虑,强制的FPS值ä¸"
-"能超过显示器的刷新率。\n"
-"å› æ­¤ï¼Œè¿™ä¸ªè®¾ç½®ä¸»è¦æ˜¯é™ä½Žä½ŽäºŽVSync的最大FPSï¼Œä¾‹å¦‚ï¼Œå¯¹é™æ€å¸§è¿›è¡Œéžå®žæ—¶æ¸²æŸ“,或"
-"者在延迟æ¡ä»¶ä¸‹æµ‹è¯•项目。"
+"å…许的æ¯ç§’最大帧数。如果游æˆå‘生延迟,实际的帧率å¯èƒ½ä½ŽäºŽè¿™ä¸ªå€¼ã€‚å¦è¯·å‚阅 "
+"[member physics/common/physics_fps]。\n"
+"如果å¯ç”¨äº† [member display/window/vsync/use_vsync],就会优先考虑它,强制的 "
+"FPS 值ä¸èƒ½è¶…过显示器的刷新率。\n"
+"å› æ­¤ï¼Œè¿™ä¸ªè®¾ç½®ä¸»è¦æ˜¯é™ä½Žä½ŽäºŽ VSync 的最大 FPSï¼Œä¾‹å¦‚ï¼Œå¯¹é™æ€å¸§è¿›è¡Œéžå®žæ—¶æ¸²æŸ“,"
+"或者在延迟æ¡ä»¶ä¸‹æµ‹è¯•项目。\n"
+"[b]注æ„:[/b]这个属性在项目å¯åŠ¨æ—¶åªè¯»ã€‚è¦åœ¨è¿è¡Œæ—¶è°ƒæ•´æ¸²æŸ“ FPS,请设置 "
+"[member Engine.target_fps]。"
#: doc/classes/ProjectSettings.xml
msgid "Maximum call stack allowed for debugging GDScript."
@@ -55436,7 +56289,6 @@ msgstr ""
"[b]注æ„:[/b] 此设置在 iOSã€Android å’Œ HTML5 上被忽略。"
#: doc/classes/ProjectSettings.xml
-#, fuzzy
msgid ""
"Sets the main window to full screen when the project starts. Note that this "
"is not [i]exclusive[/i] fullscreen. On Windows and Linux, a borderless "
@@ -55452,8 +56304,8 @@ msgstr ""
"Windows å’Œ Linux 上,无边框窗å£ç”¨äºŽæ¨¡æ‹Ÿå…¨å±ã€‚在 macOS 上,会创建一个新的桌é¢"
"用于显示正在è¿è¡Œçš„项目。\n"
"无论平å°å¦‚何,å¯ç”¨å…¨å±éƒ½ä¼šæ›´æ”¹çª—å£å¤§å°ä»¥åŒ¹é…显示器的大å°ã€‚å› æ­¤ï¼Œè¯·ç¡®ä¿æ‚¨çš„项"
-"目在å¯ç”¨å…¨å±æ¨¡å¼æ—¶æ”¯æŒ [url=https://docs.godotengine.org/zh_CN/stable/"
-"tutorials/rendering/multiple_resolutions.html]多ç§åˆ†è¾¨çއ[/url]。\n"
+"目在å¯ç”¨å…¨å±æ¨¡å¼æ—¶æ”¯æŒ [url=$DOCS_URL/tutorials/rendering/"
+"multiple_resolutions.html]multiple resolutions]多ç§åˆ†è¾¨çއ[/url]。\n"
"[b]注æ„:[/b] 在 iOSã€Android å’Œ HTML5 上忽略此设置。"
#: doc/classes/ProjectSettings.xml
@@ -56298,6 +57150,11 @@ msgid ""
"in the editor, which also includes C# [code]tool[/code] scripts running "
"within the editor as well as editor plugin code."
msgstr ""
+"针对未处ç†çš„ Mono(C#)异常的策略。默认的“Terminate Applicationâ€ä¼šåœ¨æŠ›å‡ºæœªå¤„"
+"ç†çš„异常时立å³é€€å‡ºé¡¹ç›®ã€‚“Log Errorâ€ä¼šåœ¨æŠ›å‡ºæœªå¤„ç†çš„å¼‚å¸¸æ—¶å‘æŽ§åˆ¶å°æ—¥å¿—中写入错"
+"误消æ¯ï¼Œä¸ä¼šæ‰“断项目的è¿è¡Œã€‚\n"
+"[b]注æ„:[/b]编辑器中,未处ç†å¼‚常策略始终会被设为“Log Errorâ€ï¼ŒåŒ…括在编辑器中"
+"执行的 C# [code]tool[/code] 脚本和编辑器æ’件代ç ã€‚"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -56776,6 +57633,15 @@ msgid ""
"240. Otherwise, the game will slow down when the rendering framerate goes "
"below 30 FPS."
msgstr ""
+"æ¯ç§’æ‰§è¡Œçš„å›ºå®šè¿­ä»£æ¬¡æ•°ã€‚ç”¨äºŽæŽ§åˆ¶ç‰©ç†æ¨¡æ‹Ÿå’Œ [method Node._physics_process] çš„"
+"执行频率。å¦è¯·å‚è§ [member debug/settings/fps/force_fps]。\n"
+"[b]注æ„:[/b]本属性在程åºå¼€å§‹è¿è¡Œæ—¶æ˜¯åªè¯»çš„。è¦åœ¨è¿è¡Œæ—¶ä¿®æ”¹ç‰©ç† FPS,请设置 "
+"[member Engine.iterations_per_second]。\n"
+"[b]注æ„:[/b]æ¯ä¸ªæ¸²æŸ“帧最多åªèƒ½æ¨¡æ‹Ÿ 8 次物ç†è¿­ä»£ã€‚如果为了追赶渲染,需è¦åœ¨æ¯"
+"个渲染帧中模拟多于 8 次物ç†è¿­ä»£ï¼Œæ¸¸æˆçœ‹ä¸ŠåŽ»ä¼šæ˜¯é™é€Ÿçš„(å³ä¾¿åœ¨ç‰©ç†è®¡ç®—中始终使"
+"用 [code]delta[/code])。因此,建议ä¸è¦å°† [member physics/common/"
+"physics_fps] 设为大于 240 的值。å¦åˆ™ï¼Œæ¸²æŸ“帧率低于 30 FPS 时游æˆå°±ä¼šä½Žé€Ÿè¿"
+"行。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -57154,6 +58020,13 @@ msgid ""
"shaders/shader_compilation_mode[/code] is [b]not[/b] [code]Synchronous[/"
"code]."
msgstr ""
+"如果为 [code]true[/code],æ¯å½“ç€è‰²å™¨å¼€å§‹æˆ–结æŸå¼‚步编译ã€å¼€å§‹æˆ–结æŸä»Žç¼“存的é‡"
+"建,都会在日志中对å‘生了什么添加一行记录。\n"
+"如果平å°ä¸æ”¯æŒç€è‰²å™¨çš„å¹¶è¡Œç¼–è¯‘ï¼Œåªæ”¯æŒä½¿ç”¨äºŒçº§ GL 上下文实现编译队列,则消æ¯"
+"中显示的是当å‰é˜Ÿåˆ—中等待编译的ç€è‰²å™¨çš„æ•°é‡ã€‚\n"
+"[b]注æ„:[/b]本设置仅在 [code]rendering/gles3/shaders/"
+"shader_compilation_mode[/code] [b]ä¸ä¸º[/b] [code]Synchronous[/code] 时有æ„"
+"义。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -57175,6 +58048,16 @@ msgid ""
"shaders/shader_compilation_mode[/code] is [b]not[/b] [code]Synchronous[/"
"code]."
msgstr ""
+"这是åŒä¸€æ—¶é—´æ‰€èƒ½ç¼–译(或者从缓存中é‡å»ºï¼‰çš„ç€è‰²å™¨çš„æœ€å¤§æ•°é‡ã€‚\n"
+"在è¿è¡Œæ—¶ï¼Œå¦‚果已ç»è¾¾åˆ°äº†è¿™ä¸ªæ•°é‡ï¼Œå…¶ä»–能够进行异步编译的ç€è‰²å™¨ä¼šç›´æŽ¥ä½¿ç”¨å®ƒä»¬"
+"的备用方案,等到数é‡é™ä½Žæ—¶æ‰ä¼šå¼€å§‹è®¾ç½®ã€‚\n"
+"这是用æ¥è®© CPU 负载在è¿è¡Œæ¸¸æˆå’Œç¼–译ç€è‰²å™¨ä¹‹é—´å¾—到平衡的手段。目的是在进行尽å¯"
+"èƒ½å¤šçš„å¼‚æ­¥ç¼–è¯‘çš„åŒæ—¶ï¼Œä¸å¯¹æ¸¸æˆçš„å“应性造æˆå½±å“,å¦åˆ™å°±ä¼šè¾œè´Ÿå¼‚步编译所带æ¥çš„"
+"好处。æ¢å¥è¯è¯´ï¼Œä½ å¯èƒ½ä¼šç‰ºç‰²ä¸€ç‚¹ç‚¹çš„ FPSï¼Œæ€»æ¯”åŒæ­¥ç¼–译让整个游æˆåœæ»žè¦å¥½ã€‚\n"
+"默认值比较ä¿å®ˆï¼Œæ‰€ä»¥å»ºè®®ä½ æ ¹æ®è‡ªå·±çš„目标硬件作出调整。\n"
+"[b]注æ„:[/b]本设置仅在 [code]rendering/gles3/shaders/"
+"shader_compilation_mode[/code] [b]ä¸ä¸º[/b] [code]Synchronous[/code] 时有æ„"
+"义。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -57186,6 +58069,12 @@ msgid ""
"shaders/shader_compilation_mode[/code] is [b]not[/b] [code]Synchronous[/"
"code]."
msgstr ""
+"默认是针对 [code]rendering/gles3/shaders/max_concurrent_compiles[/code] 的覆"
+"盖,å–值éžå¸¸ä¿å®ˆã€‚\n"
+"æ ¹æ®ä½ æ‰€è®¾å®šä¸ºç›®æ ‡çš„特定设备,你å¯èƒ½ä¼šæƒ³è¦æé«˜è¿™ä¸ªå€¼ã€‚\n"
+"[b]注æ„:[/b]本设置仅在 [code]rendering/gles3/shaders/"
+"shader_compilation_mode[/code] [b]ä¸ä¸º[/b] [code]Synchronous[/code] 时有æ„"
+"义。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -57196,6 +58085,11 @@ msgid ""
"shaders/shader_compilation_mode[/code] is set to [code]Asynchronous + Cache[/"
"code]."
msgstr ""
+"超级ç€è‰²å™¨ç¼“存所能增长到的最大大å°ï¼Œå•ä½ä¸ºå…†å­—节。在å¯åŠ¨æ—¶ï¼Œä¼šåˆ é™¤æœ€ä¹…æœªç”¨çš„"
+"æ¡ç›®ï¼Œç›´åˆ°æ€»å¤§å°åˆ°è¾¾èŒƒå›´å†…。\n"
+"[b]注æ„:[/b]本设置仅在 [code]rendering/gles3/shaders/"
+"shader_compilation_mode[/code] 为 [code]Asynchronous + Cache[/code] 时有æ„"
+"义。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -57206,6 +58100,11 @@ msgid ""
"shaders/shader_compilation_mode[/code] is set to [code]Asynchronous + Cache[/"
"code]."
msgstr ""
+"[code]rendering/gles3/shaders/ubershader_cache_size_mb[/code] 的覆盖项,为针"
+"对移动平å°é…置更å°çš„æœ€å¤§å¤§å°ï¼Œç§»åЍ平å°çš„存储空间更有é™ã€‚\n"
+"[b]注æ„:[/b]本设置仅在 [code]rendering/gles3/shaders/"
+"shader_compilation_mode[/code] 为 [code]Asynchronous + Cache[/code] 时有æ„"
+"义。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -57231,6 +58130,20 @@ msgid ""
"[b]Warning:[/b] Async. compilation is currently only supported for spatial "
"and particle materials/shaders."
msgstr ""
+"设为 [code]Asynchronous[/code] 时,如果目标设备具备æ¡ä»¶ï¼Œå°±ä¼šå¯ç”¨ç€è‰²å™¨çš„异步"
+"编译(此处点题 [code]Asynchronous[/code])。\n"
+"è¿™æ„味ç€ï¼Œåœ¨å…¨æ–°çš„æ¸²æŸ“环境中首次使用æŸä¸ªç€è‰²å™¨æ—¶ï¼Œç¼–译ç€è‰²å™¨ä¸ä¼šå¯¼è‡´æ¸¸æˆåœ"
+"滞。å–而代之的是使用åŽå¤‡æ–¹æ¡ˆï¼Œè€Œå®žé™…çš„ç€è‰²å™¨ä¼šåœ¨åŽå°è¿›è¡Œç¼–译。一旦实际的ç€è‰²"
+"器完æˆç¼–译,就会在下一次需è¦ç”¨å®ƒè¿›è¡Œå¸§ç»˜å›¾æ—¶ä½¿ç”¨ã€‚\n"
+"æ ¹æ®ç»™å®šæè´¨/ç€è‰²å™¨æ‰€é…置的异步模å¼çš„ä¸åŒï¼ŒåŽå¤‡æ–¹æ¡ˆå¯èƒ½æ˜¯ä½¿ç”¨â€œè¶…级ç€è‰²å™¨â€ï¼ˆé»˜"
+"认)也å¯èƒ½æ˜¯ç›´æŽ¥è·³è¿‡å¯¹ä½¿ç”¨å®ƒçš„对象的渲染。\n"
+"超级ç€è‰²å™¨æ˜¯ä¸€ä¸ªéžå¸¸å¤æ‚çš„ç€è‰²å™¨ï¼Œè™½ç„¶æ…¢ä½†æ˜¯å¯ä»¥ç”¨äºŽä»»ä½•渲染环境。引擎会在内"
+"部生æˆè¿™ä¸ªç€è‰²å™¨ï¼Œè¿™æ ·åœ¨ä¸€å¼€å§‹å°±èƒ½ä½¿ç”¨ï¼Œè€Œä¼ ç»Ÿçš„æ ¹æ®ä¸åŒæ¡ä»¶ä¼˜åŒ–的版本则需è¦"
+"进行编译。\n"
+"为了节çœåŠ è½½æ—¶é—´ï¼Œä½ å¯ä»¥ä½¿ç”¨ [code]Asynchronous + Cache[/code],会让超级ç€è‰²"
+"器也被缓存到存储之中,这样下一次使用时准备起æ¥å°±ä¼šæ›´å¿«ï¼ˆå‰ææ˜¯å¹³å°æ”¯æŒè¿™ä¹ˆ"
+"åšï¼‰ã€‚\n"
+"[b]警告:[/b] 异步编译目å‰åªæ”¯æŒç©ºé—´å’Œç²’å­æè´¨/ç€è‰²å™¨ã€‚"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -57359,13 +58272,14 @@ msgstr ""
"相关的æ¯ä¸€å¸§ï¼Œä»¥æä¾›æœ€ä½³çš„æ•´ä½“性能。"
#: doc/classes/ProjectSettings.xml
+#, fuzzy
msgid ""
"The default convention is for portal normals to point outward (face outward) "
"from the source room.\n"
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
"默认的惯例是,portal的法线从æºç©ºé—´å‘外。\n"
"å¦‚æžœä½ åœ¨å»ºé€ å…³å¡æ—¶ä¸å°å¿ƒå°†portalæœå‘了错误的方å‘,这个设置å¯ä»¥è§£å†³è¿™ä¸ªé—®"
@@ -57425,9 +58339,11 @@ msgstr ""
"时,æ‰åº”该使用该选项。"
#: doc/classes/ProjectSettings.xml
+#, fuzzy
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
"如果 [code]true[/code],则分é…具有高动æ€èŒƒå›´ï¼ˆHDR)的主帧缓冲区。高动æ€èŒƒå›´å…"
@@ -57444,6 +58360,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -57964,11 +58893,11 @@ msgid ""
"located inside the project folder then restart the editor (see [member "
"application/config/use_hidden_project_data_directory])."
msgstr ""
-"如果 [code]true[/code],纹ç†å¯¼å…¥å™¨å°†ä½¿ç”¨Ericsson纹ç†åŽ‹ç¼©ç®—æ³•å¯¼å…¥ VRAM 压缩的"
-"纹ç†ã€‚æ­¤ç®—æ³•ä¸æ”¯æŒçº¹ç†ä¸­çš„ alpha 通é“。\n"
-"[b]注æ„:[/b]更改此设置ä¸ä¼š[i]ä¸[/i]å½±å“之å‰å·²ç»å¯¼å…¥çš„纹ç†ã€‚è¦å°†æ­¤è®¾ç½®åº”用于"
-"已导入的纹ç†ï¼Œè¯·é€€å‡ºç¼–辑器,删除ä½äºŽé¡¹ç›®ä¸­çš„ [code].import/[/code] 文件夹,然"
-"åŽé‡æ–°å¯åŠ¨ç¼–è¾‘å™¨ï¼Œå‚阅 [member application/config/"
+"如果 [code]true[/code],纹ç†å¯¼å…¥å™¨å°†ä½¿ç”¨çˆ±ç«‹ä¿¡çº¹ç†åŽ‹ç¼©ç®—æ³•å¯¼å…¥ VRAM 压缩的纹"
+"ç†ã€‚æ­¤ç®—æ³•ä¸æ”¯æŒçº¹ç†ä¸­çš„ Alpha 通é“。\n"
+"[b]注æ„:[/b]更改此设置[i]ä¸ä¼š[/i]å½±å“之å‰å·²ç»å¯¼å…¥çš„纹ç†ã€‚è¦å°†æ­¤è®¾ç½®åº”用于已"
+"导入的纹ç†ï¼Œè¯·é€€å‡ºç¼–辑器,删除ä½äºŽé¡¹ç›®ä¸­çš„ [code].import/[/code] 文件夹,然åŽ"
+"釿–°å¯åŠ¨ç¼–è¾‘å™¨ï¼Œå‚阅 [member application/config/"
"use_hidden_project_data_directory]。"
#: doc/classes/ProjectSettings.xml
@@ -57982,9 +58911,9 @@ msgid ""
"located inside the project folder then restart the editor (see [member "
"application/config/use_hidden_project_data_directory])."
msgstr ""
-"如果 [code]true[/code],纹ç†å¯¼å…¥å™¨å°†ä½¿ç”¨ Ericsson Texture Compression 2 算法"
-"导入 VRAM 压缩的纹ç†ã€‚仅在使用 GLES3 æ¸²æŸ“å™¨æ—¶ï¼Œæ‰æ”¯æŒæ­¤çº¹ç†åŽ‹ç¼©ç®—æ³•ã€‚\n"
-"[b]注æ„:[/b]更改此设置[i]ä¸[/i]会影å“之å‰å·²ç»å¯¼å…¥çš„纹ç†ã€‚è¦å°†æ­¤è®¾ç½®åº”用于已"
+"如果 [code]true[/code],纹ç†å¯¼å…¥å™¨å°†ä½¿ç”¨çˆ±ç«‹ä¿¡çº¹ç†åŽ‹ç¼© 2 算法导入 VRAM 压缩的"
+"纹ç†ã€‚仅在使用 GLES3 æ¸²æŸ“å™¨æ—¶ï¼Œæ‰æ”¯æŒæ­¤çº¹ç†åŽ‹ç¼©ç®—æ³•ã€‚\n"
+"[b]注æ„:[/b]更改此设置[i]ä¸ä¼š[/i]å½±å“之å‰å·²ç»å¯¼å…¥çš„纹ç†ã€‚è¦å°†æ­¤è®¾ç½®åº”用于已"
"导入的纹ç†ï¼Œè¯·é€€å‡ºç¼–辑器,删除ä½äºŽé¡¹ç›®ä¸­çš„ [code].import/[/code] 文件夹,然åŽ"
"釿–°å¯åŠ¨ç¼–è¾‘å™¨ï¼Œå‚阅 [member application/config/"
"use_hidden_project_data_directory]。"
@@ -58086,12 +59015,10 @@ msgstr ""
"加有效,并且对浮点错误有很强的抵抗力。"
#: doc/classes/Quat.xml
-#, fuzzy
msgid ""
"$DOCS_URL/tutorials/3d/using_transforms.html#interpolating-with-quaternions"
msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/using_transforms."
-"html#interpolating-with-quaternions"
+"$DOCS_URL/tutorials/3d/using_transforms.html#interpolating-with-quaternions"
#: doc/classes/Quat.xml
msgid "Constructs a quaternion from the given [Basis]."
@@ -58302,11 +59229,8 @@ msgstr ""
"䏿˜¯å®žé™…的默认ç§å­ã€‚"
#: doc/classes/RandomNumberGenerator.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/math/random_number_generation.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/math/"
-"random_number_generation.html"
+msgstr "$DOCS_URL/tutorials/math/random_number_generation.html"
#: doc/classes/RandomNumberGenerator.xml
msgid ""
@@ -58570,17 +59494,16 @@ msgstr "添加碰撞例外,这样射线就ä¸ä¼šæŠ¥å‘Šä¸ŽæŒ‡å®š [RID] 的碰æ’
msgid "Removes all collision exceptions for this ray."
msgstr "删除此射线的所有碰撞例外。"
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
-"更新射线的碰撞信æ¯ã€‚\n"
-"ä½¿ç”¨æ­¤æ–¹æ³•ç«‹å³æ›´æ–°ç¢°æ’žä¿¡æ¯ï¼Œè€Œä¸æ˜¯ç­‰å¾…下一个 [code]_physics_process[/code] è°ƒ"
-"用,例如,如果光线或其父级已更改状æ€ã€‚\n"
+"更新射线的碰撞信æ¯ã€‚ä½¿ç”¨æ­¤æ–¹æ³•ç«‹å³æ›´æ–°ç¢°æ’žä¿¡æ¯ï¼Œè€Œä¸æ˜¯ç­‰å¾…下一次 "
+"[code]_physics_process[/code] 调用,例如,如果光线或其父级已更改状æ€ã€‚\n"
"[b]注æ„:[/b] [code]enabled[/code]ä¸éœ€è¦æ­¤åŠŸèƒ½ã€‚"
#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
@@ -58662,7 +59585,6 @@ msgid "If [code]true[/code], collision with [PhysicsBody]s will be reported."
msgstr "如果 [code]true[/code],将å馈与 [PhysicsBody] 的碰撞。"
#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
-#, fuzzy
msgid ""
"The ray's collision mask. Only objects in at least one collision layer "
"enabled in the mask will be detected. See [url=$DOCS_URL/tutorials/physics/"
@@ -58670,9 +59592,8 @@ msgid ""
"masks[/url] in the documentation for more information."
msgstr ""
"光线的碰撞é®ç½©ã€‚åªæœ‰åœ¨é®ç½©ä¸­å¯ç”¨è‡³å°‘一个碰撞层中物体,æ‰ä¼šè¢«æ£€æµ‹åˆ°ã€‚有关更多"
-"ä¿¡æ¯ï¼Œè¯·å‚阅文档中的 [url=https://docs.godotengine.org/zh_CN/stable/"
-"tutorials/physics/physics_introduction.html#collision-layers-and-masks]碰撞层"
-"和掩ç [/url]。"
+"ä¿¡æ¯ï¼Œè¯·å‚阅文档中的 [url=$DOCS_URL/tutorials/physics/physics_introduction."
+"html#collision-layers-and-masks]《碰撞层与掩ç ã€‹[/url]。"
#: doc/classes/RayCast.xml
msgid ""
@@ -58741,18 +59662,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-"更新射线的碰撞信æ¯ã€‚ä½¿ç”¨æ­¤æ–¹æ³•ç«‹å³æ›´æ–°ç¢°æ’žä¿¡æ¯ï¼Œè€Œä¸æ˜¯ç­‰å¾…下一次 "
-"[code]_physics_process[/code] 调用,例如,如果光线或其父级已更改状æ€ã€‚\n"
-"[b]注æ„:[/b] [code]enabled[/code]ä¸éœ€è¦æ­¤åŠŸèƒ½ã€‚"
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr "设置或清除碰撞掩ç ä¸Šçš„å•个ä½ã€‚这使得选择扫æåŒºåŸŸæ›´å®¹æ˜“。"
@@ -58812,7 +59721,6 @@ msgid "2D axis-aligned bounding box."
msgstr "2D 轴对é½è¾¹ç•Œæ¡†ã€‚"
#: doc/classes/Rect2.xml
-#, fuzzy
msgid ""
"[Rect2] consists of a position, a size, and several utility functions. It is "
"typically used for fast overlap tests.\n"
@@ -58823,7 +59731,9 @@ msgid ""
msgstr ""
"[Rect2] ç”±ä¸€ä¸ªåæ ‡ã€ä¸€ä¸ªå¤§å°å’Œå‡ ä¸ªå®žç”¨å‡½æ•°ç»„æˆã€‚它通常用于快速é‡å æµ‹è¯•。\n"
"å®ƒä½¿ç”¨æµ®ç‚¹åæ ‡ã€‚\n"
-"[Rect2] 在 3D 中对应 [AABB]。"
+"[Rect2] 在 3D 中对应 [AABB]。\n"
+"䏿”¯æŒè´Ÿæ•°çš„ [member size],大多数方法都无法正常工作。请使用 [method abs] 获"
+"å–æ­£æ•°å¤§å°çš„ Rect2。"
#: doc/classes/Rect2.xml
msgid "Constructs a [Rect2] by position and size."
@@ -58876,11 +59786,10 @@ msgid "Returns the area of the [Rect2]."
msgstr "返回 [Rect2] é¢ç§¯ã€‚"
#: doc/classes/Rect2.xml
-#, fuzzy
msgid ""
"Returns the center of the [Rect2], which is equal to [member position] + "
"([member size] / 2)."
-msgstr "返回这个å‘é‡çš„长宽比,å³[member x] 与[member y]的比例。"
+msgstr "返回该 [Rect2] 的中心,等于 [member position] + ([member size] / 2)。"
#: doc/classes/Rect2.xml
msgid ""
@@ -58984,8 +59893,8 @@ msgstr ""
"在那时自动释放。因此,ä¸éœ€è¦ä½¿ç”¨ [method Object.free] 手动释放引用。\n"
"在ç»å¤§å¤šæ•°ç”¨ä¾‹ä¸­ï¼Œæ‚¨åªéœ€è¦å®žä¾‹åŒ–和使用 [Reference] 派生类型。此类中æä¾›çš„æ–¹æ³•"
"仅适用于高级用户,如果误用å¯èƒ½ä¼šå¯¼è‡´é—®é¢˜ã€‚\n"
-"[b]注æ„:[/b]在C#中,引用ä¸å†ä½¿ç”¨åŽä¸ä¼šç«‹å³é‡Šæ”¾ã€‚相å,垃圾收集将定期è¿è¡Œå¹¶é‡Š"
-"放ä¸å†ä½¿ç”¨çš„引用。这æ„å‘³ç€æœªä½¿ç”¨çš„引用会在被删除之å‰åœç•™ä¸€æ®µæ—¶é—´ã€‚"
+"[b]注æ„:[/b]在 C# 中,引用ä¸å†ä½¿ç”¨åŽä¸ä¼šç«‹å³é‡Šæ”¾ã€‚相å,垃圾收集将定期è¿è¡Œå¹¶"
+"释放ä¸å†ä½¿ç”¨çš„引用。这æ„å‘³ç€æœªä½¿ç”¨çš„引用会在被删除之å‰åœç•™ä¸€æ®µæ—¶é—´ã€‚"
#: doc/classes/Reference.xml
msgid ""
@@ -59049,14 +59958,12 @@ msgstr ""
"[ReferenceRect]将在游æˆä¸­å¯è§ã€‚"
#: doc/classes/ReflectionProbe.xml
-#, fuzzy
msgid ""
"Captures its surroundings to create fast, accurate reflections from a given "
"point."
-msgstr "æ•æ‰å…¶å‘¨å›´çš„环境,以创造å射。"
+msgstr "æ•æ‰æŸä¸ªä½ç½®å‘¨å›´çš„环境,用于快速创建准确的å射。"
#: doc/classes/ReflectionProbe.xml
-#, fuzzy
msgid ""
"Capture its surroundings as a dual paraboloid image, and stores versions of "
"it with increasing levels of blur to simulate different material "
@@ -59085,24 +59992,26 @@ msgid ""
msgstr ""
"å°†å…¶å‘¨å›´çŽ¯å¢ƒæ•æ‰ä¸ºåŒæŠ›ç‰©é¢å›¾åƒï¼Œå¹¶ä»¥è¶Šæ¥è¶Šé«˜çš„æ¨¡ç³Šåº¦å­˜å‚¨å…¶ç‰ˆæœ¬ï¼Œä»¥æ¨¡æ‹Ÿä¸åŒçš„"
"æè´¨ç²—糙度。\n"
-"[ReflectionProbe]用于以性能为代价创建高质é‡çš„å射。它å¯ä»¥ä¸Ž[GIProbe]å’Œå±å¹•空"
-"é—´å射相结åˆï¼Œå®žçŽ°é«˜è´¨é‡çš„å射。[ReflectionProbe]渲染其[member cull_mask]内的"
-"所有对象,所以更新它们å¯èƒ½ç›¸å½“消耗资æºã€‚最好是用é‡è¦çš„陿€å¯¹è±¡æ›´æ–°ä¸€æ¬¡ï¼Œç„¶åŽ"
-"å°±ä¸åŽ»ç®¡äº†ã€‚\n"
-"[b]注æ„:[/b] 默认情况下,Godotåªä¼šæ¸²æŸ“16个åå°„æŽ¢é’ˆã€‚å¦‚æžœéœ€è¦æ›´å¤šï¼Œå¯ä»¥å¢žåР图"
-"集的细分数é‡ã€‚这个设置å¯ä»¥åœ¨[member ProjectSettings.rendering/quality/"
+"[ReflectionProbe] å¯ä»¥ç”¨è¾ƒä½Žçš„æ€§èƒ½æ¶ˆè€—创建高质é‡çš„å射([member update_mode] "
+"为 [constant UPDATE_ONCE] 时)。多个 [ReflectionProbe] å¯ä»¥ä¸Žåœºæ™¯å¹³æ»‘地混åˆåˆ°"
+"一起。[ReflectionProbe] 还å¯ä»¥ä¸Ž [GIProbe]ã€å±å¹•空间的å射([member "
+"Environment.ss_reflections_enabled])相结åˆï¼Œåœ¨ç‰¹å®šåŒºåŸŸèŽ·å–æ›´ç²¾ç¡®çš„å射。"
+"[ReflectionProbe] 会渲染其 [member cull_mask] 内的所有对象,所以更新å¯èƒ½ç›¸å½“"
+"消耗资æºã€‚最好是用é‡è¦çš„陿€å¯¹è±¡æ›´æ–°ä¸€æ¬¡ï¼Œç„¶åŽå°±ä¸åŽ»ç®¡äº†ã€‚\n"
+"[b]注æ„:[/b]与 [GIProbe] ä¸åŒï¼Œ[ReflectionProbe] åªä¼šä»Ž [WorldEnvironment] "
+"节点获å–环境。如果你是在 [Camera] 节点上指定的 [Environment],就会被 "
+"[ReflectionProbe] 忽略,导致 [ReflectionProbe] 中获å–到错误的光照。\n"
+"[b]注æ„:[/b]默认情况下,Godot åªä¼šæ¸²æŸ“ 16 个åå°„æŽ¢é’ˆã€‚å¦‚æžœéœ€è¦æ›´å¤šï¼Œå¯ä»¥å¢žåŠ "
+"图集的细分数é‡ã€‚这个设置å¯ä»¥åœ¨[member ProjectSettings.rendering/quality/"
"reflections/atlas_subdiv]找到。\n"
-"[b]注æ„:[/b] 对于一个网格,GLES2åŽç«¯åªèƒ½åŒæ—¶æ˜¾ç¤ºä¸¤ä¸ªå射探针。如果å¯èƒ½çš„è¯ï¼Œ"
+"[b]注æ„:[/b]对于一个网格,GLES2 åŽç«¯åªèƒ½åŒæ—¶æ˜¾ç¤ºä¸¤ä¸ªå射探针。如果å¯èƒ½çš„è¯ï¼Œ"
"把跨越多个å射探针的大网格分割æˆå°ç½‘格。"
#: doc/classes/ReflectionProbe.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/reflection_probes.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/reflection_probes.html"
+msgstr "$DOCS_URL/tutorials/3d/reflection_probes.html"
#: doc/classes/ReflectionProbe.xml
-#, fuzzy
msgid ""
"If [code]true[/code], enables box projection. This makes reflections look "
"more correct in rectangle-shaped rooms by offsetting the reflection center "
@@ -59110,20 +60019,21 @@ msgid ""
"[b]Note:[/b] To better fit rectangle-shaped rooms that are not aligned to "
"the grid, you can rotate the [ReflectionProbe] node."
msgstr ""
-"如果 [code]true[/code],则å¯ç”¨ç®±ä½“投影。通过根æ®ç›¸æœºçš„ä½ç½®åç§»å射中心,这使"
-"得在矩形房间中的åå°„çœ‹èµ·æ¥æ›´æ­£ç¡®ã€‚"
+"为 [code]true[/code] æ—¶å°†å¯ç”¨ç®±ä½“投影。通过根æ®ç›¸æœºçš„ä½ç½®åç§»å射中心,这使得"
+"在矩形房间中的åå°„çœ‹èµ·æ¥æ›´æ­£ç¡®ã€‚\n"
+"[b]注æ„:[/b]为了更好地适应未与网格对é½çš„区域,你å¯ä»¥æ—‹è½¬ [ReflectionProbe] "
+"节点。"
#: doc/classes/ReflectionProbe.xml
-#, fuzzy
msgid ""
"Sets the cull mask which determines what objects are drawn by this probe. "
"Every [VisualInstance] with a layer included in this cull mask will be "
"rendered by the probe. To improve performance, it is best to only include "
"large objects which are likely to take up a lot of space in the reflection."
msgstr ""
-"设置剔除é®ç½©ï¼Œç¡®å®šæ­¤æŽ¢é’ˆç»˜åˆ¶çš„对象。这个剔除蒙版中包å«ä¸€ä¸ªå±‚çš„æ¯ä¸ª "
-"[VisualInstance] 都将由探测器渲染。最好åªåŒ…å«å¯èƒ½åœ¨å射中å ç”¨å¤§é‡ç©ºé—´çš„大物"
-"ä½“ï¼Œä»¥èŠ‚çœæ¸²æŸ“æˆæœ¬ã€‚"
+"设置剔除é®ç½©ï¼Œç¡®å®šæ­¤æŽ¢é’ˆç»˜åˆ¶çš„对象。åªè¦ [VisualInstance] 的层包å«åœ¨è¿™ä¸ªå‰”除"
+"é®ç½©ä¸­ï¼Œå°±ä¼šè¢«è¯¥æŽ¢é’ˆæ¸²æŸ“。最好åªåŒ…å«å¯èƒ½åœ¨å射中å ç”¨å¤§é‡ç©ºé—´çš„大物体,以节çœ"
+"æ¸²æŸ“æˆæœ¬ã€‚"
#: doc/classes/ReflectionProbe.xml
msgid ""
@@ -59135,7 +60045,6 @@ msgstr ""
"ç¦ç”¨å®ƒ,å¯ä»¥ä½¿ç”¨ [constant UPDATE_ALWAYS] [member update_mode]。"
#: doc/classes/ReflectionProbe.xml
-#, fuzzy
msgid ""
"The size of the reflection probe. The larger the extents the more space "
"covered by the probe which will lower the perceived resolution. It is best "
@@ -59144,7 +60053,9 @@ msgid ""
"rotate the [ReflectionProbe] node."
msgstr ""
"å射探针的大å°ã€‚范围越大,探针覆盖的空间就越大,这将é™ä½Žæ„ŸçŸ¥çš„分辨率。最好的"
-"åŠžæ³•æ˜¯æŠŠèŒƒå›´ä¿æŒåœ¨ä½ éœ€è¦çš„程度上。"
+"åŠžæ³•æ˜¯æŠŠèŒƒå›´ä¿æŒåœ¨ä½ éœ€è¦çš„程度上。\n"
+"[b]注æ„:[/b]为了更好地适应未与网格对é½çš„区域,你å¯ä»¥æ—‹è½¬ [ReflectionProbe] "
+"节点。"
#: doc/classes/ReflectionProbe.xml
msgid ""
@@ -59184,14 +60095,13 @@ msgstr ""
"[code]internal_ambient_*[/code]属性控制。"
#: doc/classes/ReflectionProbe.xml
-#, fuzzy
msgid ""
"The maximum distance away from the [ReflectionProbe] an object can be before "
"it is culled. Decrease this to improve performance, especially when using "
"the [constant UPDATE_ALWAYS] [member update_mode]."
msgstr ""
-"设置物体在被删除å‰ä¸ŽæŽ¢é’ˆçš„æœ€å¤§è·ç¦»ã€‚ç­‰åŒäºŽ[member ReflectionProbe."
-"max_distance]。"
+"设置对象在被剔除å‰ä¸Žè¯¥ [ReflectionProbe] 的最大è·ç¦»ã€‚调低å¯ä»¥æå‡æ€§èƒ½ï¼Œå°¤å…¶æ˜¯"
+"使用 [constant UPDATE_ALWAYS] 作为 [member update_mode] 时。"
#: doc/classes/ReflectionProbe.xml
msgid ""
@@ -59200,15 +60110,16 @@ msgid ""
"reflection fits a rectangle-shaped room, while reducing the amount of "
"objects that \"get in the way\" of the reflection."
msgstr ""
+"设置该 [ReflectionProbe] 在 [member box_projection] 模å¼ä¸‹æ‰€ä½¿ç”¨çš„原点åç§»"
+"é‡ã€‚è®¾ä¸ºéž 0 值å¯ä»¥ä¿è¯åå°„é€‚ç”¨äºŽçŸ©å½¢æˆ¿é—´ï¼ŒåŒæ—¶å‡å°‘“挡ä½â€å射的对象数é‡ã€‚"
#: doc/classes/ReflectionProbe.xml
-#, fuzzy
msgid ""
"Sets how frequently the [ReflectionProbe] is updated. Can be [constant "
"UPDATE_ONCE] or [constant UPDATE_ALWAYS]."
msgstr ""
-"设置探针更新的频率。å¯ä»¥æ˜¯ [constant UPDATE_ONCE] 或 [constant "
-"UPDATE_ALWAYS]。"
+"设置 [ReflectionProbe] 的更新频率。å¯ä»¥æ˜¯ [constant UPDATE_ONCE] 或 "
+"[constant UPDATE_ALWAYS]。"
#: doc/classes/ReflectionProbe.xml
msgid ""
@@ -59220,6 +60131,11 @@ msgid ""
"geometry changes. You can force a [ReflectionProbe] update by moving the "
"[ReflectionProbe] slightly in any direction."
msgstr ""
+"在下一帧更新一次探针(建议大多数对象使用)。对应的è¾ç…§åº¦è´´å›¾ä¼šåœ¨åŽç»­å…­å¸§ä¸­é™†"
+"续生æˆã€‚更新所花费的时间比 [constant UPDATE_ALWAYS] 多,但消耗的性能比它少ã€"
+"产生的åå°„è´¨é‡ä¹Ÿæ›´é«˜ã€‚ReflectionProbe çš„å˜æ¢å‘生å˜åŒ–时也会进行更新,但ä¸ä¼šåœ¨"
+"周围几何体å˜åŒ–时更新。你å¯ä»¥é€šè¿‡å°†è¯¥ [ReflectionProbe] åœ¨ä»»æ„æ–¹å‘上进行å°å¹…度"
+"移动æ¥å¼ºåˆ¶æ›´æ–° [ReflectionProbe]。"
#: doc/classes/ReflectionProbe.xml
msgid ""
@@ -59229,6 +60145,9 @@ msgid ""
"[constant UPDATE_ALWAYS] at most per scene. For all other use cases, use "
"[constant UPDATE_ONCE]."
msgstr ""
+"æ¯ä¸€å¸§éƒ½æ›´æ–°è¯¥æŽ¢é’ˆã€‚å¯ä»¥ä¸ºå¿«é€Ÿç§»åŠ¨çš„å¯¹è±¡ï¼ˆå¦‚æ±½è½¦ï¼‰æä¾›æ›´å¥½çš„结果。然而,带æ¥"
+"的性能消耗也是显著的。因此,建议åŒä¸€ä¸ªåœºæ™¯ä¸­æœ€å¤šåªä½¿ç”¨ä¸€ä¸ª [constant "
+"UPDATE_ALWAYS] 的 ReflectionProbe。其他用途请使用 [constant UPDATE_ONCE]。"
#: modules/regex/doc_classes/RegEx.xml
msgid "Class for searching text for patterns using regular expressions."
@@ -59619,10 +60538,8 @@ msgstr ""
"行,并释放ä¸å†ä½¿ç”¨çš„资æºã€‚è¿™æ„å‘³ç€æœªä½¿ç”¨çš„资æºåœ¨è¢«åˆ é™¤ä¹‹å‰ä¼šåœç•™ä¸€æ®µæ—¶é—´ã€‚"
#: doc/classes/Resource.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/scripting/resources.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/scripting/resources.html"
+msgstr "$DOCS_URL/tutorials/scripting/resources.html"
#: doc/classes/Resource.xml
msgid ""
@@ -60385,17 +61302,6 @@ msgid ""
msgstr "返回文本标签的总字符数。ä¸åŒ…括 BBCode。"
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-"返回垂直滚动æ¡ã€‚\n"
-"[b]警告:[/b] 这是一个必需的内部节点,删除和释放它å¯èƒ½ä¼šå¯¼è‡´å´©æºƒã€‚如果您希望"
-"éšè—它或其任何å­é¡¹ï¼Œè¯·ä½¿ç”¨å®ƒä»¬çš„ [member CanvasItem.visible] 属性。"
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr "返回å¯è§è¡Œæ•°ã€‚"
@@ -60950,8 +61856,7 @@ msgstr ""
msgid ""
"Returns the inverse inertia tensor basis. This is used to calculate the "
"angular acceleration resulting from a torque applied to the RigidBody."
-msgstr ""
-"返回逆惯性张力基矩阵(Basis)。这用于计算由施加到刚体的扭矩产生的角加速度。"
+msgstr "返回逆惯性张力基。这用于计算由施加到 RigidBody 的扭矩产生的角加速度。"
#: doc/classes/RigidBody.xml
msgid "Locks the specified linear or rotational axis."
@@ -60999,9 +61904,10 @@ msgid ""
"Deprecated, use [member PhysicsMaterial.bounce] instead via [member "
"physics_material_override]."
msgstr ""
-"实体的弹性。值范围从[code]0[/code](无弹跳)到[code]1[/code](完全弹跳)。\n"
-"已被废弃,请通过[member physics_material_override]使用[member "
-"PhysicsMaterial.bounce]代替。"
+"实体的弹性。值范围从 [code]0[/code](无弹跳)到 [code]1[/code](完全弹"
+"跳)。\n"
+"已废弃,请通过 [member physics_material_override] 使用 [member "
+"PhysicsMaterial.bounce] 代替。"
#: doc/classes/RigidBody.xml
msgid ""
@@ -61070,8 +61976,8 @@ msgid ""
"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
"physics_material_override]."
msgstr ""
-"实体的摩擦力,从0(无摩擦)到1(最大摩擦)。\n"
-"å·²ç»åºŸå¼ƒï¼Œè¯·é€šè¿‡ [member physics_material_override] 使用 [member "
+"实体的摩擦力,从 0(无摩擦)到 1(最大摩擦)。\n"
+"已废弃,请通过 [member physics_material_override] 使用 [member "
"PhysicsMaterial.friction] 代替。"
#: doc/classes/RigidBody.xml
@@ -61765,8 +62671,9 @@ msgid "Groups [Room]s together to allow common functionality."
msgstr "å°† [Room] 组åˆåœ¨ä¸€èµ·ä»¥å®žçŽ°é€šç”¨åŠŸèƒ½ã€‚"
#: doc/classes/RoomGroup.xml
+#, fuzzy
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -61807,7 +62714,7 @@ msgstr ""
#: doc/classes/RoomManager.xml
msgid "The RoomManager node is used to control the portal culling system."
-msgstr "RoomManager 节点用于控制portal剔除系统。"
+msgstr "RoomManager 节点å¯ç”¨äºŽæŽ§åˆ¶å…¥å£å‰”除系统。"
#: doc/classes/RoomManager.xml
msgid ""
@@ -61818,10 +62725,10 @@ msgid ""
"is controlled by the [RoomManager] node, and the [RoomManager] also contains "
"settings that are common throughout the portal system."
msgstr ""
-"为了使用portal鮿Œ¡å‰”除系统,您必须使用 [Room] å’Œ [Portal] æ¥æž„建您的关å¡ã€‚在"
-"这些å¯ä»¥åœ¨è¿è¡Œæ—¶ä½¿ç”¨ä¹‹å‰ï¼Œå®ƒä»¬å¿…é¡»ç»è¿‡ä¸€ä¸ªç®€çŸ­çš„转æ¢è¿‡ç¨‹æ¥æž„建 [code]room "
-"graph[/code],这是portal剔除所需的è¿è¡Œæ—¶æ•°æ®ã€‚ [code]portal graph[/code]ç”±"
-"[RoomManager]节点控制,[RoomManager]è¿˜åŒ…å«æ•´ä¸ªportal系统通用的设置。"
+"为了使用入å£é®æŒ¡å‰”除系统,您必须使用 [Room] å’Œ [Portal] æ¥æž„建您的关å¡ã€‚在这"
+"些å¯ä»¥åœ¨è¿è¡Œæ—¶ä½¿ç”¨ä¹‹å‰ï¼Œå®ƒä»¬å¿…é¡»ç»è¿‡ä¸€ä¸ªç®€çŸ­çš„转æ¢è¿‡ç¨‹æ¥æž„建 [code]room "
+"graph[/code],这是入å£å‰”除所需的è¿è¡Œæ—¶æ•°æ®ã€‚ [code]portal graph[/code] ç”± "
+"[RoomManager] 节点控制,[RoomManager] è¿˜åŒ…å«æ•´ä¸ªå…¥å£ç³»ç»Ÿé€šç”¨çš„设置。"
#: doc/classes/RoomManager.xml
msgid ""
@@ -61829,8 +62736,8 @@ msgid ""
"before unloading a level, when transitioning from level to level, or "
"returning to a main menu."
msgstr ""
-"该方法会从[b]portal graph[/b]æ¸…é™¤æ‰€æœ‰è½¬æ¢æ•°æ®ã€‚在å¸è½½å…³å¡ã€ä»Žå…³å¡è½¬æ¢åˆ°å…³å¡æˆ–"
-"返回主èœå•时使用此选项。"
+"该方法会从 [b]portal graph[/b] æ¸…é™¤æ‰€æœ‰è½¬æ¢æ•°æ®ã€‚在å¸è½½å…³å¡ã€ä»Žå…³å¡è½¬æ¢åˆ°å…³å¡"
+"或返回主èœå•时使用此选项。"
#: doc/classes/RoomManager.xml
msgid ""
@@ -61891,7 +62798,7 @@ msgid ""
"tree, to avoid confusion. See [CullInstance] for a full description of "
"portal modes."
msgstr ""
-"这是整个portal剔除系统中最é‡è¦çš„功能。没有它,系统就无法è¿è¡Œã€‚\n"
+"这是整个入å£å‰”除系统中最é‡è¦çš„功能。没有它,系统就无法è¿è¡Œã€‚\n"
"首先,它é历作为 [code]room list[/code] 的节点(以åŠå…¶ä¸­çš„ [RoomGroup])å­èŠ‚"
"点的æ¯ä¸ª [Room],并将其转æ¢å¹¶æ·»åŠ åˆ° [code]room graph[/code]。\n"
"这适用于éµå¾ªç‰¹æ®Šå‘½å约定的 [Room] 节点和 [Spatial] 节点。它们应该以å‰ç¼€ "
@@ -61909,17 +62816,17 @@ msgstr ""
"一个优势)。但是,为了从一个空间看到相邻的空间,您必须放置 [Portal],它代表摄"
"åƒæœºå¯ä»¥çœ‹åˆ°çš„å¼€å£ï¼Œå¦‚窗户和门。\n"
"[Portal] å®žé™…ä¸Šåªæ˜¯ä¸“门的 [MeshInstance]。实际上,您通常会首先通过创建 "
-"[MeshInstance],尤其是 [code]plane[/code] 网格实例æ¥åˆ›å»ºportal。您å¯ä»¥åœ¨ç¼–辑"
-"器中移动平é¢ä»¥è¦†ç›–窗户或门å£ï¼Œæ­£é¢æœç©ºé—´å¤–。为了让转æ¢è¿‡ç¨‹çŸ¥é“您希望此网格æˆ"
-"为portalï¼Œæˆ‘ä»¬å†æ¬¡ä½¿ç”¨ç‰¹æ®Šçš„命å约定。è¦è½¬æ¢ä¸º [Portal] çš„ [MeshInstance] 应"
-"以å‰ç¼€ [i]'Portal_'[/i] 开头。\n"
+"[MeshInstance],尤其是 [code]plane[/code] 网格实例æ¥åˆ›å»ºå…¥å£ã€‚您å¯ä»¥åœ¨ç¼–辑器"
+"中移动平é¢ä»¥è¦†ç›–窗户或门å£ï¼Œæ­£é¢æœç©ºé—´å¤–。为了让转æ¢è¿‡ç¨‹çŸ¥é“您希望此网格æˆä¸º"
+"portalï¼Œæˆ‘ä»¬å†æ¬¡ä½¿ç”¨ç‰¹æ®Šçš„命å约定。è¦è½¬æ¢ä¸º [Portal] çš„ [MeshInstance] 应以"
+"å‰ç¼€ [i]'Portal_'[/i] 开头。\n"
"您现在有一个选择 - 您å¯ä»¥å°†åç§°ä¿ç•™ä¸º [i]'Portal_'[/i],并å…许系统自动检测最"
"近的 [Room] 进行链接。在大多数情况下,这将正常工作。\n"
-"å¦ä¸€ç§æ–¹æ³•是手动指定è¦é“¾æŽ¥åˆ°çš„ [Room],在portalåç§°åŽé™„加一个åŽç¼€ï¼Œè¯¥åŽç¼€åº”该"
-"是您è¦é“¾æŽ¥åˆ°çš„空间的å称。例如,[i]'Portal_lounge'[/i] å°†å°è¯•链接到å为 "
+"å¦ä¸€ç§æ–¹æ³•是手动指定è¦é“¾æŽ¥åˆ°çš„ [Room],在入å£åç§°åŽé™„加一个åŽç¼€ï¼Œè¯¥åŽç¼€åº”该是"
+"您è¦é“¾æŽ¥åˆ°çš„空间的å称。例如,[i]'Portal_lounge'[/i] å°†å°è¯•链接到å为 "
"[i]'Room_lounge'[/i] 的空间。\n"
-"这里有一个特殊情况——Godot ä¸å…许两个节点共享相åŒçš„å称。如果您想手动将多个"
-"portal通å‘åŒä¸€ä¸ªç©ºé—´æ€Žä¹ˆåŠžï¼Ÿå½“ç„¶ï¼Œå®ƒä»¬éƒ½éœ€è¦è¢«è°ƒç”¨ï¼Œä¾‹å¦‚[i]'Portal_lounge'[/"
+"这里有一个特殊情况——Godot ä¸å…许两个节点共享相åŒçš„å称。如果您想手动将多个入"
+"å£é€šå‘åŒä¸€ä¸ªç©ºé—´æ€Žä¹ˆåŠžï¼Ÿå½“ç„¶ï¼Œå®ƒä»¬éƒ½éœ€è¦è¢«è°ƒç”¨ï¼Œä¾‹å¦‚[i]'Portal_lounge'[/"
"i]?\n"
"解决方案是通é…符。在空间å称之åŽï¼Œå¦‚果您使用字符 [i]'*'[/i],则该字符åŠå…¶åŽçš„"
"任何内容都将被忽略。因此,您å¯ä»¥ä½¿ç”¨ä¾‹å¦‚ [i]'Portal_lounge*0'[/i]ã€"
@@ -61941,12 +62848,12 @@ msgid ""
"Switching to [code]active[/code] will have no effect when the [code]room "
"graph[/code] is unloaded (the rooms have not yet been converted)."
msgstr ""
-"打开和关闭portal剔除系统。\n"
-"éœ€è¦æ³¨æ„的是,当portalå‰”é™¤å¤„äºŽæ´»åŠ¨çŠ¶æ€æ—¶ï¼Œå®ƒè´Ÿè´£ [b]所有[/b] 3d 剔除。æŸäº›ç¼–"
-"辑器功能å¯èƒ½æ›´éš¾ä½¿ç”¨ï¼Œå› æ­¤åˆ‡æ¢æ´»åŠ¨æ ‡å¿—æ—¨åœ¨ç¡®ä¿æ‚¨çš„ [Room] / [Portal] 布局在编"
-"辑器中工作。\n"
-"当[code]room graph[/code]被å¸è½½ï¼ˆç©ºé—´å°šæœªè½¬æ¢ï¼‰æ—¶ï¼Œåˆ‡æ¢åˆ°[code]active[/code]"
-"å°†ä¸èµ·ä½œç”¨ã€‚"
+"打开和关闭入å£å‰”除系统。\n"
+"éœ€è¦æ³¨æ„的是,当入å£å‰”é™¤å¤„äºŽæ´»åŠ¨çŠ¶æ€æ—¶ï¼Œå®ƒè´Ÿè´£[b]所有[/b] 3d 剔除。æŸäº›ç¼–辑器"
+"功能å¯èƒ½æ›´éš¾ä½¿ç”¨ï¼Œå› æ­¤åˆ‡æ¢æ´»åŠ¨æ ‡å¿—æ—¨åœ¨ç¡®ä¿æ‚¨çš„ [Room] / [Portal] 布局在编辑器"
+"中工作。\n"
+"当 [code]room graph[/code] 被å¸è½½ï¼ˆç©ºé—´å°šæœªè½¬æ¢ï¼‰æ—¶ï¼Œåˆ‡æ¢åˆ° [code]active[/"
+"code] å°†ä¸èµ·ä½œç”¨ã€‚"
#: doc/classes/RoomManager.xml
msgid ""
@@ -61971,7 +62878,7 @@ msgstr ""
"通常我们ä¸å¸Œæœ›åªæœ‰[b]刚好[/b]跨越边界进入相邻[Room]的物体蔓延到那个空间。为防"
"æ­¢è¿™ç§æƒ…况å‘生,æ¯ä¸ª [Portal] 都有一个é¢å¤–çš„è¾¹è·æˆ–容差区,物体å¯ä»¥åœ¨å…¶ä¸­è¿›å…¥"
"而ä¸ä¼šè”“延到相邻的空间。\n"
-"在大多数情况下,您å¯ä»¥åœ¨æ­¤å¤„为所有portal设置此项。å¯ä»¥è¦†ç›–æ¯ä¸ªportal的边è·ã€‚"
+"在大多数情况下,您å¯ä»¥åœ¨æ­¤å¤„为所有入å£è®¾ç½®æ­¤é¡¹ã€‚å¯ä»¥è¦†ç›–æ¯ä¸ªå…¥å£çš„è¾¹è·ã€‚"
#: doc/classes/RoomManager.xml
msgid ""
@@ -61986,8 +62893,8 @@ msgid ""
"[code]NOTIFICATION_EXIT_GAMEPLAY[/code]\n"
"Signals: [code]\"gameplay_entered\"[/code], [code]\"gameplay_exited\"[/code]"
msgstr ""
-"使用部分或完整 PVS 时,游æˆç›‘视器å…许您在漫游对象或空间进入或退出 [b]游æˆåŒºåŸŸ"
-"[/b] 时接收回调。游æˆåŒºåŸŸè¢«å®šä¹‰ä¸ºä¸»è¦æˆ–æ¬¡è¦ PVS。\n"
+"使用部分或完整 PVS 时,游æˆç›‘视器å…许您在漫游对象或空间进入或退出[b]游æˆåŒºåŸŸ"
+"[/b]时接收回调。游æˆåŒºåŸŸè¢«å®šä¹‰ä¸ºä¸»è¦æˆ–æ¬¡è¦ PVS。\n"
"例如,这些回调å…许您å‡å°‘对远离玩家的对象的处ç†ï¼Œæˆ–者打开和关闭 AI。\n"
"您å¯ä»¥é€‰æ‹©é€šè¿‡ [code]_notification[/code] å‡½æ•°æŽ¥æ”¶å›žè°ƒä½œä¸ºé€šçŸ¥ï¼Œæˆ–ä½œä¸ºä¿¡å·æŽ¥"
"收。\n"
@@ -62031,15 +62938,16 @@ msgid ""
"recursion depth.\n"
"[b]Note:[/b] This value is unused when using [code]Full[/code] PVS mode."
msgstr ""
-"portal渲染是递归的 - æ¯æ¬¡é€šè¿‡è¾ƒæ—©çš„portal看到一个portalæ—¶ï¼Œéƒ½ä¼šäº§ç”Ÿä¸€äº›æˆæœ¬ã€‚"
-"出于这个原因,并为了防止无é™å¾ªçŽ¯çš„å¯èƒ½æ€§ï¼Œæ­¤è®¾ç½®å¯¹é€’归深度æä¾›äº†ç¡¬æ€§é™åˆ¶ã€‚\n"
-"[b]注:[/b] 使用[code]Full[/code] PVS æ¨¡å¼æ—¶ä¸ä½¿ç”¨è¯¥å€¼ã€‚"
+"å…¥å£çš„æ¸²æŸ“æ˜¯é€’å½’çš„â€”â€”æ¯æ¬¡é€šè¿‡è¾ƒæ—©çš„å…¥å£çœ‹åˆ°ä¸€ä¸ªå…¥å£æ—¶ï¼Œéƒ½ä¼šäº§ç”Ÿä¸€äº›æˆæœ¬ã€‚出于"
+"这个原因,并为了防止无é™å¾ªçŽ¯çš„å¯èƒ½æ€§ï¼Œæ­¤è®¾ç½®å¯¹é€’归深度æä¾›äº†ç¡¬æ€§é™åˆ¶ã€‚\n"
+"[b]注æ„:[/b]使用 [code]Full[/code] PVS æ¨¡å¼æ—¶ä¸ä½¿ç”¨è¯¥å€¼ã€‚"
#: doc/classes/RoomManager.xml
+#, fuzzy
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
"Portal 剔除通常使用当å‰çš„ [Camera] / 多个[Camera] 进行æ“作,但是为了在编辑器"
@@ -62056,8 +62964,8 @@ msgid ""
"rooms will be frustum culled, and rendered if they are within the view "
"frustum."
msgstr ""
-"å¯é€‰åœ°ï¼Œåœ¨è½¬æ¢æœŸé—´ï¼Œå¯ä»¥è®¡ç®—从æ¯ä¸ªç©ºé—´å¯èƒ½å¯è§çš„空间的潜在å¯è§é›† (PVS)。这å¯"
-"用于帮助动æ€é—¨æˆ·å‰”除,或完全替代门户剔除。\n"
+"å¯é€‰åœ°ï¼Œåœ¨è½¬æ¢æœŸé—´ï¼Œå¯ä»¥è®¡ç®—从æ¯ä¸ªç©ºé—´å¯èƒ½å¯è§çš„空间的潜在å¯è§é›†ï¼ˆPVS)。这å¯"
+"用于帮助动æ€å…¥å£å‰”除,或完全替代入å£å‰”除。\n"
"在 [code]Full[/code] PVS 模å¼ä¸‹ï¼Œæ½œåœ¨å¯è§ç©ºé—´å†…的所有对象都将被剔除,如果它们"
"在视锥体内,则进行渲染。"
@@ -62167,6 +63075,7 @@ msgid "Editor-only helper for setting up root motion in [AnimationTree]."
msgstr "在[AnimationTree]中设置根è¿åŠ¨çš„ä»…ç¼–è¾‘å™¨å¯ç”¨çš„辅助工具。"
#: doc/classes/RootMotionView.xml
+#, fuzzy
msgid ""
"[i]Root motion[/i] refers to an animation technique where a mesh's skeleton "
"is used to give impulse to a character. When working with 3D animations, a "
@@ -62179,7 +63088,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
"[i]Root motion[/i] 指的是一ç§åŠ¨ç”»æŠ€æœ¯ï¼Œå…¶ä¸­ä½¿ç”¨ç½‘æ ¼çš„éª¨æž¶ä¸ºè§’è‰²æä¾›åŠ¨åŠ›ã€‚åœ¨å¤„"
"ç† 3D åŠ¨ç”»æ—¶ï¼Œä¸€ç§æµè¡Œçš„æŠ€æœ¯æ˜¯åŠ¨ç”»å¸ˆä½¿ç”¨æ ¹éª¨æž¶éª¨éª¼æ¥ä¸ºéª¨æž¶çš„其余部分æä¾›è¿"
@@ -62191,15 +63100,12 @@ msgstr ""
"RootMotionView[/code]。此外,它ä¸èƒ½æ˜¯ [code]@tool[/code] 脚本。"
#: doc/classes/RootMotionView.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/animation/animation_tree.html#root-motion"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/latest/tutorials/animation/animation_tree."
-"html#root-motion"
+msgstr "$DOCS_URL/tutorials/animation/animation_tree.html#root-motion"
#: doc/classes/RootMotionView.xml
msgid "Path to an [AnimationTree] node to use as a basis for root motion."
-msgstr "用作根è¿åŠ¨åŸºç¡€çš„ [AnimationTree] 节点的路径。"
+msgstr "用作根è¿åŠ¨çš„åŸºçš„ [AnimationTree] 节点的路径。"
#: doc/classes/RootMotionView.xml
msgid "The grid's cell size in 3D units."
@@ -62389,7 +63295,7 @@ msgstr ""
#: doc/classes/SceneState.xml
msgid ""
"If passed to [method PackedScene.instance], blocks edits to the scene state."
-msgstr "如果传递给[method PackedScene.instance],则阻止对场景状æ€çš„编辑。"
+msgstr "ä¼ ç»™ [method PackedScene.instance] 时,将阻止对场景状æ€çš„编辑。"
#: doc/classes/SceneState.xml
msgid ""
@@ -62397,8 +63303,8 @@ msgid ""
"resources to the local scene.\n"
"[b]Note:[/b] Only available in editor builds."
msgstr ""
-"如果传递给[method PackedScene.instance],æä¾›ç»§æ‰¿çš„场景资æºç»™æœ¬åœ°åœºæ™¯ã€‚\n"
-"[b]注æ„:[/b] åªåœ¨ç¼–辑器构建中å¯ç”¨ã€‚"
+"ä¼ ç»™ [method PackedScene.instance] 时,将æä¾›ç»§æ‰¿çš„场景资æºç»™æœ¬åœ°åœºæ™¯ã€‚\n"
+"[b]注æ„:[/b]åªåœ¨ç¼–辑器构建中å¯ç”¨ã€‚"
#: doc/classes/SceneState.xml
msgid ""
@@ -62406,20 +63312,20 @@ msgid ""
"to the local scene. Only the main scene should receive the main edit state.\n"
"[b]Note:[/b] Only available in editor builds."
msgstr ""
-"如果传递给[method PackedScene.instance]ï¼Œå‘æœ¬åœ°åœºæ™¯æä¾›æœ¬åœ°åœºæ™¯èµ„æºã€‚åªæœ‰ä¸»åœº"
+"ä¼ ç»™ [method PackedScene.instance] æ—¶ï¼Œå°†å‘æœ¬åœ°åœºæ™¯æä¾›æœ¬åœ°åœºæ™¯èµ„æºã€‚åªæœ‰ä¸»åœº"
"景应该接收主编辑状æ€ã€‚\n"
-"[b]注æ„:[/b] åªåœ¨ç¼–辑器构建中å¯ç”¨ã€‚"
+"[b]注æ„:[/b]åªåœ¨ç¼–辑器构建中å¯ç”¨ã€‚"
#: doc/classes/SceneState.xml
-#, fuzzy
msgid ""
"If passed to [method PackedScene.instance], it's similar to [constant "
"GEN_EDIT_STATE_MAIN], but for the case where the scene is being instantiated "
"to be the base of another one.\n"
"[b]Note:[/b] Only available in editor builds."
msgstr ""
-"如果传递给[method PackedScene.instance],æä¾›ç»§æ‰¿çš„场景资æºç»™æœ¬åœ°åœºæ™¯ã€‚\n"
-"[b]注æ„:[/b] åªåœ¨ç¼–辑器构建中å¯ç”¨ã€‚"
+"传给 [method PackedScene.instance] 时,类似于 [constant "
+"GEN_EDIT_STATE_MAIN],但适用于将场景实例用作å¦ä¸€ä¸ªåœºæ™¯çš„基类的情况。\n"
+"[b]注æ„:[/b]åªåœ¨ç¼–辑器构建中å¯ç”¨ã€‚"
#: doc/classes/SceneTree.xml
msgid "Manages the game loop via a hierarchy of nodes."
@@ -62447,17 +63353,12 @@ msgstr ""
"[SceneTree] 是场景所使用的默认 [MainLoop] å®žçŽ°ï¼Œå› æ­¤æŽŒæŽ§ç€æ¸¸æˆå¾ªçŽ¯ã€‚"
#: doc/classes/SceneTree.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/scripting/scene_tree.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/scripting/scene_tree.html"
+msgstr "$DOCS_URL/tutorials/scripting/scene_tree.html"
#: doc/classes/SceneTree.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/rendering/multiple_resolutions.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/rendering/"
-"multiple_resolutions.html"
+msgstr "$DOCS_URL/tutorials/rendering/multiple_resolutions.html"
#: doc/classes/SceneTree.xml
msgid ""
@@ -63040,13 +63941,13 @@ msgid ""
"[method Object.set_script] extends an existing object, if that object's "
"class matches one of the script's base classes."
msgstr ""
-"一个存储为资æºçš„类。用脚本扩展所有以它为实例的对象的功能。\n"
-"脚本å­ç±»çš„[code]new[/code]方法创建一个新的实例。如果一个现有的对象的类与脚本"
+"作为资æºå­˜å‚¨çš„类。脚本å¯ä»¥æ‰©å±•所有以它为实例的对象的功能。\n"
+"脚本å­ç±»çš„ [code]new[/code] 方法会创建新的实例。如果一个现有的对象的类与脚本"
"的基类之一相匹é…,[method Object.set_script] 会扩展该对象。"
#: doc/classes/Script.xml
msgid "$DOCS_URL/tutorials/scripting/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/scripting/index.html"
#: doc/classes/Script.xml
msgid "Returns [code]true[/code] if the script can be instanced."
@@ -63411,14 +64312,11 @@ msgstr ""
#: doc/classes/Shader.xml doc/classes/ShaderMaterial.xml
msgid "$DOCS_URL/tutorials/shaders/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/shaders/index.html"
#: doc/classes/Shader.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/shaders/introduction_to_shaders.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/shaders/"
-"introduction_to_shaders.html"
+msgstr "$DOCS_URL/tutorials/shaders/introduction_to_shaders.html"
#: doc/classes/Shader.xml
msgid ""
@@ -63820,11 +64718,8 @@ msgstr ""
"对其å­é¡¹çš„æ”¾æ¾å§¿åŠ¿çš„å¼•ç”¨ï¼Œå¹¶ä½œä¸ºå¯¹å…¶éª¨éª¼çš„å•一访问点。"
#: doc/classes/Skeleton2D.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/animation/2d_skeletons.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/animation/2d_skeletons."
-"html"
+msgstr "$DOCS_URL/tutorials/animation/2d_skeletons.html"
#: doc/classes/Skeleton2D.xml
msgid ""
@@ -64111,7 +65006,7 @@ msgstr "代表[enum RadianceSize]枚举的大å°ã€‚"
#: doc/classes/Slider.xml
msgid "Base class for GUI sliders."
-msgstr "GUI滑å—的基类。"
+msgstr "GUI 滑动æ¡çš„基类。"
#: doc/classes/Slider.xml
msgid ""
@@ -64119,33 +65014,33 @@ msgid ""
"[b]Note:[/b] The [signal Range.changed] and [signal Range.value_changed] "
"signals are part of the [Range] class which this class inherits from."
msgstr ""
-"GUI滑å—的基类。\n"
-"[b]注æ„:[/b] [signal Range.changed]å’Œ[signal Range.value_changed]ä¿¡å·æ˜¯è¯¥ç±»"
-"继承的[Range]类的一部分。"
+"GUI 滑动æ¡çš„基类。\n"
+"[b]注æ„:[/b][signal Range.changed] å’Œ [signal Range.value_changed] ä¿¡å·æ˜¯è¯¥"
+"类继承的 [Range] 类的一部分。"
#: doc/classes/Slider.xml
msgid ""
"If [code]true[/code], the slider can be interacted with. If [code]false[/"
"code], the value can be changed only by code."
msgstr ""
-"如果[code]true[/code],滑å—å¯ä»¥äº¤äº’。如果[code]false[/code],则åªèƒ½é€šè¿‡ä»£ç æ›´"
-"改该值。"
+"如果为 [code]true[/code],则滑动æ¡å¯ä»¥äº¤äº’。如果为 [code]false[/code],则åªèƒ½"
+"é€šè¿‡ä»£ç æ›´æ”¹è¯¥å€¼ã€‚"
#: doc/classes/Slider.xml
msgid "If [code]true[/code], the value can be changed using the mouse wheel."
-msgstr "如果 [code]true[/code],则å¯ä»¥ä½¿ç”¨é¼ æ ‡æ»šè½®æ›´æ”¹è¯¥å€¼ã€‚"
+msgstr "如果为 [code]true[/code],则å¯ä»¥ä½¿ç”¨é¼ æ ‡æ»šè½®æ›´æ”¹è¯¥å€¼ã€‚"
#: doc/classes/Slider.xml
msgid ""
"Number of ticks displayed on the slider, including border ticks. Ticks are "
"uniformly-distributed value markers."
-msgstr "滑å—上显示的刻度线数é‡ï¼ŒåŒ…括边界刻度线。刻度是å‡åŒ€åˆ†å¸ƒçš„æ•°å€¼æ ‡è®°ã€‚"
+msgstr "滑动æ¡ä¸Šæ˜¾ç¤ºçš„刻度线数é‡ï¼ŒåŒ…括边界刻度线。刻度是å‡åŒ€åˆ†å¸ƒçš„æ•°å€¼æ ‡è®°ã€‚"
#: doc/classes/Slider.xml
msgid ""
"If [code]true[/code], the slider will display ticks for minimum and maximum "
"values."
-msgstr "如果 [code]true[/code],滑å—将显示最å°å€¼å’Œæœ€å¤§å€¼çš„刻度。"
+msgstr "如果为 [code]true[/code],则滑动æ¡å°†æ˜¾ç¤ºæœ€å°å€¼å’Œæœ€å¤§å€¼çš„刻度。"
#: doc/classes/SliderJoint.xml
msgid "Slider between two PhysicsBodies in 3D."
@@ -64216,10 +65111,8 @@ msgid ""
msgstr "å¯å˜å½¢çš„物ç†ä½“。用于创建弹性或å¯å˜å½¢çš„ç‰©ä½“ï¼Œå¦‚å¸ƒã€æ©¡èƒ¶æˆ–其他柔性æè´¨ã€‚"
#: doc/classes/SoftBody.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/physics/soft_body.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/physics/soft_body.html"
+msgstr "$DOCS_URL/tutorials/physics/soft_body.html"
#: doc/classes/SoftBody.xml
msgid "Returns local translation of a vertex in the surface array."
@@ -64240,7 +65133,6 @@ msgstr ""
"个空间。"
#: doc/classes/SoftBody.xml
-#, fuzzy
msgid ""
"The physics layers this SoftBody is in.\n"
"Collidable objects can exist in any of 32 different layers. These layers "
@@ -64258,21 +65150,19 @@ msgstr ""
"ç»Ÿï¼Œå¹¶ä¸æ˜¯å¯è§†åŒ–的。一个å¯ç¢°æ’žç‰©ä½“å¯ä»¥ä½¿ç”¨è¿™äº›å±‚æ¥é€‰æ‹©å®ƒå¯ä»¥ä¸Žå“ªäº›ç‰©ä½“碰撞,"
"使用 collision_mask 属性。\n"
"如果对象 A 在对象 B 所扫æçš„任何层中,或者对象 B 在对象 A 所扫æçš„任何层中,"
-"就会检测到接触。更多信æ¯è¯·å‚阅文档中的[url=https://docs.godotengine.org/"
-"zh_CN/stable/tutorials/physics/physics_introduction.html#collision-layers-"
-"and-masks]碰撞层和掩ç [/url]。"
+"就会检测到接触。更多信æ¯è¯·å‚阅文档中的[url=$DOCS_URL/tutorials/physics/"
+"physics_introduction.html#collision-layers-and-masks]《碰撞层与掩ç ã€‹[/url]。"
#: doc/classes/SoftBody.xml
-#, fuzzy
msgid ""
"The physics layers this SoftBody scans for collisions. See [url=$DOCS_URL/"
"tutorials/physics/physics_introduction.html#collision-layers-and-"
"masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""
-"æ­¤ SoftBody 扫æç¢°æ’žçš„物ç†å±‚。更多信æ¯è¯·å‚阅文档中的[url=https://docs."
-"godotengine.org/zh_CN/stable/tutorials/physics/physics_introduction."
-"html#collision-layers-and-masks]碰撞层和掩ç [/url]。"
+"æ­¤ SoftBody 扫æç¢°æ’žçš„物ç†å±‚。更多信æ¯è¯·å‚阅文档中的[url=$DOCS_URL/tutorials/"
+"physics/physics_introduction.html#collision-layers-and-masks]《碰撞层与掩ç ã€‹"
+"[/url]。"
#: doc/classes/SoftBody.xml
msgid "[NodePath] to a [CollisionObject] this SoftBody should avoid clipping."
@@ -64330,11 +65220,8 @@ msgstr ""
"使用 [method @GDScript.deg2rad] 将度数转æ¢ä¸ºå¼§åº¦ã€‚"
#: doc/classes/Spatial.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/introduction_to_3d.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/introduction_to_3d."
-"html"
+msgstr "$DOCS_URL/tutorials/3d/introduction_to_3d.html"
#: doc/classes/Spatial.xml doc/classes/Vector3.xml
msgid "https://github.com/godotengine/godot-demo-projects/tree/master/3d"
@@ -64489,7 +65376,7 @@ msgstr ""
msgid ""
"Reset all transformations for this node (sets its [Transform] to the "
"identity matrix)."
-msgstr "é‡ç½®è¯¥èŠ‚ç‚¹çš„æ‰€æœ‰å˜æ¢ï¼ˆå°†å…¶[Transform]é‡ç½®ä¸ºå•ä½çŸ©é˜µï¼‰ã€‚"
+msgstr "é‡ç½®è¯¥èŠ‚ç‚¹çš„æ‰€æœ‰å˜æ¢ï¼ˆå°†å…¶ [Transform] é‡ç½®ä¸ºå•ä½çŸ©é˜µï¼‰ã€‚"
#: doc/classes/Spatial.xml
msgid ""
@@ -64662,13 +65549,13 @@ msgstr "空间节点在其å¯è§æ€§å‘生å˜åŒ–时会收到此通知。"
msgid ""
"Spatial nodes receives this notification if the portal system gameplay "
"monitor detects they have entered the gameplay area."
-msgstr "如果门户系统游æˆç›‘视器检测到它们已进入游æˆåŒºåŸŸï¼Œç©ºé—´èŠ‚ç‚¹ä¼šæ”¶åˆ°æ­¤é€šçŸ¥ã€‚"
+msgstr "如果入å£ç³»ç»Ÿæ¸¸æˆç›‘视器检测到它们已进入游æˆåŒºåŸŸï¼Œç©ºé—´èŠ‚ç‚¹ä¼šæ”¶åˆ°æ­¤é€šçŸ¥ã€‚"
#: doc/classes/Spatial.xml
msgid ""
"Spatial nodes receives this notification if the portal system gameplay "
"monitor detects they have exited the gameplay area."
-msgstr "如果门户系统游æˆç›‘视器检测到它们已退出游æˆåŒºåŸŸï¼Œç©ºé—´èŠ‚ç‚¹ä¼šæ”¶åˆ°æ­¤é€šçŸ¥ã€‚"
+msgstr "如果入å£ç³»ç»Ÿæ¸¸æˆç›‘视器检测到它们已退出游æˆåŒºåŸŸï¼Œç©ºé—´èŠ‚ç‚¹ä¼šæ”¶åˆ°æ­¤é€šçŸ¥ã€‚"
#: doc/classes/SpatialMaterial.xml
msgid "Default 3D rendering material."
@@ -64684,10 +65571,8 @@ msgstr ""
"下é¢çš„æ•™ç¨‹ã€‚"
#: doc/classes/SpatialMaterial.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/3d/spatial_material.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/3d/spatial_material.html"
+msgstr "$DOCS_URL/tutorials/3d/spatial_material.html"
#: doc/classes/SpatialMaterial.xml
msgid "Returns [code]true[/code], if the specified [enum Feature] is enabled."
@@ -64718,9 +65603,10 @@ msgstr ""
"å¯ä»¥é€šè¿‡å°†ç›¸åº”çš„æˆå‘˜è®¾ç½®ä¸º [code]true[/code] æ¥å¯ç”¨åŠŸèƒ½ã€‚"
#: doc/classes/SpatialMaterial.xml
+#, fuzzy
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -64750,23 +65636,39 @@ msgid ""
msgstr "纹ç†ä¹˜ä»¥ [member albedo_color]。用于对象的基本纹ç†ã€‚"
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
-msgstr "å„å‘异性效应的强度。"
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
+msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
-"如果 [code]true[/code],则å¯ç”¨å„å‘异性。改å˜é•œé¢å°çƒçš„形状,并使其与切线空间"
-"对é½ã€‚æ­¤åŠŸèƒ½éœ€è¦æœ‰ç½‘格切线æ‰è¡Œã€‚如果网格ä¸åŒ…å«åˆ‡çº¿ï¼Œå„å‘异性的效果就会被破"
-"å。"
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
-msgstr "用于å„å‘异性计算的å移切线图的纹ç†ã€‚"
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
+msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -64821,6 +65723,10 @@ msgid ""
"this material must behave in regards to asynchronous shader compilation.\n"
"[constant ASYNC_MODE_VISIBLE] is the default and the best for most cases."
msgstr ""
+"当 [member ProjectSettings.rendering/gles3/shaders/shader_compilation_mode] "
+"为 [code]Synchronous[/code](无论是å¦ä½¿ç”¨ç¼“存)时,决定该æè´¨åœ¨å¼‚æ­¥ç€è‰²å™¨ç¼–译"
+"时的行为。\n"
+"默认值是 [constant ASYNC_MODE_VISIBLE],也是大多数情况下的最佳值。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -65683,7 +66589,7 @@ msgstr "用于设置[member detail_enabled]的常é‡ã€‚"
msgid ""
"Default blend mode. The color of the object is blended over the background "
"based on the object's alpha value."
-msgstr "é»˜è®¤çš„æ··åˆæ¨¡å¼ã€‚æ ¹æ®å¯¹è±¡çš„alpha值,在背景上混åˆå¯¹è±¡çš„颜色。"
+msgstr "é»˜è®¤çš„æ··åˆæ¨¡å¼ã€‚æ ¹æ®å¯¹è±¡çš„ Alpha 值,在背景上混åˆå¯¹è±¡çš„颜色。"
#: doc/classes/SpatialMaterial.xml
msgid "The color of the object is added to the background."
@@ -65927,7 +66833,7 @@ msgstr "ä¸è¦ä½¿ç”¨è·ç¦»æ·¡åŒ–。"
msgid ""
"Smoothly fades the object out based on each pixel's distance from the camera "
"using the alpha channel."
-msgstr "æ ¹æ®æ¯ä¸ªåƒç´ ä¸Žç›¸æœºçš„è·ç¦»ï¼Œä½¿ç”¨alpha通é“平滑地淡化对象。"
+msgstr "æ ¹æ®æ¯ä¸ªåƒç´ ä¸Žç›¸æœºçš„è·ç¦»ï¼Œä½¿ç”¨ Alpha 通é“平滑地淡化对象。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -65960,6 +66866,10 @@ msgid ""
"compile. Once shader compilation is done, the ubershader is replaced by the "
"traditional optimized shader."
msgstr ""
+"å„个情况所需的实际æ¡ä»¶ç€è‰²å™¨ä¼šè¢«é€å¾€åŽå°ç¼–译。此时会使用一个éžå¸¸å¤æ‚ã€é€‚用于"
+"任何情况的ç€è‰²å™¨ï¼ˆâ€œè¶…级ç€è‰²å™¨â€ï¼‰ã€‚超级ç€è‰²å™¨çš„æ¸²æŸ“è¦æ…¢ä¸Šå¾ˆå¤šï¼Œä½†å¯ä»¥é¿å…å› ç¼–"
+"译而导致游æˆè¿è¡Œåœæ»žã€‚ç€è‰²å™¨ç¼–译完æˆåŽï¼Œè¶…级ç€è‰²å™¨å°±ä¼šè¢«æ›¿æ¢ä¸ºä¼ ç»Ÿçš„优化åŽçš„"
+"ç€è‰²å™¨ã€‚"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -65969,6 +66879,8 @@ msgid ""
"from having certain non-essential elements missing during the short time "
"their shaders are being compiled."
msgstr ""
+"编译该æè´¨çš„ç€è‰²å™¨æ—¶ï¼Œä»»ä½•使用该æè´¨çš„东西都ä¸ä¼šè¿›è¡Œæ¸²æŸ“。\n"
+"常用于优化,适用于ç€è‰²å™¨ç¼–译时,短期缺少æŸäº›éžå…³é”®æ€§å…ƒç´ ä¹Ÿä¸å½±å“ç”»é¢çš„æƒ…况。"
#: doc/classes/SphereMesh.xml
msgid "Class representing a spherical [PrimitiveMesh]."
@@ -66246,16 +67158,14 @@ msgid ""
msgstr "从碰撞检查排除的 [PhysicsBody] 对象列表中删除指定的 [RID]。"
#: doc/classes/SpringArm.xml
-#, fuzzy
msgid ""
"The layers against which the collision check shall be done. See [url="
"$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-"
"masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""
-"碰撞检测的目标层。更多信æ¯è¯·å‚阅文档中的[url=https://docs.godotengine.org/"
-"zh_CN/stable/tutorials/physics/physics_introduction.html#collision-layers-"
-"and-masks]碰撞层与é®ç½©[/url]。"
+"碰撞检测的目标层。更多信æ¯è¯·å‚阅文档中的[url=$DOCS_URL/tutorials/physics/"
+"physics_introduction.html#collision-layers-and-masks]《碰撞层与é®ç½©ã€‹[/url]。"
#: doc/classes/SpringArm.xml
msgid ""
@@ -66412,7 +67322,7 @@ msgstr "当 [member frame] 更改时å‘出。"
#: doc/classes/Sprite.xml
msgid "Emitted when the [member texture] changes."
-msgstr "[member texture] 更改时å‘出。"
+msgstr "当 [member texture] 更改时å‘出。"
#: doc/classes/Sprite3D.xml
msgid "2D sprite node in a 3D world."
@@ -66649,9 +67559,9 @@ msgid ""
"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
"physics_material_override]."
msgstr ""
-"物体的摩擦,从 0(无摩擦)到 1(最大摩擦)。\n"
+"物体的摩擦力,从 0(无摩擦)到 1(最大摩擦)。\n"
"已废弃,请通过 [member physics_material_override] 使用 [member "
-"PhysicsMaterial.friction]。"
+"PhysicsMaterial.friction] 代替。"
#: doc/classes/StaticBody2D.xml
msgid "Static body for 2D physics."
@@ -66666,10 +67576,10 @@ msgid ""
"static body, which will affect colliding bodies as if it were moving (for "
"example, a conveyor belt)."
msgstr ""
-"用于 2D 物ç†çš„陿€ç‰©ä½“。 StaticBody2D 是一个ä¸ç§»åŠ¨çš„ç‰©ä½“ã€‚å®ƒæ˜¯å®žçŽ°çŽ¯å¢ƒå¯¹è±¡çš„"
-"ç†æƒ³æ–¹å¼ï¼Œä¾‹å¦‚墙壿ˆ–å¹³å°ã€‚\n"
-"此外,å¯ä»¥ä¸ºé™æ€ç‰©ä½“设置æ’定的线速度或角速度,这将影å“碰撞物体,就åƒå®ƒåœ¨ç§»åЍ"
-"一样(例如,传é€å¸¦ï¼‰ã€‚"
+"用于 2D 物ç†çš„陿€ç‰©ä½“。StaticBody2D 是ä¸å‡†å¤‡ç§»åŠ¨çš„ç‰©ä½“ã€‚å®ƒæ˜¯å®žçŽ°çŽ¯å¢ƒå¯¹è±¡çš„ç†"
+"想方å¼ï¼Œä¾‹å¦‚墙壿ˆ–å¹³å°ã€‚\n"
+"此外,å¯ä»¥ä¸ºé™æ€ç‰©ä½“设置æ’定的线速度或角速度,这将影å“到与之碰撞的物体,让它"
+"å°±åƒåœ¨ç§»åŠ¨ä¸€æ ·ï¼ˆä¾‹å¦‚ä¼ é€å¸¦ï¼‰ã€‚"
#: doc/classes/StaticBody2D.xml
msgid ""
@@ -66692,10 +67602,10 @@ msgid ""
"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
"physics_material_override]."
msgstr ""
-"物体的摩擦。å–值范围从 [code]0[/code](无摩擦)到 [code]1[/code](最大摩"
+"物体的摩擦力。å–值范围从 [code]0[/code](无摩擦)到 [code]1[/code](最大摩"
"擦)。\n"
"已废弃,请通过 [member physics_material_override] 使用 [member "
-"PhysicsMaterial.friction]。"
+"PhysicsMaterial.friction] 代替。"
#: doc/classes/StreamPeer.xml
msgid "Abstraction and base class for stream-based protocols."
@@ -66763,8 +67673,9 @@ msgstr ""
"@GlobalScope.Error] 错误ç ä»¥åŠä¸€ä¸ªæ•°æ®æ•°ç»„。"
#: doc/classes/StreamPeer.xml
+#, fuzzy
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -67096,11 +68007,8 @@ msgstr ""
"è¿›è¡Œä¼ é€’çš„æˆæœ¬å¾ˆä½Žã€‚"
#: doc/classes/String.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/scripting/gdscript/gdscript_format_string.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/scripting/gdscript/"
-"gdscript_format_string.html"
+msgstr "$DOCS_URL/tutorials/scripting/gdscript/gdscript_format_string.html"
#: doc/classes/String.xml
msgid "Constructs a new String from the given [bool]."
@@ -67226,7 +68134,8 @@ msgstr ""
"[code]\\\"[/code]ã€[code]\\?[/code]ã€[code]\\\\[/code]ã€[code]\\a[/code]ã€"
"[code]\\b[/code]ã€[code]\\f[/code]ã€[code]\\n[/code]ã€[code]\\r[/code]ã€"
"[code]\\t[/code]ã€[code]\\v[/code]。\n"
-"[b]注æ„:[/b]与GDScriptè§£æžå™¨ä¸åŒï¼Œè¯¥æ–¹æ³•䏿”¯æŒ[code]\\uXXXX[/code]转义åºåˆ—。"
+"[b]注æ„:[/b]与 GDScript è§£æžå™¨ä¸åŒï¼Œè¯¥æ–¹æ³•䏿”¯æŒ [code]\\uXXXX[/code] 转义åº"
+"列。"
#: doc/classes/String.xml
msgid ""
@@ -67238,8 +68147,8 @@ msgid ""
"code]."
msgstr ""
"更改æŸäº›å­—æ¯çš„大å°å†™ã€‚用空格替æ¢ä¸‹åˆ’线,在è¯å†…å¤§å†™å­—ç¬¦ä¹‹å‰æ·»åŠ ç©ºæ ¼ï¼Œå°†æ‰€æœ‰å­—"
-"æ¯è½¬æ¢ä¸ºå°å†™ï¼Œç„¶åŽå°†ç¬¬ä¸€ä¸ªå­—æ¯å’Œç©ºæ ¼å­—符åŽé¢çš„æ¯ä¸ªå­—æ¯å¤§å†™ã€‚对于"
-"[code]capitalize camelCase mixed_with_underscores[/code],它将返回"
+"æ¯è½¬æ¢ä¸ºå°å†™ï¼Œç„¶åŽå°†ç¬¬ä¸€ä¸ªå­—æ¯å’Œç©ºæ ¼å­—符åŽé¢çš„æ¯ä¸ªå­—æ¯å¤§å†™ã€‚对于 "
+"[code]capitalize camelCase mixed_with_underscores[/code],它将返回 "
"[code]Capitalize Camel Case Mixed With Underscores[/code]。"
#: doc/classes/String.xml
@@ -67296,11 +68205,12 @@ msgstr ""
"åˆ™å°†ä½¿ç”¨æ•´ä¸ªå­—ç¬¦ä¸²ã€‚å¦‚æžœåªæœ‰ [code]to[/code] 等于 0,则将使用剩余的å­ä¸²ã€‚"
#: doc/classes/String.xml
-#, fuzzy
msgid ""
"Returns a copy of the string with indentation (leading tabs and spaces) "
"removed. See also [method indent] to add indentation."
-msgstr "返回删除了缩进(å‰å¯¼åˆ¶è¡¨ç¬¦å’Œç©ºæ ¼ï¼‰çš„字符串副本。"
+msgstr ""
+"返回删除了缩进(å‰å¯¼åˆ¶è¡¨ç¬¦å’Œç©ºæ ¼ï¼‰çš„字符串副本。添加缩进请å‚阅 [method "
+"indent]。"
#: doc/classes/String.xml
msgid ""
@@ -67420,6 +68330,14 @@ msgid ""
"print(\"i/am/example/string\".get_slice(\"/\", 2)) # Prints 'example'.\n"
"[/codeblock]"
msgstr ""
+"将字符串使用分隔符 [code]delimiter[/code] 分割,返回ä½äºŽåˆ‡ç‰‡ç´¢å¼• "
+"[code]slice[/code] çš„å­ä¸²ã€‚如果该索引ä¸å­˜åœ¨ï¼Œåˆ™è¿”回空字符串。\n"
+"如果你åªéœ€è¦ä»Žæ•°ç»„的固定ä½ç½®èŽ·å–å•一的元素,那么会比 [method split] 更高"
+"效。\n"
+"例å­ï¼š\n"
+"[codeblock]\n"
+"print(\"i/am/example/string\".get_slice(\"/\", 2)) # 输出“exampleâ€ã€‚\n"
+"[/codeblock]"
#: doc/classes/String.xml
msgid "Hashes the string and returns a 32-bit integer."
@@ -67449,7 +68367,7 @@ msgid ""
"http_escape())\n"
"[/codeblock]"
msgstr ""
-"对字符串进行转义(编ç ï¼‰ï¼Œä½¿ä¹‹æˆä¸ºé€‚åˆURL的格å¼ã€‚也被称为 \"URLç¼–ç \"。\n"
+"对字符串进行转义(编ç ï¼‰ï¼Œä½¿ä¹‹æˆä¸ºé€‚åˆ URL 的格å¼ã€‚也被称为“URL ç¼–ç â€ã€‚\n"
"[codeblock]\n"
"print(\"https://example.org/?escaped=\" + \"Godot Engine:'docs'\"."
"http_escape())\n"
@@ -67482,13 +68400,13 @@ msgid ""
"print(size) # prints \"127.5 MiB\"\n"
"[/codeblock]"
msgstr ""
-"将以字节数表示的[code]大å°[/code]转æ¢ä¸ºäººç±»å¯è¯»çš„æ ¼å¼ï¼Œä½¿ç”¨å›½é™…化的数æ®å¤§å°å•"
-"ä½é›†ï¼Œå³ã€‚B, KiB, MiB, GiB, TiB, PiB, EiB。请注æ„,下一个最å°çš„å•使˜¯è‡ªåŠ¨æŒ‘é€‰"
-"的,最多å¯å®¹çº³1024个å•ä½ã€‚\n"
+"将表示字节数的 [code]size[/code] 转æ¢ä¸ºäººç±»å¯è¯»çš„æ ¼å¼ï¼Œä½¿ç”¨å›½é™…化的数æ®å¤§å°å•"
+"ä½ï¼Œå³ï¼šBã€KiBã€MiBã€GiBã€TiBã€PiBã€EiB。请注æ„,下一个最å°çš„å•使˜¯è‡ªåŠ¨æŒ‘é€‰"
+"的,最多å¯å®¹çº³ 1024 个å•ä½ã€‚\n"
"[codeblock]\n"
"var bytes = 133790307\n"
"var size = String.humanize_size(bytes)\n"
-"print(size) # æ‰“å° \"127.5 MiB\"\n"
+"print(size) # 打å°â€œ127.5 MiBâ€\n"
"[/codeblock]"
#: doc/classes/String.xml
@@ -67500,6 +68418,11 @@ msgid ""
"code]. See also [method dedent] to remove indentation.\n"
"[b]Note:[/b] Empty lines are kept empty."
msgstr ""
+"返回该字符串的副本,其中æ¯ä¸€è¡Œéƒ½ä½¿ç”¨å‰ç¼€ [code]prefix[/code] 进行缩进。\n"
+"例如,字符串å¯ä»¥ä½¿ç”¨ [code]\"\\t\\t\"[/code] æ¥ç¼©è¿›ä¸¤ä¸ªåˆ¶è¡¨ç¬¦ï¼Œæˆ–者使用 "
+"[code]\" \"[/code] 缩进四个空格。å‰ç¼€å¯ä»¥æ˜¯ä»»ä½•字符,所以也å¯ä»¥ç”¨ "
+"[code]\"#\"[/code] ç­‰å‰ç¼€æ³¨é‡ŠæŽ‰å­—符串。移除缩进请å‚阅 [method dedent]。\n"
+"[b]注æ„:[/b]ç©ºè¡Œä¼šä¿æŒä¸ºç©ºã€‚"
#: doc/classes/String.xml
msgid ""
@@ -67596,9 +68519,19 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
-msgstr "返回一个使用JSON标准转义的特殊字符的字符串的副本。"
+msgstr "返回使用 JSON 标准对特殊字符进行转义åŽçš„字符串副本。"
#: doc/classes/String.xml
msgid "Returns a number of characters from the left of the string."
@@ -67867,7 +68800,6 @@ msgid "Returns a simplified canonical path."
msgstr "返回简化的规范路径。"
#: doc/classes/String.xml
-#, fuzzy
msgid ""
"Splits the string by a [code]delimiter[/code] string and returns an array of "
"the substrings. The [code]delimiter[/code] can be of any length.\n"
@@ -67891,6 +68823,7 @@ msgstr ""
"[code]delimiter[/code] å¯ä»¥æ˜¯ä»»æ„长度。\n"
"如果指定了 [code]maxsplit[/code],它定义了从左边到 [code]maxsplit[/code] 的分"
"割次数。默认值 [code]0[/code] 表示所有项目都被拆分。\n"
+"如果你åªéœ€è¦è¯¥æ•°ç»„中的æŸä¸ªå…ƒç´ ï¼Œ[method get_slice] 是一个效率更高的选项。\n"
"例å­ï¼š\n"
"[codeblock]\n"
"var some_string = \"One,Two,Three,Four\"\n"
@@ -70243,6 +71176,10 @@ msgid ""
"backend. In GLES2, their data can be accessed via scripting, but there is no "
"way to render them in a hardware-accelerated manner."
msgstr ""
+"Texture3D 是三维的 [Texture],具有宽度ã€é«˜åº¦ã€æ·±åº¦ã€‚å¦è¯·å‚è§ "
+"[TextureArray]。\n"
+"[b]注æ„:[/b]在ç€è‰²å™¨ä¸­å¯¹ [Texture3D] 的采样åªèƒ½åœ¨ GLES3 åŽç«¯ä¸­è¿›è¡Œã€‚在 "
+"GLES2 ä¸­ï¼Œå¯æ˜¯é€šè¿‡è„šæœ¬è®¿é—®å…¶ä¸­çš„æ•°æ®ï¼Œä½†æ— æ³•通过硬件加速渲染。"
#: doc/classes/Texture3D.xml
msgid ""
@@ -70260,7 +71197,6 @@ msgid "Array of textures stored in a single primitive."
msgstr "存储在å•ä¸ªåŸºå…ƒä¸­çš„çº¹ç†æ•°ç»„。"
#: doc/classes/TextureArray.xml
-#, fuzzy
msgid ""
"[TextureArray]s store an array of [Image]s in a single [Texture] primitive. "
"Each layer of the texture array has its own mipmap chain. This makes it is a "
@@ -70299,9 +71235,10 @@ msgid ""
"way to render them in a hardware-accelerated manner."
msgstr ""
"[TextureArray] 在å•个 [Texture] 基本å•元中存储一个 [Image] æ•°ç»„ã€‚çº¹ç†æ•°ç»„çš„æ¯"
-"一层都有自己的多级æ¸è¿œçº¹ç†é“¾ã€‚这使得它æˆä¸ºçº¹ç†å›¾é›†å¾ˆå¥½çš„æ›¿ä»£å“。\n"
+"一层都有自己的多级æ¸è¿œçº¹ç†é“¾ã€‚这使得它æˆä¸ºçº¹ç†å›¾é›†å¾ˆå¥½çš„æ›¿ä»£å“。å¦è¯·å‚阅 "
+"[Texture3D]。\n"
"[TextureArray] 必须使用ç€è‰²å™¨æ¥æ˜¾ç¤ºã€‚在把你的文件导入为 [TextureArray] 并设置"
-"适当的水平和垂直切片åŽï¼Œé€šè¿‡æŠŠå®ƒè®¾ç½®ä¸ºç€è‰²å™¨ uniform æ¥æ˜¾ç¤ºå®ƒï¼Œä¾‹å¦‚。\n"
+"适当的水平和垂直切片åŽï¼Œé€šè¿‡æŠŠå®ƒè®¾ç½®ä¸ºç€è‰²å™¨ uniform æ¥æ˜¾ç¤ºå®ƒï¼Œä¾‹å¦‚(2D):\n"
"[codeblock]\n"
"shader_type canvas_item;\n"
"\n"
@@ -70313,7 +71250,21 @@ msgstr ""
"}\n"
"[/codeblock]\n"
"设置整数 uniform“indexâ€ï¼Œä»¥æ˜¾ç¤ºç”±å¯¼å…¥å™¨ä¸­çš„ Horizontal å’Œ Vertical Slices 定"
-"义的纹ç†çš„特定部分。"
+"义的纹ç†çš„特定部分。\n"
+"[b]注æ„:[/b]在 3D ä¸­å¯¹çº¹ç†æ•°ç»„中的å照率纹ç†è¿›è¡Œé‡‡æ ·æ—¶ï¼Œåº”该使用 sRGB -> 线"
+"性转æ¢çš„æç¤ºï¼ˆ[code]hint_albedo[/code]),防止颜色看起æ¥è¤ªè‰²ï¼š\n"
+"[codeblock]\n"
+"shader_type spatial;\n"
+"\n"
+"uniform sampler2DArray tex : hint_albedo;\n"
+"uniform int index;\n"
+"\n"
+"void fragment() {\n"
+" ALBEDO = texture(tex, vec3(UV.x, UV.y, float(index)));\n"
+"}\n"
+"[/codeblock]\n"
+"[b]注æ„:[/b]åªæœ‰ GLES3 åŽç«¯æ‰èƒ½å¯¹ [TextureArray] 进行采样。在 GLES2 中,å¯ä»¥"
+"使用脚本获å–其中的数æ®ï¼Œä½†æ— æ³•进行硬件加速渲染。"
#: doc/classes/TextureArray.xml
msgid ""
@@ -70814,7 +71765,7 @@ msgstr ""
#: doc/classes/Theme.xml
msgid "$DOCS_URL/tutorials/ui/gui_skinning.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/ui/gui_skinning.html"
#: doc/classes/Theme.xml
msgid "Clears all values on the theme."
@@ -71294,11 +72245,8 @@ msgstr ""
"é™åˆ¶ã€‚"
#: doc/classes/Thread.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/performance/threads/thread_safe_apis.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/performance/threads/"
-"thread_safe_apis.html"
+msgstr "$DOCS_URL/tutorials/performance/threads/thread_safe_apis.html"
#: doc/classes/Thread.xml
msgid ""
@@ -71399,10 +72347,8 @@ msgstr ""
"处的å•å…ƒæ ¼åæ ‡ä¼šè¢«ç¼–ç ä¸º [code]metadata[/code]。"
#: doc/classes/TileMap.xml doc/classes/TileSet.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/2d/using_tilemaps.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/2d/using_tilemaps.html"
+msgstr "$DOCS_URL/tutorials/2d/using_tilemaps.html"
#: doc/classes/TileMap.xml doc/classes/TileSet.xml
msgid "https://godotengine.org/asset-library/asset/111"
@@ -71500,8 +72446,9 @@ msgstr ""
"å¯ä»¥é€‰æ‹©å¿½ç•¥å›¾å—地图的åŠå移。"
#: doc/classes/TileMap.xml
+#, fuzzy
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -71536,10 +72483,13 @@ msgstr ""
"[/codeblock]"
#: doc/classes/TileMap.xml
+#, fuzzy
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -71663,28 +72613,26 @@ msgid ""
msgstr "陿€ä½“碰撞的摩擦值,å‚阅[code]collision_use_kinematic[/code]。"
#: doc/classes/TileMap.xml
-#, fuzzy
msgid ""
"The collision layer(s) for all colliders in the TileMap. See [url=$DOCS_URL/"
"tutorials/physics/physics_introduction.html#collision-layers-and-"
"masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""
-"图å—地图中所有碰撞器的碰撞层。更多信æ¯è¯·å‚阅文档中的[url=https://docs."
-"godotengine.org/zh_CN/stable/tutorials/physics/physics_introduction."
-"html#collision-layers-and-masks]碰撞层和掩ç [/url]。"
+"图å—地图中所有碰撞器的碰撞层。更多信æ¯è¯·å‚阅文档中的[url=$DOCS_URL/tutorials/"
+"physics/physics_introduction.html#collision-layers-and-masks]《碰撞层与掩ç ã€‹"
+"[/url]。"
#: doc/classes/TileMap.xml
-#, fuzzy
msgid ""
"The collision mask(s) for all colliders in the TileMap. See [url=$DOCS_URL/"
"tutorials/physics/physics_introduction.html#collision-layers-and-"
"masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""
-"图å—地图中所有碰撞器的碰撞掩ç ã€‚更多信æ¯è¯·å‚阅文档中的[url=https://docs."
-"godotengine.org/zh_CN/stable/tutorials/physics/physics_introduction."
-"html#collision-layers-and-masks]碰撞层和掩ç [/url]。"
+"图å—地图中所有碰撞器的碰撞掩ç ã€‚更多信æ¯è¯·å‚阅文档中的[url=$DOCS_URL/"
+"tutorials/physics/physics_introduction.html#collision-layers-and-masks]《碰撞"
+"层与掩ç ã€‹[/url]。"
#: doc/classes/TileMap.xml
msgid ""
@@ -71779,11 +72727,11 @@ msgstr "è‡ªå®šä¹‰æ–¹å‘æ¨¡å¼ã€‚"
#: doc/classes/TileMap.xml
msgid "Half offset on the X coordinate."
-msgstr "Xåæ ‡ä¸Šçš„一åŠå移。"
+msgstr "X åæ ‡ä¸Šçš„åŠå移。"
#: doc/classes/TileMap.xml
msgid "Half offset on the Y coordinate."
-msgstr "Yåæ ‡ä¸Šçš„一åŠå移。"
+msgstr "Y åæ ‡ä¸Šçš„åŠå移。"
#: doc/classes/TileMap.xml
msgid "Half offset disabled."
@@ -71791,11 +72739,11 @@ msgstr "ç¦ç”¨åŠå移。"
#: doc/classes/TileMap.xml
msgid "Half offset on the X coordinate (negative)."
-msgstr "Xåæ ‡ä¸Šçš„åŠå移,负数。"
+msgstr "X åæ ‡ä¸Šçš„åŠå移(负数)。"
#: doc/classes/TileMap.xml
msgid "Half offset on the Y coordinate (negative)."
-msgstr "Yåæ ‡ä¸Šçš„åŠå移,负数。"
+msgstr "Y åæ ‡ä¸Šçš„åŠå移(负数)。"
#: doc/classes/TileMap.xml
msgid "Tile origin at its top-left corner."
@@ -71819,9 +72767,9 @@ msgid ""
"tiles, each consisting of a sprite and optional collision shapes.\n"
"Tiles are referenced by a unique integer ID."
msgstr ""
-"图å—集是[TileMap]图å—地图的一个图å—库。它包å«å›¾å—的列表,æ¯ä¸ªå›¾å—由一个精çµå’Œ"
-"å¯é€‰çš„碰撞形状组æˆã€‚\n"
-"图å—由唯一的整数ID引用。"
+"图å—集是 [TileMap] 的图å—库。它包å«ä¸€ç»„图å—,æ¯ä¸ªå›¾å—都由一个精çµå’Œå¯é€‰çš„碰撞"
+"形状组æˆã€‚\n"
+"图å—由唯一的整数 ID 引用。"
#: doc/classes/TileSet.xml
msgid ""
@@ -71836,7 +72784,7 @@ msgstr ""
#: doc/classes/TileSet.xml
msgid "Clears all bitmask information of the autotile."
-msgstr "清除自动图å—的所有bit使ީç ä¿¡æ¯ã€‚"
+msgstr "清除自动图å—çš„æ‰€æœ‰ä½æŽ©ç ä¿¡æ¯ã€‚"
#: doc/classes/TileSet.xml
msgid ""
@@ -71851,7 +72799,7 @@ msgstr ""
#: doc/classes/TileSet.xml
msgid "Returns the [enum BitmaskMode] of the autotile."
-msgstr "返回自动图å—çš„[enum BitmaskMode]bitä½æŽ©ç æ¨¡å¼ã€‚"
+msgstr "返回自动图å—çš„ [enum BitmaskMode] ä½æŽ©ç æ¨¡å¼ã€‚"
#: doc/classes/TileSet.xml
msgid ""
@@ -71893,8 +72841,8 @@ msgid ""
"picked."
msgstr ""
"è¿”å›žæŒ‡å®šåæ ‡è‡ªåЍ图å—中的å­å›¾å±‚的优先级。\n"
-"当一个以上的å­å›¾å—具有相åŒçš„bit使ީç å€¼æ—¶ï¼ŒæœŸä¸­ä¸€ä¸ªå°†è¢«éšæœºæŒ‘é€‰å‡ºæ¥ï¼Œè¿›è¡Œç»˜"
-"制。它的优先级将决定被选中的频率。"
+"当一个以上的å­å›¾å—具有相åŒçš„使ީç å€¼æ—¶ï¼ŒæœŸä¸­ä¸€ä¸ªå°†è¢«éšæœºæŒ‘é€‰å‡ºæ¥ï¼Œè¿›è¡Œç»˜åˆ¶ã€‚"
+"它的优先级将决定被选中的频率。"
#: doc/classes/TileSet.xml
msgid ""
@@ -71926,8 +72874,8 @@ msgid ""
"represent it in the TileSet editor."
msgstr ""
"设置在图集或自动图å—中作为图标的å­å›¾å±‚ï¼Œå¹¶æŒ‡å®šå…¶åæ ‡ã€‚\n"
-"定义为图标的å­å›¾å—,将在图集或自动图å—çš„bit使ީç ä¿¡æ¯ä¸å®Œæ•´æ—¶ï¼Œè¢«ç”¨ä½œå¤‡ç”¨ã€‚它"
-"也被用æ¥åœ¨å›¾å—集编辑器中表示它。"
+"定义为图标的å­å›¾å—,将在图集或自动图å—çš„ä½æŽ©ç ä¿¡æ¯ä¸å®Œæ•´æ—¶ï¼Œè¢«ç”¨ä½œå¤‡ç”¨ã€‚它也"
+"被用æ¥åœ¨å›¾å—集编辑器中表示它。"
#: doc/classes/TileSet.xml
msgid ""
@@ -71957,8 +72905,8 @@ msgid ""
"picked."
msgstr ""
"è®¾ç½®ä¸€ä¸ªè‡ªå¸¦åæ ‡çš„å­å›¾å—的优先级。\n"
-"当多个å­å›¾å—有相åŒçš„bit使ީç å€¼æ—¶ï¼Œå…¶ä¸­ä¹‹ä¸€å°†è¢«éšæœºæŒ‘é€‰å‡ºæ¥è¿›è¡Œç»˜åˆ¶ã€‚它的优先"
-"级决定被选中的频率。"
+"当多个å­å›¾å—有相åŒçš„使ީç å€¼æ—¶ï¼Œå…¶ä¸­ä¹‹ä¸€å°†è¢«éšæœºæŒ‘é€‰å‡ºæ¥è¿›è¡Œç»˜åˆ¶ã€‚它的优先级"
+"决定被选中的频率。"
#: doc/classes/TileSet.xml
msgid ""
@@ -71972,7 +72920,7 @@ msgstr "清除所有图å—。"
#: doc/classes/TileSet.xml
msgid "Creates a new tile with the given ID."
-msgstr "用给定的ID创建一个新的图å—。"
+msgstr "用给定的 ID 创建一个新的图å—。"
#: doc/classes/TileSet.xml
msgid "Returns the first tile matching the given name."
@@ -71982,15 +72930,15 @@ msgstr "返回与给定å称相匹é…的第一个图å—。"
msgid ""
"Returns the ID following the last currently used ID, useful when creating a "
"new tile."
-msgstr "返回当å‰ä½¿ç”¨çš„æœ€åŽä¸€ä¸ªID之åŽçš„IDï¼Œåœ¨åˆ›å»ºæ–°å›¾å—æ—¶å¾ˆæœ‰ç”¨ã€‚"
+msgstr "返回当å‰ä½¿ç”¨çš„æœ€åŽä¸€ä¸ª ID 之åŽçš„ IDï¼Œåœ¨åˆ›å»ºæ–°å›¾å—æ—¶å¾ˆæœ‰ç”¨ã€‚"
#: doc/classes/TileSet.xml
msgid "Returns an array of all currently used tile IDs."
-msgstr "返回当å‰ä½¿ç”¨çš„æ‰€æœ‰å›¾å—ID的数组。"
+msgstr "返回当å‰ä½¿ç”¨çš„æ‰€æœ‰å›¾å— ID 的数组。"
#: doc/classes/TileSet.xml
msgid "Removes the given tile ID."
-msgstr "移除给定的图å—ID。"
+msgstr "ç§»é™¤ç»™å®šçš„å›¾å— ID。"
#: doc/classes/TileSet.xml
msgid "Adds a shape to the tile."
@@ -72178,7 +73126,7 @@ msgstr "设置图å—的绘制索引。"
#: doc/classes/Time.xml
msgid "Time singleton for working with time."
-msgstr ""
+msgstr "ç”¨äºŽå¤„ç†æ—¶é—´çš„ Time å•例。"
#: doc/classes/Time.xml
msgid ""
@@ -72204,9 +73152,21 @@ msgid ""
"or [method get_ticks_msec] for precise time calculation instead, since they "
"are guaranteed to be monotonic (i.e. never decrease)."
msgstr ""
+"Time å•例å¯ä»¥è½¬æ¢å„ç§ä¸åŒæ ¼å¼çš„æ—¶é—´ï¼Œä¹Ÿå¯ä»¥ä»Žç³»ç»ŸèŽ·å–æ—¶é—´ä¿¡æ¯ã€‚\n"
+"这个类尽å¯èƒ½å¤šåœ°ç¬¦åˆäº† ISO 8601 标准。所有日期都éµå¾ªâ€œå¤–推格里历â€ã€‚å› æ­¤ "
+"[code]1582-10-15[/code] çš„å‰ä¸€å¤©æ˜¯ [code]1582-10-14[/code]ï¼Œè€Œä¸æ˜¯ "
+"[code]1582-10-04[/code]。公元 1 å¹´çš„å‰ä¸€å¹´ï¼ˆå³å…¬å…ƒå‰ 1 年)是数字 [code]0[/"
+"code],å†å¾€å‰çš„ä¸€å¹´ï¼ˆå…¬å…ƒå‰ 2 年)是 [code]-1[/code],以此类推。\n"
+"è½¬æ¢æ–¹æ³•å‡è®¾â€œæ—¶åŒºç›¸åŒâ€ï¼Œä¸ä¼šè‡ªåŠ¨å¤„ç†æ—¶åŒºæˆ– DST(å¤ä»¤æ—¶ï¼‰çš„转æ¢ã€‚ä¸ä¼šå¯¹é—°ç§’è¿›"
+"行处ç†ï¼Œå¦‚果需è¦å¿…须手动处ç†ã€‚“Zâ€ç­‰åŽç¼€ä¹Ÿæ²¡æœ‰å¤„ç†ï¼Œä½ éœ€è¦è¿›è¡Œæ‰‹åŠ¨å‰¥é™¤ã€‚\n"
+"ä»Žç³»ç»ŸèŽ·å–æ—¶é—´ä¿¡æ¯æ—¶ï¼Œæ—¶é—´å¯èƒ½æ˜¯æœ¬åœ°æ—¶é—´æˆ– UTC 时间,å–决于 [code]utc[/code] "
+"傿•°ã€‚ä¸è¿‡ [method get_unix_time_from_system] 方法返回的始终是 UTC 时间。\n"
+"[b]é‡è¦ï¼š[/b][code]_from_system[/code] 系列方法使用的是系统始终,用户å¯ä»¥è‡ªè¡Œ"
+"设置。[b]åƒä¸‡ä¸è¦[/b]使用该方法进行精确的时间计算,因为计算结果å¯èƒ½å—到用户或"
+"æ“作系统的自动调整的影å“。精确时间的计算[b]请始终使用[/b] [method "
+"get_ticks_usec] 或 [method get_ticks_msec],å¯ä»¥ä¿è¯å•调性(å³ä¸ä¼šå˜å°ï¼‰ã€‚"
#: doc/classes/Time.xml
-#, fuzzy
msgid ""
"Returns the current date as a dictionary of keys: [code]year[/code], "
"[code]month[/code], [code]day[/code], [code]weekday[/code], and [code]dst[/"
@@ -72214,18 +73174,17 @@ msgid ""
"The returned values are in the system's local time when [code]utc[/code] is "
"false, otherwise they are in UTC."
msgstr ""
-"è¿”å›žå½“å‰æ—¥æœŸæ—¶é—´ä½œä¸ºå…³é”®å­—å­—å…¸:[code]year[/code], [code]month[/code], "
-"[code]day[/code], [code]weekday[/code], [code]dst[/code](å¤ä»¤æ—¶),"
-"[code]hour[/code], [code]minute[/code], [code]second[/code]。"
+"以字典形å¼è¿”å›žå½“å‰æ—¥æœŸï¼ŒåŒ…å«çš„键为:[code]year[/code]ã€[code]month[/code]ã€"
+"[code]day[/code]ã€[code]weekday[/code]ã€[code]dst[/code](å¤ä»¤æ—¶ï¼‰ã€‚\n"
+"[code]utc[/code] ä¸ºå‡æ—¶ï¼Œè¿”回的是系统的本地时间,å¦åˆ™ä¸º UTC 时间。"
#: doc/classes/Time.xml
-#, fuzzy
msgid ""
"Converts the given Unix timestamp to a dictionary of keys: [code]year[/"
"code], [code]month[/code], [code]day[/code], and [code]weekday[/code]."
msgstr ""
-"è¿”å›žå½“å‰æ—¥æœŸä½œä¸ºé”®çš„å­—å…¸:[code]year[/code], [code]month[/code], [code]day[/"
-"code], [code]weekday[/code], [code]dst[/code](å¤ä»¤æ—¶)。"
+"将给定的 Unix 时间戳转æ¢ä¸ºå­—典,包å«çš„键为:[code]year[/code]ã€[code]month[/"
+"code]ã€[code]day[/code]ã€[code]weekday[/code]。"
#: doc/classes/Time.xml
msgid ""
@@ -72233,14 +73192,15 @@ msgid ""
"The returned values are in the system's local time when [code]utc[/code] is "
"false, otherwise they are in UTC."
msgstr ""
+"以 ISO 8601 日期字符串的形å¼è¿”å›žå½“å‰æ—¥æœŸï¼ˆYYYY-MM-DD)。\n"
+"[code]utc[/code] ä¸ºå‡æ—¶ï¼Œè¿”回的是系统的本地时间,å¦åˆ™ä¸º UTC 时间。"
#: doc/classes/Time.xml
msgid ""
"Converts the given Unix timestamp to an ISO 8601 date string (YYYY-MM-DD)."
-msgstr ""
+msgstr "将给定的 Unix 时间戳转æ¢ä¸º ISO 8601 日期字符串(YYYY-MM-DD)。"
#: doc/classes/Time.xml
-#, fuzzy
msgid ""
"Converts the given ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS) to a "
"dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], "
@@ -72249,23 +73209,23 @@ msgid ""
"If [code]weekday[/code] is false, then the [code]weekday[/code] entry is "
"excluded (the calculation is relatively expensive)."
msgstr ""
-"è¿”å›žå½“å‰æ—¥æœŸæ—¶é—´ä½œä¸ºå…³é”®å­—å­—å…¸:[code]year[/code], [code]month[/code], "
-"[code]day[/code], [code]weekday[/code], [code]dst[/code](å¤ä»¤æ—¶),"
-"[code]hour[/code], [code]minute[/code], [code]second[/code]。"
+"将给定的 ISO 8601 日期和时间字符串(YYYY-MM-DDTHH:MM:SS)转æ¢ä¸ºå­—典,包å«çš„é”®"
+"为:[code]year[/code]ã€[code]month[/code]ã€[code]day[/code]ã€[code]weekday[/"
+"code]ã€[code]hour[/code]ã€[code]minute[/code]ã€[code]second[/code]。\n"
+"[code]weekday[/code] ä¸ºå‡æ—¶ï¼Œä¸åŒ…å« [code]weekday[/code] 记录(计算花费相对较"
+"大)。"
#: doc/classes/Time.xml
-#, fuzzy
msgid ""
"Returns the current date as a dictionary of keys: [code]year[/code], "
"[code]month[/code], [code]day[/code], [code]weekday[/code], [code]hour[/"
"code], [code]minute[/code], and [code]second[/code]."
msgstr ""
-"è¿”å›žå½“å‰æ—¥æœŸæ—¶é—´ä½œä¸ºå…³é”®å­—å­—å…¸:[code]year[/code], [code]month[/code], "
-"[code]day[/code], [code]weekday[/code], [code]dst[/code](å¤ä»¤æ—¶),"
-"[code]hour[/code], [code]minute[/code], [code]second[/code]。"
+"以字典形å¼è¿”å›žå½“å‰æ—¥æœŸï¼ŒåŒ…å«çš„键为:[code]year[/code]ã€[code]month[/code]ã€"
+"[code]day[/code]ã€[code]weekday[/code]ã€[code]hour[/code]ã€[code]minute[/"
+"code]ã€[code]second[/code]。"
#: doc/classes/Time.xml
-#, fuzzy
msgid ""
"Converts the given Unix timestamp to a dictionary of keys: [code]year[/"
"code], [code]month[/code], [code]day[/code], and [code]weekday[/code].\n"
@@ -72274,12 +73234,12 @@ msgid ""
"with the exception of Daylight Savings Time as it cannot be determined from "
"the epoch."
msgstr ""
-"获å–与给定UNIX历元时间(以秒为å•ä½)对应的时间值字典。\n"
-"返回的Dictionary值将与[method get_datetime]相åŒï¼Œé™¤äº†Daylight Savings Time,"
-"因为它ä¸èƒ½ä»Žepoch确定。"
+"将给定的 Unix 时间戳转æ¢ä¸ºå­—典,包å«çš„键为: [code]year[/code]ã€[code]month[/"
+"code]ã€[code]day[/code]ã€[code]weekday[/code]。\n"
+"如果 Unix æ—¶é—´æˆ³ä¸ºå½“å‰æ—¶é—´ï¼Œè¿”回的 Dictionary 的值与 [method "
+"get_datetime_dict_from_system] 相åŒï¼ŒåŒºåˆ«æ˜¯æ— æ³•æ ¹æ®çºªå…ƒæŽ¨å®šå¤ä»¤æ—¶ã€‚"
#: doc/classes/Time.xml
-#, fuzzy
msgid ""
"Converts the given dictionary of keys to an ISO 8601 date and time string "
"(YYYY-MM-DDTHH:MM:SS).\n"
@@ -72293,14 +73253,13 @@ msgid ""
"If [code]use_space[/code] is true, use a space instead of the letter T in "
"the middle."
msgstr ""
-"从时间值字典中获å–纪元时间值。\n"
-"[code]datetime[/code] 必须填充以下键:[code]year[/code]ã€[code]month[/code]ã€"
-"[code]day[/code]ã€[code]hour[/code]ã€[code]minute[/code]ã€[code]second[/"
-"code]。\n"
-"如果字典为空,则返回 [code]0[/code]。如果æŸäº›é”®è¢«çœç•¥ï¼Œå®ƒä»¬é»˜è®¤ä¸º UNIX 纪元时"
-"间戳 0(1970-01-01 在 00:00:00 UTC)的等效值。\n"
-"ä½ å¯ä»¥å°† [method get_datetime_from_unix_time] 的输出直接传递给此函数。å¤ä»¤æ—¶ "
-"([code]dst[/code])(如果存在)将被忽略。"
+"将给定的时间值字典转æ¢ä¸º ISO 8601 日期和时间字符串(YYYY-MM-DDTHH:MM:SS)。\n"
+"给定的字典å¯ä»¥åŒ…å«ä»¥ä¸‹é”®ï¼š [code]year[/code]ã€[code]month[/code]ã€[code]day[/"
+"code]ã€[code]hour[/code]ã€[code]minute[/code]ã€[code]second[/code]。其他的记"
+"录(包括 [code]dst[/code])都会被忽略。\n"
+"字典为空时将返回 [code]0[/code]。如果çœç•¥äº†éƒ¨åˆ†é”®ï¼Œé»˜è®¤ä½¿ç”¨ Unix 纪元时间戳 "
+"0(1970-01-01 的 00:00:00)的对应部分。\n"
+"[code]use_space[/code] ä¸ºçœŸæ—¶ï¼Œå°†ä½¿ç”¨ç©ºæ ¼ä»£æ›¿ä¸­é—´çš„å­—æ¯ T。"
#: doc/classes/Time.xml
msgid ""
@@ -72311,6 +73270,10 @@ msgid ""
"If [code]use_space[/code] is true, use a space instead of the letter T in "
"the middle."
msgstr ""
+"以 ISO 8601 日期和时间字符串的形å¼è¿”å›žå½“å‰æ—¥æœŸå’Œæ—¶é—´ï¼ˆYYYY-MM-DDTHH:MM:"
+"SS)。\n"
+"[code]utc[/code] ä¸ºå‡æ—¶ï¼Œè¿”回的是系统的本地时间,å¦åˆ™ä¸º UTC 时间。\n"
+"[code]use_space[/code] ä¸ºçœŸæ—¶ï¼Œå°†ä½¿ç”¨ç©ºæ ¼ä»£æ›¿ä¸­é—´çš„å­—æ¯ T。"
#: doc/classes/Time.xml
msgid ""
@@ -72319,6 +73282,9 @@ msgid ""
"If [code]use_space[/code] is true, use a space instead of the letter T in "
"the middle."
msgstr ""
+"将给定的 Unix 时间戳转æ¢ä¸º ISO 8601 日期和时间字符串(YYYY-MM-DDTHH:MM:"
+"SS)。\n"
+"[code]use_space[/code] ä¸ºçœŸæ—¶ï¼Œå°†ä½¿ç”¨ç©ºæ ¼ä»£æ›¿ä¸­é—´çš„å­—æ¯ T。"
#: doc/classes/Time.xml
msgid ""
@@ -72326,6 +73292,8 @@ msgid ""
"Will always be positive or 0 and uses a 64-bit value (it will wrap after "
"roughly 500 million years)."
msgstr ""
+"返回从引擎å¯åŠ¨å¼€å§‹æ‰€ç»è¿‡çš„æ—¶é—´ï¼Œå•ä½ä¸ºæ¯«ç§’。\n"
+"始终为正数或 0,使用 64 ä½å€¼ï¼ˆä¼šåœ¨çº¦ 5 亿年åŽç»•回)。"
#: doc/classes/Time.xml
msgid ""
@@ -72333,26 +73301,27 @@ msgid ""
"Will always be positive or 0 and uses a 64-bit value (it will wrap after "
"roughly half a million years)."
msgstr ""
+"返回从引擎å¯åŠ¨å¼€å§‹æ‰€ç»è¿‡çš„æ—¶é—´ï¼Œå•ä½ä¸ºå¾®ç§’。\n"
+"始终为正数或 0,使用 64 ä½å€¼ï¼ˆä¼šåœ¨çº¦ 50 万年åŽç»•回)。"
#: doc/classes/Time.xml
-#, fuzzy
msgid ""
"Returns the current time as a dictionary of keys: [code]hour[/code], "
"[code]minute[/code], and [code]second[/code].\n"
"The returned values are in the system's local time when [code]utc[/code] is "
"false, otherwise they are in UTC."
msgstr ""
-"è¿”å›žå½“å‰æ—¥æœŸä½œä¸ºé”®çš„å­—å…¸:[code]year[/code], [code]month[/code], [code]day[/"
-"code], [code]weekday[/code], [code]dst[/code](å¤ä»¤æ—¶)。"
+"以字典的形å¼è¿”å›žå½“å‰æ—¶é—´ï¼ŒåŒ…å«çš„键为:[code]hour[/code]ã€[code]minute[/"
+"code]ã€[code]second[/code]。\n"
+"[code]utc[/code] ä¸ºå‡æ—¶ï¼Œè¿”回的是系统的本地时间,å¦åˆ™ä¸º UTC 时间。"
#: doc/classes/Time.xml
-#, fuzzy
msgid ""
"Converts the given time to a dictionary of keys: [code]hour[/code], "
"[code]minute[/code], and [code]second[/code]."
msgstr ""
-"è¿”å›žå½“å‰æ—¥æœŸä½œä¸ºé”®çš„å­—å…¸:[code]year[/code], [code]month[/code], [code]day[/"
-"code], [code]weekday[/code], [code]dst[/code](å¤ä»¤æ—¶)。"
+"将给定的时间转æ¢ä¸ºå­—典,包å«çš„键为:时 [code]hour[/code]ã€åˆ† [code]minute[/"
+"code]ã€ç§’ [code]second[/code]。"
#: doc/classes/Time.xml
msgid ""
@@ -72360,11 +73329,13 @@ msgid ""
"The returned values are in the system's local time when [code]utc[/code] is "
"false, otherwise they are in UTC."
msgstr ""
+"以 ISO 8601 时间字符串的形å¼è¿”å›žå½“å‰æ—¶é—´ï¼ˆHH:MM:SS)。\n"
+"[code]utc[/code] ä¸ºå‡æ—¶ï¼Œè¿”回的是系统的本地时间,å¦åˆ™ä¸º UTC 时间。"
#: doc/classes/Time.xml
msgid ""
"Converts the given Unix timestamp to an ISO 8601 time string (HH:MM:SS)."
-msgstr ""
+msgstr "将给定的 Unix 时间戳转æ¢ä¸º ISO 8601 时间字符串(HH:MM:SS)。"
#: doc/classes/Time.xml
msgid ""
@@ -72372,9 +73343,11 @@ msgid ""
"[code]name[/code]. The [code]bias[/code] value is the offset from UTC in "
"minutes, since not all time zones are multiples of an hour from UTC."
msgstr ""
+"以字典的形å¼è¿”å›žå½“å‰æ—¶åŒºï¼ŒåŒ…å«çš„键为:[code]bias[/code](å倚)和 "
+"[code]name[/code](å称)。[code]bias[/code] 的值是从 UTC çš„åç§»é‡ï¼Œå•ä½ä¸º"
+"åˆ†ï¼Œå› ä¸ºå¹¶ä¸æ˜¯æ‰€æœ‰æ—¶åŒºä¸Ž UTC 的时间差都是整数å€å°æ—¶ã€‚"
#: doc/classes/Time.xml
-#, fuzzy
msgid ""
"Converts a dictionary of time values to a Unix timestamp.\n"
"The given dictionary can be populated with the following keys: [code]year[/"
@@ -72390,14 +73363,16 @@ msgid ""
"timezone conversion, so the timestamp will be in the same timezone as the "
"given datetime dictionary."
msgstr ""
-"从时间值字典中获å–纪元时间值。\n"
-"[code]datetime[/code] 必须填充以下键:[code]year[/code]ã€[code]month[/code]ã€"
-"[code]day[/code]ã€[code]hour[/code]ã€[code]minute[/code]ã€[code]second[/"
-"code]。\n"
-"如果字典为空,则返回 [code]0[/code]。如果æŸäº›é”®è¢«çœç•¥ï¼Œå®ƒä»¬é»˜è®¤ä¸º UNIX 纪元时"
-"间戳 0(1970-01-01 在 00:00:00 UTC)的等效值。\n"
-"ä½ å¯ä»¥å°† [method get_datetime_from_unix_time] 的输出直接传递给此函数。å¤ä»¤æ—¶ "
-"([code]dst[/code])(如果存在)将被忽略。"
+"将时间值字典转æ¢ä¸º Unix 时间戳。\n"
+"给定的字典å¯ä»¥åŒ…å«ä»¥ä¸‹é”®ï¼š [code]year[/code]ã€[code]month[/code]ã€[code]day[/"
+"code]ã€[code]hour[/code]ã€[code]minute[/code]ã€[code]second[/code]。其他的记"
+"录(包括 [code]dst[/code])都会被忽略。\n"
+"字典为空时将返回 [code]0[/code]。如果çœç•¥äº†éƒ¨åˆ†é”®ï¼Œé»˜è®¤ä½¿ç”¨ Unix 纪元时间戳 "
+"0(1970-01-01 的 00:00:00)的对应部分。\n"
+"ä½ å¯ä»¥å°† [method get_datetime_dict_from_unix_time] 的输出直接传给本函数,得到"
+"的就是最åˆçš„输入。\n"
+"[b]注æ„:[/b]Unix 时间戳通常是 UTC 的。本方法ä¸ä¼šåšä»»ä½•时区转æ¢ï¼Œæ‰€ä»¥æ—¶é—´æˆ³çš„"
+"时区与给定的日期时间字典相åŒã€‚"
#: doc/classes/Time.xml
msgid ""
@@ -72407,6 +73382,10 @@ msgid ""
"timezone conversion, so the timestamp will be in the same timezone as the "
"given datetime string."
msgstr ""
+"将给定的 ISO 8601 日期和/或时间字符串转æ¢ä¸º Unix 时间戳。字符串中å¯ä»¥åªåŒ…嫿—¥"
+"期ã€åªåŒ…嫿—¶é—´ï¼Œä¹Ÿå¯ä»¥ä¸¤è€…都包å«ã€‚\n"
+"[b]注æ„:[/b]Unix 时间戳通常是 UTC 的。本方法ä¸ä¼šåšä»»ä½•时区转æ¢ï¼Œæ‰€ä»¥æ—¶é—´æˆ³çš„"
+"时区与给定的日期时间字符串相åŒã€‚"
#: doc/classes/Time.xml
msgid ""
@@ -72414,85 +73393,87 @@ msgid ""
"UTC. This method is implemented by the operating system and always returns "
"the time in UTC."
msgstr ""
+"返回当å‰çš„ Unix 时间戳,以秒为å•ä½ï¼ŒåŸºäºŽ UTC 系统时间。本方法由æ“作系统实现,"
+"返回的时间总是 UTC 的。"
#: doc/classes/Time.xml
msgid "The month of January, represented numerically as [code]01[/code]."
-msgstr ""
+msgstr "一月份,使用数字 [code]01[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of February, represented numerically as [code]02[/code]."
-msgstr ""
+msgstr "二月份,使用数字 [code]02[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of March, represented numerically as [code]03[/code]."
-msgstr ""
+msgstr "三月份,使用数字 [code]03[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of April, represented numerically as [code]04[/code]."
-msgstr ""
+msgstr "四月份,使用数字 [code]04[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of May, represented numerically as [code]05[/code]."
-msgstr ""
+msgstr "五月份,使用数字 [code]05[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of June, represented numerically as [code]06[/code]."
-msgstr ""
+msgstr "六月份,使用数字 [code]06[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of July, represented numerically as [code]07[/code]."
-msgstr ""
+msgstr "七月份,使用数字 [code]07[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of August, represented numerically as [code]08[/code]."
-msgstr ""
+msgstr "八月份,使用数字 [code]08[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of September, represented numerically as [code]09[/code]."
-msgstr ""
+msgstr "乿œˆä»½ï¼Œä½¿ç”¨æ•°å­— [code]09[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of October, represented numerically as [code]10[/code]."
-msgstr ""
+msgstr "åæœˆä»½ï¼Œä½¿ç”¨æ•°å­— [code]10[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of November, represented numerically as [code]11[/code]."
-msgstr ""
+msgstr "å一月份,使用数字 [code]11[/code] 表示。"
#: doc/classes/Time.xml
msgid "The month of December, represented numerically as [code]12[/code]."
-msgstr ""
+msgstr "å二月份,使用数字 [code]12[/code] 表示。"
#: doc/classes/Time.xml
msgid "The day of the week Sunday, represented numerically as [code]0[/code]."
-msgstr ""
+msgstr "星期日,使用数字 [code]0[/code] 表示。"
#: doc/classes/Time.xml
msgid "The day of the week Monday, represented numerically as [code]1[/code]."
-msgstr ""
+msgstr "星期一,使用数字 [code]1[/code] 表示。"
#: doc/classes/Time.xml
msgid "The day of the week Tuesday, represented numerically as [code]2[/code]."
-msgstr ""
+msgstr "星期二,使用数字 [code]2[/code] 表示。"
#: doc/classes/Time.xml
msgid ""
"The day of the week Wednesday, represented numerically as [code]3[/code]."
-msgstr ""
+msgstr "星期三,使用数字 [code]3[/code] 表示。"
#: doc/classes/Time.xml
msgid ""
"The day of the week Thursday, represented numerically as [code]4[/code]."
-msgstr ""
+msgstr "星期四,使用数字 [code]4[/code] 表示。"
#: doc/classes/Time.xml
msgid "The day of the week Friday, represented numerically as [code]5[/code]."
-msgstr ""
+msgstr "星期五,使用数字 [code]5[/code] 表示。"
#: doc/classes/Time.xml
msgid ""
"The day of the week Saturday, represented numerically as [code]6[/code]."
-msgstr ""
+msgstr "星期六,使用数字 [code]6[/code] 表示。"
#: doc/classes/Timer.xml
msgid "A countdown timer."
@@ -72505,8 +73486,8 @@ msgid ""
"[b]Note:[/b] To create a one-shot timer without instantiating a node, use "
"[method SceneTree.create_timer]."
msgstr ""
-"å¯ä»¥è®¾ç½®ä¸ºé‡å¤æˆ– \"一次性\" 模å¼ã€‚\n"
-"[b]注æ„:[/b]è¦åˆ›å»ºä¸€ä¸ªä¸€æ¬¡æ€§å®šæ—¶å™¨è€Œä¸éœ€è¦å®žä¾‹åŒ–一个节点,请使用[method "
+"å¯ä»¥è®¾ç½®ä¸ºé‡å¤æˆ–â€œä¸€æ¬¡æ€§â€æ¨¡å¼ã€‚\n"
+"[b]注æ„:[/b]è¦åˆ›å»ºä¸€æ¬¡æ€§å®šæ—¶å™¨è€Œä¸éœ€è¦å®žä¾‹åŒ–一个节点,请使用 [method "
"SceneTree.create_timer]。"
#: doc/classes/Timer.xml
@@ -72792,8 +73773,8 @@ msgid ""
"Constructs a Transform from four [Vector3] values (matrix columns). Each "
"axis corresponds to local basis vectors (some of which may be scaled)."
msgstr ""
-"从四个 [Vector3] 值(å³çŸ©é˜µåˆ—ï¼‰æž„é€ ä¸€ä¸ªå˜æ¢ã€‚æ¯ä¸ªè½´å¯¹åº”于局部基础å‘é‡ï¼Œå…¶ä¸­ä¸€"
-"些å¯èƒ½è¢«ç¼©æ”¾ã€‚"
+"从四个 [Vector3] 值(å³çŸ©é˜µåˆ—ï¼‰æž„é€ ä¸€ä¸ªå˜æ¢ã€‚æ¯ä¸ªè½´å¯¹åº”于局部基å‘é‡ï¼Œå…¶ä¸­ä¸€äº›"
+"å¯èƒ½è¢«ç¼©æ”¾ã€‚"
#: doc/classes/Transform.xml
msgid "Constructs a Transform from a [Basis] and [Vector3]."
@@ -72821,20 +73802,22 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr "è¿”å›žå˜æ¢çš„å值,å‡è®¾å˜æ¢æ˜¯ç”±æ—‹è½¬ã€ç¼©æ”¾å’Œå¹³ç§»ç»„æˆçš„。"
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
-msgstr "通过æƒé‡ï¼Œå³åœ¨0.0到1.0çš„èŒƒå›´å†…ï¼Œå°†å˜æ¢ä¸Žå…¶ä»–å˜æ¢è¿›è¡Œæ’值。"
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
+msgstr ""
+"è¿”å›žåœ¨æ­¤å˜æ¢å’Œå¦ä¸€ä¸ªå˜æ¢ä¹‹é—´é€šè¿‡ç»™å®šçš„[code]weight[/code]æ’å€¼çš„å˜æ¢ï¼ŒèŒƒå›´ä¸º"
+"0.0到1.0。"
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
"è¿”å›žå˜æ¢çš„å值,å‡è®¾è¯¥å˜æ¢æ˜¯ç”±æ—‹è½¬å’Œå¹³ç§»ç»„æˆçš„ï¼ˆæ²¡æœ‰ç¼©æ”¾ï¼Œå¯¹æœ‰ç¼©æ”¾çš„å˜æ¢ä½¿ç”¨ "
-"affine_inverse)。"
+"[method affine_inverse])。"
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
@@ -72859,24 +73842,25 @@ msgstr ""
"[code]target[/code]å’Œ[code]up[/code]å‘é‡çš„轴旋转,æ¥å®Œå…¨ä¸Žç›®æ ‡å¯¹é½ã€‚\n"
"æ“作是在全局空间进行的。"
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
-msgstr "返回具有基于正交,å³90度,和归一化轴å‘é‡çš„å˜æ¢ã€‚"
+"axis vectors (scale of 1 or -1)."
+msgstr "返回使用正交基(90 度)以åŠå½’一化的轴å‘é‡ï¼ˆç¼©æ”¾ä¸º 1 或 -1ï¼‰çš„å˜æ¢ã€‚"
#: doc/classes/Transform.xml
msgid ""
"Rotates the transform around the given axis by the given angle (in radians), "
"using matrix multiplication. The axis must be a normalized vector."
msgstr ""
-"使用矩阵乘法,围绕给定的轴旋转给定的角度,å³å¼§åº¦ã€‚轴必须是一个归一化的å‘é‡ã€‚"
+"ä½¿ç”¨çŸ©é˜µä¹˜æ³•ï¼Œå°†å˜æ¢å›´ç»•给定的轴旋转给定的角度(å•ä½ä¸ºå¼§åº¦ï¼‰ã€‚轴必须是归一化"
+"çš„å‘é‡ã€‚"
#: doc/classes/Transform.xml
msgid ""
"Scales basis and origin of the transform by the given scale factor, using "
"matrix multiplication."
-msgstr "ä½¿ç”¨çŸ©é˜µä¹˜æ³•ï¼Œé€šè¿‡ç»™å®šçš„ç¼©æ”¾ç³»æ•°ï¼Œå¯¹å˜æ¢çš„基础和原点进行缩放。"
+msgstr "ä½¿ç”¨çŸ©é˜µä¹˜æ³•ï¼Œé€šè¿‡ç»™å®šçš„ç¼©æ”¾ç³»æ•°ï¼Œå¯¹å˜æ¢çš„基和原点进行缩放。"
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
@@ -72885,15 +73869,16 @@ msgid ""
"Unlike [method rotated] and [method scaled], this does not use matrix "
"multiplication."
msgstr ""
-"ç›¸å¯¹äºŽå˜æ¢çš„基础å‘é‡ï¼Œå°†å˜æ¢æŒ‰ç»™å®šçš„åç§»é‡è¿›è¡Œå¹³ç§»ã€‚\n"
-"与[method rotated]å’Œ[method scaled]ä¸åŒï¼Œå®ƒä¸ä½¿ç”¨çŸ©é˜µä¹˜æ³•。"
+"ç›¸å¯¹äºŽå˜æ¢çš„基å‘é‡ï¼Œå°†å˜æ¢æŒ‰ç»™å®šçš„åç§»é‡è¿›è¡Œå¹³ç§»ã€‚\n"
+"与 [method rotated] å’Œ [method scaled] ä¸åŒï¼Œå®ƒä¸ä½¿ç”¨çŸ©é˜µä¹˜æ³•。"
#: doc/classes/Transform.xml
msgid ""
"Transforms the given [Vector3], [Plane], [AABB], or [PoolVector3Array] by "
"this transform."
msgstr ""
-"é€šè¿‡è¿™ä¸ªå˜æ¢å¯¹æŒ‡å®šçš„[Vector3]ã€[Plane]ã€[AABB]或[PoolVector3Array]è¿›è¡Œå˜æ¢ã€‚"
+"é€šè¿‡è¿™ä¸ªå˜æ¢å¯¹æŒ‡å®šçš„ [Vector3]ã€[Plane]ã€[AABB]ã€[PoolVector3Array] 进行å˜"
+"æ¢ã€‚"
#: doc/classes/Transform.xml
msgid ""
@@ -72915,8 +73900,8 @@ msgid ""
"and Z axis. These vectors can be interpreted as the basis vectors of local "
"coordinate system traveling with the object."
msgstr ""
-"基础是一个包å«3个[Vector3]作为其列的矩阵:Xè½´ã€Yè½´å’ŒZ轴。这些å‘é‡å¯ä»¥è¢«è§£é‡Šä¸º"
-"éšç‰©ä½“ç§»åŠ¨çš„å±€éƒ¨åæ ‡ç³»çš„基础å‘é‡ã€‚"
+"åŸºæ˜¯ä¸€ä¸ªçŸ©é˜µï¼ŒåŒ…å« 3 个 [Vector3] 作为其列:X è½´ã€Y è½´ã€Z 轴。这些å‘é‡å¯ä»¥è¢«"
+"解释为éšç‰©ä½“ç§»åŠ¨çš„å±€éƒ¨åæ ‡ç³»çš„基å‘é‡ã€‚"
#: doc/classes/Transform.xml
msgid ""
@@ -72934,15 +73919,15 @@ msgstr ""
#: doc/classes/Transform.xml
msgid "[Transform] with mirroring applied perpendicular to the YZ plane."
-msgstr "[Transform] å˜æ¢ä¸Žåž‚直于YZå¹³é¢çš„镜åƒåº”用。"
+msgstr "[Transform] å˜æ¢ä¸Žåž‚直于 YZ å¹³é¢çš„镜åƒåº”用。"
#: doc/classes/Transform.xml
msgid "[Transform] with mirroring applied perpendicular to the XZ plane."
-msgstr "[Transform] å˜æ¢ä¸Žåž‚直于XZå¹³é¢çš„镜åƒåº”用。"
+msgstr "[Transform] å˜æ¢ä¸Žåž‚直于 XZ å¹³é¢çš„镜åƒåº”用。"
#: doc/classes/Transform.xml
msgid "[Transform] with mirroring applied perpendicular to the XY plane."
-msgstr "[Transform]å˜æ¢ä¸Žåž‚直于XYå¹³é¢çš„镜åƒåº”用。"
+msgstr "[Transform] å˜æ¢ä¸Žåž‚直于 XY å¹³é¢çš„镜åƒåº”用。"
#: doc/classes/Transform2D.xml
msgid "2D transformation (2×3 matrix)."
@@ -72982,7 +73967,7 @@ msgid ""
"Returns a vector transformed (multiplied) by the basis matrix.\n"
"This method does not account for translation (the origin vector)."
msgstr ""
-"返回ç»è¿‡åŸºç¡€çŸ©é˜µå˜æ¢ï¼ˆç›¸ä¹˜ï¼‰çš„å‘é‡ã€‚\n"
+"返回ç»è¿‡åŸºçŸ©é˜µå˜æ¢ï¼ˆç›¸ä¹˜ï¼‰çš„å‘é‡ã€‚\n"
"该方法ä¸è€ƒè™‘平移(原点å‘é‡ï¼‰ã€‚"
#: doc/classes/Transform2D.xml
@@ -72990,7 +73975,7 @@ msgid ""
"Returns a vector transformed (multiplied) by the inverse basis matrix.\n"
"This method does not account for translation (the origin vector)."
msgstr ""
-"返回ç»è¿‡é€†åŸºç¡€çŸ©é˜µå˜æ¢ï¼ˆç›¸ä¹˜ï¼‰çš„å‘é‡ã€‚\n"
+"返回ç»è¿‡é€†åŸºçŸ©é˜µå˜æ¢ï¼ˆç›¸ä¹˜ï¼‰çš„å‘é‡ã€‚\n"
"该方法ä¸è€ƒè™‘平移(原点å‘é‡ï¼‰ã€‚"
#: doc/classes/Transform2D.xml
@@ -73007,29 +73992,6 @@ msgstr "返回缩放。"
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-"è¿”å›žåœ¨æ­¤å˜æ¢å’Œå¦ä¸€ä¸ªå˜æ¢ä¹‹é—´é€šè¿‡ç»™å®šçš„[code]weight[/code]æ’å€¼çš„å˜æ¢ï¼ŒèŒƒå›´ä¸º"
-"0.0到1.0。"
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-"è¿”å›žå˜æ¢çš„å值,å‡è®¾è¯¥å˜æ¢æ˜¯ç”±æ—‹è½¬å’Œå¹³ç§»ç»„æˆçš„ï¼ˆæ²¡æœ‰ç¼©æ”¾ï¼Œå¯¹æœ‰ç¼©æ”¾çš„å˜æ¢ä½¿ç”¨ "
-"[method affine_inverse])。"
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr "返回以正交,å³90åº¦ï¼Œä¸ºåŸºç¡€çš„å˜æ¢ï¼Œä»¥åŠå½’一化的轴å‘é‡ï¼Œç¼©æ”¾ä¸º1或-1。"
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr "ä½¿ç”¨çŸ©é˜µä¹˜æ³•ï¼Œå°†å˜æ¢æ—‹è½¬ç»™å®šçš„角度,å³å¼§åº¦ã€‚"
@@ -73043,7 +74005,7 @@ msgstr "使用矩阵乘法,用给定的缩放系数æ¥ç¼©æ”¾å˜æ¢ã€‚"
msgid ""
"Transforms the given [Vector2], [Rect2], or [PoolVector2Array] by this "
"transform."
-msgstr "é€šè¿‡æ­¤å˜æ¢å¯¹æŒ‡å®šçš„[Vector2]ã€[Rect2]或[PoolVector2Array]è¿›è¡Œå˜æ¢ã€‚"
+msgstr "é€šè¿‡æ­¤å˜æ¢å¯¹æŒ‡å®šçš„ [Vector2]ã€[Rect2]ã€[PoolVector2Array] è¿›è¡Œå˜æ¢ã€‚"
#: doc/classes/Transform2D.xml
msgid ""
@@ -73071,7 +74033,7 @@ msgid ""
"When applied to other data structures, [constant IDENTITY] performs no "
"transformation."
msgstr ""
-"æ²¡æœ‰åº”ç”¨å¹³ç§»ã€æ—‹è½¬ã€ç¼©æ”¾çš„å•ä½ [Transform2D]。当应用于其他数æ®ç»“构时,"
+"æ²¡æœ‰åº”ç”¨å¹³ç§»ã€æ—‹è½¬ã€ç¼©æ”¾çš„æ’ç­‰ [Transform2D]。当应用于其他数æ®ç»“构时,"
"[constant IDENTITY] 䏿‰§è¡Œå˜æ¢ã€‚"
#: doc/classes/Transform2D.xml
@@ -73093,15 +74055,12 @@ msgid ""
msgstr "翻译是å¯ä»¥æŒ‰éœ€åŠ è½½å’Œå¸è½½çš„资æºï¼Œå°†ä¸€ä¸ªå­—符串映射到å¦ä¸€ä¸ªå­—符串。"
#: doc/classes/Translation.xml doc/classes/TranslationServer.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/i18n/internationalizing_games.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/i18n/"
-"internationalizing_games.html"
+msgstr "$DOCS_URL/tutorials/i18n/internationalizing_games.html"
#: doc/classes/Translation.xml doc/classes/TranslationServer.xml
msgid "$DOCS_URL/tutorials/i18n/locales.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/i18n/locales.html"
#: doc/classes/Translation.xml
msgid "Virtual method to override [method get_message]."
@@ -75616,10 +76575,8 @@ msgstr ""
"[Mutex] æ¥é”定它。"
#: doc/classes/Variant.xml
-#, fuzzy
msgid "$DOCS_URL/development/cpp/variant_class.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/development/cpp/variant_class.html"
+msgstr "$DOCS_URL/development/cpp/variant_class.html"
#: doc/classes/VBoxContainer.xml
msgid "Vertical box container."
@@ -75719,19 +76676,20 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr "返回从由给定法线定义的平é¢ä¸Šâ€œåå¼¹â€çš„å‘é‡ã€‚"
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
-msgstr "返回所有分é‡å››èˆäº”å…¥åŽçš„å‘é‡ï¼Œæœæ­£æ— ç©·å¤§ã€‚"
+msgstr "返回一个新的å‘é‡ï¼Œæ‰€æœ‰çš„分é‡éƒ½æ˜¯å››èˆäº”å…¥çš„ï¼Œå‘æ­£æ— ç©·å¤§ã€‚"
#: doc/classes/Vector2.xml
-#, fuzzy
msgid ""
"Deprecated, please use [method limit_length] instead.\n"
"Returns the vector with a maximum length by limiting its length to "
"[code]length[/code]."
-msgstr "通过é™åˆ¶å…¶é•¿åº¦ä¸º[code]length[/code],返回具有最大长度的å‘é‡ã€‚"
+msgstr ""
+"已弃用,请æ¢ç”¨ [method limit_length]。\n"
+"通过é™åˆ¶å…¶é•¿åº¦ä¸º [code]length[/code],返回具有最大长度的å‘é‡ã€‚"
#: doc/classes/Vector2.xml
msgid "Returns the cross product of this vector and [code]with[/code]."
@@ -75792,11 +76750,11 @@ msgstr ""
"(180度角)和[code]1.0[/code](0度角)之间,当å‘é‡å¯¹é½ã€‚\n"
"[b]注æ„:[/b][code]a.dot(b)[/code]ç­‰åŒäºŽ[code]b.dot(a)[/code]。"
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
-msgstr "返回所有分é‡å››èˆäº”å…¥åŽçš„å‘é‡ï¼Œæœè´Ÿæ— ç©·å¤§ã€‚"
+msgstr "返回一个新的å‘é‡ï¼Œæ‰€æœ‰çš„å‘é‡éƒ½è¢«å››èˆäº”入,å‘负无穷大。"
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -75842,10 +76800,11 @@ msgstr ""
"返回这个å‘é‡ä¸Ž[code]to[/code]之间线性æ’值的结果,æ’值é‡ä¸º[code]weight[/"
"code]。[code]weight[/code]的范围是0.0到1.0,表示æ’值的数é‡ã€‚"
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr "å‘[code]to[/code]移动固定的[code]delta[/code]é‡ã€‚"
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -75870,12 +76829,16 @@ msgstr ""
"返回一个由这个å‘é‡çš„[code]modv[/code]分é‡å’Œ[method @GDScript.fposmod]分é‡ç»„æˆ"
"çš„å‘é‡ã€‚"
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
msgstr "返回投射到å‘é‡[code]b[/code]çš„å‘é‡ã€‚"
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+#, fuzzy
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr "返回从给定法线定义的平é¢åå°„çš„å‘é‡ã€‚"
#: doc/classes/Vector2.xml
@@ -75884,17 +76847,20 @@ msgid ""
"@GDScript.deg2rad]."
msgstr "返回旋转了[code]phi[/code]弧度的å‘é‡ã€‚å‚阅[method @GDScript.deg2rad]。"
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr "返回所有分é‡éƒ½è¢«å››èˆäº”入为最接近的整数的å‘é‡ï¼Œä¸­é—´æƒ…况下四èˆäº”入为零。"
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
+msgstr ""
+"返回所有分é‡éƒ½è¢«å››èˆäº”入为最接近的整数的å‘é‡ï¼Œä¸­é—´æƒ…况å‘远离零的方å‘èˆå…¥ã€‚"
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
"æ ¹æ®åˆ†é‡çš„符å·ï¼Œè¿”回æ¯ä¸ªåˆ†é‡è®¾ç½®ä¸º 1 或负1çš„å‘é‡ã€‚如果分é‡ä¸ºé›¶ï¼Œåˆ™è¿”回正1。"
@@ -76004,25 +76970,20 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "返回与给定å‘é‡çš„æ— ç¬¦å·æœ€å°è§’度,å•ä½ä¸ºå¼§åº¦ã€‚"
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr "返回一个新的å‘é‡ï¼Œæ‰€æœ‰çš„分é‡éƒ½æ˜¯å››èˆäº”å…¥çš„ï¼Œå‘æ­£æ— ç©·å¤§ã€‚"
-
-#: doc/classes/Vector3.xml
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "返回此å‘é‡ä¸Ž [code]b[/code] çš„å‰ç§¯ã€‚"
#: doc/classes/Vector3.xml
+#, fuzzy
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-"在å‘é‡[code]pre_a[/code], [code]a[/code], [code]b[/code], [code]post_b[/code]"
-"([code]a[/code]是当å‰çš„)之间,通过给定的é‡[code]weight[/code]进行三次æ’值。"
-"[code]weight[/code]的范围是0.0到1.0,表示æ’值的数é‡ã€‚"
+"用[code]pre_a[/code]å’Œ[code]post_b[/code]ä½œä¸ºå¥æŸ„,在这个å‘é‡å’Œ[code]b[/code]"
+"之间进行三次æ’值,并在[code]weight[/code]ä½ç½®è¿”回结果。[code]weight[/code]çš„"
+"范围是0.0到1.0,表示æ’值的é‡ã€‚"
#: doc/classes/Vector3.xml
msgid "Returns the distance between this vector and [code]b[/code]."
@@ -76052,12 +77013,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr "返回一个新的å‘é‡ï¼Œæ‰€æœ‰çš„å‘é‡éƒ½è¢«å››èˆäº”入,å‘负无穷大。"
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -76092,20 +77047,10 @@ msgstr ""
"返回[constant AXIS_Z]。"
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr "将此å‘é‡å‘[code]to[/code]移动,以固定[code]delta[/code]é‡ã€‚"
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr "返回与 [code]b[/code] 的外积。"
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr "返回这个å‘é‡æŠ•å°„åˆ°å¦ä¸€ä¸ªå‘é‡[code]b[/code]上的结果。"
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr "返回从给定法线定义的平é¢ä¸Šåå°„çš„å‘é‡ã€‚"
@@ -76113,23 +77058,7 @@ msgstr "返回从给定法线定义的平é¢ä¸Šåå°„çš„å‘é‡ã€‚"
msgid ""
"Rotates this vector around a given axis by [code]phi[/code] radians. The "
"axis must be a normalized vector."
-msgstr "将此å‘é‡ç»•给定的轴旋转[code]phi[/code]弧度。该轴必须是归一化的矢é‡ã€‚"
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-"返回这个å‘é‡çš„æ‰€æœ‰åˆ†é‡éƒ½è¢«å››èˆäº”入为最接近的整数,中间情况下四èˆäº”入为零。"
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-"返回一个å‘é‡ï¼Œæ¯ä¸ªåˆ†é‡è®¾ç½®ä¸º1或负1,å–决于这个å‘é‡çš„分é‡çš„符å·ã€‚如果分é‡ä¸º0,"
-"则返回正1。"
+msgstr "将此å‘é‡ç»•给定的轴旋转 [code]phi[/code] 弧度。该轴必须是归一化的å‘é‡ã€‚"
#: doc/classes/Vector3.xml
msgid ""
@@ -76148,7 +77077,7 @@ msgid ""
"components set as the scale."
msgstr ""
"返回一个以该å‘é‡ä¸ºä¸»å¯¹è§’线的对角线矩阵。\n"
-"这相当于一个没有旋转或剪切的Basis,这个å‘é‡çš„分é‡è¢«è®¾å®šä¸ºç¼©æ”¾ã€‚"
+"这相当于一个没有旋转或剪切的 Basis,这个å‘é‡çš„分é‡è¢«è®¾å®šä¸ºç¼©æ”¾ã€‚"
#: doc/classes/Vector3.xml
msgid ""
@@ -76308,6 +77237,10 @@ msgid ""
"Returns [code]null[/code] if the wheel is not in contact with a surface, or "
"the contact body is not a [PhysicsBody]."
msgstr ""
+"如果接触到的实体在树中有效,则以 [Spatial] 的形å¼è¿”回。目å‰ä¸æ”¯æŒ [GridMap],"
+"所以节点的类型始终是 [PhysicsBody]。\n"
+"å¦‚æžœè½¦è½®å¹¶æœªä¸Žè¡¨é¢æŽ¥è§¦ï¼Œæˆ–æŽ¥è§¦åˆ°çš„å®žä½“ä¸æ˜¯ [PhysicsBody],则返回 [code]null[/"
+"code]。"
#: doc/classes/VehicleWheel.xml
msgid "Returns the rotational speed of the wheel in revolutions per minute."
@@ -76677,14 +77610,14 @@ msgid ""
"playback in Godot. If you run into problems, try using the Ogg Theora format "
"instead: [VideoStreamTheora]"
msgstr ""
-"[VideoStream]资æºå¤„ç†[url=https://www.webmproject.org/]WebM[/url]视频格å¼ï¼Œæ‰©"
-"展å为[code].webm[/code]。支æŒVP8å’ŒVP9ç¼–è§£ç å™¨ã€‚VP8å’ŒVP9ç¼–è§£ç å™¨æ¯”"
-"[VideoStreamTheora]æ›´æœ‰æ•ˆï¼Œä½†å…¶éœ€è¦æ›´å¤šçš„CPUèµ„æºæ¥è§£ç ï¼Œå°¤å…¶æ˜¯VP9。VP8å’ŒVP9ç¼–"
-"è§£ç å™¨æ˜¯åœ¨CPU上解ç çš„。\n"
-"[b]注æ„:[/b] 䏿”¯æŒAlpha通é“ï¼Œä¹Ÿç§°ä¸ºé€æ˜Žåº¦ã€‚视频将始终显示为黑色背景,å³ä½¿å®ƒ"
-"最åˆåŒ…å«alpha通é“。\n"
-"[b]注æ„:[/b] Godot中的WebM视频播放存在已知的错误和性能问题。如果你é‡åˆ°é—®é¢˜ï¼Œ"
-"å¯ä»¥å°è¯•用Ogg Theoraæ ¼å¼ä»£æ›¿:[VideoStreamTheora]"
+"ç”¨äºŽå¤„ç†æ‰©å±•å为 [code].webm[/code] çš„ [url=https://www.webmproject."
+"org/]WebM[/url] 视频格å¼çš„ [VideoStream] 资æºã€‚æ”¯æŒ VP8 å’Œ VP9 ç¼–è§£ç å™¨ã€‚VP8 "
+"å’Œ VP9 ç¼–è§£ç å™¨æ¯” [VideoStreamTheora] æ›´é«˜æ•ˆï¼Œä½†å…¶éœ€è¦æ›´å¤šçš„ CPU èµ„æºæ¥è§£ç ï¼Œ"
+"尤其是 VP9。VP8 å’Œ VP9 ç¼–è§£ç å™¨æ˜¯åœ¨ CPU 上解ç çš„。\n"
+"[b]注æ„:[/b] 䏿”¯æŒ Alpha 通é“(也称为ä¸é€æ˜Žåº¦ï¼‰ã€‚视频将始终显示为黑色背景,"
+"å³ä½¿å®ƒæœ€åˆåŒ…å« Alpha 通é“。\n"
+"[b]注æ„:[/b] Godot 中的 WebM 视频播放存在已知的错误和性能问题。如果你é‡åˆ°é—®"
+"题,å¯ä»¥å°è¯•用 Ogg Theora æ ¼å¼ä»£æ›¿ï¼š[VideoStreamTheora]"
#: modules/webm/doc_classes/VideoStreamWebm.xml
msgid "Returns the WebM video file handled by this [VideoStreamWebm]."
@@ -76737,7 +77670,7 @@ msgstr ""
#: doc/classes/Viewport.xml
msgid "$DOCS_URL/tutorials/rendering/index.html"
-msgstr ""
+msgstr "$DOCS_URL/tutorials/rendering/index.html"
#: doc/classes/Viewport.xml doc/classes/ViewportTexture.xml
msgid "https://godotengine.org/asset-library/asset/128"
@@ -76976,13 +77909,16 @@ msgid ""
msgstr "如果[code]true[/code],视窗上的GUI控件将完美地放置åƒç´ ã€‚"
#: doc/classes/Viewport.xml
+#, fuzzy
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
"如果[code]true[/code],视窗的渲染将获得高动æ€èŒƒå›´ç®—法的收益。高动æ€èŒƒå›´å…许视"
"窗接收0-1范围以外的数值。在Godot中HDR使用16比特,这æ„味ç€å®ƒä¸èƒ½å­˜å‚¨æµ®ç‚¹æ•°çš„å…¨"
@@ -77128,6 +78064,18 @@ msgid "The rendering mode of viewport."
msgstr "视窗的渲染模å¼ã€‚"
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr "自定义的[World],å¯ä»¥ä½œä¸º3D环境æºã€‚"
@@ -77333,7 +78281,7 @@ msgstr "在下一帧清除渲染目标,然åŽåˆ‡æ¢åˆ° [constant CLEAR_MODE_NE
#: doc/classes/ViewportContainer.xml
msgid "Control for holding [Viewport]s."
-msgstr "ç”¨äºŽæŒæœ‰[Viewport]的控件。"
+msgstr "ç”¨äºŽæŒæœ‰ [Viewport] 的控件。"
#: doc/classes/ViewportContainer.xml
msgid ""
@@ -77343,15 +78291,15 @@ msgid ""
"causing distortion, adjust the node's margins instead (if it's not already "
"in a container)."
msgstr ""
-"容纳[Viewport]çš„[Container]节点,自动设置其大å°ã€‚\n"
-"[b]注æ„:[/b] 改å˜ViewportContainerçš„[member Control.rect_scale]会导致其内容"
-"å‡ºçŽ°æ‰­æ›²ã€‚è¦æ”¹å˜å®ƒçš„视觉尺寸而ä¸å¼•起失真,å¯ä»¥è°ƒæ•´èŠ‚ç‚¹çš„è¾¹è·æ¥ä»£æ›¿ï¼Œå¦‚果它还"
-"未在容器中时。"
+"容纳 [Viewport] çš„ [Container] 节点,会自动设置其大å°ã€‚\n"
+"[b]注æ„:[/b]æ”¹å˜ ViewportContainer çš„ [member Control.rect_scale] 会导致其内"
+"容出现å˜å½¢ã€‚è¦æ”¹å˜å®ƒçš„视觉尺寸而ä¸å¼•起失真,å¯ä»¥é€šè¿‡è°ƒæ•´èŠ‚ç‚¹çš„è¾¹è·æ¥ä»£æ›¿ï¼ˆå¦‚"
+"果它ä¸åœ¨å®¹å™¨ä¸­ï¼‰ã€‚"
#: doc/classes/ViewportContainer.xml
msgid ""
"If [code]true[/code], the viewport will be scaled to the control's size."
-msgstr "如果[code]true[/code],视窗将被缩放到控件的大å°ã€‚"
+msgstr "为 [code]true[/code] 时视窗将被缩放到控件的大å°ã€‚"
#: doc/classes/ViewportContainer.xml
msgid ""
@@ -77641,10 +78589,10 @@ msgid ""
"[VisualInstance]. [VisualInstance] is the node representation of the "
"[VisualServer] instance."
msgstr ""
-"[VisualInstance]用于连接一个资æºå’Œä¸€ä¸ªè§†è§‰æ˜¾ç¤ºã€‚所有的å¯è§†åŒ–三维节点都继承自"
-"[VisualInstance]。你ä¸åº”该直接访问[VisualInstance]的属性,一般æ¥è¯´ï¼Œå®ƒä»¬æ˜¯ç”±"
-"继承自[VisualInstance]的节点访问和管ç†çš„。[VisualInstance]是[VisualServer]实"
-"例的节点表示。"
+"[VisualInstance] å¯ç”¨äºŽå°†èµ„æºè¿žæŽ¥åˆ°è§†è§‰è¡¨ç¤ºã€‚所有的å¯è§†åŒ– 3D 节点都继承自 "
+"[VisualInstance]。一般æ¥è¯´ï¼Œä½ ä¸åº”该直接访问 [VisualInstance] 的属性,因为它"
+"们是由继承自 [VisualInstance] 的节点访问和管ç†çš„。[VisualInstance] 是 "
+"[VisualServer] 实例的节点表示。"
#: doc/classes/VisualInstance.xml
msgid ""
@@ -77735,10 +78683,8 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/getting_started/scripting/"
-"visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
+msgstr "$DOCS_URL/getting_started/scripting/visual_script/index.html"
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Add a custom signal with the specified name to the VisualScript."
@@ -78266,8 +79212,8 @@ msgid ""
"Return the [Color] with the given name and alpha ranging from 0 to 1.\n"
"[b]Note:[/b] Names are defined in [code]color_names.inc[/code]."
msgstr ""
-"返回具有给定åç§°çš„[Color]和从0到1çš„alpha。\n"
-"[b]注æ„:[/b] å称在[code]color_names.inc[/code]中定义。"
+"返回具有给定åç§°çš„ [Color] 和从 0 到 1 çš„ Alpha。\n"
+"[b]注æ„:[/b]å称在 [code]color_names.inc[/code] 中定义。"
#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
msgid ""
@@ -79743,11 +80689,8 @@ msgstr ""
"视窗的画布的å­é¡¹ï¼Œæˆ–è€…å®ƒéœ€è¦æ˜¯æœ€ç»ˆè¿žæŽ¥åˆ°ç”»å¸ƒçš„å¦ä¸€ä¸ªç”»å¸ƒé¡¹çš„å­é¡¹ã€‚"
#: doc/classes/VisualServer.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/performance/using_servers.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/performance/"
-"using_servers.html"
+msgstr "$DOCS_URL/tutorials/performance/using_servers.html"
#: doc/classes/VisualServer.xml
msgid "Sets images to be rendered in the window margin."
@@ -80304,7 +81247,7 @@ msgid ""
"Sets the rotation of the background [Sky] expressed as a [Basis]. Equivalent "
"to [member Environment.background_sky_orientation]."
msgstr ""
-"设置背景[Sky]的旋转,以[Basis]表示。相当于[member Environment."
+"设置背景 [Sky] 的旋转,以 [Basis] 表示。相当于 [member Environment."
"background_sky_orientation]。"
#: doc/classes/VisualServer.xml
@@ -80725,14 +81668,14 @@ msgstr ""
#: doc/classes/VisualServer.xml
msgid "Not implemented in Godot 3.x."
-msgstr "在Godot 3.x中没有实现。"
+msgstr "在 Godot 3.x 中没有实现。"
#: doc/classes/VisualServer.xml
msgid ""
"Sets the shadow casting setting to one of [enum ShadowCastingSetting]. "
"Equivalent to [member GeometryInstance.cast_shadow]."
msgstr ""
-"将阴影投射设置为[enum ShadowCastingSetting]中的一个。相当于[member "
+"将阴影投射设置为 [enum ShadowCastingSetting] 中的一个。相当于 [member "
"GeometryInstance.cast_shadow]。"
#: doc/classes/VisualServer.xml
@@ -80743,14 +81686,13 @@ msgstr ""
"设置给定的[enum InstanceFlags]标志。更多细节请å‚阅[enum InstanceFlags]。"
#: doc/classes/VisualServer.xml
-#, fuzzy
msgid ""
"Sets a material that will be rendered for all surfaces on top of active "
"materials for the mesh associated with this instance. Equivalent to [member "
"GeometryInstance.material_overlay]."
msgstr ""
-"设置一个æè´¨ï¼Œè¦†ç›–与此实例关è”的网格上的所有表é¢çš„æè´¨ã€‚相当于[member "
-"GeometryInstance.material_override]。"
+"为该实例的网格设置æè´¨ï¼Œå°†åœ¨æ‰€æœ‰è¡¨é¢çš„æ´»åЍæè´¨ä¸Šå±‚进行渲染。等价于 [member "
+"GeometryInstance.material_overlay]。"
#: doc/classes/VisualServer.xml
msgid ""
@@ -81808,6 +82750,11 @@ msgid ""
"Reflection probes use this internally to ensure they capture everything "
"regardless the shaders are ready or not."
msgstr ""
+"如果异步ç€è‰²å™¨ç¼–译已å¯ç”¨ï¼Œè¿™ä¸ªæ–¹æ³•å¯ä»¥æŽ§åˆ¶æ˜¯å¦éµå¾ª [constant SpatialMaterial."
+"ASYNC_MODE_HIDDEN]。\n"
+"例如,你å¯èƒ½æƒ³è¦åœ¨è¿›è¡Œæˆªå›¾ä¹‹å‰ä¸´æ—¶å¯ç”¨ï¼Œå¯ä»¥ä¿è¯æ‰€æœ‰ä¸œè¥¿éƒ½æ˜¯å¯è§çš„,å³ä¾¿å¼‚æ­¥"
+"模å¼[i]éšè—[/i]çš„ç€è‰²å™¨å°šä¸å¯ç”¨ã€‚\n"
+"å射探针会在内部使用,用于ä¿è¯æ— è®ºç€è‰²å™¨æ˜¯å¦å¯ç”¨éƒ½èƒ½æ•æ‰åˆ°æ‰€æœ‰ä¸œè¥¿ã€‚"
#: doc/classes/VisualServer.xml
msgid ""
@@ -83284,11 +84231,8 @@ msgstr ""
"并控制ç€è‰²å™¨çš„æµç¨‹ã€‚"
#: doc/classes/VisualShaderNode.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/shaders/visual_shaders.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/shaders/visual_shaders."
-"html"
+msgstr "$DOCS_URL/tutorials/shaders/visual_shaders.html"
#: doc/classes/VisualShaderNode.xml
msgid ""
@@ -83389,6 +84333,23 @@ msgstr "一个在å¯è§†åŒ–ç€è‰²å™¨å›¾ä¸­ä½¿ç”¨çš„布尔uniform。"
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr "在ç€è‰²å™¨è¯­è¨€ä¸­è¢«è½¬æ¢æˆ[code]uniform bool[/code]。"
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+#, fuzzy
+msgid "A default value to be assigned within the shader."
+msgstr "在å¯è§†åŒ–ç€è‰²å™¨å›¾ä¸­ä½¿ç”¨çš„è²æ¶…尔效果。"
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr "一个[Color]常é‡ï¼Œåœ¨å¯è§†åŒ–ç€è‰²å™¨å›¾ä¸­ä½¿ç”¨ã€‚"
@@ -83399,8 +84360,8 @@ msgid ""
"Translated to [code]vec3 rgb[/code] and [code]float alpha[/code] in the "
"shader language."
msgstr ""
-"有两个输出端å£ï¼Œè¡¨ç¤º[Color]çš„RGBå’Œalpha通é“。\n"
-"在ç€è‰²å™¨è¯­è¨€ä¸­è¢«è½¬æ¢æˆ[code]vec3 rgb[/code]å’Œ[code]float alpha[/code] 。"
+"有两个输出端å£ï¼Œè¡¨ç¤º [Color] çš„ RGB å’Œ Alpha 通é“。\n"
+"在ç€è‰²å™¨è¯­è¨€ä¸­è¢«è½¬æ¢æˆ [code]vec3 rgb[/code] å’Œ [code]float alpha[/code]。"
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant which represents a state of this node."
@@ -83744,8 +84705,8 @@ msgid ""
"Translated to [code]texture(cubemap, vec3)[/code] in the shader language. "
"Returns a color vector and alpha channel as scalar."
msgstr ""
-"在ç€è‰²å™¨è¯­è¨€ä¸­è¢«è½¬æ¢æˆ[code]texture(cubemap, vec3)[/code]。返回一个颜色å‘é‡å’Œ"
-"alpha通é“的标é‡ã€‚"
+"在ç€è‰²å™¨è¯­è¨€ä¸­è¢«è½¬æ¢æˆ [code]texture(cubemap, vec3)[/code]。返回一个颜色å‘é‡"
+"å’Œ Alpha 通é“的标é‡ã€‚"
#: doc/classes/VisualShaderNodeCubeMap.xml
msgid ""
@@ -83856,11 +84817,8 @@ msgstr ""
"[/codeblock]"
#: doc/classes/VisualShaderNodeCustom.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/plugins/editor/visual_shader_plugins.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/plugins/editor/"
-"visual_shader_plugins.html"
+msgstr "$DOCS_URL/tutorials/plugins/editor/visual_shader_plugins.html"
#: doc/classes/VisualShaderNodeCustom.xml
msgid ""
@@ -84285,11 +85243,8 @@ msgstr ""
"表,请å‚阅ç€è‰²å™¨å‚è€ƒï¼Œå³æŸ¥çœ‹[code]Tutorials[/code]教程部分的链接。"
#: doc/classes/VisualShaderNodeInput.xml
-#, fuzzy
msgid "$DOCS_URL/tutorials/shaders/shader_reference/index.html"
-msgstr ""
-"https://docs.godotengine.org/zh_CN/stable/tutorials/shaders/shader_reference/"
-"index.html"
+msgstr "$DOCS_URL/tutorials/shaders/shader_reference/index.html"
#: doc/classes/VisualShaderNodeInput.xml
msgid ""
@@ -84316,13 +85271,14 @@ msgstr "比较函数。å‚阅[enum Function]的选项。"
#: doc/classes/VisualShaderNodeIs.xml
msgid "Comparison with [code]INF[/code] (Infinity)."
-msgstr "与[code]INF[/code](无穷大)比较。"
+msgstr "与 [code]INF[/code](无穷大)比较。"
#: doc/classes/VisualShaderNodeIs.xml
msgid ""
"Comparison with [code]NaN[/code] (Not a Number; denotes invalid numeric "
"results, e.g. division by zero)."
-msgstr "与[code]NaN[/code]æ¯”è¾ƒï¼ˆä¸æ˜¯ä¸€ä¸ªæ•°å­—;表示无效的数字结果,如除以0)。"
+msgstr ""
+"与 [code]NaN[/code] æ¯”è¾ƒï¼ˆä¸æ˜¯ä¸€ä¸ªæ•°å­—;表示无效的数字结果,如除以 0)。"
#: doc/classes/VisualShaderNodeOuterProduct.xml
msgid ""
@@ -84338,10 +85294,10 @@ msgid ""
"is the number of components in [code]c[/code] and whose number of columns is "
"the number of components in [code]r[/code]."
msgstr ""
-"[code]OuterProduct[/code]å°†ç¬¬ä¸€ä¸ªå‚æ•°[code]c[/code]作为列å‘é‡ï¼ˆæœ‰ä¸€åˆ—的矩"
-"é˜µï¼‰ï¼Œå°†ç¬¬äºŒä¸ªå‚æ•°[code]r[/code]作为行å‘é‡ï¼ˆæœ‰ä¸€è¡Œçš„矩阵),进行线性代数矩阵"
-"乘法[code]c * r[/code]。产生一个矩阵,其行数是[code]c[/code]çš„åˆ†é‡æ•°ï¼Œå…¶åˆ—æ•°"
-"是[code]r[/code]çš„åˆ†é‡æ•°ã€‚"
+"[code]OuterProduct[/code] å°†ç¬¬ä¸€ä¸ªå‚æ•° [code]c[/code] 作为列å‘é‡ï¼ˆæœ‰ä¸€åˆ—的矩"
+"é˜µï¼‰ï¼Œå°†ç¬¬äºŒä¸ªå‚æ•° [code]r[/code] 作为行å‘é‡ï¼ˆæœ‰ä¸€è¡Œçš„矩阵),进行线性代数矩"
+"阵乘法 [code]c * r[/code]。产生一个矩阵,其行数是 [code]c[/code] çš„åˆ†é‡æ•°ï¼Œå…¶"
+"列数是 [code]r[/code] çš„åˆ†é‡æ•°ã€‚"
#: doc/classes/VisualShaderNodeOutput.xml
msgid "Represents the output shader parameters within the visual shader graph."
@@ -84389,12 +85345,12 @@ msgstr "[code]x[/code] å’Œ [code]y[/code] çš„ç»å¯¹å¯¼æ•°ä¹‹å’Œã€‚"
#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
msgid "Derivative in [code]x[/code] using local differencing."
-msgstr "在[code]x[/code]中使用局部差分的导数。"
+msgstr "在 [code]x[/code] 中使用局部差分的导数。"
#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
msgid "Derivative in [code]y[/code] using local differencing."
-msgstr "在[code]y[/code]中使用局部差分的导数。"
+msgstr "在 [code]y[/code] 中使用局部差分的导数。"
#: doc/classes/VisualShaderNodeScalarInterp.xml
msgid ""
@@ -84434,6 +85390,53 @@ msgid ""
msgstr ""
"如果æä¾›çš„布尔值是[code]true[/code]或[code]false[/code],则返回相关标é‡ã€‚"
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "表示[enum Monitor] enum的大å°ã€‚"
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr "布尔或å‘é‡å‡½æ•°ï¼Œåœ¨å¯è§†åŒ–ç€è‰²å™¨å›¾ä¸­ä½¿ç”¨ã€‚"
@@ -85178,7 +86181,7 @@ msgstr ""
#: doc/classes/VSlider.xml
msgid "Vertical slider."
-msgstr "垂直滑æ¡ã€‚"
+msgstr "垂直滑动æ¡ã€‚"
#: doc/classes/VSlider.xml
msgid ""
@@ -85187,9 +86190,9 @@ msgid ""
"[b]Note:[/b] The [signal Range.changed] and [signal Range.value_changed] "
"signals are part of the [Range] class which this class inherits from."
msgstr ""
-"垂直滑å—。å‚阅[Slider]。这个从底部(最å°ï¼‰åˆ°é¡¶éƒ¨ï¼ˆæœ€å¤§ï¼‰ã€‚\n"
-"[b]注æ„:[/b] [signal Range.changed]å’Œ[signal Range.value_changed]ä¿¡å·æ˜¯"
-"[Range]类的一部分,该类继承自它。"
+"垂直滑动æ¡ã€‚请å‚阅 [Slider]。这个控件是从底部(最å°ï¼‰æ»‘到顶部(最大)的。\n"
+"[b]注æ„:[/b][signal Range.changed] å’Œ [signal Range.value_changed] ä¿¡å·æ˜¯ "
+"[Range] 类的一部分,该类继承自它。"
#: doc/classes/VSlider.xml
msgid "The background of the area below the grabber."
@@ -85199,7 +86202,7 @@ msgstr "抓å–器下方区域的背景。"
msgid ""
"The background for the whole slider. Determines the width of the "
"[code]grabber_area[/code]."
-msgstr "整个滑å—的背景。决定了[code]grabber_area[/code]的宽度。"
+msgstr "整个滑动æ¡çš„背景。决定了 [code]grabber_area[/code] 的宽度。"
#: doc/classes/VSplitContainer.xml
msgid "Vertical split container."
@@ -85214,7 +86217,7 @@ msgstr "垂直拆分容器。å‚阅[SplitContainer]。这是从上到下的。"
msgid ""
"Holds an [Object], but does not contribute to the reference count if the "
"object is a reference."
-msgstr "ä¿å­˜ä¸€ä¸ª[Object],但如果该对象是一个引用,则ä¸ä¼šè´¡çŒ®å¼•用计数。"
+msgstr "æŒæœ‰ [Object],但如果该对象是引用,则ä¸ä¼šè´¡çŒ®å¼•用计数。"
#: doc/classes/WeakRef.xml
msgid ""
@@ -85228,8 +86231,8 @@ msgid ""
"a weakref can prevent this cyclic dependency, and allows the references to "
"be released."
msgstr ""
-"一个弱引用å¯ä»¥æŒæœ‰ä¸€ä¸ª[Reference],而ä¸ä¼šå¯¹å¼•用计数器产生影å“。å¯ä»¥ä½¿ç”¨"
-"[method @GDScript.weakref]从一个[Object]åˆ›å»ºä¸€ä¸ªå¼±å¼•ç”¨ã€‚å¦‚æžœè¿™ä¸ªå¯¹è±¡ä¸æ˜¯ä¸€ä¸ª"
+"弱引用(weakref)å¯ä»¥åœ¨æŒæœ‰ [Reference] çš„åŒæ—¶ä¸å¯¹å…¶å¼•用计数器产生影å“。å¯ä»¥"
+"使用 [method @GDScript.weakref] 从一个 [Object] åˆ›å»ºå¼±å¼•ç”¨ã€‚å¦‚æžœè¿™ä¸ªå¯¹è±¡ä¸æ˜¯"
"引用,弱引用ä»ç„¶å¯ä»¥å·¥ä½œï¼Œä½†æ˜¯ï¼Œå®ƒå¯¹è¿™ä¸ªå¯¹è±¡æ²¡æœ‰ä»»ä½•å½±å“。在多个类有相互引用"
"çš„å˜é‡çš„æƒ…况下,弱引用是很有用的。如果没有弱引用,使用这些类å¯èƒ½ä¼šå¯¼è‡´å†…存泄"
"æ¼ï¼Œå› ä¸ºä¸¤ä¸ªå¼•用都会使对方ä¸è¢«é‡Šæ”¾ã€‚å°†å˜é‡çš„ä¸€éƒ¨åˆ†å˜æˆå¼±å¼•用å¯ä»¥é˜²æ­¢è¿™ç§å¾ªçޝ"
@@ -85237,7 +86240,7 @@ msgstr ""
#: doc/classes/WeakRef.xml
msgid "Returns the [Object] this weakref is referring to."
-msgstr "返回此弱引用所指的[Object]。"
+msgstr "返回此弱引用所指的 [Object]。"
#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
msgid "Closes this data channel, notifying the other peer."
@@ -86839,7 +87842,7 @@ msgstr "世界的物ç†ç©ºé—´ã€‚"
#: doc/classes/World2D.xml
msgid "Class that has everything pertaining to a 2D world."
-msgstr "拥有与2D世界有关的所有内容的类。"
+msgstr "拥有与 2D 世界有关的所有内容的类。"
#: doc/classes/World2D.xml
msgid ""
@@ -86847,14 +87850,14 @@ msgid ""
"visual scenario and a sound space. 2D nodes register their resources into "
"the current 2D world."
msgstr ""
-"拥有与2D世界有关一切的类。一个物ç†ç©ºé—´ã€ä¸€ä¸ªå¯è§†åŒ–场景和一个声音空间。2D节点"
-"å°†å…¶èµ„æºæ³¨å†Œåˆ°å½“å‰çš„2D世界中。"
+"拥有与 2D 世界有关一切的类。一个物ç†ç©ºé—´ã€ä¸€ä¸ªå¯è§†åŒ–场景和一个声音空间。2D 节"
+"ç‚¹å°†å…¶èµ„æºæ³¨å†Œåˆ°å½“å‰çš„ 2D 世界中。"
#: doc/classes/World2D.xml
msgid ""
"The [RID] of this world's canvas resource. Used by the [VisualServer] for 2D "
"drawing."
-msgstr "这个世界的画布资æºçš„[RID]。由[VisualServer]用于2D绘制。"
+msgstr "这个世界的画布资æºçš„ [RID]。由 [VisualServer] 用于 2D 绘制。"
#: doc/classes/World2D.xml
msgid ""
@@ -86892,23 +87895,24 @@ msgid ""
"skybox). Usually, these are added in order to improve the realism/color "
"balance of the scene."
msgstr ""
-"[WorldEnvironment]节点用于é…置场景的默认[Environment]环境。\n"
-"在[WorldEnvironment]ä¸­å®šä¹‰çš„å‚æ•°å¯ä»¥è¢«è®¾ç½®åœ¨å½“å‰[Camera]上的[Environment]节点"
-"è¦†ç›–ã€‚æ­¤å¤–ï¼Œåœ¨ä¸€ä¸ªç»™å®šçš„åœºæ™¯ä¸­ï¼ŒåŒæ—¶åªèƒ½å®žä¾‹åŒ–一个[WorldEnvironment]实例。\n"
-"[WorldEnvironment]å…è®¸ç”¨æˆ·æŒ‡å®šé»˜è®¤çš„ç…§æ˜Žå‚æ•°ï¼ˆä¾‹å¦‚环境照明),å„ç§åŽæœŸå¤„ç†æ•ˆ"
-"果(例如SSAOã€DOFã€Tonemapping),以åŠå¦‚何绘制背景(例如纯色ã€å¤©ç©ºç›’)。通"
-"常,这些都是为了æé«˜åœºæ™¯çš„真实性åŠè‰²å½©å¹³è¡¡è€Œæ·»åŠ çš„ã€‚"
+"[WorldEnvironment] 节点用于é…置场景的默认 [Environment] 环境。\n"
+"在 [WorldEnvironment] ä¸­å®šä¹‰çš„å‚æ•°å¯ä»¥è¢«è®¾ç½®åœ¨å½“å‰ [Camera] 上的 "
+"[Environment] èŠ‚ç‚¹è¦†ç›–ã€‚æ­¤å¤–ï¼Œåœ¨ä¸€ä¸ªç»™å®šçš„åœºæ™¯ä¸­ï¼ŒåŒæ—¶åªèƒ½å®žä¾‹åŒ–一个 "
+"[WorldEnvironment] 实例。\n"
+"[WorldEnvironment] å…è®¸ç”¨æˆ·æŒ‡å®šé»˜è®¤çš„å…‰ç…§å‚æ•°ï¼ˆä¾‹å¦‚环境光照)ã€å„ç§åŽæœŸå¤„ç†æ•ˆ"
+"果(例如 SSAOã€DOFã€è‰²è°ƒæ˜ å°„),以åŠå¦‚何绘制背景(例如纯色ã€å¤©ç©ºç›’)。通常,"
+"这些都是为了æé«˜åœºæ™¯çš„真实性åŠè‰²å½©å¹³è¡¡è€Œæ·»åŠ çš„ã€‚"
#: doc/classes/WorldEnvironment.xml
msgid ""
"The [Environment] resource used by this [WorldEnvironment], defining the "
"default properties."
msgstr ""
-"æ­¤[WorldEnvironment]世界环境所使用的[Environment]环境资æºï¼Œå®šä¹‰é»˜è®¤å±žæ€§ã€‚"
+"æ­¤ [WorldEnvironment] 世界环境所使用的 [Environment] 环境资æºï¼Œå®šä¹‰é»˜è®¤å±žæ€§ã€‚"
#: doc/classes/X509Certificate.xml
msgid "An X509 certificate (e.g. for SSL)."
-msgstr "X509è¯ä¹¦ï¼Œä¾‹å¦‚用于SSL。"
+msgstr "X509 è¯ä¹¦ï¼ˆä¾‹å¦‚用于 SSL)。"
#: doc/classes/X509Certificate.xml
msgid ""
@@ -86920,12 +87924,12 @@ msgid ""
"[method StreamPeerSSL.connect_to_stream].\n"
"[b]Note:[/b] Not available in HTML5 exports."
msgstr ""
-"X509Certificate类表示一个X509è¯ä¹¦ã€‚è¯ä¹¦å¯ä»¥åƒå…¶ä»–çš„[Resource]资æºä¸€æ ·è¢«åŠ è½½å’Œ"
-"ä¿å­˜ã€‚\n"
-"它们å¯ä»¥ä½œä¸º[method StreamPeerSSL.accept_stream]中的æœåС噍è¯ä¹¦ï¼Œä¸Žé€‚当的"
-"[CryptoKey]一起使用,并指定通过[method StreamPeerSSL.connect_to_stream]连接到"
-"SSLæœåŠ¡å™¨æ—¶åº”è¯¥æŽ¥å—的唯一è¯ä¹¦ã€‚\n"
-"[b]注æ„:[/b] 在HTML5导出中ä¸å¯ç”¨ã€‚"
+"X509Certificate 类表示一个 X509 è¯ä¹¦ã€‚è¯ä¹¦å¯ä»¥åƒå…¶ä»–çš„ [Resource] 资æºä¸€æ ·è¢«"
+"加载和ä¿å­˜ã€‚\n"
+"它们å¯ä»¥ä½œä¸º [method StreamPeerSSL.accept_stream] 中的æœåС噍è¯ä¹¦ï¼Œä¸Žé€‚当的 "
+"[CryptoKey] 一起使用,并指定通过 [method StreamPeerSSL.connect_to_stream] 连"
+"接到 SSL æœåŠ¡å™¨æ—¶åº”è¯¥æŽ¥å—的唯一è¯ä¹¦ã€‚\n"
+"[b]注æ„:[/b]在 HTML5 导出中ä¸å¯ç”¨ã€‚"
#: doc/classes/X509Certificate.xml
msgid "Loads a certificate from [code]path[/code] (\"*.crt\" file)."
@@ -86942,7 +87946,8 @@ msgid ""
"Low-level class for creating parsers for [url=https://en.wikipedia.org/wiki/"
"XML]XML[/url] files."
msgstr ""
-"用于创建[url=https://en.wikipedia.org/wiki/XML]XML[/url]文件解æžå™¨çš„低级类。"
+"用于创建 [url=https://zh.wikipedia.org/zh-cn/XML]XML[/url] 文件解æžå™¨çš„底层"
+"类。"
#: doc/classes/XMLParser.xml
msgid ""
@@ -86950,8 +87955,8 @@ msgid ""
"flexible standard, this interface is low-level so it can be applied to any "
"possible schema."
msgstr ""
-"这个类å¯ä»¥ä½œä¸ºåˆ¶ä½œè‡ªå®šä¹‰XMLè§£æžå™¨çš„基础。由于XML是一个éžå¸¸çµæ´»çš„æ ‡å‡†ï¼Œè¿™ä¸ªæŽ¥"
-"å£ä¹Ÿæ˜¯ä½Žå±‚次的,å¯è¢«åº”用于任何å¯èƒ½çš„æ¨¡å¼ã€‚"
+"这个类å¯ä»¥ä½œä¸ºåˆ¶ä½œè‡ªå®šä¹‰ XML è§£æžå™¨çš„基础。由于 XML 是一个éžå¸¸çµæ´»çš„æ ‡å‡†ï¼Œè¿™"
+"个接å£ä¹Ÿæ˜¯åº•层的,å¯è¢«åº”用于任何å¯èƒ½çš„æ¨¡å¼ã€‚"
#: doc/classes/XMLParser.xml
msgid "Gets the amount of attributes in the current element."
@@ -87082,7 +88087,7 @@ msgstr "未知节点。"
#: doc/classes/YSort.xml
msgid "Sort all child nodes based on their Y positions."
-msgstr "æ ¹æ®æ‰€æœ‰å­èŠ‚ç‚¹çš„Yåæ ‡å¯¹å®ƒä»¬è¿›è¡ŒæŽ’åºã€‚"
+msgstr "æ ¹æ®æ‰€æœ‰å­èŠ‚ç‚¹çš„ Y åæ ‡å¯¹å®ƒä»¬è¿›è¡ŒæŽ’åºã€‚"
#: doc/classes/YSort.xml
msgid ""
@@ -87094,12 +88099,12 @@ msgid ""
"the same space as the parent YSort, allowing to better organize a scene or "
"divide it in multiple ones, yet keep the unique sorting."
msgstr ""
-"æ ¹æ®å­èŠ‚ç‚¹çš„Yåæ ‡å¯¹æ‰€æœ‰å­èŠ‚ç‚¹è¿›è¡ŒæŽ’åº.å­èŠ‚ç‚¹å¿…é¡»ç»§æ‰¿è‡ª[CanvasItem],æ‰èƒ½è¿›è¡ŒæŽ’"
-"åº.Yåæ ‡è¾ƒé«˜çš„节点将åŽç»˜åˆ¶,因此它们将出现在Yåæ ‡è¾ƒä½Žçš„节点之上.\n"
-"YSort节点å¯ä»¥åµŒå¥—.å­èŠ‚ç‚¹å°†ä¸Žçˆ¶èŠ‚ç‚¹åœ¨ç›¸åŒçš„空间内进行排åº,这样å¯ä»¥æ›´å¥½åœ°ç»„织一"
-"个场景或将其分为多个场景,但åˆèƒ½ä¿æŒå”¯ä¸€çš„æŽ’åº."
+"æ ¹æ®å­èŠ‚ç‚¹çš„ Y åæ ‡å¯¹æ‰€æœ‰å­èŠ‚ç‚¹è¿›è¡ŒæŽ’åºã€‚å­èŠ‚ç‚¹å¿…é¡»ç»§æ‰¿è‡ª [CanvasItem],æ‰èƒ½"
+"进行排åºã€‚Y åæ ‡è¾ƒé«˜çš„节点将åŽç»˜åˆ¶ï¼Œå› æ­¤å®ƒä»¬å°†å‡ºçŽ°åœ¨ Y åæ ‡è¾ƒä½Žçš„节点之上。\n"
+"YSort 节点å¯ä»¥åµŒå¥—。å­èŠ‚ç‚¹å°†ä¸Žçˆ¶èŠ‚ç‚¹åœ¨ç›¸åŒçš„空间内进行排åºï¼Œè¿™æ ·å¯ä»¥æ›´å¥½åœ°ç»„"
+"织一个场景或将其分为多个场景,但åˆèƒ½ä¿æŒå”¯ä¸€çš„æŽ’åºã€‚"
#: doc/classes/YSort.xml
msgid ""
"If [code]true[/code], child nodes are sorted, otherwise sorting is disabled."
-msgstr "如果为[code]true[/code],则对å­èŠ‚ç‚¹è¿›è¡ŒæŽ’åºï¼Œå¦åˆ™ç¦ç”¨æŽ’åºã€‚"
+msgstr "为 [code]true[/code] 时将对å­èŠ‚ç‚¹è¿›è¡ŒæŽ’åºï¼Œå¦åˆ™å°†ç¦ç”¨æŽ’åºã€‚"
diff --git a/doc/translations/zh_TW.po b/doc/translations/zh_TW.po
index 6182976935..3db6f2c82d 100644
--- a/doc/translations/zh_TW.po
+++ b/doc/translations/zh_TW.po
@@ -1,6 +1,6 @@
# Chinese (Traditional) translation of the Godot Engine class reference.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# binotaliu <binota@protonmail.ch>, 2020.
@@ -65,6 +65,71 @@ msgstr "屬性說明"
msgid "Method Descriptions"
msgstr "方法說明"
+#: doc/tools/make_rst.py
+#, fuzzy
+msgid "Theme Property Descriptions"
+msgstr "屬性說明"
+
+#: doc/tools/make_rst.py
+msgid "Inherits:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Inherited By:"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "(overrides %s)"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Default"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Setter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "value"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "Getter"
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid "This method is used to construct a type."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+
+#: doc/tools/make_rst.py
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+
#: modules/gdscript/doc_classes/@GDScript.xml
msgid "Built-in GDScript functions."
msgstr "內建 GDScript 函å¼ã€‚"
@@ -560,16 +625,24 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Returns a normalized value considering the given range. This is the opposite "
-"of [method lerp].\n"
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [code]from[/code] and [code]to[/code], and the interpolated "
+"value specified in [code]weight[/code]. The returned value will be between "
+"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
+"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
+"located outside this range, then an extrapolation factor will be returned "
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
+"code]).\n"
"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method lerp] which performs the reverse of this operation."
msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -620,8 +693,11 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
#, fuzzy
msgid ""
-"Linearly interpolates between two values by a normalized value. This is the "
-"opposite of [method inverse_lerp].\n"
+"Linearly interpolates between two values by the factor defined in "
+"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
+"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
+"outside this range are allowed and can be used to perform [i]extrapolation[/"
+"i].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -630,7 +706,10 @@ msgid ""
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"See also [method inverse_lerp] which performs the reverse of this operation. "
+"To perform eased interpolation with [method lerp], combine it with [method "
+"ease] or [method smoothstep]."
msgstr "**fdffffffffffffffwsfsdfsdfsfdsdf**"
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -638,7 +717,8 @@ msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
-"around [constant @GDScript.TAU].\n"
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
@@ -1484,7 +1564,15 @@ msgid "The [Marshalls] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "The [EditorNavigationMeshGenerator] singleton."
+msgid "The [Navigation2DServer] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "The [NavigationServer] singleton."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -2994,31 +3082,108 @@ msgid ""
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note OFF message."
+msgid ""
+"MIDI note OFF message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI note ON message."
+msgid ""
+"MIDI note ON message. See the documentation of [InputEventMIDI] for "
+"information of how to use MIDI inputs."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI aftertouch message."
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI control change message."
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI program change message."
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI channel pressure message."
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
msgstr ""
#: doc/classes/@GlobalScope.xml
-msgid "MIDI pitch bend message."
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid "MIDI stop message. Stop the current sequence."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
msgstr ""
#: doc/classes/@GlobalScope.xml
@@ -7086,7 +7251,10 @@ msgid ""
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
-#: doc/classes/Array.xml
+#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
+#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
+#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
+#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
msgid "Returns the number of elements in the array."
msgstr ""
@@ -11993,7 +12161,7 @@ msgstr ""
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
-"which can then be used.\n"
+"which can then be used. See also [CameraServer].\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
@@ -12061,11 +12229,13 @@ msgstr ""
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
-"It is notably used to provide AR modules with a video feed from the camera."
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Adds a camera feed to the camera server."
+msgid "Adds the camera [code]feed[/code] to the camera server."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12073,23 +12243,27 @@ msgid "Returns an array of [CameraFeed]s."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Returns the [CameraFeed] with this id."
-msgstr ""
+#, fuzzy
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given "
+"[code]index[/code]."
+msgstr "計算兩個å‘é‡çš„外ç©ã€‚"
#: doc/classes/CameraServer.xml
msgid "Returns the number of [CameraFeed]s registered."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Removes a [CameraFeed]."
-msgstr ""
+#, fuzzy
+msgid "Removes the specified camera [code]feed[/code]."
+msgstr "計算兩個å‘é‡çš„外ç©ã€‚"
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12097,7 +12271,7 @@ msgid "The RGBA camera image."
msgstr ""
#: doc/classes/CameraServer.xml
-msgid "The YCbCr camera image."
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
msgstr ""
#: doc/classes/CameraServer.xml
@@ -12185,8 +12359,9 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws an arc between the given angles. The larger the value of "
-"[code]point_count[/code], the smoother the curve."
+"Draws a unfilled arc between the given angles. The larger the value of "
+"[code]point_count[/code], the smoother the curve. See also [method "
+"draw_circle]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12196,17 +12371,23 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored circle."
+msgid ""
+"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a colored polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a colored polygon of any amount of points, convex or concave. Unlike "
+"[method draw_polygon], a single color must be specified for the whole "
+"polygon."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
-"can be optionally antialiased."
+"can be optionally antialiased. See also [method draw_multiline] and [method "
+"draw_polyline]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12217,16 +12398,22 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]color[/code]. When "
+"drawing large amounts of lines, this is faster than using individual [method "
+"draw_line] calls. To draw interconnected lines, use [method draw_polyline] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
-"by-segment coloring. Colors assigned to line segments match by index between "
-"[code]points[/code] and [code]colors[/code].\n"
+"Draws multiple disconnected lines with a uniform [code]width[/code] and "
+"segment-by-segment coloring. Colors assigned to line segments match by index "
+"between [code]points[/code] and [code]colors[/code]. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
@@ -12238,27 +12425,39 @@ msgid ""
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Draws a polygon of any amount of points, convex or concave."
+msgid ""
+"Draws a solid polygon of any amount of points, convex or concave. Unlike "
+"[method draw_colored_polygon], each point's color can be changed "
+"individually. See also [method draw_polyline] and [method "
+"draw_polyline_colors]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
-"[code]width[/code] and optional antialiasing."
+"[code]width[/code] and optional antialiasing. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To "
+"draw disconnected lines, use [method draw_multiline] instead. See also "
+"[method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws interconnected line segments with a uniform [code]width[/code], "
+"Draws interconnected line segments with a uniform [code]width[/code] and "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
-"code]."
+"code]. When drawing large amounts of lines, this is faster than using "
+"individual [method draw_line] calls. To draw disconnected lines, use [method "
+"draw_multiline_colors] instead. See also [method draw_polygon]."
msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
-"for a triangle and 4 points for a quad."
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12378,7 +12577,9 @@ msgid "Returns the [World2D] where this item is in."
msgstr ""
#: doc/classes/CanvasItem.xml
-msgid "Hide the [CanvasItem] if it's currently visible."
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
msgstr ""
#: doc/classes/CanvasItem.xml
@@ -12437,7 +12638,8 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to "
+"setting [member visible] to [code]true[/code]. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
@@ -12795,8 +12997,8 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
-"The index of the current character (starting from 0). Setting this property "
-"won't affect drawing."
+"The index of the current character (starting from 0) for the "
+"[RichTextLabel]'s BBCode text. Setting this property won't affect drawing."
msgstr ""
#: doc/classes/CharFXTransform.xml
@@ -12845,6 +13047,12 @@ msgstr ""
#: doc/classes/CharFXTransform.xml
msgid ""
+"The index of the current character (starting from 0) for this "
+"[RichTextEffect] custom block. Setting this property won't affect drawing."
+msgstr ""
+
+#: doc/classes/CharFXTransform.xml
+msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
@@ -13344,6 +13552,7 @@ msgid ""
msgstr ""
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
msgid "Returns the object's [RID]."
msgstr ""
@@ -13771,9 +13980,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
-"alpha component is often used for transparency. Values are in floating-point "
-"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
-"may accept values greater than 1 (overbright or HDR colors).\n"
+"alpha component is often used for opacity. Values are in floating-point and "
+"usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may "
+"accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
@@ -14016,7 +14225,9 @@ msgstr ""
#: doc/classes/Color.xml
msgid ""
-"The color's alpha (transparency) component, typically on the range of 0 to 1."
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
msgstr ""
#: doc/classes/Color.xml
@@ -14684,7 +14895,7 @@ msgid ""
msgstr ""
#: doc/classes/ColorPicker.xml
-msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
msgstr ""
#: doc/classes/ColorPicker.xml
@@ -16702,7 +16913,9 @@ msgstr ""
#: doc/classes/ConvexPolygonShape2D.xml
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
-"counterclockwise order."
+"counterclockwise order. Only set this property with convex hull points, use "
+"[method set_point_cloud] to generate a convex hull shape from concave shape "
+"points."
msgstr ""
#: doc/classes/CPUParticles.xml
@@ -18019,7 +18232,7 @@ msgstr ""
#: modules/mono/doc_classes/CSharpScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/c_sharp/index.html"
+msgid "$DOCS_URL/tutorials/scripting/c_sharp/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/"
"index.html"
@@ -19542,6 +19755,13 @@ msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr ""
#: doc/classes/DynamicFontData.xml
+msgid ""
+"If set to a value greater than [code]0.0[/code], it will override default "
+"font oversampling, ignoring [member SceneTree.use_font_oversampling] value "
+"and viewport stretch mode."
+msgstr ""
+
+#: doc/classes/DynamicFontData.xml
msgid "Disables font hinting (smoother but less crisp)."
msgstr ""
@@ -19559,11 +19779,13 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Editor export plugins are automatically activated whenever the user exports "
+"[EditorExportPlugin]s are automatically invoked whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
-"is called for each exported file."
+"is called for each exported file.\n"
+"To use [EditorExportPlugin], register it using the [method EditorPlugin."
+"add_export_plugin] method first."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -19643,8 +19865,19 @@ msgstr ""
#: doc/classes/EditorExportPlugin.xml
msgid ""
-"Adds a shared object with the given [code]tags[/code] and destination "
-"[code]path[/code]."
+"Adds file or directory matching [code]path[/code] to [code]PlugIns[/code] "
+"directory of macOS app bundle.\n"
+"[b]Note:[/b] This is useful only for macOS exports."
+msgstr ""
+
+#: doc/classes/EditorExportPlugin.xml
+msgid ""
+"Adds a shared object or a directory containing only shared objects with the "
+"given [code]tags[/code] and destination [code]path[/code].\n"
+"[b]Note:[/b] In case of macOS exports, those shared objects will be added to "
+"[code]Frameworks[/code] directory of app bundle.\n"
+"In case of a directory code-sign will error if you place non code object in "
+"directory."
msgstr ""
#: doc/classes/EditorExportPlugin.xml
@@ -20087,10 +20320,9 @@ msgstr ""
#: doc/classes/EditorImportPlugin.xml
msgid ""
-"EditorImportPlugins provide a way to extend the editor's resource import "
+"[EditorImportPlugin]s provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
-"alternatives to the editor's existing importers. Register your "
-"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
+"alternatives to the editor's existing importers.\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
@@ -20139,7 +20371,9 @@ msgid ""
"\n"
" var filename = save_path + \".\" + get_save_extension()\n"
" return ResourceSaver.save(filename, mesh)\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"To use [EditorImportPlugin], register it using the [method EditorPlugin."
+"add_import_plugin] method first."
msgstr ""
#: doc/classes/EditorImportPlugin.xml doc/classes/ResourceImporter.xml
@@ -20309,8 +20543,8 @@ msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
msgid ""
-"These plugins allow adding custom property editors to [EditorInspector].\n"
-"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
+"[EditorInspectorPlugin] allows adding custom property editors to "
+"[EditorInspector].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
@@ -20319,7 +20553,9 @@ msgid ""
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
-"On each of these calls, the \"add\" functions can be called."
+"On each of these calls, the \"add\" functions can be called.\n"
+"To use [EditorInspectorPlugin], register it using the [method EditorPlugin."
+"add_inspector_plugin] method first."
msgstr ""
#: doc/classes/EditorInspectorPlugin.xml
@@ -21394,6 +21630,14 @@ msgstr ""
msgid "Imports scenes from third-parties' 3D files."
msgstr ""
+#: doc/classes/EditorSceneImporter.xml
+msgid ""
+"[EditorSceneImporter] allows to define an importer script for a third-party "
+"3D format.\n"
+"To use [EditorSceneImporter], register it using the [method EditorPlugin."
+"add_scene_import_plugin] method first."
+msgstr ""
+
#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml
msgid "FBX 3D asset importer."
msgstr ""
@@ -21870,10 +22114,12 @@ msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
-"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
-"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
-"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
-"documentation for more info."
+"[EditorSpatialGizmoPlugin] allows you to define a new type of Gizmo. There "
+"are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the "
+"simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the "
+"tutorial in the documentation for more info.\n"
+"To use [EditorSpatialGizmoPlugin], register it using the [method "
+"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
#: doc/classes/EditorSpatialGizmoPlugin.xml
@@ -22353,7 +22599,7 @@ msgid ""
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
-"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
+"from other scripts. If this is set to [code]false[/code] in a [code]tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
@@ -22988,7 +23234,7 @@ msgstr ""
#: doc/classes/Environment.xml
msgid ""
-"Academy Color Encoding System tonemapper operator. Performs an aproximation "
+"Academy Color Encoding System tonemapper operator. Performs an approximation "
"of the ACES tonemapping curve."
msgstr ""
@@ -23924,14 +24170,14 @@ msgstr ""
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-c-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-c-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
#: modules/gdnative/doc_classes/GDNativeLibrary.xml
#, fuzzy
-msgid "$DOCS_URL/tutorials/plugins/gdnative/gdnative-cpp-example.html"
+msgid "$DOCS_URL/tutorials/scripting/gdnative/gdnative-cpp-example.html"
msgstr ""
"https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-"
"cpp-example.html"
@@ -24007,7 +24253,7 @@ msgstr ""
#: modules/gdscript/doc_classes/GDScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/gdscript/index.html"
+msgid "$DOCS_URL/tutorials/scripting/gdscript/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/"
"index.html"
@@ -26130,6 +26376,12 @@ msgstr ""
#: modules/gridmap/doc_classes/GridMap.xml
msgid ""
+"Overrides the default friction and bounce physics properties for the whole "
+"[GridMap]."
+msgstr ""
+
+#: modules/gridmap/doc_classes/GridMap.xml
+msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""
@@ -26358,7 +26610,7 @@ msgid ""
" var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
" assert(err == OK)\n"
" var msg1 = \"this is \".to_utf8()\n"
-" var msg2 = \"vewy vewy secret\".to_utf8()\n"
+" var msg2 = \"super duper secret\".to_utf8()\n"
" err = ctx.update(msg1)\n"
" assert(err == OK)\n"
" err = ctx.update(msg2)\n"
@@ -26381,7 +26633,7 @@ msgid ""
" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
" GD.Assert(err == OK);\n"
" PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
-" PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
+" PoolByteArray msg2 = String(\"super duper secret\").to_utf8();\n"
" err = ctx.Update(msg1);\n"
" GD.Assert(err == OK);\n"
" err = ctx.Update(msg2);\n"
@@ -28669,7 +28921,11 @@ msgid ""
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28690,7 +28946,11 @@ msgid ""
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
-"for [InputEventJoypadMotion] events."
+"for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28709,8 +28969,17 @@ msgstr ""
#: doc/classes/Input.xml
msgid ""
-"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
-"KeyList] constant."
+"Returns [code]true[/code] if you are pressing the key in the current "
+"keyboard layout. You can pass a [enum KeyList] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that "
+"shortcut keys behave as expected depending on the user's keyboard layout, as "
+"keyboard shortcuts are generally dependent on the keyboard layout in non-"
+"game applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -28723,7 +28992,16 @@ msgstr ""
msgid ""
"Returns [code]true[/code] if you are pressing the key in the physical "
"location on the 101/102-key US QWERTY keyboard. You can pass a [enum "
-"KeyList] constant."
+"KeyList] constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make W/A/S/D layouts work regardless of the "
+"user's keyboard layout. [method is_physical_key_pressed] will also ensure "
+"that the top row number keys work on any keyboard layout. If in doubt, use "
+"[method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/Input.xml
@@ -29041,7 +29319,11 @@ msgid ""
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29069,7 +29351,11 @@ msgstr ""
#: doc/classes/InputEvent.xml
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
-"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See [url="
+"$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
msgstr ""
#: doc/classes/InputEvent.xml
@@ -29264,6 +29550,103 @@ msgid ""
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
+#: doc/classes/InputEventMIDI.xml
+msgid "Input event for MIDI inputs."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"InputEventMIDI allows receiving input events from MIDI devices such as a "
+"piano. MIDI stands for Musical Instrument Digital Interface.\n"
+"MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your "
+"device supports both be sure to check the settings in the device to see "
+"which output it's using.\n"
+"To receive input events from MIDI devices, you need to call [method OS."
+"open_midi_inputs]. You can check which devices are detected using [method OS."
+"get_connected_midi_inputs].\n"
+"Note that Godot does not currently support MIDI output, so there is no way "
+"to emit MIDI signals from Godot. Only MIDI input works."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-"
+"status-bytes"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/General_MIDI#Program_change_events"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid "https://en.wikipedia.org/wiki/Piano_key_frequencies#List"
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The MIDI channel of this input event. There are 16 channels, so this value "
+"ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion "
+"instruments, the rest of the channels are for non-percussion instruments."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller number, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"If the message is [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], this indicates "
+"the controller value, otherwise this is zero. Controllers include devices "
+"such as pedals and levers."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The instrument of this input event. This value ranges from 0 to 127. Refer "
+"to the instrument list on the General MIDI wikipedia article to see a list "
+"of instruments, except that this value is 0-index, so subtract one from "
+"every number on that chart. A standard piano will have an instrument number "
+"of 0."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"Returns a value indicating the type of message for this MIDI signal. This is "
+"a member of the MidiMessageList enum.\n"
+"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are "
+"returned as this value, as the other part is the channel (ex: 0x94 becomes "
+"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n"
+"Notes will return [code]MIDI_MESSAGE_NOTE_ON[/code] when activated, but they "
+"might not always return [code]MIDI_MESSAGE_NOTE_OFF[/code] when deactivated, "
+"therefore your code should treat the input as stopped if some period of time "
+"has passed.\n"
+"For more information, see the MIDI message status byte list chart linked "
+"above."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pitch index number of this MIDI signal. This value ranges from 0 to 127. "
+"On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of "
+"the piano key frequency chart on Wikipedia for more information."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
+"devices, this value is always zero."
+msgstr ""
+
+#: doc/classes/InputEventMIDI.xml
+msgid ""
+"The velocity of the MIDI signal. This value ranges from 0 to 127. For a "
+"piano, this corresponds to how quickly the key was pressed, and is rarely "
+"above about 110 in practice."
+msgstr ""
+
#: doc/classes/InputEventMouse.xml
msgid "Base input event type for mouse events."
msgstr ""
@@ -29280,15 +29663,17 @@ msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
-"The global mouse position relative to the current [Viewport] when used in "
-"[method Control._gui_input], otherwise is at 0,0."
+"The global mouse position relative to the current [Viewport]. If used in "
+"[method Control._gui_input] and if the current [Control] is not under the "
+"mouse, moving it will not update this value."
msgstr ""
#: doc/classes/InputEventMouse.xml
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
-"is under the mouse."
+"is under the mouse. If the current [Control] is not under the mouse, moving "
+"it will not update this value."
msgstr ""
#: doc/classes/InputEventMouseButton.xml
@@ -29893,9 +30278,9 @@ msgstr ""
msgid "Returns an array with the indexes of the selected items."
msgstr ""
-#: doc/classes/ItemList.xml
+#: doc/classes/ItemList.xml doc/classes/RichTextLabel.xml
msgid ""
-"Returns the [Object] ID associated with the list.\n"
+"Returns the vertical scrollbar.\n"
"[b]Warning:[/b] This is a required internal node, removing and freeing it "
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
@@ -30826,6 +31211,29 @@ msgid ""
"axis_lock_motion_z]."
msgstr ""
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is "
+"applied. See [enum MovingPlatformApplyVelocityOnLeave] constants for "
+"available behavior."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Add the last platform velocity when you leave a moving platform."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid ""
+"Add the last platform velocity when you leave a moving platform, but any "
+"downward motion is ignored. It's useful to keep full jump height even when "
+"the platform is moving down."
+msgstr ""
+
+#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
+msgid "Do nothing when leaving a platform."
+msgstr ""
+
#: doc/classes/KinematicBody2D.xml
msgid "Kinematic body 2D node."
msgstr ""
@@ -34051,16 +34459,13 @@ msgstr ""
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
-"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
-"with [method navmesh_add]. In addition to basic pathfinding, this class also "
-"assists with aligning navigation agents with the meshes they are navigating "
-"on.\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"child [NavigationMeshInstance] nodes. In addition to basic pathfinding, this "
+"class also assists with aligning navigation agents with the meshes they are "
+"navigating on."
msgstr ""
#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+#: doc/classes/NavigationServer.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34081,10 +34486,7 @@ msgstr ""
#: doc/classes/Navigation.xml
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
-"point closest to the point given. This is usually a "
-"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
-"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
-"parameter was omitted)."
+"point closest to the point given. This is usually a [NavigationMeshInstance]."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34100,25 +34502,16 @@ msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
-"etc.) are considered in the path calculation, otherwise they are ignored.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
-msgstr ""
-
-#: doc/classes/Navigation.xml
-msgid ""
-"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
-"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
-"the polygon. The optional [code]owner[/code] is used as return value for "
-"[method get_closest_point_owner]."
+"etc.) are considered in the path calculation, otherwise they are ignored."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Removes the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/NavigationMesh.xml
+msgid "The XZ plane cell size to use for fields."
msgstr ""
-#: doc/classes/Navigation.xml
-msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
+#: doc/classes/Navigation.xml doc/classes/Navigation2D.xml
+msgid ""
+"This value is used to detect the near edges to connect compatible regions."
msgstr ""
#: doc/classes/Navigation.xml
@@ -34135,14 +34528,11 @@ msgstr ""
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
-"automatically collected from child [NavigationPolygonInstance] nodes, but "
-"they can also be added on the fly with [method navpoly_add].\n"
-"[b]Note:[/b] The current navigation system has many known issues and will "
-"not always return optimal paths as expected. These issues will be fixed in "
-"Godot 4.0."
+"automatically collected from child [NavigationPolygonInstance] nodes."
msgstr ""
-#: doc/classes/Navigation2D.xml doc/classes/NavigationPolygon.xml
+#: doc/classes/Navigation2D.xml doc/classes/Navigation2DServer.xml
+#: doc/classes/NavigationPolygon.xml
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
@@ -34151,35 +34541,403 @@ msgstr "https://docs.godotengine.org/en/latest/tutorials/vr/index.html"
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
-"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
-"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
-"code] parameter was omitted)."
+"[NavigationPolygonInstance]."
msgstr ""
#: doc/classes/Navigation2D.xml
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
-"is smoothed by merging path segments where possible.\n"
-"[b]Note:[/b] This method has known issues and will often return non-optimal "
-"paths. These issues will be fixed in Godot 4.0."
+"is smoothed by merging path segments where possible."
msgstr ""
#: doc/classes/Navigation2D.xml
+msgid "The XY plane cell size to use for fields."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid "Server interface for low-level 2D navigation access."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
msgid ""
-"Adds a [NavigationPolygon]. Returns an ID for use with [method "
-"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
-"is applied to the polygon. The optional [code]owner[/code] is used as return "
-"value for [method get_closest_point_owner]."
+"Navigation2DServer is the server responsible for all 2D navigation. It "
+"handles several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation polygons. "
+"Together, they define the navigable areas in the 2D world. For two regions "
+"to be connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
msgstr ""
-#: doc/classes/Navigation2D.xml
-msgid "Removes the [NavigationPolygon] with the given ID."
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates the agent."
msgstr ""
-#: doc/classes/Navigation2D.xml
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns [code]true[/code] if the map got changed the previous frame."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Callback called at the end of the RVO process."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Puts the agent in the map."
+msgstr "å›žå‚³åƒæ•¸çš„æ­£åˆ‡å€¼ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum number of other agents the agent takes into account in the "
+"navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the maximum speed of the agent. Must be positive."
+msgstr "å›žå‚³åƒæ•¸çš„æ­£å¼¦å€¼ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Sets the maximum distance to other agents this agent takes into account in "
+"the navigation. The larger this number, the longer the running time of the "
+"simulation. If the number is too low, the simulation will not be safe."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the position of the agent in world space."
+msgstr "å›žå‚³åƒæ•¸çš„相å值。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the radius of the agent."
+msgstr "å›žå‚³åƒæ•¸çš„相å值。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the new target velocity."
+msgstr "å›žå‚³åƒæ•¸çš„æ­£å¼¦å€¼ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"The minimal amount of time for which the agent's velocities that are "
+"computed by the simulation are safe with respect to other agents. The larger "
+"this number, the sooner this agent will respond to the presence of other "
+"agents, but the less freedom this agent has in choosing its velocities. Must "
+"be positive."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the current velocity of the agent."
+msgstr "å›žå‚³åƒæ•¸çš„相å值。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Destroys the given RID."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Create a new map."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map cell size."
+msgstr "å›žå‚³åƒæ•¸çš„åæ­£å¼¦å€¼ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the point closest to the provided [code]to_point[/code] on the "
+"navigation mesh surface."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Returns the owner region RID for the point returned by [method "
+"map_get_closest_point]."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml
+msgid ""
+"Returns the edge connection margin of the map. The edge connection margin is "
+"a distance used to connect two regions."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Returns the navigation path to reach the destination from the origin."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns [code]true[/code] if the map is active."
+msgstr "å›žå‚³åƒæ•¸çš„餘弦值。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map active."
+msgstr "å›žå‚³åƒæ•¸çš„åæ­£å¼¦å€¼ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Set the map cell size used to weld the navigation mesh polygons."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid ""
+"Set the map edge connection margin used to weld the compatible region edges."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+msgid "Creates a new region."
+msgstr ""
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map for the region."
+msgstr "å›žå‚³åƒæ•¸çš„æ­£å¼¦å€¼ã€‚"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the navigation mesh for the region."
+msgstr "å›žå‚³åƒæ•¸çš„相å值。"
+
+#: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the global transformation for the region."
+msgstr "計算兩個å‘é‡çš„外ç©ã€‚"
+
+#: doc/classes/NavigationAgent.xml
+msgid "3D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"3D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationAgent] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the distance to the target location, using the agent's global "
+"position. The user must set the target location with [method "
+"set_target_location] in order for this to be accurate."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way. Because of this, it would be "
+"best to check this each frame."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Returns the path from start to finish in global coordinates."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector3Array]."
+msgstr "å›žå‚³åƒæ•¸çš„åæ­£å¼¦å€¼ã€‚"
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns the [Navigation] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Returns a [Vector3] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the origin of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the user-defined target location (set with [method "
+"set_target_location])."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the navigation path's final location has been "
+"reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reachable. The target "
+"location is set using [method set_target_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns [code]true[/code] if the target location is reached. The target "
+"location is set using [method set_target_location]. It may not always be "
+"possible to reach the target location. It should always be possible to reach "
+"the final location though. See [method get_final_location]."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sets the [Navigation] node used by the agent. Useful when you don't want to "
+"make the agent a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the user desired final location. This will clear the current navigation "
+"path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Sends the given velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid "The agent height offset to match the navigation mesh height."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml
+msgid ""
+"Ignores collisions on the Y axis. Must be [code]true[/code] to move on a "
+"horizontal plane."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum number of neighbors for the agent to consider."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The maximum speed that an agent can move."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The distance to search for other agents."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The maximum distance the agent is allowed away from the ideal path to the "
+"final location. This can happen due to trying to avoid collisions. When the "
+"maximum distance is exceeded, it recalculates the ideal path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "The radius of the agent."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The distance threshold before a target is considered to be reached. This "
+"will allow an agent to not have to hit a point on the path exactly, but in "
+"the area."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"The minimal amount of time for which this agent's velocities, that are "
+"computed with the collision avoidance algorithim, are safe with respect to "
+"other agents. The larger the number, the sooner the agent will respond to "
+"other agents, but the less freedom in choosing its velocities. Must be "
+"positive."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid "Notifies when the final location is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
-"Sets the transform applied to the [NavigationPolygon] with the given ID."
+"Notifies when the navigation path changes. This can be triggered by the "
+"navigation system or by the user changing the path."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the player-defined target, set with [method "
+"set_target_location], is reached."
+msgstr ""
+
+#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
+msgid ""
+"Notifies when the collision avoidance velocity is calculated after a call to "
+"[method set_velocity]."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid "2D agent used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"2D agent that is used in navigation to reach a location while avoiding "
+"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
+"(Reciprocal Velocity Obstacles) collision avoidance. The agent needs "
+"navigation data to work correctly. This can be done by having the agent as a "
+"child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationAgent2D] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the reachable final location in global coordinates. This can change "
+"if the navigation path is altered in any way."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
+msgid ""
+"Returns which index the agent is currently on in the navigation path's "
+"[PoolVector2Array]."
+msgstr "å›žå‚³åƒæ•¸çš„åæ­£å¼¦å€¼ã€‚"
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the agent is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Returns a [Vector2] in global coordinates, that can be moved to, making sure "
+"that there are no static objects in the way. If the agent does not have a "
+"navigation path, it will return the position of the agent's parent."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the agent. Useful when you don't want "
+"to make the agent a child of a [Navigation2D] node."
+msgstr ""
+
+#: doc/classes/NavigationAgent2D.xml
+msgid ""
+"Sends the passed in velocity to the collision avoidance algorithm. It will "
+"adjust the velocity to avoid collisions. Once the adjustment to the velocity "
+"is complete, it will emit the [signal velocity_computed] signal."
msgstr ""
#: doc/classes/NavigationMesh.xml
@@ -34279,10 +35037,6 @@ msgid "The Y axis cell size to use for fields."
msgstr ""
#: doc/classes/NavigationMesh.xml
-msgid "The XZ plane cell size to use for fields."
-msgstr ""
-
-#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""
@@ -34442,22 +35196,112 @@ msgstr ""
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr ""
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "This class is responsible for creating and clearing navigation meshes."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid ""
+"Bakes the navigation mesh. This will allow you to use pathfinding with the "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationMeshGenerator.xml
+msgid "Clears the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "An instance of a [NavigationMesh]."
+msgstr ""
+
#: doc/classes/NavigationMeshInstance.xml
-msgid "Node that instances navigation meshes into a scenario."
+msgid ""
+"An instance of a [NavigationMesh]. It tells the [Navigation] node what can "
+"be navigated and what cannot, based on the [NavigationMesh] resource. This "
+"should be a child of a [Navigation] node."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
msgid ""
-"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
-"adds it to the current scenario by creating an instance of it."
+"Bakes the [NavigationMesh]. The baking is done in a separate thread because "
+"navigation baking is not a cheap operation. This can be done at runtime. "
+"When it is completed, it automatically sets the new [NavigationMesh]."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "Determines if the [NavigationMeshInstance] is enabled or disabled."
+msgstr ""
+
+#: doc/classes/NavigationMeshInstance.xml
+msgid "The [NavigationMesh] resource to use."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
+msgid "Notifies when the navigation mesh bake operation is completed."
msgstr ""
#: doc/classes/NavigationMeshInstance.xml
-msgid "The [NavigationMesh] resource for the instance."
+msgid "Notifies when the [NavigationMesh] has changed."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid "3D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"3D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Returns the [Navigation] node that the obstacle is using for its navigation "
+"system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml
+msgid ""
+"Sets the [Navigation] node used by the obstacle. Useful when you don't want "
+"to make the obstacle a child of a [Navigation] node."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Enables radius estimation algorithm which uses parent's collision shapes to "
+"determine the obstacle radius."
+msgstr ""
+
+#: doc/classes/NavigationObstacle.xml doc/classes/NavigationObstacle2D.xml
+msgid ""
+"The radius of the agent. Used only if [member estimate_radius] is set to "
+"[code]false[/code]."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid "2D obstacle used in navigation for collision avoidance."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"2D obstacle used in navigation for collision avoidance. The obstacle needs "
+"navigation data to work correctly. This can be done by having the obstacle "
+"as a child of a [Navigation2D] node, or using [method set_navigation]. "
+"[NavigationObstacle] is physics safe."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Returns the [Navigation2D] node that the obstacle is using for its "
+"navigation system."
+msgstr ""
+
+#: doc/classes/NavigationObstacle2D.xml
+msgid ""
+"Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
+"want to make the obstacle a child of a [Navigation2D] node."
msgstr ""
#: doc/classes/NavigationPolygon.xml
@@ -34556,6 +35400,75 @@ msgid ""
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
+#: doc/classes/NavigationServer.xml
+msgid "Server interface for low-level 3D navigation access."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"NavigationServer is the server responsible for all 3D navigation. It handles "
+"several objects, namely maps, regions and agents.\n"
+"Maps are made up of regions, which are made of navigation meshes. Together, "
+"they define the navigable areas in the 3D world. For two regions to be "
+"connected to each other, they must share a similar edge. An edge is "
+"considered connected to another if both of its two vertices are at a "
+"distance less than [member Navigation.edge_connection_margin] to the "
+"respective other edge's vertex.\n"
+"To use the collision avoidance system, you may use agents. You can set an "
+"agent's target velocity, then the servers will emit a callback with a "
+"modified velocity.\n"
+"[b]Note:[/b] The collision avoidance system ignores regions. Using the "
+"modified velocity as-is might lead to pushing and agent outside of a "
+"navigable area. This is a limitation of the collision avoidance system, any "
+"more complex situation may require the use of the physics engine.\n"
+"This server keeps tracks of any call and executes them during the sync "
+"phase. This means that you can request any change to the map, using any "
+"thread, without worrying."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid ""
+"Returns the normal for the point returned by [method map_get_closest_point]."
+msgstr "å›žå‚³åƒæ•¸çš„平方根之倒數。"
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the closest point between the navigation surface and the segment."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Returns the edge connection margin of the map. This distance is the minimum "
+"vertex distance needed to connect two edges from different regions."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Returns the map's up direction."
+msgstr "å›žå‚³åƒæ•¸çš„åæ­£å¼¦å€¼ã€‚"
+
+#: doc/classes/NavigationServer.xml
+#, fuzzy
+msgid "Sets the map up direction."
+msgstr "å›žå‚³åƒæ•¸çš„æ­£å¼¦å€¼ã€‚"
+
+#: doc/classes/NavigationServer.xml
+msgid ""
+"Process the collision avoidance agents.\n"
+"The result of this process is needed by the physics server, so this must be "
+"called in the main thread.\n"
+"[b]Note:[/b] This function is not thread safe."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Bakes the navigation mesh."
+msgstr ""
+
+#: doc/classes/NavigationServer.xml
+msgid "Control activation of this server."
+msgstr ""
+
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
@@ -37890,7 +38803,9 @@ msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr ""
#: doc/classes/OS.xml
-msgid "Returns the amount of static memory being used by the program in bytes."
+msgid ""
+"Returns the amount of static memory being used by the program in bytes (only "
+"works in debug)."
msgstr ""
#: doc/classes/OS.xml
@@ -42504,16 +43419,16 @@ msgid ""
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate it's output buffer multiple times while decompressing, "
-"where as [code]decompress[/code] knows it's output buffer size from the "
-"begining.\n"
+"have to re-allocate its output buffer multiple times while decompressing, "
+"where as [code]decompress[/code] knows its output buffer size from the "
+"beginning.\n"
"\n"
"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
"for a small compressed payload to decompress to a potentially very large "
"output. To guard against this, you may provide a maximum size this function "
"is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that ammount in bytes, then an error will be returned."
+"decompression exceeds that amount in bytes, then an error will be returned."
msgstr ""
#: doc/classes/PoolByteArray.xml
@@ -42575,12 +43490,6 @@ msgstr ""
msgid "Changes the byte at the given index."
msgstr ""
-#: doc/classes/PoolByteArray.xml doc/classes/PoolColorArray.xml
-#: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml
-#: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml
-msgid "Returns the size of the array."
-msgstr ""
-
#: doc/classes/PoolByteArray.xml
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
@@ -42661,10 +43570,6 @@ msgstr ""
msgid "Changes the int at the given index."
msgstr ""
-#: doc/classes/PoolIntArray.xml
-msgid "Returns the array size."
-msgstr ""
-
#: doc/classes/PoolRealArray.xml
msgid "A pooled [Array] of reals ([float])."
msgstr ""
@@ -46113,7 +47018,7 @@ msgid ""
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
-"convertion to [Portal] nodes."
+"conversion to [Portal] nodes."
msgstr ""
#: doc/classes/ProjectSettings.xml
@@ -46156,8 +47061,9 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
-"If [code]true[/code], allocates the main framebuffer with high dynamic "
-"range. High dynamic range allows the use of [Color] values greater than 1.\n"
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with high "
+"dynamic range. High dynamic range allows the use of [Color] values greater "
+"than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
@@ -46169,6 +47075,19 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
+"If [code]true[/code], allocates the root [Viewport]'s framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member rendering/quality/depth/hdr] is also "
+"enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member rendering/quality/filters/use_debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/ProjectSettings.xml
+msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
@@ -47028,12 +47947,12 @@ msgstr ""
msgid "Removes all collision exceptions for this ray."
msgstr ""
-#: doc/classes/RayCast.xml
+#: doc/classes/RayCast.xml doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray.\n"
-"Use this method to update the collision information immediately instead of "
-"waiting for the next [code]_physics_process[/code] call, for example if the "
-"ray or its parent has changed state.\n"
+"Updates the collision information for the ray. Use this method to update the "
+"collision information immediately instead of waiting for the next "
+"[code]_physics_process[/code] call, for example if the ray or its parent has "
+"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
@@ -47162,15 +48081,6 @@ msgstr ""
#: doc/classes/RayCast2D.xml
msgid ""
-"Updates the collision information for the ray. Use this method to update the "
-"collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the ray or its parent has "
-"changed state.\n"
-"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
-msgstr ""
-
-#: doc/classes/RayCast2D.xml
-msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr ""
@@ -48433,14 +49343,6 @@ msgid ""
msgstr ""
#: doc/classes/RichTextLabel.xml
-msgid ""
-"Returns the vertical scrollbar.\n"
-"[b]Warning:[/b] This is a required internal node, removing and freeing it "
-"may cause a crash. If you wish to hide it or any of its children, use their "
-"[member CanvasItem.visible] property."
-msgstr ""
-
-#: doc/classes/RichTextLabel.xml
msgid "Returns the number of visible lines."
msgstr ""
@@ -49487,7 +50389,7 @@ msgstr ""
#: doc/classes/RoomGroup.xml
msgid ""
-"Although [Room] behaviour can be specified individually, sometimes it is "
+"Although [Room] behavior can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
@@ -49670,7 +50572,7 @@ msgstr ""
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
-"to override this behaviour and force it to use a particular camera to get a "
+"to override this behavior and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""
@@ -49777,7 +50679,7 @@ msgid ""
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
-"[code]@tool[/code] script."
+"[code]tool[/code] script."
msgstr ""
#: doc/classes/RootMotionView.xml
@@ -51844,7 +52746,7 @@ msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
-"behaviour that can be turned on and off. Only one flag can be enabled at a "
+"behavior that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
@@ -51868,19 +52770,38 @@ msgid ""
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "The strength of the anisotropy effect."
+msgid ""
+"The strength of the anisotropy effect. This is multiplied by [member "
+"anisotropy_flowmap]'s alpha channel if a texture is defined there and the "
+"texture contains an alpha channel."
msgstr ""
#: doc/classes/SpatialMaterial.xml
msgid ""
-"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
-"specular blob and aligns it to tangent space. Mesh tangents are needed for "
-"this to work. If the mesh does not contain tangents the anisotropy effect "
-"will appear broken."
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering. Anisotropic texture filtering can be enabled by selecting "
+"a texture in the FileSystem dock, going to the Import dock, checking the "
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
msgstr ""
#: doc/classes/SpatialMaterial.xml
-msgid "Texture that offsets the tangent map for anisotropy calculations."
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the "
+"strength of the [member anisotropy] effect. Fully opaque pixels will keep "
+"the anisotropy effect's original strength while fully transparent pixels "
+"will disable the anisotropy effect entirely. The flowmap texture's blue "
+"channel is ignored."
msgstr ""
#: doc/classes/SpatialMaterial.xml
@@ -53579,7 +54500,7 @@ msgstr ""
#: doc/classes/StreamPeer.xml
msgid ""
-"Gets a string with byte-length [code]bytes[/code] from the stream. If "
+"Gets an ASCII string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
@@ -54264,6 +55185,16 @@ msgstr ""
#: doc/classes/String.xml
msgid ""
+"Return a [String] which is the concatenation of the [code]parts[/code]. The "
+"separator between elements is the string providing this method.\n"
+"Example:\n"
+"[codeblock]\n"
+"print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
+"[/codeblock]"
+msgstr ""
+
+#: doc/classes/String.xml
+msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr ""
@@ -57484,7 +58415,7 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the cell given by a Vector2.\n"
+"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
@@ -57506,9 +58437,11 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid ""
-"Sets the tile index for the given cell.\n"
+"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
-"Optionally, the tile can also be flipped or transposed.\n"
+"Optionally, the tile can also be flipped, transposed, or given autotile "
+"coordinates. The autotile coordinate refers to the column and row of the "
+"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
@@ -58610,17 +59543,17 @@ msgid ""
"transformation is composed of rotation, scaling and translation."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
-"Interpolates the transform to other Transform by weight amount (on the range "
-"of 0.0 to 1.0)."
+"Returns a transform interpolated between this transform and another by a "
+"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
-"affine_inverse for transforms with scaling)."
+"[method affine_inverse] for transforms with scaling)."
msgstr ""
#: doc/classes/Transform.xml doc/classes/Transform2D.xml
@@ -58640,10 +59573,10 @@ msgid ""
"Operations take place in global space."
msgstr ""
-#: doc/classes/Transform.xml
+#: doc/classes/Transform.xml doc/classes/Transform2D.xml
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors."
+"axis vectors (scale of 1 or -1)."
msgstr ""
#: doc/classes/Transform.xml
@@ -58767,25 +59700,6 @@ msgstr ""
#: doc/classes/Transform2D.xml
msgid ""
-"Returns a transform interpolated between this transform and another by a "
-"given [code]weight[/code] (on the range of 0.0 to 1.0)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
-"Returns the transform with the basis orthogonal (90 degrees), and normalized "
-"axis vectors (scale of 1 or -1)."
-msgstr ""
-
-#: doc/classes/Transform2D.xml
-msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr ""
@@ -60941,9 +61855,9 @@ msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded up (towards positive "
+"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr ""
@@ -60999,9 +61913,9 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded down (towards negative "
+"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr ""
@@ -61043,10 +61957,10 @@ msgid ""
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
+"Returns a new vector moved toward [code]to[/code] by the fixed [code]delta[/"
+"code] amount. Will not go past the final value."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61067,12 +61981,15 @@ msgid ""
"components and [code]modv[/code]'s components."
msgstr ""
-#: doc/classes/Vector2.xml
-msgid "Returns the vector projected onto the vector [code]b[/code]."
-msgstr ""
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
+#, fuzzy
+msgid "Returns this vector projected onto the vector [code]b[/code]."
+msgstr "計算兩個å‘é‡çš„外ç©ã€‚"
#: doc/classes/Vector2.xml
-msgid "Returns the vector reflected from a plane defined by the given normal."
+msgid ""
+"Returns the vector reflected (i.e. mirrored, or symmetric) over a line "
+"defined by the given direction vector [code]n[/code]."
msgstr ""
#: doc/classes/Vector2.xml
@@ -61081,17 +61998,17 @@ msgid ""
"@GDScript.deg2rad]."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
+"Returns a new vector with all components rounded to the nearest integer, "
+"with halfway cases rounded away from zero."
msgstr ""
-#: doc/classes/Vector2.xml
+#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
-"Returns the vector with each component set to one or negative one, depending "
-"on the signs of the components. If a component is zero, it returns positive "
-"one."
+"Returns a new vector with each component set to one or negative one, "
+"depending on the signs of the components. If a component is zero, it returns "
+"positive one."
msgstr ""
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
@@ -61193,22 +62110,16 @@ msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "å›žå‚³åƒæ•¸çš„æ­£åˆ‡å€¼ã€‚"
#: doc/classes/Vector3.xml
-msgid ""
-"Returns a new vector with all components rounded up (towards positive "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
#, fuzzy
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "計算兩個å‘é‡çš„外ç©ã€‚"
#: doc/classes/Vector3.xml
msgid ""
-"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
-"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
-"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
-"0.0 to 1.0, representing the amount of interpolation."
+"Performs a cubic interpolation between this vector and [code]b[/code] using "
+"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
+"result at position [code]weight[/code]. [code]weight[/code] is on the range "
+"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
#: doc/classes/Vector3.xml
@@ -61232,12 +62143,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns a new vector with all components rounded down (towards negative "
-"infinity)."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
@@ -61264,20 +62169,10 @@ msgid ""
msgstr ""
#: doc/classes/Vector3.xml
-msgid ""
-"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
-"amount."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
msgstr ""
#: doc/classes/Vector3.xml
-msgid "Returns this vector projected onto another vector [code]b[/code]."
-msgstr ""
-
-#: doc/classes/Vector3.xml
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr ""
@@ -61289,19 +62184,6 @@ msgstr ""
#: doc/classes/Vector3.xml
msgid ""
-"Returns this vector with all components rounded to the nearest integer, with "
-"halfway cases rounded away from zero."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
-"Returns a vector with each component set to one or negative one, depending "
-"on the signs of this vector's components. If a component is zero, it returns "
-"positive one."
-msgstr ""
-
-#: doc/classes/Vector3.xml
-msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
@@ -61998,10 +62880,12 @@ msgstr ""
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
-"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
-"does not store the full range of a floating point number.\n"
+"values that are outside the 0-1 range. In Godot, HDR uses half floating-"
+"point precision (16-bit) by default. To use full floating-point precision "
+"(32-bit), enable [member use_32_bpc_depth].\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
-"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
+"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
#: doc/classes/Viewport.xml
@@ -62117,6 +63001,18 @@ msgid "The rendering mode of viewport."
msgstr ""
#: doc/classes/Viewport.xml
+msgid ""
+"If [code]true[/code], allocates the viewport's framebuffer with full "
+"floating-point precision (32-bit) instead of half floating-point precision "
+"(16-bit). Only effective when [member hdr] is also enabled.\n"
+"[b]Note:[/b] Enabling this setting does not improve rendering quality. Using "
+"full floating-point precision is slower, and is generally only needed for "
+"advanced shaders that require a high level of precision. To reduce banding, "
+"enable [member debanding] instead.\n"
+"[b]Note:[/b] Only available on the GLES3 backend."
+msgstr ""
+
+#: doc/classes/Viewport.xml
msgid "The custom [World] which can be used as 3D environment source."
msgstr ""
@@ -62635,7 +63531,7 @@ msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
#, fuzzy
-msgid "$DOCS_URL/getting_started/scripting/visual_script/index.html"
+msgid "$DOCS_URL/tutorials/scripting/visual_script/index.html"
msgstr ""
"https://docs.godotengine.org/en/latest/getting_started/scripting/"
"visual_script/index.html"
@@ -67626,6 +68522,22 @@ msgstr ""
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr ""
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "A default value to be assigned within the shader."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeBooleanUniform.xml
+#: doc/classes/VisualShaderNodeColorUniform.xml
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#: doc/classes/VisualShaderNodeTransformUniform.xml
+#: doc/classes/VisualShaderNodeVec3Uniform.xml
+msgid "Enables usage of the [member default_value]."
+msgstr ""
+
#: doc/classes/VisualShaderNodeColorConstant.xml
msgid "A [Color] constant to be used within the visual shader graph."
msgstr ""
@@ -68460,6 +69372,53 @@ msgid ""
"code] or [code]false[/code]."
msgstr ""
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A hint applied to the uniform, which controls the values it can take when "
+"set through the inspector."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Minimum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Maximum value for range hints. Used if [member hint] is set to [constant "
+"HINT_RANGE] or [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"Step (increment) value for the range hint with step. Used if [member hint] "
+"is set to [constant HINT_RANGE_STEP]."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid "No hint used."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value, which limits possible input values between "
+"[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
+"code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+msgid ""
+"A range hint for scalar value with step, which limits possible input values "
+"between [member min] and [member max], with a step (increment) of [member "
+"step]). Translated to [code]hint_range(min, max, step)[/code] in shader code."
+msgstr ""
+
+#: doc/classes/VisualShaderNodeScalarUniform.xml
+#, fuzzy
+msgid "Represents the size of the [enum Hint] enum."
+msgstr "å›žå‚³åƒæ•¸çš„æ­£å¼¦å€¼ã€‚"
+
#: doc/classes/VisualShaderNodeSwitch.xml
msgid "A boolean/vector function for use within the visual shader graph."
msgstr ""
diff --git a/drivers/alsa/audio_driver_alsa.cpp b/drivers/alsa/audio_driver_alsa.cpp
index 61475c74e7..7884269103 100644
--- a/drivers/alsa/audio_driver_alsa.cpp
+++ b/drivers/alsa/audio_driver_alsa.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -283,9 +283,9 @@ Array AudioDriverALSA::get_device_list() {
if (name != nullptr && !strncmp(name, "plughw", 6)) {
if (desc) {
- list.push_back(String(name) + ";" + String(desc));
+ list.push_back(String::utf8(name) + ";" + String::utf8(desc));
} else {
- list.push_back(String(name));
+ list.push_back(String::utf8(name));
}
}
diff --git a/drivers/alsa/audio_driver_alsa.h b/drivers/alsa/audio_driver_alsa.h
index ca97e76bc2..dbb40fa088 100644
--- a/drivers/alsa/audio_driver_alsa.h
+++ b/drivers/alsa/audio_driver_alsa.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/alsamidi/midi_driver_alsamidi.cpp b/drivers/alsamidi/midi_driver_alsamidi.cpp
index 245ea07730..0674c90cd6 100644
--- a/drivers/alsamidi/midi_driver_alsamidi.cpp
+++ b/drivers/alsamidi/midi_driver_alsamidi.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/alsamidi/midi_driver_alsamidi.h b/drivers/alsamidi/midi_driver_alsamidi.h
index c327712ee7..b0fa8c297a 100644
--- a/drivers/alsamidi/midi_driver_alsamidi.h
+++ b/drivers/alsamidi/midi_driver_alsamidi.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/coreaudio/audio_driver_coreaudio.cpp b/drivers/coreaudio/audio_driver_coreaudio.cpp
index 4139727422..e37a53fede 100644
--- a/drivers/coreaudio/audio_driver_coreaudio.cpp
+++ b/drivers/coreaudio/audio_driver_coreaudio.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -540,7 +540,7 @@ Array AudioDriverCoreAudio::_get_device_list(bool capture) {
ERR_FAIL_NULL_V_MSG(buffer, list, "Out of memory.");
if (CFStringGetCString(cfname, buffer, maxSize, kCFStringEncodingUTF8)) {
// Append the ID to the name in case we have devices with duplicate name
- list.push_back(String(buffer) + " (" + itos(audioDevices[i]) + ")");
+ list.push_back(String::utf8(buffer) + " (" + itos(audioDevices[i]) + ")");
}
memfree(buffer);
@@ -597,7 +597,7 @@ void AudioDriverCoreAudio::_set_device(const String &device, bool capture) {
char *buffer = (char *)memalloc(maxSize);
ERR_FAIL_NULL_MSG(buffer, "Out of memory.");
if (CFStringGetCString(cfname, buffer, maxSize, kCFStringEncodingUTF8)) {
- String name = String(buffer) + " (" + itos(audioDevices[i]) + ")";
+ String name = String::utf8(buffer) + " (" + itos(audioDevices[i]) + ")";
if (name == device) {
deviceId = audioDevices[i];
found = true;
diff --git a/drivers/coreaudio/audio_driver_coreaudio.h b/drivers/coreaudio/audio_driver_coreaudio.h
index b31835760e..b19f133d89 100644
--- a/drivers/coreaudio/audio_driver_coreaudio.h
+++ b/drivers/coreaudio/audio_driver_coreaudio.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/coremidi/midi_driver_coremidi.cpp b/drivers/coremidi/midi_driver_coremidi.cpp
index 87764d9b10..ecd10f900b 100644
--- a/drivers/coremidi/midi_driver_coremidi.cpp
+++ b/drivers/coremidi/midi_driver_coremidi.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/coremidi/midi_driver_coremidi.h b/drivers/coremidi/midi_driver_coremidi.h
index 41a7c760ac..be0a9f610e 100644
--- a/drivers/coremidi/midi_driver_coremidi.h
+++ b/drivers/coremidi/midi_driver_coremidi.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_array.h b/drivers/gles3/rasterizer_array.h
index a321c9ed10..9762e78d54 100644
--- a/drivers/gles3/rasterizer_array.h
+++ b/drivers/gles3/rasterizer_array.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_asserts.h b/drivers/gles3/rasterizer_asserts.h
index dbc45035b2..b39357bffd 100644
--- a/drivers/gles3/rasterizer_asserts.h
+++ b/drivers/gles3/rasterizer_asserts.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_canvas_base_gles3.cpp b/drivers/gles3/rasterizer_canvas_base_gles3.cpp
index ffa0bc30f5..899e89cbce 100644
--- a/drivers/gles3/rasterizer_canvas_base_gles3.cpp
+++ b/drivers/gles3/rasterizer_canvas_base_gles3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_canvas_base_gles3.h b/drivers/gles3/rasterizer_canvas_base_gles3.h
index 3fa180539e..60292ff875 100644
--- a/drivers/gles3/rasterizer_canvas_base_gles3.h
+++ b/drivers/gles3/rasterizer_canvas_base_gles3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_canvas_batcher.h b/drivers/gles3/rasterizer_canvas_batcher.h
index c7345824ab..c505d46859 100644
--- a/drivers/gles3/rasterizer_canvas_batcher.h
+++ b/drivers/gles3/rasterizer_canvas_batcher.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -465,7 +465,7 @@ public:
TransformMode orig_transform_mode;
// support for extra matrices
- bool extra_matrix_sent; // whether sent on this item (in which case sofware transform can't be used untl end of item)
+ bool extra_matrix_sent; // whether sent on this item (in which case software transform can't be used untl end of item)
int transform_extra_command_number_p1; // plus one to allow fast checking against zero
Transform2D transform_combined; // final * extra
};
diff --git a/drivers/gles3/rasterizer_canvas_gles3.cpp b/drivers/gles3/rasterizer_canvas_gles3.cpp
index 9ae081c0d1..686910e1c6 100644
--- a/drivers/gles3/rasterizer_canvas_gles3.cpp
+++ b/drivers/gles3/rasterizer_canvas_gles3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_canvas_gles3.h b/drivers/gles3/rasterizer_canvas_gles3.h
index 3d5cd705b7..5e85f84bde 100644
--- a/drivers/gles3/rasterizer_canvas_gles3.h
+++ b/drivers/gles3/rasterizer_canvas_gles3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_gles3.cpp b/drivers/gles3/rasterizer_gles3.cpp
index 92c9dfb9ae..0840d03e44 100644
--- a/drivers/gles3/rasterizer_gles3.cpp
+++ b/drivers/gles3/rasterizer_gles3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_gles3.h b/drivers/gles3/rasterizer_gles3.h
index 8976b88522..e2f3e0bdd0 100644
--- a/drivers/gles3/rasterizer_gles3.h
+++ b/drivers/gles3/rasterizer_gles3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_platforms.h b/drivers/gles3/rasterizer_platforms.h
index 5d520c4d98..97a205e90d 100644
--- a/drivers/gles3/rasterizer_platforms.h
+++ b/drivers/gles3/rasterizer_platforms.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp
index c7753e2c5c..77e0366f0e 100644
--- a/drivers/gles3/rasterizer_scene_gles3.cpp
+++ b/drivers/gles3/rasterizer_scene_gles3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -43,6 +43,9 @@ void RasterizerSceneGLES3::geometry_instance_set_skeleton(GeometryInstance *p_ge
void RasterizerSceneGLES3::geometry_instance_set_material_override(GeometryInstance *p_geometry_instance, RID p_override) {
}
+void RasterizerSceneGLES3::geometry_instance_set_material_overlay(GeometryInstance *p_geometry_instance, RID p_overlay) {
+}
+
void RasterizerSceneGLES3::geometry_instance_set_surface_materials(GeometryInstance *p_geometry_instance, const Vector<RID> &p_material) {
}
@@ -226,6 +229,11 @@ void RasterizerSceneGLES3::environment_set_ssao(RID p_env, bool p_enable, float
void RasterizerSceneGLES3::environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) {
}
+void RasterizerSceneGLES3::environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) {
+}
+void RasterizerSceneGLES3::environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) {
+}
+
void RasterizerSceneGLES3::environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) {
}
@@ -399,7 +407,7 @@ void RasterizerSceneGLES3::voxel_gi_update(RID p_probe, bool p_update_light_inst
void RasterizerSceneGLES3::voxel_gi_set_quality(RS::VoxelGIQuality) {
}
-void RasterizerSceneGLES3::render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data, RendererScene::RenderInfo *r_render_info) {
+void RasterizerSceneGLES3::render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data, RendererScene::RenderInfo *r_render_info) {
}
void RasterizerSceneGLES3::render_material(const Transform3D &p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_ortogonal, const PagedArray<GeometryInstance *> &p_instances, RID p_framebuffer, const Rect2i &p_region) {
diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h
index 14ab0eaa4a..9b356f28df 100644
--- a/drivers/gles3/rasterizer_scene_gles3.h
+++ b/drivers/gles3/rasterizer_scene_gles3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -52,6 +52,7 @@ public:
GeometryInstance *geometry_instance_create(RID p_base) override;
void geometry_instance_set_skeleton(GeometryInstance *p_geometry_instance, RID p_skeleton) override;
void geometry_instance_set_material_override(GeometryInstance *p_geometry_instance, RID p_override) override;
+ void geometry_instance_set_material_overlay(GeometryInstance *p_geometry_instance, RID p_overlay) override;
void geometry_instance_set_surface_materials(GeometryInstance *p_geometry_instance, const Vector<RID> &p_material) override;
void geometry_instance_set_mesh_instance(GeometryInstance *p_geometry_instance, RID p_mesh_instance) override;
void geometry_instance_set_transform(GeometryInstance *p_geometry_instance, const Transform3D &p_transform, const AABB &p_aabb, const AABB &p_transformed_aabbb) override;
@@ -124,6 +125,8 @@ public:
void environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) override;
void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_power, float p_detail, float p_horizon, float p_sharpness, float p_light_affect, float p_ao_channel_affect) override;
void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override;
+ void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) override;
+ void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override;
void environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) override;
@@ -194,7 +197,7 @@ public:
void voxel_gi_set_quality(RS::VoxelGIQuality) override;
- void render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RendererScene::RenderInfo *r_render_info = nullptr) override;
+ void render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RendererScene::RenderInfo *r_render_info = nullptr) override;
void render_material(const Transform3D &p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_ortogonal, const PagedArray<GeometryInstance *> &p_instances, RID p_framebuffer, const Rect2i &p_region) override;
void render_particle_collider_heightfield(RID p_collider, const Transform3D &p_transform, const PagedArray<GeometryInstance *> &p_instances) override;
diff --git a/drivers/gles3/rasterizer_storage_common.h b/drivers/gles3/rasterizer_storage_common.h
index ed64b8c50a..d9a756af1f 100644
--- a/drivers/gles3/rasterizer_storage_common.h
+++ b/drivers/gles3/rasterizer_storage_common.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp
index f19b4a0ce2..e010e55307 100644
--- a/drivers/gles3/rasterizer_storage_gles3.cpp
+++ b/drivers/gles3/rasterizer_storage_gles3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2283,10 +2283,10 @@ void RasterizerStorageGLES3::mesh_instance_check_for_update(RID p_mesh_instance)
void RasterizerStorageGLES3::update_mesh_instances() {
}
-void RasterizerStorageGLES3::reflection_probe_set_lod_threshold(RID p_probe, float p_ratio) {
+void RasterizerStorageGLES3::reflection_probe_set_mesh_lod_threshold(RID p_probe, float p_ratio) {
}
-float RasterizerStorageGLES3::reflection_probe_get_lod_threshold(RID p_probe) const {
+float RasterizerStorageGLES3::reflection_probe_get_mesh_lod_threshold(RID p_probe) const {
return 0.0;
}
@@ -4465,6 +4465,10 @@ String RasterizerStorageGLES3::get_video_adapter_vendor() const {
return (const char *)glGetString(GL_VENDOR);
}
+RenderingDevice::DeviceType RasterizerStorageGLES3::get_video_adapter_type() const {
+ return RenderingDevice::DeviceType::DEVICE_TYPE_OTHER;
+}
+
void RasterizerStorageGLES3::initialize() {
RasterizerStorageGLES3::system_fbo = 0;
diff --git a/drivers/gles3/rasterizer_storage_gles3.h b/drivers/gles3/rasterizer_storage_gles3.h
index 3f9f208964..807789586b 100644
--- a/drivers/gles3/rasterizer_storage_gles3.h
+++ b/drivers/gles3/rasterizer_storage_gles3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -809,8 +809,8 @@ public:
void mesh_instance_set_blend_shape_weight(RID p_mesh_instance, int p_shape, float p_weight) override;
void mesh_instance_check_for_update(RID p_mesh_instance) override;
void update_mesh_instances() override;
- void reflection_probe_set_lod_threshold(RID p_probe, float p_ratio) override;
- float reflection_probe_get_lod_threshold(RID p_probe) const override;
+ void reflection_probe_set_mesh_lod_threshold(RID p_probe, float p_ratio) override;
+ float reflection_probe_get_mesh_lod_threshold(RID p_probe) const override;
void mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) override;
@@ -1325,7 +1325,7 @@ public:
struct Frame {
RenderTarget *current_rt;
- // these 2 may have been superceded by the equivalents in the render target.
+ // these 2 may have been superseded by the equivalents in the render target.
// these may be able to be removed.
bool clear_request;
Color clear_request_color;
@@ -1361,6 +1361,7 @@ public:
// int get_render_info(RS::RenderInfo p_info) override;
String get_video_adapter_name() const override;
String get_video_adapter_vendor() const override;
+ RenderingDevice::DeviceType get_video_adapter_type() const override;
void capture_timestamps_begin() override {}
void capture_timestamp(const String &p_name) override {}
diff --git a/drivers/gles3/shader_compiler_gles3.cpp b/drivers/gles3/shader_compiler_gles3.cpp
index c76d80b0a1..555ed6ebd2 100644
--- a/drivers/gles3/shader_compiler_gles3.cpp
+++ b/drivers/gles3/shader_compiler_gles3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/shader_compiler_gles3.h b/drivers/gles3/shader_compiler_gles3.h
index f3efbe9fc3..7ed882d03d 100644
--- a/drivers/gles3/shader_compiler_gles3.h
+++ b/drivers/gles3/shader_compiler_gles3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/shader_gles3.cpp b/drivers/gles3/shader_gles3.cpp
index 2f26acf628..474a80aca1 100644
--- a/drivers/gles3/shader_gles3.cpp
+++ b/drivers/gles3/shader_gles3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/shader_gles3.h b/drivers/gles3/shader_gles3.h
index 1aca3a1cf6..3b9177b4eb 100644
--- a/drivers/gles3/shader_gles3.h
+++ b/drivers/gles3/shader_gles3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl
index de2aa0fc48..c2f3908395 100644
--- a/drivers/gles3/shaders/scene.glsl
+++ b/drivers/gles3/shaders/scene.glsl
@@ -1610,7 +1610,7 @@ FRAGMENT_SHADER_CODE
specular_light *= specular * metallic * albedo * 2.0;
#else
- // scales the specular reflections, needs to be be computed before lighting happens,
+ // scales the specular reflections, needs to be computed before lighting happens,
// but after environment and reflection probes are added
//TODO: this curve is not really designed for gammaspace, should be adjusted
const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);
diff --git a/drivers/gles3/texture_loader_gles3.cpp b/drivers/gles3/texture_loader_gles3.cpp
index 1954eff923..f4ae6decab 100644
--- a/drivers/gles3/texture_loader_gles3.cpp
+++ b/drivers/gles3/texture_loader_gles3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/gles3/texture_loader_gles3.h b/drivers/gles3/texture_loader_gles3.h
index 64a635fb06..68540fc5c0 100644
--- a/drivers/gles3/texture_loader_gles3.h
+++ b/drivers/gles3/texture_loader_gles3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/png/image_loader_png.cpp b/drivers/png/image_loader_png.cpp
index f7f7f2dd22..46e271f9c9 100644
--- a/drivers/png/image_loader_png.cpp
+++ b/drivers/png/image_loader_png.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/png/image_loader_png.h b/drivers/png/image_loader_png.h
index b4a58616f6..af3bcd5b66 100644
--- a/drivers/png/image_loader_png.h
+++ b/drivers/png/image_loader_png.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/png/png_driver_common.cpp b/drivers/png/png_driver_common.cpp
index 412e17c6b7..bc4bb3782b 100644
--- a/drivers/png/png_driver_common.cpp
+++ b/drivers/png/png_driver_common.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/png/png_driver_common.h b/drivers/png/png_driver_common.h
index 003b587913..62302bbdbb 100644
--- a/drivers/png/png_driver_common.h
+++ b/drivers/png/png_driver_common.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/png/resource_saver_png.cpp b/drivers/png/resource_saver_png.cpp
index 2971880985..77390a5915 100644
--- a/drivers/png/resource_saver_png.cpp
+++ b/drivers/png/resource_saver_png.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/png/resource_saver_png.h b/drivers/png/resource_saver_png.h
index c924438224..f39e52c7ec 100644
--- a/drivers/png/resource_saver_png.h
+++ b/drivers/png/resource_saver_png.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/pulseaudio/audio_driver_pulseaudio.cpp b/drivers/pulseaudio/audio_driver_pulseaudio.cpp
index 06058f2d39..ef9bbc3483 100644
--- a/drivers/pulseaudio/audio_driver_pulseaudio.cpp
+++ b/drivers/pulseaudio/audio_driver_pulseaudio.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/pulseaudio/audio_driver_pulseaudio.h b/drivers/pulseaudio/audio_driver_pulseaudio.h
index 1358561c02..af96489972 100644
--- a/drivers/pulseaudio/audio_driver_pulseaudio.h
+++ b/drivers/pulseaudio/audio_driver_pulseaudio.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/register_driver_types.cpp b/drivers/register_driver_types.cpp
index 4a163b7c10..1047e89e85 100644
--- a/drivers/register_driver_types.cpp
+++ b/drivers/register_driver_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/register_driver_types.h b/drivers/register_driver_types.h
index 607aa91cb8..c008d93185 100644
--- a/drivers/register_driver_types.h
+++ b/drivers/register_driver_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/dir_access_unix.cpp b/drivers/unix/dir_access_unix.cpp
index f263a8b62b..5fdfde4913 100644
--- a/drivers/unix/dir_access_unix.cpp
+++ b/drivers/unix/dir_access_unix.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/dir_access_unix.h b/drivers/unix/dir_access_unix.h
index 327707de00..f90f55605c 100644
--- a/drivers/unix/dir_access_unix.h
+++ b/drivers/unix/dir_access_unix.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/file_access_unix.cpp b/drivers/unix/file_access_unix.cpp
index 75d115df9c..80ae999ac9 100644
--- a/drivers/unix/file_access_unix.cpp
+++ b/drivers/unix/file_access_unix.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/file_access_unix.h b/drivers/unix/file_access_unix.h
index 8b27c308e1..8ebdcd2a2d 100644
--- a/drivers/unix/file_access_unix.h
+++ b/drivers/unix/file_access_unix.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/ip_unix.cpp b/drivers/unix/ip_unix.cpp
index 42b5bbfaf2..400dc25f11 100644
--- a/drivers/unix/ip_unix.cpp
+++ b/drivers/unix/ip_unix.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/ip_unix.h b/drivers/unix/ip_unix.h
index 0d64648b39..f0ad01d248 100644
--- a/drivers/unix/ip_unix.h
+++ b/drivers/unix/ip_unix.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/net_socket_posix.cpp b/drivers/unix/net_socket_posix.cpp
index 768b819650..bdfd264a0c 100644
--- a/drivers/unix/net_socket_posix.cpp
+++ b/drivers/unix/net_socket_posix.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/net_socket_posix.h b/drivers/unix/net_socket_posix.h
index 38c8170a52..867513099a 100644
--- a/drivers/unix/net_socket_posix.h
+++ b/drivers/unix/net_socket_posix.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp
index f0c679b54e..a004bdbe3d 100644
--- a/drivers/unix/os_unix.cpp
+++ b/drivers/unix/os_unix.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/os_unix.h b/drivers/unix/os_unix.h
index 67ee6ac856..5e56091d54 100644
--- a/drivers/unix/os_unix.h
+++ b/drivers/unix/os_unix.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/syslog_logger.cpp b/drivers/unix/syslog_logger.cpp
index 423ddac793..0e1a1a89a3 100644
--- a/drivers/unix/syslog_logger.cpp
+++ b/drivers/unix/syslog_logger.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/syslog_logger.h b/drivers/unix/syslog_logger.h
index d9f7f2ff99..697a96a6f9 100644
--- a/drivers/unix/syslog_logger.h
+++ b/drivers/unix/syslog_logger.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/thread_posix.cpp b/drivers/unix/thread_posix.cpp
index e47046e3ae..cb5f261e6e 100644
--- a/drivers/unix/thread_posix.cpp
+++ b/drivers/unix/thread_posix.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/unix/thread_posix.h b/drivers/unix/thread_posix.h
index 8b8a736bf0..9cd3ecbe90 100644
--- a/drivers/unix/thread_posix.h
+++ b/drivers/unix/thread_posix.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/vulkan/rendering_device_vulkan.cpp b/drivers/vulkan/rendering_device_vulkan.cpp
index 928ea73409..708ea4b265 100644
--- a/drivers/vulkan/rendering_device_vulkan.cpp
+++ b/drivers/vulkan/rendering_device_vulkan.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2170,7 +2170,7 @@ RID RenderingDeviceVulkan::texture_create_shared(const TextureView &p_view, RID
return id;
}
-RID RenderingDeviceVulkan::texture_create_shared_from_slice(const TextureView &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, TextureSliceType p_slice_type) {
+RID RenderingDeviceVulkan::texture_create_shared_from_slice(const TextureView &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, uint32_t p_mipmaps, TextureSliceType p_slice_type) {
_THREAD_SAFE_METHOD_
Texture *src_texture = texture_owner.get_or_null(p_with_texture);
@@ -2194,6 +2194,7 @@ RID RenderingDeviceVulkan::texture_create_shared_from_slice(const TextureView &p
//create view
ERR_FAIL_UNSIGNED_INDEX_V(p_mipmap, src_texture->mipmaps, RID());
+ ERR_FAIL_COND_V(p_mipmap + p_mipmaps > src_texture->mipmaps, RID());
ERR_FAIL_UNSIGNED_INDEX_V(p_layer, src_texture->layers, RID());
int slice_layers = 1;
@@ -2206,7 +2207,7 @@ RID RenderingDeviceVulkan::texture_create_shared_from_slice(const TextureView &p
Texture texture = *src_texture;
get_image_format_required_size(texture.format, texture.width, texture.height, texture.depth, p_mipmap + 1, &texture.width, &texture.height);
- texture.mipmaps = 1;
+ texture.mipmaps = p_mipmaps;
texture.layers = slice_layers;
texture.base_mipmap = p_mipmap;
texture.base_layer = p_layer;
@@ -2269,7 +2270,7 @@ RID RenderingDeviceVulkan::texture_create_shared_from_slice(const TextureView &p
"Specified layer must be a multiple of 6.");
}
image_view_create_info.subresourceRange.baseMipLevel = p_mipmap;
- image_view_create_info.subresourceRange.levelCount = 1;
+ image_view_create_info.subresourceRange.levelCount = p_mipmaps;
image_view_create_info.subresourceRange.layerCount = slice_layers;
image_view_create_info.subresourceRange.baseArrayLayer = p_layer;
@@ -8525,6 +8526,11 @@ String RenderingDeviceVulkan::get_device_vendor_name() const {
String RenderingDeviceVulkan::get_device_name() const {
return context->get_device_name();
}
+
+RenderingDevice::DeviceType RenderingDeviceVulkan::get_device_type() const {
+ return context->get_device_type();
+}
+
String RenderingDeviceVulkan::get_device_pipeline_cache_uuid() const {
return context->get_device_pipeline_cache_uuid();
}
diff --git a/drivers/vulkan/rendering_device_vulkan.h b/drivers/vulkan/rendering_device_vulkan.h
index cf0b725cfc..408fddf4bf 100644
--- a/drivers/vulkan/rendering_device_vulkan.h
+++ b/drivers/vulkan/rendering_device_vulkan.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1037,7 +1037,7 @@ public:
virtual RID texture_create(const TextureFormat &p_format, const TextureView &p_view, const Vector<Vector<uint8_t>> &p_data = Vector<Vector<uint8_t>>());
virtual RID texture_create_shared(const TextureView &p_view, RID p_with_texture);
- virtual RID texture_create_shared_from_slice(const TextureView &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, TextureSliceType p_slice_type = TEXTURE_SLICE_2D);
+ virtual RID texture_create_shared_from_slice(const TextureView &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, uint32_t p_mipmaps = 1, TextureSliceType p_slice_type = TEXTURE_SLICE_2D);
virtual Error texture_update(RID p_texture, uint32_t p_layer, const Vector<uint8_t> &p_data, uint32_t p_post_barrier = BARRIER_MASK_ALL);
virtual Vector<uint8_t> texture_get_data(RID p_texture, uint32_t p_layer);
@@ -1225,6 +1225,7 @@ public:
virtual String get_device_vendor_name() const;
virtual String get_device_name() const;
+ virtual RenderingDevice::DeviceType get_device_type() const;
virtual String get_device_pipeline_cache_uuid() const;
virtual uint64_t get_driver_resource(DriverResource p_resource, RID p_rid = RID(), uint64_t p_index = 0);
diff --git a/drivers/vulkan/vulkan_context.cpp b/drivers/vulkan/vulkan_context.cpp
index aed01b18c9..75a3ab26ea 100644
--- a/drivers/vulkan/vulkan_context.cpp
+++ b/drivers/vulkan/vulkan_context.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,6 +33,7 @@
#include "core/config/engine.h"
#include "core/config/project_settings.h"
#include "core/string/ustring.h"
+#include "core/templates/local_vector.h"
#include "core/version.h"
#include "servers/rendering/rendering_device.h"
@@ -41,7 +42,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <vector>
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
#define APP_SHORT_NAME "GodotEngine"
@@ -212,7 +212,7 @@ VkBool32 VulkanContext::_check_layers(uint32_t check_count, const char *const *c
}
Error VulkanContext::_get_preferred_validation_layers(uint32_t *count, const char *const **names) {
- static const std::vector<std::vector<const char *>> instance_validation_layers_alt{
+ static const LocalVector<LocalVector<const char *>> instance_validation_layers_alt{
// Preferred set of validation layers
{ "VK_LAYER_KHRONOS_validation" },
@@ -249,10 +249,10 @@ Error VulkanContext::_get_preferred_validation_layers(uint32_t *count, const cha
}
for (uint32_t i = 0; i < instance_validation_layers_alt.size(); i++) {
- if (_check_layers(instance_validation_layers_alt[i].size(), instance_validation_layers_alt[i].data(), instance_layer_count, instance_layers)) {
+ if (_check_layers(instance_validation_layers_alt[i].size(), instance_validation_layers_alt[i].ptr(), instance_layer_count, instance_layers)) {
*count = instance_validation_layers_alt[i].size();
if (names != nullptr) {
- *names = instance_validation_layers_alt[i].data();
+ *names = instance_validation_layers_alt[i].ptr();
}
break;
}
@@ -760,6 +760,7 @@ Error VulkanContext::_create_physical_device() {
{ 0, nullptr },
};
device_name = gpu_props.deviceName;
+ device_type = gpu_props.deviceType;
pipeline_cache_id = String::hex_encode_buffer(gpu_props.pipelineCacheUUID, VK_UUID_SIZE);
pipeline_cache_id += "-driver-" + itos(gpu_props.driverVersion);
{
@@ -2208,6 +2209,11 @@ String VulkanContext::get_device_vendor_name() const {
String VulkanContext::get_device_name() const {
return device_name;
}
+
+RenderingDevice::DeviceType VulkanContext::get_device_type() const {
+ return RenderingDevice::DeviceType(device_type);
+}
+
String VulkanContext::get_device_pipeline_cache_uuid() const {
return pipeline_cache_id;
}
diff --git a/drivers/vulkan/vulkan_context.h b/drivers/vulkan/vulkan_context.h
index ab2f6a3eb5..5cac7e7771 100644
--- a/drivers/vulkan/vulkan_context.h
+++ b/drivers/vulkan/vulkan_context.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,6 +37,7 @@
#include "core/templates/map.h"
#include "core/templates/rid_owner.h"
#include "servers/display_server.h"
+#include "servers/rendering/rendering_device.h"
#ifdef USE_VOLK
#include <volk.h>
@@ -101,6 +102,7 @@ private:
String device_vendor;
String device_name;
+ VkPhysicalDeviceType device_type;
String pipeline_cache_id;
uint32_t device_api_version = 0;
@@ -290,6 +292,7 @@ public:
String get_device_vendor_name() const;
String get_device_name() const;
+ RenderingDevice::DeviceType get_device_type() const;
String get_device_pipeline_cache_uuid() const;
void set_vsync_mode(DisplayServer::WindowID p_window, DisplayServer::VSyncMode p_mode);
diff --git a/drivers/wasapi/audio_driver_wasapi.cpp b/drivers/wasapi/audio_driver_wasapi.cpp
index 403feb149e..c7a2d04436 100644
--- a/drivers/wasapi/audio_driver_wasapi.cpp
+++ b/drivers/wasapi/audio_driver_wasapi.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/wasapi/audio_driver_wasapi.h b/drivers/wasapi/audio_driver_wasapi.h
index 6df9b4d2ee..89ed90e97b 100644
--- a/drivers/wasapi/audio_driver_wasapi.h
+++ b/drivers/wasapi/audio_driver_wasapi.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/windows/dir_access_windows.cpp b/drivers/windows/dir_access_windows.cpp
index aa8d7977f7..6cd21b5615 100644
--- a/drivers/windows/dir_access_windows.cpp
+++ b/drivers/windows/dir_access_windows.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/windows/dir_access_windows.h b/drivers/windows/dir_access_windows.h
index 1ba4e70e42..ccd279e694 100644
--- a/drivers/windows/dir_access_windows.h
+++ b/drivers/windows/dir_access_windows.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/windows/file_access_windows.cpp b/drivers/windows/file_access_windows.cpp
index 2c7b5b9be9..cfd5d65f60 100644
--- a/drivers/windows/file_access_windows.cpp
+++ b/drivers/windows/file_access_windows.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/windows/file_access_windows.h b/drivers/windows/file_access_windows.h
index 7280fc3237..93d37c3b5a 100644
--- a/drivers/windows/file_access_windows.h
+++ b/drivers/windows/file_access_windows.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/winmidi/midi_driver_winmidi.cpp b/drivers/winmidi/midi_driver_winmidi.cpp
index 730d608bbf..64912dc3af 100644
--- a/drivers/winmidi/midi_driver_winmidi.cpp
+++ b/drivers/winmidi/midi_driver_winmidi.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/winmidi/midi_driver_winmidi.h b/drivers/winmidi/midi_driver_winmidi.h
index 2f691489b3..6572ba0c16 100644
--- a/drivers/winmidi/midi_driver_winmidi.h
+++ b/drivers/winmidi/midi_driver_winmidi.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/xaudio2/audio_driver_xaudio2.cpp b/drivers/xaudio2/audio_driver_xaudio2.cpp
index 1c7bf5d6c6..03fdfda23d 100644
--- a/drivers/xaudio2/audio_driver_xaudio2.cpp
+++ b/drivers/xaudio2/audio_driver_xaudio2.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/drivers/xaudio2/audio_driver_xaudio2.h b/drivers/xaudio2/audio_driver_xaudio2.h
index c1910d3f5d..9072269a0e 100644
--- a/drivers/xaudio2/audio_driver_xaudio2.h
+++ b/drivers/xaudio2/audio_driver_xaudio2.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/action_map_editor.cpp b/editor/action_map_editor.cpp
index a8d3bfcc90..eabe0a95e2 100644
--- a/editor/action_map_editor.cpp
+++ b/editor/action_map_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/action_map_editor.h b/editor/action_map_editor.h
index e55cab3510..cf2d871469 100644
--- a/editor/action_map_editor.h
+++ b/editor/action_map_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/animation_bezier_editor.cpp b/editor/animation_bezier_editor.cpp
index 9682fb07d2..1085d34c4e 100644
--- a/editor/animation_bezier_editor.cpp
+++ b/editor/animation_bezier_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/animation_bezier_editor.h b/editor/animation_bezier_editor.h
index 4b46777cfe..d9bc85a258 100644
--- a/editor/animation_bezier_editor.h
+++ b/editor/animation_bezier_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp
index e7251662b7..f4e719f552 100644
--- a/editor/animation_track_editor.cpp
+++ b/editor/animation_track_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -3390,7 +3390,7 @@ Dictionary AnimationTrackEditor::get_state() const {
state["fps_mode"] = timeline->is_using_fps();
state["zoom"] = zoom->get_value();
state["offset"] = timeline->get_value();
- state["v_scroll"] = scroll->get_v_scrollbar()->get_value();
+ state["v_scroll"] = scroll->get_v_scroll_bar()->get_value();
return state;
}
@@ -3418,9 +3418,9 @@ void AnimationTrackEditor::set_state(const Dictionary &p_state) {
timeline->set_value(0);
}
if (p_state.has("v_scroll")) {
- scroll->get_v_scrollbar()->set_value(p_state["v_scroll"]);
+ scroll->get_v_scroll_bar()->set_value(p_state["v_scroll"]);
} else {
- scroll->get_v_scrollbar()->set_value(0);
+ scroll->get_v_scroll_bar()->set_value(0);
}
}
@@ -6091,7 +6091,7 @@ AnimationTrackEditor::AnimationTrackEditor() {
scroll = memnew(ScrollContainer);
timeline_vbox->add_child(scroll);
scroll->set_v_size_flags(SIZE_EXPAND_FILL);
- VScrollBar *sb = scroll->get_v_scrollbar();
+ VScrollBar *sb = scroll->get_v_scroll_bar();
scroll->remove_child(sb);
timeline_scroll->add_child(sb); // Move here so timeline and tracks are always aligned.
scroll->connect("gui_input", callable_mp(this, &AnimationTrackEditor::_scroll_input));
diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h
index 5ebfd26322..b5d44bc0d3 100644
--- a/editor/animation_track_editor.h
+++ b/editor/animation_track_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/animation_track_editor_plugins.cpp b/editor/animation_track_editor_plugins.cpp
index 3c117f28a8..a6d2225bdc 100644
--- a/editor/animation_track_editor_plugins.cpp
+++ b/editor/animation_track_editor_plugins.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/animation_track_editor_plugins.h b/editor/animation_track_editor_plugins.h
index a362422c2b..271c1a000b 100644
--- a/editor/animation_track_editor_plugins.h
+++ b/editor/animation_track_editor_plugins.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/array_property_edit.cpp b/editor/array_property_edit.cpp
index 09defac354..d9c6b72241 100644
--- a/editor/array_property_edit.cpp
+++ b/editor/array_property_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/array_property_edit.h b/editor/array_property_edit.h
index d7e11936a3..a620b230cd 100644
--- a/editor/array_property_edit.h
+++ b/editor/array_property_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/audio_stream_preview.cpp b/editor/audio_stream_preview.cpp
index 2efcdcda31..81a6f78415 100644
--- a/editor/audio_stream_preview.cpp
+++ b/editor/audio_stream_preview.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/audio_stream_preview.h b/editor/audio_stream_preview.h
index 8b83235b35..bcd80a7c03 100644
--- a/editor/audio_stream_preview.h
+++ b/editor/audio_stream_preview.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index c024c909a3..4669e56e20 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1548,7 +1548,9 @@ void CodeTextEditor::set_error_pos(int p_line, int p_column) {
void CodeTextEditor::goto_error() {
if (!error->get_text().is_empty()) {
- text_editor->unfold_line(error_line);
+ if (text_editor->get_line_count() != error_line) {
+ text_editor->unfold_line(error_line);
+ }
text_editor->set_caret_line(error_line);
text_editor->set_caret_column(error_column);
text_editor->center_viewport_to_caret();
diff --git a/editor/code_editor.h b/editor/code_editor.h
index 6e3bd88112..a385ae2287 100644
--- a/editor/code_editor.h
+++ b/editor/code_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp
index 4945414237..0edbb182e1 100644
--- a/editor/connections_dialog.cpp
+++ b/editor/connections_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -38,6 +38,7 @@
#include "plugins/script_editor_plugin.h"
#include "scene/gui/label.h"
#include "scene/gui/popup_menu.h"
+#include "scene/gui/spin_box.h"
static Node *_find_first_script(Node *p_root, Node *p_node) {
if (p_node != p_root && p_node->get_owner() != p_root) {
@@ -164,6 +165,20 @@ void ConnectDialog::_tree_node_selected() {
_update_ok_enabled();
}
+void ConnectDialog::_unbind_count_changed(double p_count) {
+ for (Control *control : bind_controls) {
+ BaseButton *b = Object::cast_to<BaseButton>(control);
+ if (b) {
+ b->set_disabled(p_count > 0);
+ }
+
+ EditorInspector *e = Object::cast_to<EditorInspector>(control);
+ if (e) {
+ e->set_read_only(p_count > 0);
+ }
+ }
+}
+
/*
* Adds a new parameter bind to connection.
*/
@@ -305,6 +320,10 @@ void ConnectDialog::set_dst_method(const StringName &p_method) {
dst_method->set_text(p_method);
}
+int ConnectDialog::get_unbinds() const {
+ return int(unbind_count->get_value());
+}
+
Vector<Variant> ConnectDialog::get_binds() const {
return cdbinds->params;
}
@@ -321,7 +340,7 @@ bool ConnectDialog::get_oneshot() const {
* Returns true if ConnectDialog is being used to edit an existing connection.
*/
bool ConnectDialog::is_editing() const {
- return bEditMode;
+ return edit_mode;
}
/*
@@ -329,33 +348,35 @@ bool ConnectDialog::is_editing() const {
* If creating a connection from scratch, sensible defaults are used.
* If editing an existing connection, previous data is retained.
*/
-void ConnectDialog::init(ConnectionData c, bool bEdit) {
+void ConnectDialog::init(ConnectionData p_cd, bool p_edit) {
set_hide_on_ok(false);
- source = static_cast<Node *>(c.source);
- signal = c.signal;
+ source = static_cast<Node *>(p_cd.source);
+ signal = p_cd.signal;
tree->set_selected(nullptr);
tree->set_marked(source, true);
- if (c.target) {
- set_dst_node(static_cast<Node *>(c.target));
- set_dst_method(c.method);
+ if (p_cd.target) {
+ set_dst_node(static_cast<Node *>(p_cd.target));
+ set_dst_method(p_cd.method);
}
_update_ok_enabled();
- bool bDeferred = (c.flags & CONNECT_DEFERRED) == CONNECT_DEFERRED;
- bool bOneshot = (c.flags & CONNECT_ONESHOT) == CONNECT_ONESHOT;
+ bool b_deferred = (p_cd.flags & CONNECT_DEFERRED) == CONNECT_DEFERRED;
+ bool b_oneshot = (p_cd.flags & CONNECT_ONESHOT) == CONNECT_ONESHOT;
- deferred->set_pressed(bDeferred);
- oneshot->set_pressed(bOneshot);
+ deferred->set_pressed(b_deferred);
+ oneshot->set_pressed(b_oneshot);
+ unbind_count->set_value(p_cd.unbinds);
+ _unbind_count_changed(p_cd.unbinds);
cdbinds->params.clear();
- cdbinds->params = c.binds;
+ cdbinds->params = p_cd.binds;
cdbinds->notify_changed();
- bEditMode = bEdit;
+ edit_mode = p_edit;
}
void ConnectDialog::popup_dialog(const String &p_for_signal) {
@@ -449,23 +470,33 @@ ConnectDialog::ConnectDialog() {
type_list->add_item("Transform3D", Variant::TRANSFORM3D);
type_list->add_item("Color", Variant::COLOR);
type_list->select(0);
+ bind_controls.push_back(type_list);
Button *add_bind = memnew(Button);
add_bind->set_text(TTR("Add"));
add_bind_hb->add_child(add_bind);
add_bind->connect("pressed", callable_mp(this, &ConnectDialog::_add_bind));
+ bind_controls.push_back(add_bind);
Button *del_bind = memnew(Button);
del_bind->set_text(TTR("Remove"));
add_bind_hb->add_child(del_bind);
del_bind->connect("pressed", callable_mp(this, &ConnectDialog::_remove_bind));
+ bind_controls.push_back(del_bind);
vbc_right->add_margin_child(TTR("Add Extra Call Argument:"), add_bind_hb);
bind_editor = memnew(EditorInspector);
+ bind_controls.push_back(bind_editor);
vbc_right->add_margin_child(TTR("Extra Call Arguments:"), bind_editor, true);
+ unbind_count = memnew(SpinBox);
+ unbind_count->set_tooltip(TTR("Allows to drop arguments sent by signal emitter."));
+ unbind_count->connect("value_changed", callable_mp(this, &ConnectDialog::_unbind_count_changed));
+
+ vbc_right->add_margin_child(TTR("Unbind Signal Arguments:"), unbind_count);
+
HBoxContainer *dstm_hb = memnew(HBoxContainer);
vbc_left->add_margin_child(TTR("Receiver Method:"), dstm_hb);
@@ -515,7 +546,7 @@ Control *ConnectionsDockTree::make_custom_tooltip(const String &p_text) const {
String text = TTR("Signal:") + " [u][b]" + p_text.get_slice("::", 0) + "[/b][/u]";
text += p_text.get_slice("::", 1).strip_edges() + "\n";
text += p_text.get_slice("::", 2).strip_edges();
- help_bit->call_deferred(SNAME("set_text"), text); //hack so it uses proper theme once inside scene
+ help_bit->call_deferred(SNAME("set_text"), text); // Hack so it uses proper theme once inside scene.
return help_bit;
}
@@ -538,29 +569,32 @@ void ConnectionsDock::_make_or_edit_connection() {
ERR_FAIL_COND(!it);
NodePath dst_path = connect_dialog->get_dst_path();
- Node *target = selectedNode->get_node(dst_path);
+ Node *target = selected_node->get_node(dst_path);
ERR_FAIL_COND(!target);
- ConnectDialog::ConnectionData cToMake;
- cToMake.source = connect_dialog->get_source();
- cToMake.target = target;
- cToMake.signal = connect_dialog->get_signal_name();
- cToMake.method = connect_dialog->get_dst_method_name();
- cToMake.binds = connect_dialog->get_binds();
- bool defer = connect_dialog->get_deferred();
- bool oshot = connect_dialog->get_oneshot();
- cToMake.flags = CONNECT_PERSIST | (defer ? CONNECT_DEFERRED : 0) | (oshot ? CONNECT_ONESHOT : 0);
+ ConnectDialog::ConnectionData cd;
+ cd.source = connect_dialog->get_source();
+ cd.target = target;
+ cd.signal = connect_dialog->get_signal_name();
+ cd.method = connect_dialog->get_dst_method_name();
+ cd.unbinds = connect_dialog->get_unbinds();
+ if (cd.unbinds == 0) {
+ cd.binds = connect_dialog->get_binds();
+ }
+ bool b_deferred = connect_dialog->get_deferred();
+ bool b_oneshot = connect_dialog->get_oneshot();
+ cd.flags = CONNECT_PERSIST | (b_deferred ? CONNECT_DEFERRED : 0) | (b_oneshot ? CONNECT_ONESHOT : 0);
// Conditions to add function: must have a script and must not have the method already
// (in the class, the script itself, or inherited).
bool add_script_function = false;
Ref<Script> script = target->get_script();
- if (!target->get_script().is_null() && !ClassDB::has_method(target->get_class(), cToMake.method)) {
+ if (!target->get_script().is_null() && !ClassDB::has_method(target->get_class(), cd.method)) {
// There is a chance that the method is inherited from another script.
bool found_inherited_function = false;
Ref<Script> inherited_script = script->get_base_script();
while (!inherited_script.is_null()) {
- int line = inherited_script->get_language()->find_function(cToMake.method, inherited_script->get_source_code());
+ int line = inherited_script->get_language()->find_function(cd.method, inherited_script->get_source_code());
if (line != -1) {
found_inherited_function = true;
break;
@@ -575,23 +609,23 @@ void ConnectionsDock::_make_or_edit_connection() {
if (add_script_function) {
// Pick up args here before "it" is deleted by update_tree.
script_function_args = it->get_metadata(0).operator Dictionary()["args"];
- for (int i = 0; i < cToMake.binds.size(); i++) {
- script_function_args.push_back("extra_arg_" + itos(i) + ":" + Variant::get_type_name(cToMake.binds[i].get_type()));
+ for (int i = 0; i < cd.binds.size(); i++) {
+ script_function_args.push_back("extra_arg_" + itos(i) + ":" + Variant::get_type_name(cd.binds[i].get_type()));
}
}
if (connect_dialog->is_editing()) {
_disconnect(*it);
- _connect(cToMake);
+ _connect(cd);
} else {
- _connect(cToMake);
+ _connect(cd);
}
// IMPORTANT NOTE: _disconnect and _connect cause an update_tree, which will delete the object "it" is pointing to.
it = nullptr;
if (add_script_function) {
- editor->emit_signal(SNAME("script_add_function_request"), target, cToMake.method, script_function_args);
+ editor->emit_signal(SNAME("script_add_function_request"), target, cd.method, script_function_args);
hide();
}
@@ -601,23 +635,21 @@ void ConnectionsDock::_make_or_edit_connection() {
/*
* Creates single connection w/ undo-redo functionality.
*/
-void ConnectionsDock::_connect(ConnectDialog::ConnectionData cToMake) {
- Node *source = static_cast<Node *>(cToMake.source);
- Node *target = static_cast<Node *>(cToMake.target);
+void ConnectionsDock::_connect(ConnectDialog::ConnectionData p_cd) {
+ Node *source = Object::cast_to<Node>(p_cd.source);
+ Node *target = Object::cast_to<Node>(p_cd.target);
if (!source || !target) {
return;
}
- undo_redo->create_action(vformat(TTR("Connect '%s' to '%s'"), String(cToMake.signal), String(cToMake.method)));
-
- Callable c(target, cToMake.method);
-
- undo_redo->add_do_method(source, "connect", cToMake.signal, c, cToMake.binds, cToMake.flags);
- undo_redo->add_undo_method(source, "disconnect", cToMake.signal, c);
+ Callable callable = p_cd.get_callable();
+ undo_redo->create_action(vformat(TTR("Connect '%s' to '%s'"), String(p_cd.signal), String(p_cd.method)));
+ undo_redo->add_do_method(source, "connect", p_cd.signal, callable, varray(), p_cd.flags);
+ undo_redo->add_undo_method(source, "disconnect", p_cd.signal, callable);
undo_redo->add_do_method(this, "update_tree");
undo_redo->add_undo_method(this, "update_tree");
- undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); //to force redraw of scene tree
+ undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); // To force redraw of scene tree.
undo_redo->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree");
undo_redo->commit_action();
@@ -626,16 +658,17 @@ void ConnectionsDock::_connect(ConnectDialog::ConnectionData cToMake) {
/*
* Break single connection w/ undo-redo functionality.
*/
-void ConnectionsDock::_disconnect(TreeItem &item) {
- Connection cd = item.get_metadata(0);
- ConnectDialog::ConnectionData c = cd;
+void ConnectionsDock::_disconnect(TreeItem &p_item) {
+ Connection connection = p_item.get_metadata(0);
+ ConnectDialog::ConnectionData cd = connection;
- ERR_FAIL_COND(c.source != selectedNode); // Shouldn't happen but... Bugcheck.
+ ERR_FAIL_COND(cd.source != selected_node); // Shouldn't happen but... Bugcheck.
- undo_redo->create_action(vformat(TTR("Disconnect '%s' from '%s'"), c.signal, c.method));
+ undo_redo->create_action(vformat(TTR("Disconnect '%s' from '%s'"), cd.signal, cd.method));
- undo_redo->add_do_method(selectedNode, "disconnect", c.signal, Callable(c.target, c.method));
- undo_redo->add_undo_method(selectedNode, "connect", c.signal, Callable(c.target, c.method), c.binds, c.flags);
+ Callable callable = cd.get_callable();
+ undo_redo->add_do_method(selected_node, "disconnect", cd.signal, callable);
+ undo_redo->add_undo_method(selected_node, "connect", cd.signal, callable, cd.binds, cd.flags);
undo_redo->add_do_method(this, "update_tree");
undo_redo->add_undo_method(this, "update_tree");
undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); // To force redraw of scene tree.
@@ -656,14 +689,14 @@ void ConnectionsDock::_disconnect_all() {
}
TreeItem *child = item->get_first_child();
- String signalName = item->get_metadata(0).operator Dictionary()["name"];
- undo_redo->create_action(vformat(TTR("Disconnect all from signal: '%s'"), signalName));
+ String signal_name = item->get_metadata(0).operator Dictionary()["name"];
+ undo_redo->create_action(vformat(TTR("Disconnect all from signal: '%s'"), signal_name));
while (child) {
- Connection cd = child->get_metadata(0);
- ConnectDialog::ConnectionData c = cd;
- undo_redo->add_do_method(selectedNode, "disconnect", c.signal, Callable(c.target, c.method));
- undo_redo->add_undo_method(selectedNode, "connect", c.signal, Callable(c.target, c.method), c.binds, c.flags);
+ Connection connection = child->get_metadata(0);
+ ConnectDialog::ConnectionData cd = connection;
+ undo_redo->add_do_method(selected_node, "disconnect", cd.signal, cd.get_callable());
+ undo_redo->add_undo_method(selected_node, "connect", cd.signal, cd.get_callable(), cd.binds, cd.flags);
child = child->get_next();
}
@@ -704,100 +737,118 @@ void ConnectionsDock::_tree_item_activated() { // "Activation" on double-click.
}
}
-bool ConnectionsDock::_is_item_signal(TreeItem &item) {
- return (item.get_parent() == tree->get_root() || item.get_parent()->get_parent() == tree->get_root());
+bool ConnectionsDock::_is_item_signal(TreeItem &p_item) {
+ return (p_item.get_parent() == tree->get_root() || p_item.get_parent()->get_parent() == tree->get_root());
}
/*
* Open connection dialog with TreeItem data to CREATE a brand-new connection.
*/
-void ConnectionsDock::_open_connection_dialog(TreeItem &item) {
- String signal = item.get_metadata(0).operator Dictionary()["name"];
- const String &signalname = signal;
- String midname = selectedNode->get_name();
- for (int i = 0; i < midname.length(); i++) { //TODO: Regex filter may be cleaner.
- char32_t c = midname[i];
+void ConnectionsDock::_open_connection_dialog(TreeItem &p_item) {
+ String signal_name = p_item.get_metadata(0).operator Dictionary()["name"];
+ const String &signal_name_ref = signal_name;
+ String node_name = selected_node->get_name();
+ for (int i = 0; i < node_name.length(); i++) { // TODO: Regex filter may be cleaner.
+ char32_t c = node_name[i];
if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_')) {
if (c == ' ') {
// Replace spaces with underlines.
c = '_';
} else {
// Remove any other characters.
- midname.remove_at(i);
+ node_name.remove_at(i);
i--;
continue;
}
}
- midname[i] = c;
+ node_name[i] = c;
}
- Node *dst_node = selectedNode->get_owner() ? selectedNode->get_owner() : selectedNode;
+ Node *dst_node = selected_node->get_owner() ? selected_node->get_owner() : selected_node;
if (!dst_node || dst_node->get_script().is_null()) {
dst_node = _find_first_script(get_tree()->get_edited_scene_root(), get_tree()->get_edited_scene_root());
}
- StringName dst_method = "_on_" + midname + "_" + signal;
+ Dictionary subst;
- ConnectDialog::ConnectionData c;
- c.source = selectedNode;
- c.signal = StringName(signalname);
- c.target = dst_node;
- c.method = dst_method;
- connect_dialog->popup_dialog(signalname);
- connect_dialog->init(c);
+ String s = node_name.capitalize().replace(" ", "");
+ subst["NodeName"] = s;
+ if (!s.is_empty()) {
+ s[0] = s.to_lower()[0];
+ }
+ subst["nodeName"] = s;
+ subst["node_name"] = node_name.capitalize().replace(" ", "_").to_lower();
+
+ s = signal_name.capitalize().replace(" ", "");
+ subst["SignalName"] = s;
+ if (!s.is_empty()) {
+ s[0] = s.to_lower()[0];
+ }
+ subst["signalName"] = s;
+ subst["signal_name"] = signal_name.capitalize().replace(" ", "_").to_lower();
+
+ String dst_method = String(EDITOR_GET("interface/editors/default_signal_callback_name")).format(subst);
+
+ ConnectDialog::ConnectionData cd;
+ cd.source = selected_node;
+ cd.signal = StringName(signal_name_ref);
+ cd.target = dst_node;
+ cd.method = StringName(dst_method);
+ connect_dialog->popup_dialog(signal_name_ref);
+ connect_dialog->init(cd);
connect_dialog->set_title(TTR("Connect a Signal to a Method"));
}
/*
* Open connection dialog with Connection data to EDIT an existing connection.
*/
-void ConnectionsDock::_open_connection_dialog(ConnectDialog::ConnectionData cToEdit) {
- Node *src = static_cast<Node *>(cToEdit.source);
- Node *dst = static_cast<Node *>(cToEdit.target);
+void ConnectionsDock::_open_connection_dialog(ConnectDialog::ConnectionData p_cd) {
+ Node *src = Object::cast_to<Node>(p_cd.source);
+ Node *dst = Object::cast_to<Node>(p_cd.target);
if (src && dst) {
- const String &signalname = cToEdit.signal;
- connect_dialog->set_title(TTR("Edit Connection:") + cToEdit.signal);
- connect_dialog->popup_dialog(signalname);
- connect_dialog->init(cToEdit, true);
+ const String &signal_name_ref = p_cd.signal;
+ connect_dialog->set_title(TTR("Edit Connection:") + p_cd.signal);
+ connect_dialog->popup_dialog(signal_name_ref);
+ connect_dialog->init(p_cd, true);
}
}
/*
* Open slot method location in script editor.
*/
-void ConnectionsDock::_go_to_script(TreeItem &item) {
- if (_is_item_signal(item)) {
+void ConnectionsDock::_go_to_script(TreeItem &p_item) {
+ if (_is_item_signal(p_item)) {
return;
}
- Connection cd = item.get_metadata(0);
- ConnectDialog::ConnectionData c = cd;
- ERR_FAIL_COND(c.source != selectedNode); //shouldn't happen but...bugcheck
+ Connection connection = p_item.get_metadata(0);
+ ConnectDialog::ConnectionData cd = connection;
+ ERR_FAIL_COND(cd.source != selected_node); // Shouldn't happen but... bugcheck.
- if (!c.target) {
+ if (!cd.target) {
return;
}
- Ref<Script> script = c.target->get_script();
+ Ref<Script> script = cd.target->get_script();
if (script.is_null()) {
return;
}
- if (script.is_valid() && ScriptEditor::get_singleton()->script_goto_method(script, c.method)) {
+ if (script.is_valid() && ScriptEditor::get_singleton()->script_goto_method(script, cd.method)) {
editor->call("_editor_select", EditorNode::EDITOR_SCRIPT);
}
}
-void ConnectionsDock::_handle_signal_menu_option(int option) {
+void ConnectionsDock::_handle_signal_menu_option(int p_option) {
TreeItem *item = tree->get_selected();
if (!item) {
return;
}
- switch (option) {
+ switch (p_option) {
case CONNECT: {
_open_connection_dialog(*item);
} break;
@@ -809,17 +860,17 @@ void ConnectionsDock::_handle_signal_menu_option(int option) {
}
}
-void ConnectionsDock::_handle_slot_menu_option(int option) {
+void ConnectionsDock::_handle_slot_menu_option(int p_option) {
TreeItem *item = tree->get_selected();
if (!item) {
return;
}
- switch (option) {
+ switch (p_option) {
case EDIT: {
- Connection c = item->get_metadata(0);
- _open_connection_dialog(c);
+ Connection connection = item->get_metadata(0);
+ _open_connection_dialog(connection);
} break;
case GO_TO_SCRIPT: {
_go_to_script(*item);
@@ -831,14 +882,14 @@ void ConnectionsDock::_handle_slot_menu_option(int option) {
}
}
-void ConnectionsDock::_rmb_pressed(Vector2 position) {
+void ConnectionsDock::_rmb_pressed(Vector2 p_position) {
TreeItem *item = tree->get_selected();
if (!item) {
return;
}
- Vector2 screen_position = tree->get_screen_position() + position;
+ Vector2 screen_position = tree->get_screen_position() + p_position;
if (_is_item_signal(*item)) {
signal_menu->set_position(screen_position);
@@ -881,14 +932,14 @@ void ConnectionsDock::_bind_methods() {
}
void ConnectionsDock::set_node(Node *p_node) {
- selectedNode = p_node;
+ selected_node = p_node;
update_tree();
}
void ConnectionsDock::update_tree() {
tree->clear();
- if (!selectedNode) {
+ if (!selected_node) {
return;
}
@@ -896,10 +947,10 @@ void ConnectionsDock::update_tree() {
List<MethodInfo> node_signals;
- selectedNode->get_signal_list(&node_signals);
+ selected_node->get_signal_list(&node_signals);
bool did_script = false;
- StringName base = selectedNode->get_class();
+ StringName base = selected_node->get_class();
while (base) {
List<MethodInfo> node_signals2;
@@ -908,7 +959,7 @@ void ConnectionsDock::update_tree() {
if (!did_script) {
// Get script signals (including signals from any base scripts).
- Ref<Script> scr = selectedNode->get_script();
+ Ref<Script> scr = selected_node->get_script();
if (scr.is_valid()) {
scr->get_script_signal_list(&node_signals2);
if (scr->get_path().is_resource_file()) {
@@ -1021,44 +1072,45 @@ void ConnectionsDock::update_tree() {
signal_item->set_tooltip(0, String(signal_name) + "::" + signaldesc + "::" + descr);
}
- // List existing connections
+ // List existing connections.
List<Object::Connection> connections;
- selectedNode->get_signal_connection_list(signal_name, &connections);
+ selected_node->get_signal_connection_list(signal_name, &connections);
for (const Object::Connection &F : connections) {
- Connection cn = F;
- if (!(cn.flags & CONNECT_PERSIST)) {
+ Connection connection = F;
+ if (!(connection.flags & CONNECT_PERSIST)) {
continue;
}
- ConnectDialog::ConnectionData c = cn;
+ ConnectDialog::ConnectionData cd = connection;
- Node *target = Object::cast_to<Node>(c.target);
+ Node *target = Object::cast_to<Node>(cd.target);
if (!target) {
continue;
}
- String path = String(selectedNode->get_path_to(target)) + " :: " + c.method + "()";
- if (c.flags & CONNECT_DEFERRED) {
+ String path = String(selected_node->get_path_to(target)) + " :: " + cd.method + "()";
+ if (cd.flags & CONNECT_DEFERRED) {
path += " (deferred)";
}
- if (c.flags & CONNECT_ONESHOT) {
+ if (cd.flags & CONNECT_ONESHOT) {
path += " (oneshot)";
}
- if (c.binds.size()) {
+ if (cd.unbinds > 0) {
+ path += " unbinds(" + itos(cd.unbinds) + ")";
+ } else if (!cd.binds.is_empty()) {
path += " binds(";
- for (int i = 0; i < c.binds.size(); i++) {
+ for (int i = 0; i < cd.binds.size(); i++) {
if (i > 0) {
path += ", ";
}
- path += c.binds[i].operator String();
+ path += cd.binds[i].operator String();
}
path += ")";
}
TreeItem *connection_item = tree->create_item(signal_item);
connection_item->set_text(0, path);
- Connection cd = c;
- connection_item->set_metadata(0, cd);
+ connection_item->set_metadata(0, connection);
connection_item->set_icon(0, get_theme_icon(SNAME("Slot"), SNAME("EditorIcons")));
}
}
@@ -1130,6 +1182,8 @@ ConnectionsDock::ConnectionsDock(EditorNode *p_editor) {
tree->connect("item_rmb_selected", callable_mp(this, &ConnectionsDock::_rmb_pressed));
add_theme_constant_override("separation", 3 * EDSCALE);
+
+ EDITOR_DEF("interface/editors/default_signal_callback_name", "_on_{node_name}_{signal_name}");
}
ConnectionsDock::~ConnectionsDock() {
diff --git a/editor/connections_dialog.h b/editor/connections_dialog.h
index b9911c1cc5..2759c6cfde 100644
--- a/editor/connections_dialog.h
+++ b/editor/connections_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -48,6 +48,7 @@
class PopupMenu;
class ConnectDialogBinds;
+class SpinBox;
class ConnectDialog : public ConfirmationDialog {
GDCLASS(ConnectDialog, ConfirmationDialog);
@@ -59,25 +60,45 @@ public:
StringName signal;
StringName method;
uint32_t flags = 0;
+ int unbinds = 0;
Vector<Variant> binds;
- ConnectionData() {
- }
+ ConnectionData() {}
+
ConnectionData(const Connection &p_connection) {
source = Object::cast_to<Node>(p_connection.signal.get_object());
signal = p_connection.signal.get_name();
target = Object::cast_to<Node>(p_connection.callable.get_object());
- method = p_connection.callable.get_method();
flags = p_connection.flags;
- binds = p_connection.binds;
+
+ Callable base_callable;
+ if (p_connection.callable.is_custom()) {
+ CallableCustomBind *ccb = dynamic_cast<CallableCustomBind *>(p_connection.callable.get_custom());
+ if (ccb) {
+ binds = ccb->get_binds();
+ base_callable = ccb->get_callable();
+ }
+
+ CallableCustomUnbind *ccu = dynamic_cast<CallableCustomUnbind *>(p_connection.callable.get_custom());
+ if (ccu) {
+ unbinds = ccu->get_unbinds();
+ base_callable = ccu->get_callable();
+ }
+ } else {
+ base_callable = p_connection.callable;
+ }
+ method = base_callable.get_method();
}
- operator Connection() {
- Connection c;
- c.signal = ::Signal(source, signal);
- c.callable = Callable(target, method);
- c.flags = flags;
- c.binds = binds;
- return c;
+
+ Callable get_callable() {
+ if (unbinds > 0) {
+ return Callable(target, method).unbind(unbinds);
+ } else if (!binds.is_empty()) {
+ const Variant *args = binds.ptr();
+ return Callable(target, method).bind(&args, binds.size());
+ } else {
+ return Callable(target, method);
+ }
}
};
@@ -88,25 +109,28 @@ private:
StringName signal;
LineEdit *dst_method;
ConnectDialogBinds *cdbinds;
- bool bEditMode;
+ bool edit_mode;
NodePath dst_path;
VBoxContainer *vbc_right;
SceneTreeEditor *tree;
AcceptDialog *error;
+ SpinBox *unbind_count;
EditorInspector *bind_editor;
OptionButton *type_list;
CheckBox *deferred;
CheckBox *oneshot;
CheckButton *advanced;
+ Vector<Control *> bind_controls;
Label *error_label;
void ok_pressed() override;
void _cancel_pressed();
void _item_activated();
- void _text_submitted(const String &_text);
+ void _text_submitted(const String &p_text);
void _tree_node_selected();
+ void _unbind_count_changed(double p_count);
void _add_bind();
void _remove_bind();
void _advanced_pressed();
@@ -123,13 +147,14 @@ public:
void set_dst_node(Node *p_node);
StringName get_dst_method_name() const;
void set_dst_method(const StringName &p_method);
+ int get_unbinds() const;
Vector<Variant> get_binds() const;
bool get_deferred() const;
bool get_oneshot() const;
bool is_editing() const;
- void init(ConnectionData c, bool bEdit = false);
+ void init(ConnectionData p_cd, bool p_edit = false);
void popup_dialog(const String &p_for_signal);
ConnectDialog();
@@ -159,7 +184,7 @@ class ConnectionsDock : public VBoxContainer {
DISCONNECT
};
- Node *selectedNode;
+ Node *selected_node;
ConnectionsDockTree *tree;
EditorNode *editor;
@@ -176,21 +201,21 @@ class ConnectionsDock : public VBoxContainer {
void _filter_changed(const String &p_text);
void _make_or_edit_connection();
- void _connect(ConnectDialog::ConnectionData cToMake);
- void _disconnect(TreeItem &item);
+ void _connect(ConnectDialog::ConnectionData p_cd);
+ void _disconnect(TreeItem &p_item);
void _disconnect_all();
void _tree_item_selected();
void _tree_item_activated();
- bool _is_item_signal(TreeItem &item);
+ bool _is_item_signal(TreeItem &p_item);
- void _open_connection_dialog(TreeItem &item);
- void _open_connection_dialog(ConnectDialog::ConnectionData cToEdit);
- void _go_to_script(TreeItem &item);
+ void _open_connection_dialog(TreeItem &p_item);
+ void _open_connection_dialog(ConnectDialog::ConnectionData p_cd);
+ void _go_to_script(TreeItem &p_item);
- void _handle_signal_menu_option(int option);
- void _handle_slot_menu_option(int option);
- void _rmb_pressed(Vector2 position);
+ void _handle_signal_menu_option(int p_option);
+ void _handle_slot_menu_option(int p_option);
+ void _rmb_pressed(Vector2 p_position);
void _close();
protected:
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp
index 6bf14df8a1..608eab9a9f 100644
--- a/editor/create_dialog.cpp
+++ b/editor/create_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/create_dialog.h b/editor/create_dialog.h
index b08cb72f14..c36730c4f0 100644
--- a/editor/create_dialog.h
+++ b/editor/create_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/debug_adapter/debug_adapter_parser.cpp b/editor/debugger/debug_adapter/debug_adapter_parser.cpp
index 485d58f4a3..ff4051fc67 100644
--- a/editor/debugger/debug_adapter/debug_adapter_parser.cpp
+++ b/editor/debugger/debug_adapter/debug_adapter_parser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -109,7 +109,7 @@ Dictionary DebugAdapterParser::prepare_error_response(const Dictionary &p_params
case DAP::ErrorType::UNKNOWN:
default:
error = "unknown";
- error_desc = "An unknown error has ocurred when processing the request.";
+ error_desc = "An unknown error has occurred when processing the request.";
break;
}
@@ -412,7 +412,7 @@ Dictionary DebugAdapterParser::req_scopes(const Dictionary &p_params) const {
}
Dictionary DebugAdapterParser::req_variables(const Dictionary &p_params) const {
- // If _remaining_vars > 0, the debugee is still sending a stack dump to the editor.
+ // If _remaining_vars > 0, the debuggee is still sending a stack dump to the editor.
if (DebugAdapterProtocol::get_singleton()->_remaining_vars > 0) {
return Dictionary();
}
diff --git a/editor/debugger/debug_adapter/debug_adapter_parser.h b/editor/debugger/debug_adapter/debug_adapter_parser.h
index 4c93464e39..f458151e17 100644
--- a/editor/debugger/debug_adapter/debug_adapter_parser.h
+++ b/editor/debugger/debug_adapter/debug_adapter_parser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/debug_adapter/debug_adapter_protocol.cpp b/editor/debugger/debug_adapter/debug_adapter_protocol.cpp
index 36fbf8adf1..babe8af8bc 100644
--- a/editor/debugger/debug_adapter/debug_adapter_protocol.cpp
+++ b/editor/debugger/debug_adapter/debug_adapter_protocol.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/debug_adapter/debug_adapter_protocol.h b/editor/debugger/debug_adapter/debug_adapter_protocol.h
index d4291992bf..b54a5f1f3f 100644
--- a/editor/debugger/debug_adapter/debug_adapter_protocol.h
+++ b/editor/debugger/debug_adapter/debug_adapter_protocol.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/debug_adapter/debug_adapter_server.cpp b/editor/debugger/debug_adapter/debug_adapter_server.cpp
index 4775e2c8b0..ffbbf66015 100644
--- a/editor/debugger/debug_adapter/debug_adapter_server.cpp
+++ b/editor/debugger/debug_adapter/debug_adapter_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/debug_adapter/debug_adapter_server.h b/editor/debugger/debug_adapter/debug_adapter_server.h
index c449403cc2..a2b01f92c6 100644
--- a/editor/debugger/debug_adapter/debug_adapter_server.h
+++ b/editor/debugger/debug_adapter/debug_adapter_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/debug_adapter/debug_adapter_types.h b/editor/debugger/debug_adapter/debug_adapter_types.h
index 5156c91d14..77b70909b3 100644
--- a/editor/debugger/debug_adapter/debug_adapter_types.h
+++ b/editor/debugger/debug_adapter/debug_adapter_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_debugger_inspector.cpp b/editor/debugger/editor_debugger_inspector.cpp
index 9346b8f1af..addb168e5f 100644
--- a/editor/debugger/editor_debugger_inspector.cpp
+++ b/editor/debugger/editor_debugger_inspector.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_debugger_inspector.h b/editor/debugger/editor_debugger_inspector.h
index 6648c99c03..5cdc4417d0 100644
--- a/editor/debugger/editor_debugger_inspector.h
+++ b/editor/debugger/editor_debugger_inspector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp
index 8ea028a7de..5bc2be60a7 100644
--- a/editor/debugger/editor_debugger_node.cpp
+++ b/editor/debugger/editor_debugger_node.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_debugger_node.h b/editor/debugger/editor_debugger_node.h
index 135122db68..6fcdbf5f73 100644
--- a/editor/debugger/editor_debugger_node.h
+++ b/editor/debugger/editor_debugger_node.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_debugger_server.cpp b/editor/debugger/editor_debugger_server.cpp
index 34904d55aa..bce131a5fe 100644
--- a/editor/debugger/editor_debugger_server.cpp
+++ b/editor/debugger/editor_debugger_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_debugger_server.h b/editor/debugger/editor_debugger_server.h
index 6a4ca895d1..bda4a1ce7d 100644
--- a/editor/debugger/editor_debugger_server.h
+++ b/editor/debugger/editor_debugger_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_debugger_tree.cpp b/editor/debugger/editor_debugger_tree.cpp
index be369aa0ca..70d64615ae 100644
--- a/editor/debugger/editor_debugger_tree.cpp
+++ b/editor/debugger/editor_debugger_tree.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_debugger_tree.h b/editor/debugger/editor_debugger_tree.h
index 13193344f1..58af52b01f 100644
--- a/editor/debugger/editor_debugger_tree.h
+++ b/editor/debugger/editor_debugger_tree.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_network_profiler.cpp b/editor/debugger/editor_network_profiler.cpp
index 8b1f0085d5..698e950f57 100644
--- a/editor/debugger/editor_network_profiler.cpp
+++ b/editor/debugger/editor_network_profiler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_network_profiler.h b/editor/debugger/editor_network_profiler.h
index 8c1da1cb2d..320dd2a826 100644
--- a/editor/debugger/editor_network_profiler.h
+++ b/editor/debugger/editor_network_profiler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_performance_profiler.cpp b/editor/debugger/editor_performance_profiler.cpp
index 6106f1755d..56d1e7cee9 100644
--- a/editor/debugger/editor_performance_profiler.cpp
+++ b/editor/debugger/editor_performance_profiler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_performance_profiler.h b/editor/debugger/editor_performance_profiler.h
index ea3404b208..998ecc5bb6 100644
--- a/editor/debugger/editor_performance_profiler.h
+++ b/editor/debugger/editor_performance_profiler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_profiler.cpp b/editor/debugger/editor_profiler.cpp
index 2bdacb51b8..d5e825a26c 100644
--- a/editor/debugger/editor_profiler.cpp
+++ b/editor/debugger/editor_profiler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -645,7 +645,7 @@ EditorProfiler::EditorProfiler() {
variables->connect("item_edited", callable_mp(this, &EditorProfiler::_item_edited));
graph = memnew(TextureRect);
- graph->set_expand(true);
+ graph->set_ignore_texture_size(true);
graph->set_mouse_filter(MOUSE_FILTER_STOP);
graph->connect("draw", callable_mp(this, &EditorProfiler::_graph_tex_draw));
graph->connect("gui_input", callable_mp(this, &EditorProfiler::_graph_tex_input));
diff --git a/editor/debugger/editor_profiler.h b/editor/debugger/editor_profiler.h
index 8880824b87..45f7ac39c1 100644
--- a/editor/debugger/editor_profiler.h
+++ b/editor/debugger/editor_profiler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/editor_visual_profiler.cpp b/editor/debugger/editor_visual_profiler.cpp
index a4e4ed4020..3cb5d3513d 100644
--- a/editor/debugger/editor_visual_profiler.cpp
+++ b/editor/debugger/editor_visual_profiler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -786,7 +786,7 @@ EditorVisualProfiler::EditorVisualProfiler() {
variables->connect("cell_selected", callable_mp(this, &EditorVisualProfiler::_item_selected));
graph = memnew(TextureRect);
- graph->set_expand(true);
+ graph->set_ignore_texture_size(true);
graph->set_mouse_filter(MOUSE_FILTER_STOP);
//graph->set_ignore_mouse(false);
graph->connect("draw", callable_mp(this, &EditorVisualProfiler::_graph_tex_draw));
diff --git a/editor/debugger/editor_visual_profiler.h b/editor/debugger/editor_visual_profiler.h
index 6b04fdbafc..55ba725ae8 100644
--- a/editor/debugger/editor_visual_profiler.h
+++ b/editor/debugger/editor_visual_profiler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp
index 4f7dc78017..b72a20ee2f 100644
--- a/editor/debugger/script_editor_debugger.cpp
+++ b/editor/debugger/script_editor_debugger.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/debugger/script_editor_debugger.h b/editor/debugger/script_editor_debugger.h
index 76209aef46..ff1a852f26 100644
--- a/editor/debugger/script_editor_debugger.h
+++ b/editor/debugger/script_editor_debugger.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp
index 1cc8cc01ce..9879671e7b 100644
--- a/editor/dependency_editor.cpp
+++ b/editor/dependency_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/dependency_editor.h b/editor/dependency_editor.h
index b17a685df8..d50b0849b7 100644
--- a/editor/dependency_editor.h
+++ b/editor/dependency_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/dictionary_property_edit.cpp b/editor/dictionary_property_edit.cpp
index 408177e523..30082f2e1a 100644
--- a/editor/dictionary_property_edit.cpp
+++ b/editor/dictionary_property_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/dictionary_property_edit.h b/editor/dictionary_property_edit.h
index d1401c5e5f..4639480828 100644
--- a/editor/dictionary_property_edit.h
+++ b/editor/dictionary_property_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/doc_tools.cpp b/editor/doc_tools.cpp
index b9491998a0..a71e16b66c 100644
--- a/editor/doc_tools.cpp
+++ b/editor/doc_tools.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/doc_tools.h b/editor/doc_tools.h
index 809eedff2a..6c3a93de59 100644
--- a/editor/doc_tools.h
+++ b/editor/doc_tools.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_about.cpp b/editor/editor_about.cpp
index 2de92f5184..54377971c6 100644
--- a/editor/editor_about.cpp
+++ b/editor/editor_about.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -154,7 +154,7 @@ EditorAbout::EditorAbout() {
Label *about_text = memnew(Label);
about_text->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
- about_text->set_text(String::utf8("\xc2\xa9 2007-2021 Juan Linietsky, Ariel Manzur.\n\xc2\xa9 2014-2021 ") +
+ about_text->set_text(String::utf8("\xc2\xa9 2007-2022 Juan Linietsky, Ariel Manzur.\n\xc2\xa9 2014-2022 ") +
TTR("Godot Engine contributors") + "\n");
version_info_vbc->add_child(about_text);
diff --git a/editor/editor_about.h b/editor/editor_about.h
index b76a2ada34..e57b211ed4 100644
--- a/editor/editor_about.h
+++ b/editor/editor_about.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_asset_installer.cpp b/editor/editor_asset_installer.cpp
index 6c64c53837..1de67149c6 100644
--- a/editor/editor_asset_installer.cpp
+++ b/editor/editor_asset_installer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -124,7 +124,7 @@ void EditorAssetInstaller::open(const String &p_path, int p_depth) {
char fname[16384];
unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String name = fname;
+ String name = String::utf8(fname);
files_sorted.insert(name);
ret = unzGoToNextFile(pkg);
@@ -303,7 +303,7 @@ void EditorAssetInstaller::ok_pressed() {
char fname[16384];
ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String name = fname;
+ String name = String::utf8(fname);
if (status_map.has(name) && status_map[name]->is_checked(0)) {
String path = status_map[name]->get_metadata(0);
diff --git a/editor/editor_asset_installer.h b/editor/editor_asset_installer.h
index 9fafe2792a..2f59250933 100644
--- a/editor/editor_asset_installer.h
+++ b/editor/editor_asset_installer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_atlas_packer.cpp b/editor/editor_atlas_packer.cpp
index b8eba7e3f8..b6ec5d1bad 100644
--- a/editor/editor_atlas_packer.cpp
+++ b/editor/editor_atlas_packer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_atlas_packer.h b/editor/editor_atlas_packer.h
index 89824dff1c..133c516d80 100644
--- a/editor/editor_atlas_packer.h
+++ b/editor/editor_atlas_packer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp
index 81a1f26818..0829b9d24f 100644
--- a/editor/editor_audio_buses.cpp
+++ b/editor/editor_audio_buses.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_audio_buses.h b/editor/editor_audio_buses.h
index eb54bb3efb..f856556363 100644
--- a/editor/editor_audio_buses.h
+++ b/editor/editor_audio_buses.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp
index 418d7d58ef..d74a6e12b2 100644
--- a/editor/editor_autoload_settings.cpp
+++ b/editor/editor_autoload_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_autoload_settings.h b/editor/editor_autoload_settings.h
index b8e054cd14..20f6bf476f 100644
--- a/editor/editor_autoload_settings.h
+++ b/editor/editor_autoload_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_command_palette.cpp b/editor/editor_command_palette.cpp
index 6bc23c352a..1724e87489 100644
--- a/editor/editor_command_palette.cpp
+++ b/editor/editor_command_palette.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_command_palette.h b/editor/editor_command_palette.h
index 8836c7b0fb..41141af0c3 100644
--- a/editor/editor_command_palette.h
+++ b/editor/editor_command_palette.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp
index 390a2998d6..7a0a4abbff 100644
--- a/editor/editor_data.cpp
+++ b/editor/editor_data.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_data.h b/editor/editor_data.h
index 976d718b8e..ccf641ff26 100644
--- a/editor/editor_data.h
+++ b/editor/editor_data.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_dir_dialog.cpp b/editor/editor_dir_dialog.cpp
index 61b655098f..39054b7033 100644
--- a/editor/editor_dir_dialog.cpp
+++ b/editor/editor_dir_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_dir_dialog.h b/editor/editor_dir_dialog.h
index ef473b0779..053c1f5503 100644
--- a/editor/editor_dir_dialog.h
+++ b/editor/editor_dir_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp
index 95affb09b6..014e27ae15 100644
--- a/editor/editor_export.cpp
+++ b/editor/editor_export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -620,6 +620,14 @@ String EditorExportPlugin::get_ios_cpp_code() const {
return ios_cpp_code;
}
+void EditorExportPlugin::add_osx_plugin_file(const String &p_path) {
+ osx_plugin_files.push_back(p_path);
+}
+
+const Vector<String> &EditorExportPlugin::get_osx_plugin_files() const {
+ return osx_plugin_files;
+}
+
void EditorExportPlugin::add_ios_project_static_lib(const String &p_path) {
ios_project_static_libs.push_back(p_path);
}
@@ -660,6 +668,7 @@ void EditorExportPlugin::_bind_methods() {
ClassDB::bind_method(D_METHOD("add_ios_linker_flags", "flags"), &EditorExportPlugin::add_ios_linker_flags);
ClassDB::bind_method(D_METHOD("add_ios_bundle_file", "path"), &EditorExportPlugin::add_ios_bundle_file);
ClassDB::bind_method(D_METHOD("add_ios_cpp_code", "code"), &EditorExportPlugin::add_ios_cpp_code);
+ ClassDB::bind_method(D_METHOD("add_osx_plugin_file", "path"), &EditorExportPlugin::add_osx_plugin_file);
ClassDB::bind_method(D_METHOD("skip"), &EditorExportPlugin::skip);
GDVIRTUAL_BIND(_export_file, "path", "type", "features");
diff --git a/editor/editor_export.h b/editor/editor_export.h
index 1a5b8e6026..3d46ae1996 100644
--- a/editor/editor_export.h
+++ b/editor/editor_export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -308,6 +308,8 @@ class EditorExportPlugin : public RefCounted {
Vector<String> ios_bundle_files;
String ios_cpp_code;
+ Vector<String> osx_plugin_files;
+
_FORCE_INLINE_ void _clear() {
shared_objects.clear();
extra_files.clear();
@@ -321,6 +323,7 @@ class EditorExportPlugin : public RefCounted {
ios_plist_content = "";
ios_linker_flags = "";
ios_cpp_code = "";
+ osx_plugin_files.clear();
}
void _export_file_script(const String &p_path, const String &p_type, const Vector<String> &p_features);
@@ -341,6 +344,7 @@ protected:
void add_ios_linker_flags(const String &p_flags);
void add_ios_bundle_file(const String &p_path);
void add_ios_cpp_code(const String &p_code);
+ void add_osx_plugin_file(const String &p_path);
void skip();
@@ -361,6 +365,7 @@ public:
String get_ios_linker_flags() const;
Vector<String> get_ios_bundle_files() const;
String get_ios_cpp_code() const;
+ const Vector<String> &get_osx_plugin_files() const;
EditorExportPlugin();
};
diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp
index 2ca91043e1..94262c2289 100644
--- a/editor/editor_feature_profile.cpp
+++ b/editor/editor_feature_profile.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_feature_profile.h b/editor/editor_feature_profile.h
index d31498bfc6..c5f4ad60f4 100644
--- a/editor/editor_feature_profile.h
+++ b/editor/editor_feature_profile.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp
index a35458d284..dee00b6678 100644
--- a/editor/editor_file_dialog.cpp
+++ b/editor/editor_file_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -723,7 +723,7 @@ void EditorFileDialog::update_file_list() {
item_list->clear();
// Scroll back to the top after opening a directory
- item_list->get_v_scroll()->set_value(0);
+ item_list->get_v_scroll_bar()->set_value(0);
if (display_mode == DISPLAY_THUMBNAILS) {
item_list->set_max_columns(0);
diff --git a/editor/editor_file_dialog.h b/editor/editor_file_dialog.h
index ed427dc76e..b7abfe0836 100644
--- a/editor/editor_file_dialog.h
+++ b/editor/editor_file_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp
index d515b58e37..a0673c8fb7 100644
--- a/editor/editor_file_system.cpp
+++ b/editor/editor_file_system.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_file_system.h b/editor/editor_file_system.h
index feadd0f2b2..ecc71e7d42 100644
--- a/editor/editor_file_system.h
+++ b/editor/editor_file_system.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_folding.cpp b/editor/editor_folding.cpp
index b8341ee406..266a064807 100644
--- a/editor/editor_folding.cpp
+++ b/editor/editor_folding.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_folding.h b/editor/editor_folding.h
index 90deb7c0e8..442d710d71 100644
--- a/editor/editor_folding.h
+++ b/editor/editor_folding.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_fonts.cpp b/editor/editor_fonts.cpp
index c65bfa6472..d556255a8f 100644
--- a/editor/editor_fonts.cpp
+++ b/editor/editor_fonts.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -273,8 +273,8 @@ void editor_register_fonts(Ref<Theme> p_theme) {
// Default font
MAKE_DEFAULT_FONT(df, String());
- p_theme->set_default_theme_font(df); // Default theme font
- p_theme->set_default_theme_font_size(default_font_size);
+ p_theme->set_default_font(df); // Default theme font
+ p_theme->set_default_font_size(default_font_size);
p_theme->set_font_size("main_size", "EditorFonts", default_font_size);
p_theme->set_font("main", "EditorFonts", df);
diff --git a/editor/editor_fonts.h b/editor/editor_fonts.h
index 59ee482b53..e450af00da 100644
--- a/editor/editor_fonts.h
+++ b/editor/editor_fonts.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp
index fc1e7ef389..06e3a63f4a 100644
--- a/editor/editor_help.cpp
+++ b/editor/editor_help.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1724,14 +1724,34 @@ void EditorHelp::_add_text(const String &p_bbcode) {
_add_text_to_rt(p_bbcode, class_desc);
}
-void EditorHelp::generate_doc() {
- doc = memnew(DocTools);
- doc->generate(true);
+Thread EditorHelp::thread;
+
+void EditorHelp::_wait_for_thread() {
+ if (thread.is_started()) {
+ thread.wait_to_finish();
+ }
+}
+
+void EditorHelp::_gen_doc_thread(void *p_udata) {
DocTools compdoc;
compdoc.load_compressed(_doc_data_compressed, _doc_data_compressed_size, _doc_data_uncompressed_size);
doc->merge_from(compdoc); //ensure all is up to date
}
+static bool doc_gen_use_threads = true;
+
+void EditorHelp::generate_doc() {
+ doc = memnew(DocTools);
+ // Not doable on threads unfortunately, since it instantiates all sorts of classes to get default values.
+ doc->generate(true);
+
+ if (doc_gen_use_threads) {
+ thread.start(_gen_doc_thread, nullptr);
+ } else {
+ _gen_doc_thread(nullptr);
+ }
+}
+
void EditorHelp::_toggle_scripts_pressed() {
ScriptEditor::get_singleton()->toggle_scripts_panel();
update_toggle_scripts_button();
@@ -1741,6 +1761,7 @@ void EditorHelp::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_READY:
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
+ _wait_for_thread();
_update_doc();
} break;
case NOTIFICATION_THEME_CHANGED: {
@@ -1758,20 +1779,32 @@ void EditorHelp::_notification(int p_what) {
}
void EditorHelp::go_to_help(const String &p_help) {
+ _wait_for_thread();
_help_callback(p_help);
}
void EditorHelp::go_to_class(const String &p_class, int p_scroll) {
+ _wait_for_thread();
_goto_desc(p_class, p_scroll);
}
void EditorHelp::update_doc() {
+ _wait_for_thread();
ERR_FAIL_COND(!doc->class_list.has(edited_class));
ERR_FAIL_COND(!doc->class_list[edited_class].is_script_doc);
_update_doc();
}
+void EditorHelp::cleanup_doc() {
+ _wait_for_thread();
+ if (doc_gen_use_threads) {
+ thread.wait_to_finish();
+ }
+ memdelete(doc);
+}
+
Vector<Pair<String, int>> EditorHelp::get_sections() {
+ _wait_for_thread();
Vector<Pair<String, int>> sections;
for (int i = 0; i < section_line.size(); i++) {
@@ -1781,11 +1814,13 @@ Vector<Pair<String, int>> EditorHelp::get_sections() {
}
void EditorHelp::scroll_to_section(int p_section_index) {
+ _wait_for_thread();
int line = section_line[p_section_index].second;
class_desc->scroll_to_paragraph(line);
}
void EditorHelp::popup_search() {
+ _wait_for_thread();
find_bar->popup_search();
}
@@ -1798,11 +1833,11 @@ void EditorHelp::search_again(bool p_search_previous) {
}
int EditorHelp::get_scroll() const {
- return class_desc->get_v_scroll()->get_value();
+ return class_desc->get_v_scroll_bar()->get_value();
}
void EditorHelp::set_scroll(int p_scroll) {
- class_desc->get_v_scroll()->set_value(p_scroll);
+ class_desc->get_v_scroll_bar()->set_value(p_scroll);
}
void EditorHelp::update_toggle_scripts_button() {
@@ -1864,6 +1899,11 @@ EditorHelp::EditorHelp() {
EditorHelp::~EditorHelp() {
}
+DocTools *EditorHelp::get_doc_data() {
+ _wait_for_thread();
+ return doc;
+}
+
void EditorHelpBit::_go_to_help(String p_what) {
EditorNode::get_singleton()->set_visible_editor(EditorNode::EDITOR_SCRIPT);
ScriptEditor::get_singleton()->goto_help(p_what);
diff --git a/editor/editor_help.h b/editor/editor_help.h
index 393e4a940a..eb879c6d39 100644
--- a/editor/editor_help.h
+++ b/editor/editor_help.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -31,6 +31,7 @@
#ifndef EDITOR_HELP_H
#define EDITOR_HELP_H
+#include "core/os/thread.h"
#include "editor/code_editor.h"
#include "editor/doc_tools.h"
#include "editor/editor_plugin.h"
@@ -164,13 +165,19 @@ class EditorHelp : public VBoxContainer {
String _fix_constant(const String &p_constant) const;
void _toggle_scripts_pressed();
+ static Thread thread;
+
+ static void _wait_for_thread();
+ static void _gen_doc_thread(void *p_udata);
+
protected:
void _notification(int p_what);
static void _bind_methods();
public:
static void generate_doc();
- static DocTools *get_doc_data() { return doc; }
+ static DocTools *get_doc_data();
+ static void cleanup_doc();
void go_to_help(const String &p_help);
void go_to_class(const String &p_class, int p_scroll = 0);
diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp
index bf7280dfd0..19da6686a5 100644
--- a/editor/editor_help_search.cpp
+++ b/editor/editor_help_search.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_help_search.h b/editor/editor_help_search.h
index 7285f76c01..7d918d0c68 100644
--- a/editor/editor_help_search.h
+++ b/editor/editor_help_search.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp
index a53938e3f1..75e518e050 100644
--- a/editor/editor_inspector.cpp
+++ b/editor/editor_inspector.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1799,7 +1799,7 @@ Array EditorInspectorArray::_extract_properties_as_array(const List<PropertyInfo
dict[format_string] = object->get(pi.name);
output[array_index] = dict;
} else {
- WARN_PRINT(vformat("Array element %s has an index too high. Array allocaiton failed.", pi.name));
+ WARN_PRINT(vformat("Array element %s has an index too high. Array allocation failed.", pi.name));
}
}
}
@@ -2766,7 +2766,7 @@ void EditorInspector::update_tree() {
doc_hint = descr;
}
- // Seach for the inspector plugin that will handle the properties. Then add the correct property editor to it.
+ // Search for the inspector plugin that will handle the properties. Then add the correct property editor to it.
for (Ref<EditorInspectorPlugin> &ped : valid_plugins) {
bool exclusive = ped->parse_property(object, p.type, p.name, p.hint, p.hint_string, p.usage, wide_editors);
@@ -3205,7 +3205,10 @@ void EditorInspector::_property_keyed(const String &p_path, bool p_advance) {
return;
}
- emit_signal(SNAME("property_keyed"), p_path, object->get(p_path), p_advance); //second param is deprecated
+ // The second parameter could be null, causing the event to fire with less arguments, so use the pointer call which preserves it.
+ const Variant args[3] = { p_path, object->get(p_path), p_advance };
+ const Variant *argp[3] = { &args[0], &args[1], &args[2] };
+ emit_signal(SNAME("property_keyed"), argp, 3);
}
void EditorInspector::_property_deleted(const String &p_path) {
@@ -3213,7 +3216,7 @@ void EditorInspector::_property_deleted(const String &p_path) {
return;
}
- emit_signal(SNAME("property_deleted"), p_path); //second param is deprecated
+ emit_signal(SNAME("property_deleted"), p_path);
}
void EditorInspector::_property_keyed_with_value(const String &p_path, const Variant &p_value, bool p_advance) {
@@ -3221,7 +3224,10 @@ void EditorInspector::_property_keyed_with_value(const String &p_path, const Var
return;
}
- emit_signal(SNAME("property_keyed"), p_path, p_value, p_advance); //second param is deprecated
+ // The second parameter could be null, causing the event to fire with less arguments, so use the pointer call which preserves it.
+ const Variant args[3] = { p_path, p_value, p_advance };
+ const Variant *argp[3] = { &args[0], &args[1], &args[2] };
+ emit_signal(SNAME("property_keyed"), argp, 3);
}
void EditorInspector::_property_checked(const String &p_path, bool p_checked) {
@@ -3349,7 +3355,7 @@ void EditorInspector::_notification(int p_what) {
if (p_what == NOTIFICATION_PROCESS) {
if (update_scroll_request >= 0) {
- get_v_scrollbar()->call_deferred(SNAME("set_value"), update_scroll_request);
+ get_v_scroll_bar()->call_deferred(SNAME("set_value"), update_scroll_request);
update_scroll_request = -1;
}
if (refresh_countdown > 0) {
@@ -3531,7 +3537,7 @@ void EditorInspector::_bind_methods() {
ClassDB::bind_method("_edit_request_change", &EditorInspector::_edit_request_change);
ADD_SIGNAL(MethodInfo("property_selected", PropertyInfo(Variant::STRING, "property")));
- ADD_SIGNAL(MethodInfo("property_keyed", PropertyInfo(Variant::STRING, "property")));
+ ADD_SIGNAL(MethodInfo("property_keyed", PropertyInfo(Variant::STRING, "property"), PropertyInfo(Variant::NIL, "value", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT), PropertyInfo(Variant::BOOL, "advance")));
ADD_SIGNAL(MethodInfo("property_deleted", PropertyInfo(Variant::STRING, "property")));
ADD_SIGNAL(MethodInfo("resource_selected", PropertyInfo(Variant::OBJECT, "res"), PropertyInfo(Variant::STRING, "prop")));
ADD_SIGNAL(MethodInfo("object_id_selected", PropertyInfo(Variant::INT, "id")));
@@ -3570,7 +3576,7 @@ EditorInspector::EditorInspector() {
deletable_properties = false;
property_clipboard = Variant();
- get_v_scrollbar()->connect("value_changed", callable_mp(this, &EditorInspector::_vscroll_changed));
+ get_v_scroll_bar()->connect("value_changed", callable_mp(this, &EditorInspector::_vscroll_changed));
update_scroll_request = -1;
if (EditorSettings::get_singleton()) {
refresh_countdown = float(EditorSettings::get_singleton()->get("docks/property_editor/auto_refresh_interval"));
diff --git a/editor/editor_inspector.h b/editor/editor_inspector.h
index d247978649..09b25065dc 100644
--- a/editor/editor_inspector.h
+++ b/editor/editor_inspector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_layouts_dialog.cpp b/editor/editor_layouts_dialog.cpp
index 7c8965d6f4..886e29a504 100644
--- a/editor/editor_layouts_dialog.cpp
+++ b/editor/editor_layouts_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_layouts_dialog.h b/editor/editor_layouts_dialog.h
index 8687660832..bbdffd6722 100644
--- a/editor/editor_layouts_dialog.h
+++ b/editor/editor_layouts_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp
index 7bd98b0f0b..04bfcfac95 100644
--- a/editor/editor_log.cpp
+++ b/editor/editor_log.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -429,7 +429,7 @@ EditorLog::EditorLog() {
vb_right->add_child(editor_filter->toggle_button);
type_filter_map.insert(MSG_TYPE_EDITOR, editor_filter);
- add_message(VERSION_FULL_NAME " (c) 2007-2021 Juan Linietsky, Ariel Manzur & Godot Contributors.");
+ add_message(VERSION_FULL_NAME " (c) 2007-2022 Juan Linietsky, Ariel Manzur & Godot Contributors.");
eh.errfunc = _error_handler;
eh.userdata = this;
diff --git a/editor/editor_log.h b/editor/editor_log.h
index 43cc5680bd..69a6a0b449 100644
--- a/editor/editor_log.h
+++ b/editor/editor_log.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_native_shader_source_visualizer.cpp b/editor/editor_native_shader_source_visualizer.cpp
index f98ac5af79..1813963f6f 100644
--- a/editor/editor_native_shader_source_visualizer.cpp
+++ b/editor/editor_native_shader_source_visualizer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_native_shader_source_visualizer.h b/editor/editor_native_shader_source_visualizer.h
index 72a2f8baae..78034dc3ba 100644
--- a/editor/editor_native_shader_source_visualizer.h
+++ b/editor/editor_native_shader_source_visualizer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 00a776ba4d..afd5407f37 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -477,6 +477,7 @@ void EditorNode::_update_from_settings() {
RS::get_singleton()->environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/environment/ssao/quality"))), GLOBAL_GET("rendering/environment/ssao/half_size"), GLOBAL_GET("rendering/environment/ssao/adaptive_target"), GLOBAL_GET("rendering/environment/ssao/blur_passes"), GLOBAL_GET("rendering/environment/ssao/fadeout_from"), GLOBAL_GET("rendering/environment/ssao/fadeout_to"));
RS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/enabled"), GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/amount"), GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/limit"));
bool glow_bicubic = int(GLOBAL_GET("rendering/environment/glow/upscale_mode")) > 0;
+ RS::get_singleton()->environment_set_ssil_quality(RS::EnvironmentSSILQuality(int(GLOBAL_GET("rendering/environment/ssil/quality"))), GLOBAL_GET("rendering/environment/ssil/half_size"), GLOBAL_GET("rendering/environment/ssil/adaptive_target"), GLOBAL_GET("rendering/environment/ssil/blur_passes"), GLOBAL_GET("rendering/environment/ssil/fadeout_from"), GLOBAL_GET("rendering/environment/ssil/fadeout_to"));
RS::get_singleton()->environment_glow_set_use_bicubic_upscale(glow_bicubic);
bool glow_high_quality = GLOBAL_GET("rendering/environment/glow/use_high_quality");
RS::get_singleton()->environment_glow_set_use_high_quality(glow_high_quality);
@@ -521,8 +522,8 @@ void EditorNode::_update_from_settings() {
Viewport::SDFScale sdf_scale = Viewport::SDFScale(int(GLOBAL_GET("rendering/2d/sdf/scale")));
scene_root->set_sdf_scale(sdf_scale);
- float lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels");
- scene_root->set_lod_threshold(lod_threshold);
+ float mesh_lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels");
+ scene_root->set_mesh_lod_threshold(mesh_lod_threshold);
RS::get_singleton()->decals_set_filter(RS::DecalFilter(int(GLOBAL_GET("rendering/textures/decals/filter"))));
RS::get_singleton()->light_projectors_set_filter(RS::LightProjectorFilter(int(GLOBAL_GET("rendering/textures/light_projectors/filter"))));
@@ -2128,11 +2129,19 @@ static bool overrides_external_editor(Object *p_object) {
return script->get_language()->overrides_external_editor();
}
-void EditorNode::_edit_current() {
+void EditorNode::_edit_current(bool p_skip_foreign) {
ObjectID current = editor_history.get_current();
Object *current_obj = current.is_valid() ? ObjectDB::get_instance(current) : nullptr;
- bool inspector_only = editor_history.is_current_inspector_only();
+ RES res = Object::cast_to<Resource>(current_obj);
+ if (p_skip_foreign && res.is_valid()) {
+ if (res->get_path().find("::") > -1 && res->get_path().get_slice("::", 0) != editor_data.get_scene_path(get_current_tab())) {
+ // Trying to edit resource that belongs to another scene; abort.
+ current_obj = nullptr;
+ }
+ }
+
+ bool inspector_only = editor_history.is_current_inspector_only();
this->current = current_obj;
if (!current_obj) {
@@ -2263,8 +2272,8 @@ void EditorNode::_edit_current() {
if (main_plugin) {
// special case if use of external editor is true
- Resource *res = Object::cast_to<Resource>(current_obj);
- if (main_plugin->get_name() == "Script" && current_obj->get_class_name() != StringName("VisualScript") && res && !res->is_built_in() && (bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor")) || overrides_external_editor(current_obj))) {
+ Resource *current_res = Object::cast_to<Resource>(current_obj);
+ if (main_plugin->get_name() == "Script" && current_obj->get_class_name() != StringName("VisualScript") && current_res && !current_res->is_built_in() && (bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor")) || overrides_external_editor(current_obj))) {
if (!changing_scene) {
main_plugin->edit(current_obj);
}
@@ -3493,7 +3502,7 @@ void EditorNode::set_current_scene(int p_idx) {
}
Dictionary state = editor_data.restore_edited_scene_state(editor_selection, &editor_history);
- _edit_current();
+ _edit_current(true);
_update_title();
@@ -7202,7 +7211,7 @@ EditorNode::~EditorNode() {
EditorTranslationParser::get_singleton()->clean_parsers();
remove_print_handler(&print_handler);
- memdelete(EditorHelp::get_doc_data());
+ EditorHelp::cleanup_doc();
memdelete(editor_selection);
memdelete(editor_plugins_over);
memdelete(editor_plugins_force_over);
diff --git a/editor/editor_node.h b/editor/editor_node.h
index d74ec33f25..7ecdb7c263 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -459,7 +459,7 @@ private:
void _dialog_action(String p_file);
- void _edit_current();
+ void _edit_current(bool p_skip_foreign = false);
void _dialog_display_save_error(String p_file, Error p_error);
void _dialog_display_load_error(String p_file, Error p_error);
diff --git a/editor/editor_path.cpp b/editor/editor_path.cpp
index b6797825b0..3dee06fb3e 100644
--- a/editor/editor_path.cpp
+++ b/editor/editor_path.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_path.h b/editor/editor_path.h
index 07f8b7244e..ad8443534d 100644
--- a/editor/editor_path.h
+++ b/editor/editor_path.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_paths.cpp b/editor/editor_paths.cpp
index e747cdc29e..a4481cd1eb 100644
--- a/editor/editor_paths.cpp
+++ b/editor/editor_paths.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_paths.h b/editor/editor_paths.h
index cf94ed797a..4b814707b2 100644
--- a/editor/editor_paths.h
+++ b/editor/editor_paths.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp
index 9682a847ca..aeca340cb1 100644
--- a/editor/editor_plugin.cpp
+++ b/editor/editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_plugin.h b/editor/editor_plugin.h
index a49e1bf229..faa8ae1ce6 100644
--- a/editor/editor_plugin.h
+++ b/editor/editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_plugin_settings.cpp b/editor/editor_plugin_settings.cpp
index 6aeede78b6..80329a36b2 100644
--- a/editor/editor_plugin_settings.cpp
+++ b/editor/editor_plugin_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_plugin_settings.h b/editor/editor_plugin_settings.h
index 34b26de90e..8ff6e4b9e1 100644
--- a/editor/editor_plugin_settings.h
+++ b/editor/editor_plugin_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index eb1a0a2031..97a38b9200 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2909,8 +2909,11 @@ void EditorPropertyResource::_resource_changed(const RES &p_resource) {
}
}
-void EditorPropertyResource::_sub_inspector_property_keyed(const String &p_property, const Variant &p_value, bool) {
- emit_signal(SNAME("property_keyed_with_value"), String(get_edited_property()) + ":" + p_property, p_value, false);
+void EditorPropertyResource::_sub_inspector_property_keyed(const String &p_property, const Variant &p_value, bool p_advance) {
+ // The second parameter could be null, causing the event to fire with less arguments, so use the pointer call which preserves it.
+ const Variant args[3] = { String(get_edited_property()) + ":" + p_property, p_value, p_advance };
+ const Variant *argp[3] = { &args[0], &args[1], &args[2] };
+ emit_signal(SNAME("property_keyed_with_value"), argp, 3);
}
void EditorPropertyResource::_sub_inspector_resource_selected(const RES &p_resource, const String &p_property) {
diff --git a/editor/editor_properties.h b/editor/editor_properties.h
index 0b98e4c7c9..e62f6823a3 100644
--- a/editor/editor_properties.h
+++ b/editor/editor_properties.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -666,7 +666,7 @@ class EditorPropertyResource : public EditorProperty {
void _viewport_selected(const NodePath &p_path);
- void _sub_inspector_property_keyed(const String &p_property, const Variant &p_value, bool);
+ void _sub_inspector_property_keyed(const String &p_property, const Variant &p_value, bool p_advance);
void _sub_inspector_resource_selected(const RES &p_resource, const String &p_property);
void _sub_inspector_object_id_selected(int p_id);
diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp
index 858de7fb78..36203bca36 100644
--- a/editor/editor_properties_array_dict.cpp
+++ b/editor/editor_properties_array_dict.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_properties_array_dict.h b/editor/editor_properties_array_dict.h
index 7547d57346..4c31ba0b49 100644
--- a/editor/editor_properties_array_dict.h
+++ b/editor/editor_properties_array_dict.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp
index 6a6634d7e5..6002bcfadc 100644
--- a/editor/editor_resource_picker.cpp
+++ b/editor/editor_resource_picker.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -49,6 +49,7 @@ void EditorResourcePicker::_update_resource() {
if (edited_resource == RES()) {
assign_button->set_icon(Ref<Texture2D>());
assign_button->set_text(TTR("[empty]"));
+ assign_button->set_tooltip("");
} else {
assign_button->set_icon(EditorNode::get_singleton()->get_object_icon(edited_resource.operator->(), "Object"));
@@ -56,14 +57,15 @@ void EditorResourcePicker::_update_resource() {
assign_button->set_text(edited_resource->get_name());
} else if (edited_resource->get_path().is_resource_file()) {
assign_button->set_text(edited_resource->get_path().get_file());
- assign_button->set_tooltip(edited_resource->get_path());
} else {
assign_button->set_text(edited_resource->get_class());
}
+ String resource_path;
if (edited_resource->get_path().is_resource_file()) {
- assign_button->set_tooltip(edited_resource->get_path());
+ resource_path = edited_resource->get_path() + "\n";
}
+ assign_button->set_tooltip(resource_path + TTR("Type:") + " " + edited_resource->get_class());
// Preview will override the above, so called at the end.
EditorResourcePreview::get_singleton()->queue_edited_resource_preview(edited_resource, this, "_update_resource_preview", edited_resource->get_instance_id());
@@ -385,8 +387,7 @@ void EditorResourcePicker::_edit_menu_cbk(int p_which) {
void EditorResourcePicker::set_create_options(Object *p_menu_node) {
_ensure_resource_menu();
// If a subclass implements this method, use it to replace all create items.
- if (get_script_instance() && get_script_instance()->has_method("_set_create_options")) {
- get_script_instance()->call("_set_create_options", p_menu_node);
+ if (GDVIRTUAL_CALL(_set_create_options, p_menu_node)) {
return;
}
@@ -442,8 +443,9 @@ void EditorResourcePicker::set_create_options(Object *p_menu_node) {
}
bool EditorResourcePicker::handle_menu_selected(int p_which) {
- if (get_script_instance() && get_script_instance()->has_method("_handle_menu_selected")) {
- return get_script_instance()->call("_handle_menu_selected", p_which);
+ bool success;
+ if (GDVIRTUAL_CALL(_handle_menu_selected, p_which, success)) {
+ return success;
}
return false;
@@ -514,12 +516,14 @@ void EditorResourcePicker::_get_allowed_types(bool p_with_convert, Set<String> *
}
if (p_with_convert) {
- if (base == "StandardMaterial3D") {
+ if (base == "BaseMaterial3D") {
p_vector->insert("Texture2D");
} else if (base == "ShaderMaterial") {
p_vector->insert("Shader");
} else if (base == "Font") {
p_vector->insert("FontData");
+ } else if (base == "Texture2D") {
+ p_vector->insert("Image");
}
}
}
@@ -636,26 +640,46 @@ void EditorResourcePicker::drop_data_fw(const Point2 &p_point, const Variant &p_
for (Set<String>::Element *E = allowed_types.front(); E; E = E->next()) {
String at = E->get().strip_edges();
- if (at == "StandardMaterial3D" && ClassDB::is_parent_class(dropped_resource->get_class(), "Texture2D")) {
- Ref<StandardMaterial3D> mat = memnew(StandardMaterial3D);
+ if (at == "BaseMaterial3D" && ClassDB::is_parent_class(dropped_resource->get_class(), "Texture2D")) {
+ // Use existing resource if possible and only replace its data.
+ Ref<StandardMaterial3D> mat = edited_resource;
+ if (!mat.is_valid()) {
+ mat.instantiate();
+ }
mat->set_texture(StandardMaterial3D::TextureParam::TEXTURE_ALBEDO, dropped_resource);
dropped_resource = mat;
break;
}
if (at == "ShaderMaterial" && ClassDB::is_parent_class(dropped_resource->get_class(), "Shader")) {
- Ref<ShaderMaterial> mat = memnew(ShaderMaterial);
+ Ref<ShaderMaterial> mat = edited_resource;
+ if (!mat.is_valid()) {
+ mat.instantiate();
+ }
mat->set_shader(dropped_resource);
dropped_resource = mat;
break;
}
if (at == "Font" && ClassDB::is_parent_class(dropped_resource->get_class(), "FontData")) {
- Ref<Font> font = memnew(Font);
+ Ref<Font> font = edited_resource;
+ if (!font.is_valid()) {
+ font.instantiate();
+ }
font->add_data(dropped_resource);
dropped_resource = font;
break;
}
+
+ if (at == "Texture2D" && ClassDB::is_parent_class(dropped_resource->get_class(), "Image")) {
+ Ref<ImageTexture> texture = edited_resource;
+ if (!texture.is_valid()) {
+ texture.instantiate();
+ }
+ texture->create_from_image(dropped_resource);
+ dropped_resource = texture;
+ break;
+ }
}
}
@@ -682,8 +706,8 @@ void EditorResourcePicker::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_editable", "enable"), &EditorResourcePicker::set_editable);
ClassDB::bind_method(D_METHOD("is_editable"), &EditorResourcePicker::is_editable);
- ClassDB::add_virtual_method(get_class_static(), MethodInfo("_set_create_options", PropertyInfo(Variant::OBJECT, "menu_node")));
- ClassDB::add_virtual_method(get_class_static(), MethodInfo("_handle_menu_selected", PropertyInfo(Variant::INT, "id")));
+ GDVIRTUAL_BIND(_set_create_options, "menu_node");
+ GDVIRTUAL_BIND(_handle_menu_selected, "id");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "base_type"), "set_base_type", "get_base_type");
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "edited_resource", PROPERTY_HINT_RESOURCE_TYPE, "Resource", PROPERTY_USAGE_NONE), "set_edited_resource", "get_edited_resource");
@@ -850,7 +874,7 @@ EditorResourcePicker::EditorResourcePicker() {
assign_button->connect("gui_input", callable_mp(this, &EditorResourcePicker::_button_input));
preview_rect = memnew(TextureRect);
- preview_rect->set_expand(true);
+ preview_rect->set_ignore_texture_size(true);
preview_rect->set_anchors_and_offsets_preset(PRESET_WIDE);
preview_rect->set_offset(SIDE_TOP, 1);
preview_rect->set_offset(SIDE_BOTTOM, -1);
diff --git a/editor/editor_resource_picker.h b/editor/editor_resource_picker.h
index f55c6f47f3..8ffa52f14f 100644
--- a/editor/editor_resource_picker.h
+++ b/editor/editor_resource_picker.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -102,6 +102,9 @@ protected:
static void _bind_methods();
void _notification(int p_what);
+ GDVIRTUAL1(_set_create_options, Object *)
+ GDVIRTUAL1R(bool, _handle_menu_selected, int)
+
public:
static void clear_caches();
diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp
index 15fc3b1db3..2d1335270c 100644
--- a/editor/editor_resource_preview.cpp
+++ b/editor/editor_resource_preview.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_resource_preview.h b/editor/editor_resource_preview.h
index 9d1f269661..938902a6ad 100644
--- a/editor/editor_resource_preview.h
+++ b/editor/editor_resource_preview.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_run.cpp b/editor/editor_run.cpp
index 92dae89b33..3c1799d80c 100644
--- a/editor/editor_run.cpp
+++ b/editor/editor_run.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_run.h b/editor/editor_run.h
index 3bfe28e1ad..50604ff032 100644
--- a/editor/editor_run.h
+++ b/editor/editor_run.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp
index 74ebffc404..adaeaad6ae 100644
--- a/editor/editor_run_native.cpp
+++ b/editor/editor_run_native.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_run_native.h b/editor/editor_run_native.h
index 97f6fc005a..199d094e55 100644
--- a/editor/editor_run_native.h
+++ b/editor/editor_run_native.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_run_script.cpp b/editor/editor_run_script.cpp
index 27923ef413..77173d178b 100644
--- a/editor/editor_run_script.cpp
+++ b/editor/editor_run_script.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_run_script.h b/editor/editor_run_script.h
index 6c7e37774d..7fb728a00a 100644
--- a/editor/editor_run_script.h
+++ b/editor/editor_run_script.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_scale.cpp b/editor/editor_scale.cpp
index 85304a9cbc..29c1f6278b 100644
--- a/editor/editor_scale.cpp
+++ b/editor/editor_scale.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_scale.h b/editor/editor_scale.h
index b20c18706a..918fde15fb 100644
--- a/editor/editor_scale.h
+++ b/editor/editor_scale.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp
index c7a9171709..6853045345 100644
--- a/editor/editor_sectioned_inspector.cpp
+++ b/editor/editor_sectioned_inspector.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_sectioned_inspector.h b/editor/editor_sectioned_inspector.h
index 1068a4f932..f81c4631e4 100644
--- a/editor/editor_sectioned_inspector.h
+++ b/editor/editor_sectioned_inspector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp
index 1ac1d6f048..bb0a2ed7c1 100644
--- a/editor/editor_settings.cpp
+++ b/editor/editor_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -142,7 +142,7 @@ bool EditorSettings::_get(const StringName &p_name, Variant &r_ret) const {
if (builtin_list.has(shortcut_definition.key)) {
// This shortcut was auto-generated from built in actions: don't save.
- // If the builtin is overriden, it will be saved in the "builtin_action_overrides" section below.
+ // If the builtin is overridden, it will be saved in the "builtin_action_overrides" section below.
continue;
}
@@ -431,7 +431,11 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("interface/editor/hide_console_window", false);
_initial_set("interface/editor/mouse_extra_buttons_navigate_history", true);
_initial_set("interface/editor/save_each_scene_on_quit", true); // Regression
- EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/show_internal_errors_in_toast_notifications", 0, "Auto,Enabled,Disabled")
+#ifdef DEV_ENABLED
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/show_internal_errors_in_toast_notifications", 0, "Auto (Enabled),Enabled,Disabled")
+#else
+ EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/show_internal_errors_in_toast_notifications", 0, "Auto (Disabled),Enabled,Disabled")
+#endif
// Inspector
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "interface/inspector/max_array_dictionary_items_per_page", 20, "10,100,1")
@@ -781,43 +785,6 @@ bool EditorSettings::_is_default_text_editor_theme(String p_theme_name) {
return p_theme_name == "default" || p_theme_name == "godot 2" || p_theme_name == "custom";
}
-static Dictionary _get_builtin_script_templates() {
- Dictionary templates;
-
- // No Comments
- templates["no_comments.gd"] =
- "extends %BASE%\n"
- "\n"
- "\n"
- "func _ready()%VOID_RETURN%:\n"
- "%TS%pass\n";
-
- // Empty
- templates["empty.gd"] =
- "extends %BASE%"
- "\n"
- "\n";
-
- return templates;
-}
-
-static void _create_script_templates(const String &p_path) {
- Dictionary templates = _get_builtin_script_templates();
- List<Variant> keys;
- templates.get_key_list(&keys);
- FileAccessRef file = FileAccess::create(FileAccess::ACCESS_FILESYSTEM);
- DirAccessRef dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
- dir->change_dir(p_path);
- for (int i = 0; i < keys.size(); i++) {
- if (!dir->file_exists(keys[i])) {
- Error err = file->reopen(p_path.plus_file((String)keys[i]), FileAccess::WRITE);
- ERR_FAIL_COND(err != OK);
- file->store_string(templates[keys[i]]);
- file->close();
- }
- }
-}
-
// PUBLIC METHODS
EditorSettings *EditorSettings::get_singleton() {
@@ -852,10 +819,7 @@ void EditorSettings::create() {
}
if (EditorPaths::get_singleton()->are_paths_valid()) {
- _create_script_templates(EditorPaths::get_singleton()->get_config_dir().plus_file("script_templates"));
-
// Validate editor config file.
-
DirAccessRef dir = DirAccess::open(EditorPaths::get_singleton()->get_config_dir());
String config_file_name = "editor_settings-" + itos(VERSION_MAJOR) + ".tres";
config_file_path = EditorPaths::get_singleton()->get_config_dir().plus_file(config_file_name);
diff --git a/editor/editor_settings.h b/editor/editor_settings.h
index cb23ed3d19..f1a0329d65 100644
--- a/editor/editor_settings.h
+++ b/editor/editor_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp
index 111c8c699e..cd28a65c7b 100644
--- a/editor/editor_spin_slider.cpp
+++ b/editor/editor_spin_slider.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_spin_slider.h b/editor/editor_spin_slider.h
index 68448b3240..7e3f2051ac 100644
--- a/editor/editor_spin_slider.h
+++ b/editor/editor_spin_slider.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp
index 7bbac11754..a8a1dc37ab 100644
--- a/editor/editor_themes.cpp
+++ b/editor/editor_themes.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -294,7 +294,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
Ref<Theme> theme = Ref<Theme>(memnew(Theme));
// Controls may rely on the scale for their internal drawing logic.
- theme->set_default_theme_base_scale(EDSCALE);
+ theme->set_default_base_scale(EDSCALE);
// Theme settings
Color accent_color = EDITOR_GET("interface/theme/accent_color");
diff --git a/editor/editor_themes.h b/editor/editor_themes.h
index c040654220..642558d774 100644
--- a/editor/editor_themes.h
+++ b/editor/editor_themes.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_toaster.cpp b/editor/editor_toaster.cpp
index 05b895519d..df0588c641 100644
--- a/editor/editor_toaster.cpp
+++ b/editor/editor_toaster.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_toaster.h b/editor/editor_toaster.h
index 502498986a..b626a47d0c 100644
--- a/editor/editor_toaster.h
+++ b/editor/editor_toaster.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_translation.cpp b/editor/editor_translation.cpp
index 23145c27c8..98248f3a87 100644
--- a/editor/editor_translation.cpp
+++ b/editor/editor_translation.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_translation.h b/editor/editor_translation.h
index 41703f0fd0..baba03859d 100644
--- a/editor/editor_translation.h
+++ b/editor/editor_translation.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_translation_parser.cpp b/editor/editor_translation_parser.cpp
index df47b2d988..27b8c3fd5d 100644
--- a/editor/editor_translation_parser.cpp
+++ b/editor/editor_translation_parser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_translation_parser.h b/editor/editor_translation_parser.h
index 242ba33b55..bd770250f9 100644
--- a/editor/editor_translation_parser.h
+++ b/editor/editor_translation_parser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_vcs_interface.cpp b/editor/editor_vcs_interface.cpp
index b4b740d7c6..97611d9786 100644
--- a/editor/editor_vcs_interface.cpp
+++ b/editor/editor_vcs_interface.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_vcs_interface.h b/editor/editor_vcs_interface.h
index 1a2adeb148..091936dadc 100644
--- a/editor/editor_vcs_interface.h
+++ b/editor/editor_vcs_interface.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_zoom_widget.cpp b/editor/editor_zoom_widget.cpp
index 5a37d882c2..abfa383297 100644
--- a/editor/editor_zoom_widget.cpp
+++ b/editor/editor_zoom_widget.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/editor_zoom_widget.h b/editor/editor_zoom_widget.h
index c35faeefe7..bf8358ff1a 100644
--- a/editor/editor_zoom_widget.h
+++ b/editor/editor_zoom_widget.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp
index 7ae7195deb..8c34609e9c 100644
--- a/editor/export_template_manager.cpp
+++ b/editor/export_template_manager.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -396,7 +396,7 @@ bool ExportTemplateManager::_install_file_selected(const String &p_file, bool p_
char fname[16384];
ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String file = fname;
+ String file = String::utf8(fname);
if (file.ends_with("version.txt")) {
Vector<uint8_t> data;
data.resize(info.uncompressed_size);
@@ -457,7 +457,7 @@ bool ExportTemplateManager::_install_file_selected(const String &p_file, bool p_
char fname[16384];
unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String file_path(String(fname).simplify_path());
+ String file_path(String::utf8(fname).simplify_path());
String file = file_path.get_file();
@@ -698,7 +698,7 @@ Error ExportTemplateManager::install_android_template_from_file(const String &p_
char fpath[16384];
ret = unzGetCurrentFileInfo(pkg, &info, fpath, 16384, nullptr, 0, nullptr, 0);
- String path = fpath;
+ String path = String::utf8(fpath);
String base_dir = path.get_base_dir();
if (!path.ends_with("/")) {
diff --git a/editor/export_template_manager.h b/editor/export_template_manager.h
index ebadb88c36..cf7585635d 100644
--- a/editor/export_template_manager.h
+++ b/editor/export_template_manager.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/fileserver/editor_file_server.cpp b/editor/fileserver/editor_file_server.cpp
index 66bcbb4d5d..4a6aa11938 100644
--- a/editor/fileserver/editor_file_server.cpp
+++ b/editor/fileserver/editor_file_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/fileserver/editor_file_server.h b/editor/fileserver/editor_file_server.h
index d0405e0bb7..7807e72800 100644
--- a/editor/fileserver/editor_file_server.h
+++ b/editor/fileserver/editor_file_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index 72fc9fbc6e..0253307d5a 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -529,7 +529,7 @@ void FileSystemDock::_navigate_to_path(const String &p_path, bool p_select_in_fa
_update_tree(_compute_uncollapsed_paths(), false, p_select_in_favorites, true);
if (display_mode == DISPLAY_MODE_SPLIT) {
_update_file_list(false);
- files->get_v_scroll()->set_value(0);
+ files->get_v_scroll_bar()->set_value(0);
}
String file_name = p_path.get_file();
diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h
index 34b445f1b3..8d50f05da9 100644
--- a/editor/filesystem_dock.h
+++ b/editor/filesystem_dock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp
index 9f7abfa19d..131ecc3b12 100644
--- a/editor/find_in_files.cpp
+++ b/editor/find_in_files.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/find_in_files.h b/editor/find_in_files.h
index 488f14a922..fca6910f1c 100644
--- a/editor/find_in_files.h
+++ b/editor/find_in_files.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/groups_editor.cpp b/editor/groups_editor.cpp
index 788c7dc029..c65d4e9e3b 100644
--- a/editor/groups_editor.cpp
+++ b/editor/groups_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/groups_editor.h b/editor/groups_editor.h
index f0a5b4a794..677ef14a1f 100644
--- a/editor/groups_editor.h
+++ b/editor/groups_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/collada.cpp b/editor/import/collada.cpp
index c1f577f176..2cc534d96d 100644
--- a/editor/import/collada.cpp
+++ b/editor/import/collada.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/collada.h b/editor/import/collada.h
index 5e38637504..b5e4cd9983 100644
--- a/editor/import/collada.h
+++ b/editor/import/collada.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/dynamicfont_import_settings.cpp b/editor/import/dynamicfont_import_settings.cpp
index b63c2bf350..3151496bec 100644
--- a/editor/import/dynamicfont_import_settings.cpp
+++ b/editor/import/dynamicfont_import_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1185,6 +1185,38 @@ void DynamicFontImportSettings::_lang_remove(Object *p_item, int p_column, int p
memdelete(lang_item);
}
+void DynamicFontImportSettings::_ot_add() {
+ menu_ot->set_position(ot_list->get_screen_transform().xform(ot_list->get_local_mouse_position()));
+ menu_ot->set_size(Vector2(1, 1));
+ menu_ot->popup();
+}
+
+void DynamicFontImportSettings::_ot_add_item(int p_option) {
+ String name = TS->tag_to_name(p_option);
+ for (TreeItem *ot_item = ot_list_root->get_first_child(); ot_item; ot_item = ot_item->get_next()) {
+ if (ot_item->get_text(0) == name) {
+ return;
+ }
+ }
+ TreeItem *ot_item = ot_list->create_item(ot_list_root);
+ ERR_FAIL_NULL(ot_item);
+
+ ot_item->set_text(0, name);
+ ot_item->set_editable(0, false);
+ ot_item->set_text(1, "1");
+ ot_item->set_editable(1, true);
+ ot_item->add_button(2, ot_list->get_theme_icon("Remove", "EditorIcons"), BUTTON_REMOVE_VAR, false, TTR("Remove"));
+ ot_item->set_button_color(2, 0, Color(1, 1, 1, 0.75));
+}
+
+void DynamicFontImportSettings::_ot_remove(Object *p_item, int p_column, int p_id) {
+ TreeItem *ot_item = (TreeItem *)p_item;
+ ERR_FAIL_NULL(ot_item);
+
+ ot_list_root->remove_child(ot_item);
+ memdelete(ot_item);
+}
+
void DynamicFontImportSettings::_script_add() {
menu_scripts->set_position(script_list->get_screen_position() + script_list->get_local_mouse_position());
menu_scripts->reset_size();
@@ -1230,6 +1262,7 @@ void DynamicFontImportSettings::_notification(int p_what) {
add_lang->set_icon(add_var->get_theme_icon("Add", "EditorIcons"));
add_script->set_icon(add_var->get_theme_icon("Add", "EditorIcons"));
add_var->set_icon(add_var->get_theme_icon("Add", "EditorIcons"));
+ add_ot->set_icon(add_var->get_theme_icon("Add", "EditorIcons"));
}
}
@@ -1317,6 +1350,14 @@ void DynamicFontImportSettings::_re_import() {
main_settings["preload/glyph_ranges"] = ranges;
}
+ Dictionary ot_ov;
+ for (TreeItem *ot_item = ot_list_root->get_first_child(); ot_item; ot_item = ot_item->get_next()) {
+ String tag = ot_item->get_text(0);
+ int32_t value = ot_item->get_text(1).to_int();
+ ot_ov[tag] = value;
+ }
+ main_settings["opentype_feature_overrides"] = ot_ov;
+
if (OS::get_singleton()->is_stdout_verbose()) {
print_line("Import settings:");
for (Map<StringName, Variant>::Element *E = main_settings.front(); E; E = E->next()) {
@@ -1373,6 +1414,7 @@ void DynamicFontImportSettings::open_settings(const String &p_path) {
vars_list->clear();
lang_list->clear();
script_list->clear();
+ ot_list->clear();
selected_chars.clear();
selected_glyphs.clear();
@@ -1381,6 +1423,7 @@ void DynamicFontImportSettings::open_settings(const String &p_path) {
vars_list_root = vars_list->create_item();
lang_list_root = lang_list->create_item();
script_list_root = script_list->create_item();
+ ot_list_root = ot_list->create_item();
options_variations.clear();
Dictionary var_list = dfont_main->get_supported_variation_list();
@@ -1546,6 +1589,23 @@ void DynamicFontImportSettings::open_settings(const String &p_path) {
script_item->set_editable(1, true);
script_item->add_button(2, lang_list->get_theme_icon("Remove", "EditorIcons"), BUTTON_REMOVE_VAR, false, TTR("Remove"));
}
+ } else if (key == "opentype_feature_overrides") {
+ Dictionary features = config->get_value("params", key);
+ for (const Variant *ftr = features.next(nullptr); ftr != nullptr; ftr = features.next(ftr)) {
+ TreeItem *ot_item = ot_list->create_item(ot_list_root);
+ ERR_FAIL_NULL(ot_item);
+ int32_t value = features[*ftr];
+ if (ftr->get_type() == Variant::STRING) {
+ ot_item->set_text(0, *ftr);
+ } else {
+ ot_item->set_text(0, TS->tag_to_name(*ftr));
+ }
+ ot_item->set_editable(0, false);
+ ot_item->set_text(1, itos(value));
+ ot_item->set_editable(1, true);
+ ot_item->add_button(2, ot_list->get_theme_icon("Remove", "EditorIcons"), BUTTON_REMOVE_VAR, false, TTR("Remove"));
+ ot_item->set_button_color(2, 0, Color(1, 1, 1, 0.75));
+ }
} else {
Variant value = config->get_value("params", key);
import_settings_data->defaults[key] = value;
@@ -1570,6 +1630,39 @@ void DynamicFontImportSettings::open_settings(const String &p_path) {
font_preview_label->add_theme_font_override("font", font_preview);
font_preview_label->update();
+ menu_ot->clear();
+ menu_ot_ss->clear();
+ menu_ot_cv->clear();
+ menu_ot_cu->clear();
+ bool have_ss = false;
+ bool have_cv = false;
+ bool have_cu = false;
+ Dictionary features = font_preview->get_feature_list();
+ for (const Variant *ftr = features.next(nullptr); ftr != nullptr; ftr = features.next(ftr)) {
+ String ftr_name = TS->tag_to_name(*ftr);
+ if (ftr_name.begins_with("stylistic_set_")) {
+ menu_ot_ss->add_item(ftr_name.capitalize(), (int32_t)*ftr);
+ have_ss = true;
+ } else if (ftr_name.begins_with("character_variant_")) {
+ menu_ot_cv->add_item(ftr_name.capitalize(), (int32_t)*ftr);
+ have_cv = true;
+ } else if (ftr_name.begins_with("custom_")) {
+ menu_ot_cu->add_item(ftr_name.replace("custom_", ""), (int32_t)*ftr);
+ have_cu = true;
+ } else {
+ menu_ot->add_item(ftr_name.capitalize(), (int32_t)*ftr);
+ }
+ }
+ if (have_ss) {
+ menu_ot->add_submenu_item(RTR("Stylistic Sets"), "SSMenu");
+ }
+ if (have_cv) {
+ menu_ot->add_submenu_item(RTR("Character Variants"), "CVMenu");
+ }
+ if (have_cu) {
+ menu_ot->add_submenu_item(RTR("Custom"), "CUMenu");
+ }
+
_variations_validate();
popup_centered_ratio();
@@ -1619,6 +1712,25 @@ DynamicFontImportSettings::DynamicFontImportSettings() {
add_child(menu_scripts);
menu_scripts->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_script_add_item));
+ menu_ot = memnew(PopupMenu);
+ add_child(menu_ot);
+ menu_ot->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item));
+
+ menu_ot_cv = memnew(PopupMenu);
+ menu_ot_cv->set_name("CVMenu");
+ menu_ot->add_child(menu_ot_cv);
+ menu_ot_cv->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item));
+
+ menu_ot_ss = memnew(PopupMenu);
+ menu_ot_ss->set_name("SSMenu");
+ menu_ot->add_child(menu_ot_ss);
+ menu_ot_ss->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item));
+
+ menu_ot_cu = memnew(PopupMenu);
+ menu_ot_cu->set_name("CUMenu");
+ menu_ot->add_child(menu_ot_cu);
+ menu_ot_cu->connect("id_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add_item));
+
Color warn_color = (EditorNode::get_singleton()) ? EditorNode::get_singleton()->get_gui_base()->get_theme_color("warning_color", "Editor") : Color(1, 1, 0);
// Root layout
@@ -1897,6 +2009,34 @@ DynamicFontImportSettings::DynamicFontImportSettings() {
script_list->connect("button_pressed", callable_mp(this, &DynamicFontImportSettings::_script_remove));
script_list->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+ HBoxContainer *hb_ot = memnew(HBoxContainer);
+ page5_vb->add_child(hb_ot);
+
+ label_ot = memnew(Label);
+ label_ot->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER);
+ label_ot->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ label_ot->set_text(TTR("OpenType feature overrides"));
+ hb_ot->add_child(label_ot);
+
+ add_ot = memnew(Button);
+ hb_ot->add_child(add_ot);
+ add_ot->set_tooltip(TTR("Add feature override"));
+ add_ot->set_icon(add_var->get_theme_icon("Add", "EditorIcons"));
+ add_ot->connect("pressed", callable_mp(this, &DynamicFontImportSettings::_ot_add));
+
+ ot_list = memnew(Tree);
+ page5_vb->add_child(ot_list);
+ ot_list->set_hide_root(true);
+ ot_list->set_columns(3);
+ ot_list->set_column_expand(0, true);
+ ot_list->set_column_custom_minimum_width(0, 80 * EDSCALE);
+ ot_list->set_column_expand(1, true);
+ ot_list->set_column_custom_minimum_width(1, 80 * EDSCALE);
+ ot_list->set_column_expand(2, false);
+ ot_list->set_column_custom_minimum_width(2, 50 * EDSCALE);
+ ot_list->connect("button_pressed", callable_mp(this, &DynamicFontImportSettings::_ot_remove));
+ ot_list->set_v_size_flags(Control::SIZE_EXPAND_FILL);
+
// Common
import_settings_data.instantiate();
diff --git a/editor/import/dynamicfont_import_settings.h b/editor/import/dynamicfont_import_settings.h
index 05f5e8e00b..89665ae476 100644
--- a/editor/import/dynamicfont_import_settings.h
+++ b/editor/import/dynamicfont_import_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -120,18 +120,27 @@ class DynamicFontImportSettings : public ConfirmationDialog {
Label *page5_description = nullptr;
Button *add_lang = nullptr;
Button *add_script = nullptr;
+ Button *add_ot = nullptr;
PopupMenu *menu_langs = nullptr;
PopupMenu *menu_scripts = nullptr;
+ PopupMenu *menu_ot = nullptr;
+ PopupMenu *menu_ot_ss = nullptr;
+ PopupMenu *menu_ot_cv = nullptr;
+ PopupMenu *menu_ot_cu = nullptr;
Tree *lang_list = nullptr;
TreeItem *lang_list_root = nullptr;
+ Label *label_langs = nullptr;
Tree *script_list = nullptr;
TreeItem *script_list_root = nullptr;
- Label *label_langs = nullptr;
Label *label_script = nullptr;
+ Tree *ot_list = nullptr;
+ TreeItem *ot_list_root = nullptr;
+ Label *label_ot = nullptr;
+
void _lang_add();
void _lang_add_item(int p_option);
void _lang_remove(Object *p_item, int p_column, int p_id);
@@ -140,6 +149,10 @@ class DynamicFontImportSettings : public ConfirmationDialog {
void _script_add_item(int p_option);
void _script_remove(Object *p_item, int p_column, int p_id);
+ void _ot_add();
+ void _ot_add_item(int p_option);
+ void _ot_remove(Object *p_item, int p_column, int p_id);
+
// Common
void _add_glyph_range_item(int32_t p_start, int32_t p_end, const String &p_name);
diff --git a/editor/import/editor_import_collada.cpp b/editor/import/editor_import_collada.cpp
index 91f8e5b910..22b2bd1ed4 100644
--- a/editor/import/editor_import_collada.cpp
+++ b/editor/import/editor_import_collada.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1755,7 +1755,7 @@ void EditorSceneFormatImporterCollada::get_extensions(List<String> *r_extensions
r_extensions->push_back("dae");
}
-Node *EditorSceneFormatImporterCollada::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
+Node *EditorSceneFormatImporterCollada::import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
if (r_err) {
*r_err = OK;
}
@@ -1811,7 +1811,7 @@ Node *EditorSceneFormatImporterCollada::import_scene(const String &p_path, uint3
return state.scene;
}
-Ref<Animation> EditorSceneFormatImporterCollada::import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) {
+Ref<Animation> EditorSceneFormatImporterCollada::import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) {
ColladaImport state;
state.use_mesh_builtin_materials = false;
diff --git a/editor/import/editor_import_collada.h b/editor/import/editor_import_collada.h
index 055a6fe178..c32d785d1c 100644
--- a/editor/import/editor_import_collada.h
+++ b/editor/import/editor_import_collada.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -39,8 +39,8 @@ class EditorSceneFormatImporterCollada : public EditorSceneFormatImporter {
public:
virtual uint32_t get_import_flags() const override;
virtual void get_extensions(List<String> *r_extensions) const override;
- virtual Node *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps = nullptr, Error *r_err = nullptr) override;
- virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) override;
+ virtual Node *import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps = nullptr, Error *r_err = nullptr) override;
+ virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) override;
EditorSceneFormatImporterCollada();
};
diff --git a/editor/import/editor_import_plugin.cpp b/editor/import/editor_import_plugin.cpp
index 1a002569c5..cf3464b168 100644
--- a/editor/import/editor_import_plugin.cpp
+++ b/editor/import/editor_import_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/editor_import_plugin.h b/editor/import/editor_import_plugin.h
index 6c5f4f6005..6cff8fb917 100644
--- a/editor/import/editor_import_plugin.h
+++ b/editor/import/editor_import_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_bitmask.cpp b/editor/import/resource_importer_bitmask.cpp
index c43052593d..16b68bcc22 100644
--- a/editor/import/resource_importer_bitmask.cpp
+++ b/editor/import/resource_importer_bitmask.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_bitmask.h b/editor/import/resource_importer_bitmask.h
index f3da5f9a31..e5cf1facff 100644
--- a/editor/import/resource_importer_bitmask.h
+++ b/editor/import/resource_importer_bitmask.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_bmfont.cpp b/editor/import/resource_importer_bmfont.cpp
index f54065416e..fa560e8eb1 100644
--- a/editor/import/resource_importer_bmfont.cpp
+++ b/editor/import/resource_importer_bmfont.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_bmfont.h b/editor/import/resource_importer_bmfont.h
index 64d536535c..e5a96e2c40 100644
--- a/editor/import/resource_importer_bmfont.h
+++ b/editor/import/resource_importer_bmfont.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_csv_translation.cpp b/editor/import/resource_importer_csv_translation.cpp
index 7a226802f2..448b318c64 100644
--- a/editor/import/resource_importer_csv_translation.cpp
+++ b/editor/import/resource_importer_csv_translation.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_csv_translation.h b/editor/import/resource_importer_csv_translation.h
index de7ba3e3a0..8f6cf94984 100644
--- a/editor/import/resource_importer_csv_translation.h
+++ b/editor/import/resource_importer_csv_translation.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_dynamicfont.cpp b/editor/import/resource_importer_dynamicfont.cpp
index f7363a565d..11f563a982 100644
--- a/editor/import/resource_importer_dynamicfont.cpp
+++ b/editor/import/resource_importer_dynamicfont.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -107,6 +107,7 @@ void ResourceImporterDynamicFont::get_import_options(const String &p_path, List<
r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_RANGE, "0,10,0.1"), 0.0));
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "compress"), true));
+ r_options->push_back(ImportOption(PropertyInfo(Variant::DICTIONARY, "opentype_feature_overrides"), Dictionary()));
r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "preload/char_ranges"), Vector<String>()));
r_options->push_back(ImportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "preload/glyph_ranges"), Vector<String>()));
@@ -174,6 +175,7 @@ Error ResourceImporterDynamicFont::import(const String &p_source_file, const Str
bool msdf = p_options["multichannel_signed_distance_field"];
int px_range = p_options["msdf_pixel_range"];
int px_size = p_options["msdf_size"];
+ Dictionary ot_ov = p_options["opentype_feature_overrides"];
bool autohinter = p_options["force_autohinter"];
int hinting = p_options["hinting"];
@@ -190,6 +192,7 @@ Error ResourceImporterDynamicFont::import(const String &p_source_file, const Str
font->set_multichannel_signed_distance_field(msdf);
font->set_msdf_pixel_range(px_range);
font->set_msdf_size(px_size);
+ font->set_opentype_feature_overrides(ot_ov);
font->set_fixed_size(0);
font->set_force_autohinter(autohinter);
font->set_hinting((TextServer::Hinting)hinting);
diff --git a/editor/import/resource_importer_dynamicfont.h b/editor/import/resource_importer_dynamicfont.h
index cb5294b9dd..a55d639e10 100644
--- a/editor/import/resource_importer_dynamicfont.h
+++ b/editor/import/resource_importer_dynamicfont.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_image.cpp b/editor/import/resource_importer_image.cpp
index 45cb5e2f9d..e6a822d827 100644
--- a/editor/import/resource_importer_image.cpp
+++ b/editor/import/resource_importer_image.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_image.h b/editor/import/resource_importer_image.h
index b7131ec850..81aedc91e8 100644
--- a/editor/import/resource_importer_image.h
+++ b/editor/import/resource_importer_image.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_imagefont.cpp b/editor/import/resource_importer_imagefont.cpp
index 04a68e4a53..0a15284ef5 100644
--- a/editor/import/resource_importer_imagefont.cpp
+++ b/editor/import/resource_importer_imagefont.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_imagefont.h b/editor/import/resource_importer_imagefont.h
index d600c35e1c..c1116d5a83 100644
--- a/editor/import/resource_importer_imagefont.h
+++ b/editor/import/resource_importer_imagefont.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_layered_texture.cpp b/editor/import/resource_importer_layered_texture.cpp
index 89c62ab5cb..5876d6df0b 100644
--- a/editor/import/resource_importer_layered_texture.cpp
+++ b/editor/import/resource_importer_layered_texture.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -392,7 +392,7 @@ Error ResourceImporterLayeredTexture::import(const String &p_source_file, const
bool can_s3tc = ProjectSettings::get_singleton()->get("rendering/textures/vram_compression/import_s3tc");
if (can_bptc) {
- formats_imported.push_back("bptc"); //needs to be aded anyway
+ formats_imported.push_back("bptc"); // Needs to be added anyway.
}
bool can_compress_hdr = hdr_compression > 0;
diff --git a/editor/import/resource_importer_layered_texture.h b/editor/import/resource_importer_layered_texture.h
index 29dfe7263a..ee8e7dc615 100644
--- a/editor/import/resource_importer_layered_texture.h
+++ b/editor/import/resource_importer_layered_texture.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_obj.cpp b/editor/import/resource_importer_obj.cpp
index 9e3cdbdeff..96645665aa 100644
--- a/editor/import/resource_importer_obj.cpp
+++ b/editor/import/resource_importer_obj.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -424,7 +424,7 @@ static Error _parse_obj(const String &p_path, List<Ref<Mesh>> &r_meshes, bool p_
return OK;
}
-Node *EditorOBJImporter::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
+Node *EditorOBJImporter::import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
List<Ref<Mesh>> meshes;
Error err = _parse_obj(p_path, meshes, false, p_flags & IMPORT_GENERATE_TANGENT_ARRAYS, false, Vector3(1, 1, 1), Vector3(0, 0, 0), r_missing_deps);
@@ -459,7 +459,7 @@ Node *EditorOBJImporter::import_scene(const String &p_path, uint32_t p_flags, in
return scene;
}
-Ref<Animation> EditorOBJImporter::import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) {
+Ref<Animation> EditorOBJImporter::import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) {
return Ref<Animation>();
}
diff --git a/editor/import/resource_importer_obj.h b/editor/import/resource_importer_obj.h
index c3e46b6eb5..d7e3f0209d 100644
--- a/editor/import/resource_importer_obj.h
+++ b/editor/import/resource_importer_obj.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -39,8 +39,8 @@ class EditorOBJImporter : public EditorSceneFormatImporter {
public:
virtual uint32_t get_import_flags() const override;
virtual void get_extensions(List<String> *r_extensions) const override;
- virtual Node *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
- virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) override;
+ virtual Node *import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
+ virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) override;
EditorOBJImporter();
};
diff --git a/editor/import/resource_importer_scene.cpp b/editor/import/resource_importer_scene.cpp
index c7eb6181ba..e801cd4553 100644
--- a/editor/import/resource_importer_scene.cpp
+++ b/editor/import/resource_importer_scene.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -30,9 +30,9 @@
#include "resource_importer_scene.h"
+#include "core/error/error_macros.h"
#include "core/io/resource_saver.h"
#include "editor/editor_node.h"
-
#include "editor/import/scene_import_settings.h"
#include "scene/3d/area_3d.h"
#include "scene/3d/collision_shape_3d.h"
@@ -73,18 +73,26 @@ void EditorSceneFormatImporter::get_extensions(List<String> *r_extensions) const
ERR_FAIL();
}
-Node *EditorSceneFormatImporter::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
- Object *ret;
- if (GDVIRTUAL_CALL(_import_scene, p_path, p_flags, p_bake_fps, ret)) {
+Node *EditorSceneFormatImporter::import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
+ Dictionary options_dict;
+ for (const KeyValue<StringName, Variant> &elem : p_options) {
+ options_dict[elem.key] = elem.value;
+ }
+ Object *ret = nullptr;
+ if (GDVIRTUAL_CALL(_import_scene, p_path, p_flags, options_dict, p_bake_fps, ret)) {
return Object::cast_to<Node>(ret);
}
ERR_FAIL_V(nullptr);
}
-Ref<Animation> EditorSceneFormatImporter::import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) {
+Ref<Animation> EditorSceneFormatImporter::import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) {
+ Dictionary options_dict;
+ for (const KeyValue<StringName, Variant> &elem : p_options) {
+ options_dict[elem.key] = elem.value;
+ }
Ref<Animation> ret;
- if (GDVIRTUAL_CALL(_import_animation, p_path, p_flags, p_bake_fps, ret)) {
+ if (GDVIRTUAL_CALL(_import_animation, p_path, p_flags, options_dict, p_bake_fps, ret)) {
return ret;
}
@@ -101,25 +109,11 @@ Variant EditorSceneFormatImporter::get_option_visibility(const String &p_path, c
return ret;
}
-//for documenters, these functions are useful when an importer calls an external conversion helper (like, fbx2gltf),
-//and you want to load the resulting file
-
-Node *EditorSceneFormatImporter::import_scene_from_other_importer(const String &p_path, uint32_t p_flags, int p_bake_fps) {
- return ResourceImporterScene::get_singleton()->import_scene_from_other_importer(this, p_path, p_flags, p_bake_fps);
-}
-
-Ref<Animation> EditorSceneFormatImporter::import_animation_from_other_importer(const String &p_path, uint32_t p_flags, int p_bake_fps) {
- return ResourceImporterScene::get_singleton()->import_animation_from_other_importer(this, p_path, p_flags, p_bake_fps);
-}
-
void EditorSceneFormatImporter::_bind_methods() {
- ClassDB::bind_method(D_METHOD("import_scene_from_other_importer", "path", "flags", "bake_fps"), &EditorSceneFormatImporter::import_scene_from_other_importer);
- ClassDB::bind_method(D_METHOD("import_animation_from_other_importer", "path", "flags", "bake_fps"), &EditorSceneFormatImporter::import_animation_from_other_importer);
-
GDVIRTUAL_BIND(_get_import_flags);
GDVIRTUAL_BIND(_get_extensions);
- GDVIRTUAL_BIND(_import_scene, "path", "flags", "bake_fps");
- GDVIRTUAL_BIND(_import_animation, "path", "flags", "bake_fps");
+ GDVIRTUAL_BIND(_import_scene, "path", "flags", "options", "bake_fps");
+ GDVIRTUAL_BIND(_import_animation, "path", "flags", "options", "bake_fps");
GDVIRTUAL_BIND(_get_import_options, "path");
GDVIRTUAL_BIND(_get_option_visibility, "path", "option");
@@ -1473,64 +1467,6 @@ void ResourceImporterScene::_replace_owner(Node *p_node, Node *p_scene, Node *p_
}
}
-Node *ResourceImporterScene::import_scene_from_other_importer(EditorSceneFormatImporter *p_exception, const String &p_path, uint32_t p_flags, int p_bake_fps) {
- Ref<EditorSceneFormatImporter> importer;
- String ext = p_path.get_extension().to_lower();
-
- for (Set<Ref<EditorSceneFormatImporter>>::Element *E = importers.front(); E; E = E->next()) {
- if (E->get().ptr() == p_exception) {
- continue;
- }
- List<String> extensions;
- E->get()->get_extensions(&extensions);
-
- for (const String &F : extensions) {
- if (F.to_lower() == ext) {
- importer = E->get();
- break;
- }
- }
-
- if (importer.is_valid()) {
- break;
- }
- }
-
- ERR_FAIL_COND_V(!importer.is_valid(), nullptr);
-
- List<String> missing;
- Error err;
- return importer->import_scene(p_path, p_flags, p_bake_fps, &missing, &err);
-}
-
-Ref<Animation> ResourceImporterScene::import_animation_from_other_importer(EditorSceneFormatImporter *p_exception, const String &p_path, uint32_t p_flags, int p_bake_fps) {
- Ref<EditorSceneFormatImporter> importer;
- String ext = p_path.get_extension().to_lower();
-
- for (Set<Ref<EditorSceneFormatImporter>>::Element *E = importers.front(); E; E = E->next()) {
- if (E->get().ptr() == p_exception) {
- continue;
- }
- List<String> extensions;
- E->get()->get_extensions(&extensions);
-
- for (const String &F : extensions) {
- if (F.to_lower() == ext) {
- importer = E->get();
- break;
- }
- }
-
- if (importer.is_valid()) {
- break;
- }
- }
-
- ERR_FAIL_COND_V(!importer.is_valid(), nullptr);
-
- return importer->import_animation(p_path, p_flags, p_bake_fps);
-}
-
void ResourceImporterScene::_generate_meshes(Node *p_node, const Dictionary &p_mesh_data, bool p_generate_lods, bool p_create_shadow_meshes, LightBakeMode p_light_bake_mode, float p_lightmap_texel_size, const Vector<uint8_t> &p_src_lightmap_cache, Vector<Vector<uint8_t>> &r_lightmap_caches) {
ImporterMeshInstance3D *src_mesh_node = Object::cast_to<ImporterMeshInstance3D>(p_node);
if (src_mesh_node) {
@@ -1886,7 +1822,7 @@ Node *ResourceImporterScene::pre_import(const String &p_source_file) {
ERR_FAIL_COND_V(!importer.is_valid(), nullptr);
Error err = OK;
- Node *scene = importer->import_scene(p_source_file, EditorSceneFormatImporter::IMPORT_ANIMATION | EditorSceneFormatImporter::IMPORT_GENERATE_TANGENT_ARRAYS, 15, nullptr, &err);
+ Node *scene = importer->import_scene(p_source_file, EditorSceneFormatImporter::IMPORT_ANIMATION | EditorSceneFormatImporter::IMPORT_GENERATE_TANGENT_ARRAYS, Map<StringName, Variant>(), 15, nullptr, &err);
if (!scene || err != OK) {
return nullptr;
}
@@ -1944,7 +1880,7 @@ Error ResourceImporterScene::import(const String &p_source_file, const String &p
Error err = OK;
List<String> missing_deps; // for now, not much will be done with this
- Node *scene = importer->import_scene(src_path, import_flags, fps, &missing_deps, &err);
+ Node *scene = importer->import_scene(src_path, import_flags, p_options, fps, &missing_deps, &err);
if (!scene || err != OK) {
return err;
}
@@ -2121,7 +2057,7 @@ void EditorSceneFormatImporterESCN::get_extensions(List<String> *r_extensions) c
r_extensions->push_back("escn");
}
-Node *EditorSceneFormatImporterESCN::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
+Node *EditorSceneFormatImporterESCN::import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
Error error;
Ref<PackedScene> ps = ResourceFormatLoaderText::singleton->load(p_path, p_path, &error);
ERR_FAIL_COND_V_MSG(!ps.is_valid(), nullptr, "Cannot load scene as text resource from path '" + p_path + "'.");
@@ -2132,6 +2068,6 @@ Node *EditorSceneFormatImporterESCN::import_scene(const String &p_path, uint32_t
return scene;
}
-Ref<Animation> EditorSceneFormatImporterESCN::import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) {
+Ref<Animation> EditorSceneFormatImporterESCN::import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) {
ERR_FAIL_V(Ref<Animation>());
}
diff --git a/editor/import/resource_importer_scene.h b/editor/import/resource_importer_scene.h
index 5437ecd159..00d095eac1 100644
--- a/editor/import/resource_importer_scene.h
+++ b/editor/import/resource_importer_scene.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -31,7 +31,9 @@
#ifndef RESOURCEIMPORTERSCENE_H
#define RESOURCEIMPORTERSCENE_H
+#include "core/error/error_macros.h"
#include "core/io/resource_importer.h"
+#include "core/variant/dictionary.h"
#include "scene/3d/node_3d.h"
#include "scene/resources/animation.h"
#include "scene/resources/mesh.h"
@@ -48,13 +50,13 @@ class EditorSceneFormatImporter : public RefCounted {
protected:
static void _bind_methods();
- Node *import_scene_from_other_importer(const String &p_path, uint32_t p_flags, int p_bake_fps);
- Ref<Animation> import_animation_from_other_importer(const String &p_path, uint32_t p_flags, int p_bake_fps);
+ Node *import_scene_wrapper(const String &p_path, uint32_t p_flags, Dictionary p_options, int p_bake_fps);
+ Ref<Animation> import_animation_wrapper(const String &p_path, uint32_t p_flags, Dictionary p_options, int p_bake_fps);
GDVIRTUAL0RC(int, _get_import_flags)
GDVIRTUAL0RC(Vector<String>, _get_extensions)
- GDVIRTUAL3R(Object *, _import_scene, String, uint32_t, uint32_t)
- GDVIRTUAL3R(Ref<Animation>, _import_animation, String, uint32_t, uint32_t)
+ GDVIRTUAL4R(Object *, _import_scene, String, uint32_t, Dictionary, uint32_t)
+ GDVIRTUAL4R(Ref<Animation>, _import_animation, String, uint32_t, Dictionary, uint32_t)
GDVIRTUAL1(_get_import_options, String)
GDVIRTUAL2RC(Variant, _get_option_visibility, String, String)
@@ -69,8 +71,8 @@ public:
virtual uint32_t get_import_flags() const;
virtual void get_extensions(List<String> *r_extensions) const;
- virtual Node *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr);
- virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps);
+ virtual Node *import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr);
+ virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps);
virtual void get_import_options(const String &p_path, List<ResourceImporter::ImportOption> *r_options);
virtual Variant get_option_visibility(const String &p_path, const String &p_option, const Map<StringName, Variant> &p_options);
@@ -270,9 +272,6 @@ public:
Node *pre_import(const String &p_source_file);
virtual Error import(const String &p_source_file, const String &p_save_path, const Map<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files = nullptr, Variant *r_metadata = nullptr) override;
- Node *import_scene_from_other_importer(EditorSceneFormatImporter *p_exception, const String &p_path, uint32_t p_flags, int p_bake_fps);
- Ref<Animation> import_animation_from_other_importer(EditorSceneFormatImporter *p_exception, const String &p_path, uint32_t p_flags, int p_bake_fps);
-
virtual bool has_advanced_options() const override;
virtual void show_advanced_options(const String &p_path) override;
@@ -293,8 +292,8 @@ class EditorSceneFormatImporterESCN : public EditorSceneFormatImporter {
public:
virtual uint32_t get_import_flags() const override;
virtual void get_extensions(List<String> *r_extensions) const override;
- virtual Node *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
- virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) override;
+ virtual Node *import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
+ virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) override;
};
#include "scene/resources/box_shape_3d.h"
diff --git a/editor/import/resource_importer_shader_file.cpp b/editor/import/resource_importer_shader_file.cpp
index 797e11f5ea..cc34259a2d 100644
--- a/editor/import/resource_importer_shader_file.cpp
+++ b/editor/import/resource_importer_shader_file.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_shader_file.h b/editor/import/resource_importer_shader_file.h
index 3ed489e9fb..858c2e783c 100644
--- a/editor/import/resource_importer_shader_file.h
+++ b/editor/import/resource_importer_shader_file.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp
index 5ca61e4c39..59550a3ee3 100644
--- a/editor/import/resource_importer_texture.cpp
+++ b/editor/import/resource_importer_texture.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_texture.h b/editor/import/resource_importer_texture.h
index cb9d1b08cd..ea2318fb33 100644
--- a/editor/import/resource_importer_texture.h
+++ b/editor/import/resource_importer_texture.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_texture_atlas.cpp b/editor/import/resource_importer_texture_atlas.cpp
index 048d84d1f9..d2a9fe2538 100644
--- a/editor/import/resource_importer_texture_atlas.cpp
+++ b/editor/import/resource_importer_texture_atlas.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_texture_atlas.h b/editor/import/resource_importer_texture_atlas.h
index 177ef949ac..a5e47dee99 100644
--- a/editor/import/resource_importer_texture_atlas.h
+++ b/editor/import/resource_importer_texture_atlas.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_wav.cpp b/editor/import/resource_importer_wav.cpp
index 820eba951f..8cb9a47fb5 100644
--- a/editor/import/resource_importer_wav.cpp
+++ b/editor/import/resource_importer_wav.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/resource_importer_wav.h b/editor/import/resource_importer_wav.h
index e3e605aeb2..a5b576ceb9 100644
--- a/editor/import/resource_importer_wav.h
+++ b/editor/import/resource_importer_wav.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp
index a376596f9b..eed1888c6a 100644
--- a/editor/import/scene_import_settings.cpp
+++ b/editor/import/scene_import_settings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import/scene_import_settings.h b/editor/import/scene_import_settings.h
index c7c94af493..4edf05c7bb 100644
--- a/editor/import/scene_import_settings.h
+++ b/editor/import/scene_import_settings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import_defaults_editor.cpp b/editor/import_defaults_editor.cpp
index 4b69810861..15d3c4b3ee 100644
--- a/editor/import_defaults_editor.cpp
+++ b/editor/import_defaults_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import_defaults_editor.h b/editor/import_defaults_editor.h
index c1becac5e9..e84e4b6646 100644
--- a/editor/import_defaults_editor.h
+++ b/editor/import_defaults_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/import_dock.cpp b/editor/import_dock.cpp
index 3507eaff94..10654cfe43 100644
--- a/editor/import_dock.cpp
+++ b/editor/import_dock.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -31,6 +31,7 @@
#include "import_dock.h"
#include "editor_node.h"
#include "editor_resource_preview.h"
+#include "editor_scale.h"
class ImportDockParameters : public Object {
GDCLASS(ImportDockParameters, Object);
@@ -135,6 +136,8 @@ void ImportDock::set_edit_path(const String &p_path) {
_set_dirty(false);
import_as->set_disabled(false);
preset->set_disabled(false);
+ content->show();
+ select_a_resource->hide();
imported->set_text(p_path.get_file());
}
@@ -294,6 +297,8 @@ void ImportDock::set_edit_multiple_paths(const Vector<String> &p_paths) {
_set_dirty(false);
import_as->set_disabled(false);
preset->set_disabled(false);
+ content->show();
+ select_a_resource->hide();
imported->set_text(vformat(TTR("%d Files"), p_paths.size()));
@@ -423,6 +428,8 @@ void ImportDock::clear() {
params->properties.clear();
params->update();
preset->get_popup()->clear();
+ content->hide();
+ select_a_resource->show();
}
static bool _find_owners(EditorFileSystemDirectory *efsd, const String &p_path) {
@@ -600,12 +607,18 @@ void ImportDock::initialize_import_options() const {
ImportDock::ImportDock() {
set_name("Import");
+
+ content = memnew(VBoxContainer);
+ content->set_v_size_flags(SIZE_EXPAND_FILL);
+ add_child(content);
+ content->hide();
+
imported = memnew(Label);
imported->add_theme_style_override("normal", EditorNode::get_singleton()->get_gui_base()->get_theme_stylebox(SNAME("normal"), SNAME("LineEdit")));
imported->set_clip_text(true);
- add_child(imported);
+ content->add_child(imported);
HBoxContainer *hb = memnew(HBoxContainer);
- add_margin_child(TTR("Import As:"), hb);
+ content->add_margin_child(TTR("Import As:"), hb);
import_as = memnew(OptionButton);
import_as->set_disabled(true);
import_as->connect("item_selected", callable_mp(this, &ImportDock::_importer_selected));
@@ -618,13 +631,13 @@ ImportDock::ImportDock() {
hb->add_child(preset);
import_opts = memnew(EditorInspector);
- add_child(import_opts);
+ content->add_child(import_opts);
import_opts->set_v_size_flags(SIZE_EXPAND_FILL);
import_opts->connect("property_edited", callable_mp(this, &ImportDock::_property_edited));
import_opts->connect("property_toggled", callable_mp(this, &ImportDock::_property_toggled));
hb = memnew(HBoxContainer);
- add_child(hb);
+ content->add_child(hb);
import = memnew(Button);
import->set_text(TTR("Reimport"));
import->set_disabled(true);
@@ -652,7 +665,7 @@ ImportDock::ImportDock() {
reimport_confirm = memnew(ConfirmationDialog);
reimport_confirm->get_ok_button()->set_text(TTR("Save Scenes, Re-Import, and Restart"));
- add_child(reimport_confirm);
+ content->add_child(reimport_confirm);
reimport_confirm->connect("confirmed", callable_mp(this, &ImportDock::_reimport_and_restart));
VBoxContainer *vbc_confirm = memnew(VBoxContainer());
@@ -662,6 +675,15 @@ ImportDock::ImportDock() {
reimport_confirm->add_child(vbc_confirm);
params = memnew(ImportDockParameters);
+
+ select_a_resource = memnew(Label);
+ select_a_resource->set_text(TTR("Select a resource file in the filesystem or in the inspector to adjust import settings."));
+ select_a_resource->set_autowrap_mode(Label::AUTOWRAP_WORD);
+ select_a_resource->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
+ select_a_resource->set_v_size_flags(SIZE_EXPAND_FILL);
+ select_a_resource->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER);
+ select_a_resource->set_vertical_alignment(VERTICAL_ALIGNMENT_CENTER);
+ add_child(select_a_resource);
}
ImportDock::~ImportDock() {
diff --git a/editor/import_dock.h b/editor/import_dock.h
index ac73f3e3c0..33fc23f1b4 100644
--- a/editor/import_dock.h
+++ b/editor/import_dock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -62,6 +62,9 @@ class ImportDock : public VBoxContainer {
ImportDockParameters *params;
+ VBoxContainer *content;
+ Label *select_a_resource;
+
void _preset_selected(int p_idx);
void _importer_selected(int i_idx);
void _update_options(const String &p_path, const Ref<ConfigFile> &p_config = Ref<ConfigFile>());
diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp
index f594a5a3a8..ccb287e433 100644
--- a/editor/inspector_dock.cpp
+++ b/editor/inspector_dock.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/inspector_dock.h b/editor/inspector_dock.h
index 5bf6a34617..94e4f67348 100644
--- a/editor/inspector_dock.h
+++ b/editor/inspector_dock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -32,7 +32,6 @@
#define INSPECTOR_DOCK_H
#include "editor/animation_track_editor.h"
-#include "editor/connections_dialog.h"
#include "editor/create_dialog.h"
#include "editor/editor_data.h"
#include "editor/editor_inspector.h"
diff --git a/editor/localization_editor.cpp b/editor/localization_editor.cpp
index 9d48a43d4d..a902b070f4 100644
--- a/editor/localization_editor.cpp
+++ b/editor/localization_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/localization_editor.h b/editor/localization_editor.h
index 23cea06fbe..4c77aca397 100644
--- a/editor/localization_editor.h
+++ b/editor/localization_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/multi_node_edit.cpp b/editor/multi_node_edit.cpp
index 1a30770b53..59fc473d73 100644
--- a/editor/multi_node_edit.cpp
+++ b/editor/multi_node_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/multi_node_edit.h b/editor/multi_node_edit.h
index 2efecb9f65..31678d7b01 100644
--- a/editor/multi_node_edit.h
+++ b/editor/multi_node_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/node_dock.cpp b/editor/node_dock.cpp
index c3dc7eae28..d8f16b367a 100644
--- a/editor/node_dock.cpp
+++ b/editor/node_dock.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -30,6 +30,7 @@
#include "node_dock.h"
+#include "connections_dialog.h"
#include "editor_node.h"
#include "editor_scale.h"
diff --git a/editor/node_dock.h b/editor/node_dock.h
index 280369bb09..b35be8de8a 100644
--- a/editor/node_dock.h
+++ b/editor/node_dock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -31,9 +31,10 @@
#ifndef NODE_DOCK_H
#define NODE_DOCK_H
-#include "connections_dialog.h"
#include "groups_editor.h"
+class ConnectionsDock;
+
class NodeDock : public VBoxContainer {
GDCLASS(NodeDock, VBoxContainer);
diff --git a/editor/plugin_config_dialog.cpp b/editor/plugin_config_dialog.cpp
index ad22aafb2b..5786d24d23 100644
--- a/editor/plugin_config_dialog.cpp
+++ b/editor/plugin_config_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,12 +36,6 @@
#include "editor/editor_plugin.h"
#include "editor/editor_scale.h"
#include "editor/project_settings_editor.h"
-#include "scene/gui/grid_container.h"
-
-#include "modules/modules_enabled.gen.h" // For gdscript.
-#ifdef MODULE_GDSCRIPT_ENABLED
-#include "modules/gdscript/gdscript.h"
-#endif
void PluginConfigDialog::_clear_fields() {
name_edit->set_text("");
@@ -76,42 +70,16 @@ void PluginConfigDialog::_on_confirmed() {
String lang_name = ScriptServer::get_language(lang_idx)->get_name();
Ref<Script> script;
-
- // TODO Use script templates. Right now, this code won't add the 'tool' annotation to other languages.
- // TODO Better support script languages with named classes (has_named_classes).
-
- // FIXME: It's hacky to have hardcoded access to the GDScript module here.
- // The editor code should not have to know what languages are enabled.
-#ifdef MODULE_GDSCRIPT_ENABLED
- if (lang_name == GDScriptLanguage::get_singleton()->get_name()) {
- // Hard-coded GDScript template to keep usability until we use script templates.
- Ref<Script> gdscript = memnew(GDScript);
- gdscript->set_source_code(
- "@tool\n"
- "extends EditorPlugin\n"
- "\n"
- "\n"
- "func _enter_tree()%VOID_RETURN%:\n"
- "%TS%pass\n"
- "\n"
- "\n"
- "func _exit_tree()%VOID_RETURN%:\n"
- "%TS%pass\n");
- GDScriptLanguage::get_singleton()->make_template("", "", gdscript);
- String script_path = path.plus_file(script_edit->get_text());
- gdscript->set_path(script_path);
- ResourceSaver::save(script_path, gdscript);
- script = gdscript;
- } else {
-#endif
- String script_path = path.plus_file(script_edit->get_text());
- String class_name = script_path.get_file().get_basename();
- script = ScriptServer::get_language(lang_idx)->get_template(class_name, "EditorPlugin");
- script->set_path(script_path);
- ResourceSaver::save(script_path, script);
-#ifdef MODULE_GDSCRIPT_ENABLED
+ String script_path = path.plus_file(script_edit->get_text());
+ String class_name = script_path.get_file().get_basename();
+ String template_content = "";
+ Vector<ScriptLanguage::ScriptTemplate> templates = ScriptServer::get_language(lang_idx)->get_built_in_templates("EditorPlugin");
+ if (templates.size() > 0) {
+ template_content = templates.get(0).content;
}
-#endif
+ script = ScriptServer::get_language(lang_idx)->make_template(template_content, class_name, "EditorPlugin");
+ script->set_path(script_path);
+ ResourceSaver::save(script_path, script);
emit_signal(SNAME("plugin_ready"), script.operator->(), active_edit->is_pressed() ? _to_absolute_plugin_path(subfolder_edit->get_text()) : "");
} else {
@@ -331,11 +299,9 @@ PluginConfigDialog::PluginConfigDialog() {
for (int i = 0; i < ScriptServer::get_language_count(); i++) {
ScriptLanguage *lang = ScriptServer::get_language(i);
script_option_edit->add_item(lang->get_name());
-#ifdef MODULE_GDSCRIPT_ENABLED
- if (lang == GDScriptLanguage::get_singleton()) {
+ if (lang->get_name() == "GDScript") {
default_lang = i;
}
-#endif
}
script_option_edit->select(default_lang);
grid->add_child(script_option_edit);
diff --git a/editor/plugin_config_dialog.h b/editor/plugin_config_dialog.h
index 45fcdb6b6e..0dc2e84a98 100644
--- a/editor/plugin_config_dialog.h
+++ b/editor/plugin_config_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp
index 72d94e61ca..348ef4ecc7 100644
--- a/editor/plugins/abstract_polygon_2d_editor.cpp
+++ b/editor/plugins/abstract_polygon_2d_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/abstract_polygon_2d_editor.h b/editor/plugins/abstract_polygon_2d_editor.h
index 5fea8b75d6..8db5bf58dd 100644
--- a/editor/plugins/abstract_polygon_2d_editor.h
+++ b/editor/plugins/abstract_polygon_2d_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_blend_space_1d_editor.cpp b/editor/plugins/animation_blend_space_1d_editor.cpp
index f16ea36a23..3dcb769faf 100644
--- a/editor/plugins/animation_blend_space_1d_editor.cpp
+++ b/editor/plugins/animation_blend_space_1d_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_blend_space_1d_editor.h b/editor/plugins/animation_blend_space_1d_editor.h
index 503e066894..7906395c8f 100644
--- a/editor/plugins/animation_blend_space_1d_editor.h
+++ b/editor/plugins/animation_blend_space_1d_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp
index b107478724..459de5d35b 100644
--- a/editor/plugins/animation_blend_space_2d_editor.cpp
+++ b/editor/plugins/animation_blend_space_2d_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_blend_space_2d_editor.h b/editor/plugins/animation_blend_space_2d_editor.h
index 3b8b78b2b5..b46efff304 100644
--- a/editor/plugins/animation_blend_space_2d_editor.h
+++ b/editor/plugins/animation_blend_space_2d_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_blend_tree_editor_plugin.cpp b/editor/plugins/animation_blend_tree_editor_plugin.cpp
index d9a6f19384..9ebdede4e9 100644
--- a/editor/plugins/animation_blend_tree_editor_plugin.cpp
+++ b/editor/plugins/animation_blend_tree_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_blend_tree_editor_plugin.h b/editor/plugins/animation_blend_tree_editor_plugin.h
index 68da5c6f79..8e63e39fd5 100644
--- a/editor/plugins/animation_blend_tree_editor_plugin.h
+++ b/editor/plugins/animation_blend_tree_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp
index 14390511de..4ce9f40a5e 100644
--- a/editor/plugins/animation_player_editor_plugin.cpp
+++ b/editor/plugins/animation_player_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_player_editor_plugin.h b/editor/plugins/animation_player_editor_plugin.h
index 26bcff891d..4e7ea46c1d 100644
--- a/editor/plugins/animation_player_editor_plugin.h
+++ b/editor/plugins/animation_player_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp
index cf3bc58af9..94990636da 100644
--- a/editor/plugins/animation_state_machine_editor.cpp
+++ b/editor/plugins/animation_state_machine_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_state_machine_editor.h b/editor/plugins/animation_state_machine_editor.h
index a969ddd26b..8970e3e062 100644
--- a/editor/plugins/animation_state_machine_editor.h
+++ b/editor/plugins/animation_state_machine_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_tree_editor_plugin.cpp b/editor/plugins/animation_tree_editor_plugin.cpp
index d65ed9cea2..adfea236d3 100644
--- a/editor/plugins/animation_tree_editor_plugin.cpp
+++ b/editor/plugins/animation_tree_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/animation_tree_editor_plugin.h b/editor/plugins/animation_tree_editor_plugin.h
index de3d89ae17..14c5658478 100644
--- a/editor/plugins/animation_tree_editor_plugin.h
+++ b/editor/plugins/animation_tree_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp
index 994e89d96f..49bef4acd5 100644
--- a/editor/plugins/asset_library_editor_plugin.cpp
+++ b/editor/plugins/asset_library_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -288,7 +288,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() {
preview = memnew(TextureRect);
previews_vbox->add_child(preview);
- preview->set_expand(true);
+ preview->set_ignore_texture_size(true);
preview->set_stretch_mode(TextureRect::STRETCH_KEEP_ASPECT_CENTERED);
preview->set_custom_minimum_size(Size2(640 * EDSCALE, 345 * EDSCALE));
diff --git a/editor/plugins/asset_library_editor_plugin.h b/editor/plugins/asset_library_editor_plugin.h
index 5fbf2833b2..d797608c24 100644
--- a/editor/plugins/asset_library_editor_plugin.h
+++ b/editor/plugins/asset_library_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/audio_stream_editor_plugin.cpp b/editor/plugins/audio_stream_editor_plugin.cpp
index c621ade5c8..086d5474ba 100644
--- a/editor/plugins/audio_stream_editor_plugin.cpp
+++ b/editor/plugins/audio_stream_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/audio_stream_editor_plugin.h b/editor/plugins/audio_stream_editor_plugin.h
index 14e829d025..db0e204616 100644
--- a/editor/plugins/audio_stream_editor_plugin.h
+++ b/editor/plugins/audio_stream_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/camera_3d_editor_plugin.cpp b/editor/plugins/camera_3d_editor_plugin.cpp
index 8583e95b25..7c920fa15e 100644
--- a/editor/plugins/camera_3d_editor_plugin.cpp
+++ b/editor/plugins/camera_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/camera_3d_editor_plugin.h b/editor/plugins/camera_3d_editor_plugin.h
index e087dd22a8..e175a931b0 100644
--- a/editor/plugins/camera_3d_editor_plugin.h
+++ b/editor/plugins/camera_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index 4a19e7752e..089c37d7a6 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2097,8 +2097,16 @@ bool CanvasItemEditor::_gui_input_move(const Ref<InputEvent> &p_event) {
if (k.is_valid() && k->is_pressed() && (tool == TOOL_SELECT || tool == TOOL_MOVE) &&
(k->get_keycode() == Key::UP || k->get_keycode() == Key::DOWN || k->get_keycode() == Key::LEFT || k->get_keycode() == Key::RIGHT)) {
if (!k->is_echo()) {
- // Start moving the canvas items with the keyboard
- drag_selection = _get_edited_canvas_items();
+ // Start moving the canvas items with the keyboard, if they are movable
+ List<CanvasItem *> selection = _get_edited_canvas_items();
+
+ drag_selection.clear();
+ for (CanvasItem *item : selection) {
+ if (_is_node_movable(item, true)) {
+ drag_selection.push_back(item);
+ }
+ }
+
drag_type = DRAG_KEY_MOVE;
drag_from = Vector2();
drag_to = Vector2();
@@ -5852,7 +5860,7 @@ bool CanvasItemEditorViewport::_create_instance(Node *parent, String &path, cons
instantiated_scene->set_scene_file_path(ProjectSettings::get_singleton()->localize_path(path));
- editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene);
+ editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene, true);
editor_data->get_undo_redo().add_do_method(instantiated_scene, "set_owner", editor->get_edited_scene());
editor_data->get_undo_redo().add_do_reference(instantiated_scene);
editor_data->get_undo_redo().add_undo_method(parent, "remove_child", instantiated_scene);
diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h
index b6576b7144..8bba5130d4 100644
--- a/editor/plugins/canvas_item_editor_plugin.h
+++ b/editor/plugins/canvas_item_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/collision_polygon_2d_editor_plugin.cpp b/editor/plugins/collision_polygon_2d_editor_plugin.cpp
index 8e340b28ef..22d3768a97 100644
--- a/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/collision_polygon_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/collision_polygon_2d_editor_plugin.h b/editor/plugins/collision_polygon_2d_editor_plugin.h
index e78c486a39..cf2e452937 100644
--- a/editor/plugins/collision_polygon_2d_editor_plugin.h
+++ b/editor/plugins/collision_polygon_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/collision_polygon_3d_editor_plugin.cpp b/editor/plugins/collision_polygon_3d_editor_plugin.cpp
index 4c728ff757..bf6485f9ec 100644
--- a/editor/plugins/collision_polygon_3d_editor_plugin.cpp
+++ b/editor/plugins/collision_polygon_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/collision_polygon_3d_editor_plugin.h b/editor/plugins/collision_polygon_3d_editor_plugin.h
index 10b0adf76c..cd8c857398 100644
--- a/editor/plugins/collision_polygon_3d_editor_plugin.h
+++ b/editor/plugins/collision_polygon_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/collision_shape_2d_editor_plugin.cpp b/editor/plugins/collision_shape_2d_editor_plugin.cpp
index 94fd9a5a08..8a5df6ac50 100644
--- a/editor/plugins/collision_shape_2d_editor_plugin.cpp
+++ b/editor/plugins/collision_shape_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/collision_shape_2d_editor_plugin.h b/editor/plugins/collision_shape_2d_editor_plugin.h
index ab95600a52..1c01b7019f 100644
--- a/editor/plugins/collision_shape_2d_editor_plugin.h
+++ b/editor/plugins/collision_shape_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/cpu_particles_2d_editor_plugin.cpp b/editor/plugins/cpu_particles_2d_editor_plugin.cpp
index fb9f8696fe..e0364dc952 100644
--- a/editor/plugins/cpu_particles_2d_editor_plugin.cpp
+++ b/editor/plugins/cpu_particles_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/cpu_particles_2d_editor_plugin.h b/editor/plugins/cpu_particles_2d_editor_plugin.h
index b188df8e96..e54e1651bd 100644
--- a/editor/plugins/cpu_particles_2d_editor_plugin.h
+++ b/editor/plugins/cpu_particles_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/cpu_particles_3d_editor_plugin.cpp b/editor/plugins/cpu_particles_3d_editor_plugin.cpp
index fc52cd0f99..bb10c04e8f 100644
--- a/editor/plugins/cpu_particles_3d_editor_plugin.cpp
+++ b/editor/plugins/cpu_particles_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/cpu_particles_3d_editor_plugin.h b/editor/plugins/cpu_particles_3d_editor_plugin.h
index 9dced3ea86..67cc156680 100644
--- a/editor/plugins/cpu_particles_3d_editor_plugin.h
+++ b/editor/plugins/cpu_particles_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/curve_editor_plugin.cpp b/editor/plugins/curve_editor_plugin.cpp
index 3bb707d415..a9a276fc18 100644
--- a/editor/plugins/curve_editor_plugin.cpp
+++ b/editor/plugins/curve_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -803,11 +803,8 @@ Ref<Texture2D> CurvePreviewGenerator::generate(const Ref<Resource> &p_from, cons
im.create(thumbnail_size, thumbnail_size / 2, false, Image::FORMAT_RGBA8);
Color bg_color(0.1, 0.1, 0.1, 1.0);
- for (int i = 0; i < thumbnail_size; i++) {
- for (int j = 0; j < thumbnail_size / 2; j++) {
- im.set_pixel(i, j, bg_color);
- }
- }
+
+ im.fill(bg_color);
Color line_color(0.8, 0.8, 0.8, 1.0);
float range_y = curve.get_max_value() - curve.get_min_value();
diff --git a/editor/plugins/curve_editor_plugin.h b/editor/plugins/curve_editor_plugin.h
index c351f6ebe9..c7e8dea75a 100644
--- a/editor/plugins/curve_editor_plugin.h
+++ b/editor/plugins/curve_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/debugger_editor_plugin.cpp b/editor/plugins/debugger_editor_plugin.cpp
index 51e1b639a4..6e43130a92 100644
--- a/editor/plugins/debugger_editor_plugin.cpp
+++ b/editor/plugins/debugger_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/debugger_editor_plugin.h b/editor/plugins/debugger_editor_plugin.h
index a6fab01c29..6fc83cd438 100644
--- a/editor/plugins/debugger_editor_plugin.h
+++ b/editor/plugins/debugger_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/editor_debugger_plugin.cpp b/editor/plugins/editor_debugger_plugin.cpp
index 5f3b11ac42..4ce3d7cfd5 100644
--- a/editor/plugins/editor_debugger_plugin.cpp
+++ b/editor/plugins/editor_debugger_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/editor_debugger_plugin.h b/editor/plugins/editor_debugger_plugin.h
index 5995d790c5..b602c36912 100644
--- a/editor/plugins/editor_debugger_plugin.h
+++ b/editor/plugins/editor_debugger_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp
index f7ec0f8c5c..cef505181a 100644
--- a/editor/plugins/editor_preview_plugins.cpp
+++ b/editor/plugins/editor_preview_plugins.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -514,11 +514,7 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const RES &p_from, const Size
}
bg_color.a = MAX(bg_color.a, 0.2); // some background
- for (int i = 0; i < thumbnail_size; i++) {
- for (int j = 0; j < thumbnail_size; j++) {
- img->set_pixel(i, j, bg_color);
- }
- }
+ img->fill(bg_color);
const int x0 = thumbnail_size / 8;
const int y0 = thumbnail_size / 8;
diff --git a/editor/plugins/editor_preview_plugins.h b/editor/plugins/editor_preview_plugins.h
index bf52f5771d..dd64918d41 100644
--- a/editor/plugins/editor_preview_plugins.h
+++ b/editor/plugins/editor_preview_plugins.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/font_editor_plugin.cpp b/editor/plugins/font_editor_plugin.cpp
index 52fb5b69ea..73a6781774 100644
--- a/editor/plugins/font_editor_plugin.cpp
+++ b/editor/plugins/font_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/font_editor_plugin.h b/editor/plugins/font_editor_plugin.h
index 3530815872..736137121a 100644
--- a/editor/plugins/font_editor_plugin.h
+++ b/editor/plugins/font_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/gpu_particles_2d_editor_plugin.cpp b/editor/plugins/gpu_particles_2d_editor_plugin.cpp
index 4b50f484a4..6b93a1872d 100644
--- a/editor/plugins/gpu_particles_2d_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/gpu_particles_2d_editor_plugin.h b/editor/plugins/gpu_particles_2d_editor_plugin.h
index bdfc021aa7..55e455e252 100644
--- a/editor/plugins/gpu_particles_2d_editor_plugin.h
+++ b/editor/plugins/gpu_particles_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.cpp b/editor/plugins/gpu_particles_3d_editor_plugin.cpp
index 5ac58795d1..0057566603 100644
--- a/editor/plugins/gpu_particles_3d_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/gpu_particles_3d_editor_plugin.h b/editor/plugins/gpu_particles_3d_editor_plugin.h
index bd10895459..f7e4244ba4 100644
--- a/editor/plugins/gpu_particles_3d_editor_plugin.h
+++ b/editor/plugins/gpu_particles_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
index f6788f80ba..1b4c944876 100644
--- a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h
index ce7ca18293..d74986f22b 100644
--- a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h
+++ b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/gradient_editor_plugin.cpp b/editor/plugins/gradient_editor_plugin.cpp
index 6f2d950190..5e300d3de9 100644
--- a/editor/plugins/gradient_editor_plugin.cpp
+++ b/editor/plugins/gradient_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/gradient_editor_plugin.h b/editor/plugins/gradient_editor_plugin.h
index 95b7b466c9..8239711667 100644
--- a/editor/plugins/gradient_editor_plugin.h
+++ b/editor/plugins/gradient_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/input_event_editor_plugin.cpp b/editor/plugins/input_event_editor_plugin.cpp
index d3d2de92f5..b0ee88479a 100644
--- a/editor/plugins/input_event_editor_plugin.cpp
+++ b/editor/plugins/input_event_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/input_event_editor_plugin.h b/editor/plugins/input_event_editor_plugin.h
index bc8293c9e5..ed26890229 100644
--- a/editor/plugins/input_event_editor_plugin.h
+++ b/editor/plugins/input_event_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/light_occluder_2d_editor_plugin.cpp b/editor/plugins/light_occluder_2d_editor_plugin.cpp
index 3d555d7eba..94ab89e2f6 100644
--- a/editor/plugins/light_occluder_2d_editor_plugin.cpp
+++ b/editor/plugins/light_occluder_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/light_occluder_2d_editor_plugin.h b/editor/plugins/light_occluder_2d_editor_plugin.h
index eb1ce04788..1a0cd3514b 100644
--- a/editor/plugins/light_occluder_2d_editor_plugin.h
+++ b/editor/plugins/light_occluder_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/lightmap_gi_editor_plugin.cpp b/editor/plugins/lightmap_gi_editor_plugin.cpp
index d7b469cb74..2126ca1bc9 100644
--- a/editor/plugins/lightmap_gi_editor_plugin.cpp
+++ b/editor/plugins/lightmap_gi_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,13 +33,14 @@
void LightmapGIEditorPlugin::_bake_select_file(const String &p_file) {
if (lightmap) {
LightmapGI::BakeError err;
+ const uint64_t time_started = OS::get_singleton()->get_ticks_msec();
if (get_tree()->get_edited_scene_root() && get_tree()->get_edited_scene_root() == lightmap) {
err = lightmap->bake(lightmap, p_file, bake_func_step);
} else {
err = lightmap->bake(lightmap->get_parent(), p_file, bake_func_step);
}
- bake_func_end();
+ bake_func_end(time_started);
switch (err) {
case LightmapGI::BAKE_ERROR_NO_SAVE_PATH: {
@@ -104,11 +105,18 @@ bool LightmapGIEditorPlugin::bake_func_step(float p_progress, const String &p_de
return tmp_progress->step(p_description, p_progress * 1000, p_refresh);
}
-void LightmapGIEditorPlugin::bake_func_end() {
+void LightmapGIEditorPlugin::bake_func_end(uint64_t p_time_started) {
if (tmp_progress != nullptr) {
memdelete(tmp_progress);
tmp_progress = nullptr;
}
+
+ const int time_taken = (OS::get_singleton()->get_ticks_msec() - p_time_started) * 0.001;
+ print_line(vformat("Done baking lightmaps in %02d:%02d:%02d.", time_taken / 3600, (time_taken % 3600) / 60, time_taken % 60));
+ // Request attention in case the user was doing something else.
+ // Baking lightmaps is likely the editor task that can take the most time,
+ // so only request the attention for baking lightmaps.
+ DisplayServer::get_singleton()->window_request_attention();
}
void LightmapGIEditorPlugin::_bind_methods() {
diff --git a/editor/plugins/lightmap_gi_editor_plugin.h b/editor/plugins/lightmap_gi_editor_plugin.h
index 12d080d6be..5eec972228 100644
--- a/editor/plugins/lightmap_gi_editor_plugin.h
+++ b/editor/plugins/lightmap_gi_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -47,7 +47,7 @@ class LightmapGIEditorPlugin : public EditorPlugin {
EditorFileDialog *file_dialog;
static EditorProgress *tmp_progress;
static bool bake_func_step(float p_progress, const String &p_description, void *, bool p_refresh);
- static void bake_func_end();
+ static void bake_func_end(uint64_t p_time_started);
void _bake_select_file(const String &p_file);
void _bake();
diff --git a/editor/plugins/line_2d_editor_plugin.cpp b/editor/plugins/line_2d_editor_plugin.cpp
index 08c5ef02a4..9d7e22278e 100644
--- a/editor/plugins/line_2d_editor_plugin.cpp
+++ b/editor/plugins/line_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/line_2d_editor_plugin.h b/editor/plugins/line_2d_editor_plugin.h
index 769109583a..4497307747 100644
--- a/editor/plugins/line_2d_editor_plugin.h
+++ b/editor/plugins/line_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/material_editor_plugin.cpp b/editor/plugins/material_editor_plugin.cpp
index bfbe6e26a9..9d45c365a8 100644
--- a/editor/plugins/material_editor_plugin.cpp
+++ b/editor/plugins/material_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -254,6 +254,43 @@ void EditorInspectorPluginMaterial::parse_begin(Object *p_object) {
add_custom_control(editor);
}
+void EditorInspectorPluginMaterial::_undo_redo_inspector_callback(Object *p_undo_redo, Object *p_edited, String p_property, Variant p_new_value) {
+ UndoRedo *undo_redo = Object::cast_to<UndoRedo>(p_undo_redo);
+ if (!undo_redo) {
+ return;
+ }
+
+ // For BaseMaterial3D, if a roughness or metallic textures is being assigned to an empty slot,
+ // set the respective metallic or roughness factor to 1.0 as a convenience feature
+ BaseMaterial3D *base_material = Object::cast_to<StandardMaterial3D>(p_edited);
+ if (base_material) {
+ Texture2D *texture = Object::cast_to<Texture2D>(p_new_value);
+ if (texture) {
+ if (p_property == "roughness_texture") {
+ if (base_material->get_texture(StandardMaterial3D::TEXTURE_ROUGHNESS).is_null() && texture) {
+ undo_redo->add_do_property(p_edited, "roughness", 1.0);
+
+ bool valid = false;
+ Variant value = p_edited->get("roughness", &valid);
+ if (valid) {
+ undo_redo->add_undo_property(p_edited, "roughness", value);
+ }
+ }
+ } else if (p_property == "metallic_texture") {
+ if (base_material->get_texture(StandardMaterial3D::TEXTURE_METALLIC).is_null() && texture) {
+ undo_redo->add_do_property(p_edited, "metallic", 1.0);
+
+ bool valid = false;
+ Variant value = p_edited->get("metallic", &valid);
+ if (valid) {
+ undo_redo->add_undo_property(p_edited, "metallic", value);
+ }
+ }
+ }
+ }
+ }
+}
+
EditorInspectorPluginMaterial::EditorInspectorPluginMaterial() {
env.instantiate();
Ref<Sky> sky = memnew(Sky());
@@ -261,6 +298,8 @@ EditorInspectorPluginMaterial::EditorInspectorPluginMaterial() {
env->set_background(Environment::BG_COLOR);
env->set_ambient_source(Environment::AMBIENT_SOURCE_SKY);
env->set_reflection_source(Environment::REFLECTION_SOURCE_SKY);
+
+ EditorNode::get_singleton()->get_editor_data().add_undo_redo_inspector_hook_callback(callable_mp(this, &EditorInspectorPluginMaterial::_undo_redo_inspector_callback));
}
MaterialEditorPlugin::MaterialEditorPlugin(EditorNode *p_node) {
diff --git a/editor/plugins/material_editor_plugin.h b/editor/plugins/material_editor_plugin.h
index 8262b8149d..53f4513396 100644
--- a/editor/plugins/material_editor_plugin.h
+++ b/editor/plugins/material_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -92,6 +92,8 @@ public:
virtual bool can_handle(Object *p_object) override;
virtual void parse_begin(Object *p_object) override;
+ void _undo_redo_inspector_callback(Object *p_undo_redo, Object *p_edited, String p_property, Variant p_new_value);
+
EditorInspectorPluginMaterial();
};
diff --git a/editor/plugins/mesh_editor_plugin.cpp b/editor/plugins/mesh_editor_plugin.cpp
index 4b18ac6e9f..daf68f247d 100644
--- a/editor/plugins/mesh_editor_plugin.cpp
+++ b/editor/plugins/mesh_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/mesh_editor_plugin.h b/editor/plugins/mesh_editor_plugin.h
index 1e88b70202..613680e870 100644
--- a/editor/plugins/mesh_editor_plugin.h
+++ b/editor/plugins/mesh_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.cpp b/editor/plugins/mesh_instance_3d_editor_plugin.cpp
index 2ce13b717a..75e9cc23a1 100644
--- a/editor/plugins/mesh_instance_3d_editor_plugin.cpp
+++ b/editor/plugins/mesh_instance_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.h b/editor/plugins/mesh_instance_3d_editor_plugin.h
index 98b667c978..1df72d107c 100644
--- a/editor/plugins/mesh_instance_3d_editor_plugin.h
+++ b/editor/plugins/mesh_instance_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/mesh_library_editor_plugin.cpp b/editor/plugins/mesh_library_editor_plugin.cpp
index fd62f632dc..d82d0c6ffc 100644
--- a/editor/plugins/mesh_library_editor_plugin.cpp
+++ b/editor/plugins/mesh_library_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/mesh_library_editor_plugin.h b/editor/plugins/mesh_library_editor_plugin.h
index 9e225ffb9b..7144f87ba6 100644
--- a/editor/plugins/mesh_library_editor_plugin.h
+++ b/editor/plugins/mesh_library_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/multimesh_editor_plugin.cpp b/editor/plugins/multimesh_editor_plugin.cpp
index 517aca596a..4ec65ea257 100644
--- a/editor/plugins/multimesh_editor_plugin.cpp
+++ b/editor/plugins/multimesh_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/multimesh_editor_plugin.h b/editor/plugins/multimesh_editor_plugin.h
index 2cdd7cf504..ae18edd90a 100644
--- a/editor/plugins/multimesh_editor_plugin.h
+++ b/editor/plugins/multimesh_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/navigation_polygon_editor_plugin.cpp b/editor/plugins/navigation_polygon_editor_plugin.cpp
index 9971d3111d..e9e2a843cd 100644
--- a/editor/plugins/navigation_polygon_editor_plugin.cpp
+++ b/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/navigation_polygon_editor_plugin.h b/editor/plugins/navigation_polygon_editor_plugin.h
index 0f5928d416..446083902c 100644
--- a/editor/plugins/navigation_polygon_editor_plugin.h
+++ b/editor/plugins/navigation_polygon_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/node_3d_editor_gizmos.cpp b/editor/plugins/node_3d_editor_gizmos.cpp
index 32355735cc..474e84cae8 100644
--- a/editor/plugins/node_3d_editor_gizmos.cpp
+++ b/editor/plugins/node_3d_editor_gizmos.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/node_3d_editor_gizmos.h b/editor/plugins/node_3d_editor_gizmos.h
index cf9a464b69..a8383aefed 100644
--- a/editor/plugins/node_3d_editor_gizmos.h
+++ b/editor/plugins/node_3d_editor_gizmos.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index f49b749046..957d1483bc 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -954,7 +954,7 @@ bool Node3DEditorViewport::_transform_gizmo_select(const Vector2 &p_screenpos, b
real_t col_d = 1e20;
for (int i = 0; i < 3; i++) {
- const Vector3 grabber_pos = gt.origin + gt.basis.get_axis(i) * gizmo_scale * (GIZMO_ARROW_OFFSET + (GIZMO_ARROW_SIZE * 0.5));
+ const Vector3 grabber_pos = gt.origin + gt.basis.get_axis(i).normalized() * gizmo_scale * (GIZMO_ARROW_OFFSET + (GIZMO_ARROW_SIZE * 0.5));
const real_t grabber_radius = gizmo_scale * GIZMO_ARROW_SIZE;
Vector3 r;
@@ -1058,7 +1058,7 @@ bool Node3DEditorViewport::_transform_gizmo_select(const Vector2 &p_screenpos, b
float col_d = 1e20;
for (int i = 0; i < 3; i++) {
- const Vector3 grabber_pos = gt.origin + gt.basis.get_axis(i) * gizmo_scale * GIZMO_SCALE_OFFSET;
+ const Vector3 grabber_pos = gt.origin + gt.basis.get_axis(i).normalized() * gizmo_scale * GIZMO_SCALE_OFFSET;
const real_t grabber_radius = gizmo_scale * GIZMO_ARROW_SIZE;
Vector3 r;
@@ -1138,68 +1138,62 @@ void Node3DEditorViewport::_transform_gizmo_apply(Node3D *p_node, const Transfor
}
}
-Transform3D Node3DEditorViewport::_compute_transform(TransformMode p_mode, const Transform3D &p_original, const Transform3D &p_original_local, Vector3 p_motion, double p_extra, bool p_local) {
+Transform3D Node3DEditorViewport::_compute_transform(TransformMode p_mode, const Transform3D &p_original, const Transform3D &p_original_local, Vector3 p_motion, double p_extra, bool p_local, bool p_orthogonal) {
switch (p_mode) {
case TRANSFORM_SCALE: {
+ if (_edit.snap || spatial_editor->is_snap_enabled()) {
+ p_motion.snap(Vector3(p_extra, p_extra, p_extra));
+ }
+ Transform3D s;
if (p_local) {
- Basis g = p_original.basis.orthonormalized();
- Vector3 local_motion = g.inverse().xform(p_motion);
-
- if (_edit.snap || spatial_editor->is_snap_enabled()) {
- local_motion.snap(Vector3(p_extra, p_extra, p_extra));
- }
-
- Transform3D local_t;
- local_t.basis = p_original_local.basis.scaled_local(local_motion + Vector3(1, 1, 1));
- local_t.origin = p_original_local.origin;
- return local_t;
+ s.basis = p_original_local.basis.scaled_local(p_motion + Vector3(1, 1, 1));
+ s.origin = p_original_local.origin;
} else {
+ s.basis.scale(p_motion + Vector3(1, 1, 1));
Transform3D base = Transform3D(Basis(), _edit.center);
- if (_edit.snap || spatial_editor->is_snap_enabled()) {
- p_motion.snap(Vector3(p_extra, p_extra, p_extra));
+ s = base * (s * (base.inverse() * p_original));
+
+ // Recalculate orthogonalized scale without moving origin.
+ if (p_orthogonal) {
+ s.basis = p_original_local.basis.scaled_orthogonal(p_motion + Vector3(1, 1, 1));
+ // The scaled_orthogonal() does not require orthogonal Basis,
+ // but it may make a bit skew by precision problems.
+ s.basis.orthogonalize();
}
-
- Transform3D global_t;
- global_t.basis.scale(p_motion + Vector3(1, 1, 1));
- return base * (global_t * (base.inverse() * p_original));
}
+
+ return s;
}
case TRANSFORM_TRANSLATE: {
- if (p_local) {
- if (_edit.snap || spatial_editor->is_snap_enabled()) {
- Basis g = p_original.basis.orthonormalized();
- Vector3 local_motion = g.inverse().xform(p_motion);
- local_motion.snap(Vector3(p_extra, p_extra, p_extra));
-
- p_motion = g.xform(local_motion);
- }
+ if (_edit.snap || spatial_editor->is_snap_enabled()) {
+ p_motion.snap(Vector3(p_extra, p_extra, p_extra));
+ }
- } else {
- if (_edit.snap || spatial_editor->is_snap_enabled()) {
- p_motion.snap(Vector3(p_extra, p_extra, p_extra));
- }
+ if (p_local) {
+ p_motion = p_original.basis.xform(p_motion);
}
// Apply translation
Transform3D t = p_original;
t.origin += p_motion;
+
return t;
}
case TRANSFORM_ROTATE: {
+ Transform3D r;
+
if (p_local) {
- Transform3D r;
Vector3 axis = p_original_local.basis.xform(p_motion);
r.basis = Basis(axis.normalized(), p_extra) * p_original_local.basis;
r.origin = p_original_local.origin;
- return r;
} else {
- Transform3D r;
Basis local = p_original.basis * p_original_local.basis.inverse();
Vector3 axis = local.xform_inv(p_motion);
r.basis = local * Basis(axis.normalized(), p_extra) * p_original_local.basis;
r.origin = Basis(p_motion, p_extra).xform(p_original.origin - _edit.center) + _edit.center;
- return r;
}
+
+ return r;
}
default: {
ERR_FAIL_V_MSG(Transform3D(), "Invalid mode in '_compute_transform'");
@@ -1480,6 +1474,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
_edit.original_mouse_pos = b->get_position();
_edit.snap = spatial_editor->is_snap_enabled();
_edit.mode = TRANSFORM_NONE;
+ _edit.original = spatial_editor->get_gizmo_transform(); // To prevent to break when flipping with scale.
bool can_select_gizmos = spatial_editor->get_single_selected_node();
@@ -1783,30 +1778,30 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
plane = Plane(_get_camera_normal(), _edit.center);
break;
case TRANSFORM_X_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_Y_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(1);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_Z_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_YZ:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2) + spatial_editor->get_gizmo_transform().basis.get_axis(1);
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0), _edit.center);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized() + spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized();
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized(), _edit.center);
plane_mv = true;
break;
case TRANSFORM_XZ:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2) + spatial_editor->get_gizmo_transform().basis.get_axis(0);
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1), _edit.center);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized() + spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized();
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized(), _edit.center);
plane_mv = true;
break;
case TRANSFORM_XY:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0) + spatial_editor->get_gizmo_transform().basis.get_axis(1);
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2), _edit.center);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized() + spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized();
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized(), _edit.center);
plane_mv = true;
break;
}
@@ -1857,6 +1852,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
// This might not be necessary anymore after issue #288 is solved (in 4.0?).
set_message(TTR("Scaling: ") + "(" + String::num(motion_snapped.x, snap_step_decimals) + ", " +
String::num(motion_snapped.y, snap_step_decimals) + ", " + String::num(motion_snapped.z, snap_step_decimals) + ")");
+ motion = _edit.original.basis.inverse().xform(motion);
List<Node *> &selection = editor_selection->get_selected_node_list();
for (Node *E : selection) {
@@ -1877,14 +1873,14 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
if (se->gizmo.is_valid()) {
for (KeyValue<int, Transform3D> &GE : se->subgizmos) {
Transform3D xform = GE.value;
- Transform3D new_xform = _compute_transform(TRANSFORM_SCALE, se->original * xform, xform, motion, snap, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_SCALE, se->original * xform, xform, motion, snap, local_coords, true); // Force orthogonal with subgizmo.
if (!local_coords) {
new_xform = se->original.affine_inverse() * new_xform;
}
se->gizmo->set_subgizmo_transform(GE.key, new_xform);
}
} else {
- Transform3D new_xform = _compute_transform(TRANSFORM_SCALE, se->original, se->original_local, motion, snap, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_SCALE, se->original, se->original_local, motion, snap, local_coords, sp->get_rotation_edit_mode() != Node3D::ROTATION_EDIT_MODE_BASIS);
_transform_gizmo_apply(se->sp, new_xform, local_coords);
}
}
@@ -1904,27 +1900,27 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
plane = Plane(_get_camera_normal(), _edit.center);
break;
case TRANSFORM_X_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_Y_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(1);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_Z_AXIS:
- motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2);
+ motion_mask = spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized();
plane = Plane(motion_mask.cross(motion_mask.cross(_get_camera_normal())).normalized(), _edit.center);
break;
case TRANSFORM_YZ:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized(), _edit.center);
plane_mv = true;
break;
case TRANSFORM_XZ:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized(), _edit.center);
plane_mv = true;
break;
case TRANSFORM_XY:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized(), _edit.center);
plane_mv = true;
break;
}
@@ -1956,6 +1952,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
motion_snapped.snap(Vector3(snap, snap, snap));
set_message(TTR("Translating: ") + "(" + String::num(motion_snapped.x, snap_step_decimals) + ", " +
String::num(motion_snapped.y, snap_step_decimals) + ", " + String::num(motion_snapped.z, snap_step_decimals) + ")");
+ motion = spatial_editor->get_gizmo_transform().basis.inverse().xform(motion);
List<Node *> &selection = editor_selection->get_selected_node_list();
for (Node *E : selection) {
@@ -1976,12 +1973,12 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
if (se->gizmo.is_valid()) {
for (KeyValue<int, Transform3D> &GE : se->subgizmos) {
Transform3D xform = GE.value;
- Transform3D new_xform = _compute_transform(TRANSFORM_TRANSLATE, se->original * xform, xform, motion, snap, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_TRANSLATE, se->original * xform, xform, motion, snap, local_coords, true); // Force orthogonal with subgizmo.
new_xform = se->original.affine_inverse() * new_xform;
se->gizmo->set_subgizmo_transform(GE.key, new_xform);
}
} else {
- Transform3D new_xform = _compute_transform(TRANSFORM_TRANSLATE, se->original, se->original_local, motion, snap, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_TRANSLATE, se->original, se->original_local, motion, snap, local_coords, sp->get_rotation_edit_mode() != Node3D::ROTATION_EDIT_MODE_BASIS);
_transform_gizmo_apply(se->sp, new_xform, false);
}
}
@@ -2000,15 +1997,15 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
plane = Plane(_get_camera_normal(), _edit.center);
break;
case TRANSFORM_X_AXIS:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(0).normalized(), _edit.center);
axis = Vector3(1, 0, 0);
break;
case TRANSFORM_Y_AXIS:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(1).normalized(), _edit.center);
axis = Vector3(0, 1, 0);
break;
case TRANSFORM_Z_AXIS:
- plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2), _edit.center);
+ plane = Plane(spatial_editor->get_gizmo_transform().basis.get_axis(2).normalized(), _edit.center);
axis = Vector3(0, 0, 1);
break;
case TRANSFORM_YZ:
@@ -2063,14 +2060,14 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
for (KeyValue<int, Transform3D> &GE : se->subgizmos) {
Transform3D xform = GE.value;
- Transform3D new_xform = _compute_transform(TRANSFORM_ROTATE, se->original * xform, xform, compute_axis, angle, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_ROTATE, se->original * xform, xform, compute_axis, angle, local_coords, true); // Force orthogonal with subgizmo.
if (!local_coords) {
new_xform = se->original.affine_inverse() * new_xform;
}
se->gizmo->set_subgizmo_transform(GE.key, new_xform);
}
} else {
- Transform3D new_xform = _compute_transform(TRANSFORM_ROTATE, se->original, se->original_local, compute_axis, angle, local_coords);
+ Transform3D new_xform = _compute_transform(TRANSFORM_ROTATE, se->original, se->original_local, compute_axis, angle, local_coords, sp->get_rotation_edit_mode() != Node3D::ROTATION_EDIT_MODE_BASIS);
_transform_gizmo_apply(se->sp, new_xform, local_coords);
}
}
@@ -2439,7 +2436,8 @@ void Node3DEditorViewport::_nav_look(Ref<InputEventWithModifiers> p_event, const
_menu_option(VIEW_PERSPECTIVE);
}
- const real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_sensitivity");
+ // Scale mouse sensitivity with camera FOV scale when zoomed in to make it easier to point at things.
+ const real_t degrees_per_pixel = real_t(EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_sensitivity")) * MIN(1.0, cursor.fov_scale);
const real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel);
const bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis");
@@ -2687,8 +2685,8 @@ void Node3DEditorViewport::_project_settings_changed() {
const bool use_occlusion_culling = GLOBAL_GET("rendering/occlusion_culling/use_occlusion_culling");
viewport->set_use_occlusion_culling(use_occlusion_culling);
- const float lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels");
- viewport->set_lod_threshold(lod_threshold);
+ const float mesh_lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels");
+ viewport->set_mesh_lod_threshold(mesh_lod_threshold);
}
void Node3DEditorViewport::_notification(int p_what) {
@@ -3390,6 +3388,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
case VIEW_DISPLAY_DEBUG_VOXEL_GI_EMISSION:
case VIEW_DISPLAY_DEBUG_SCENE_LUMINANCE:
case VIEW_DISPLAY_DEBUG_SSAO:
+ case VIEW_DISPLAY_DEBUG_SSIL:
case VIEW_DISPLAY_DEBUG_PSSM_SPLITS:
case VIEW_DISPLAY_DEBUG_DECAL_ATLAS:
case VIEW_DISPLAY_DEBUG_SDFGI:
@@ -3416,6 +3415,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
VIEW_DISPLAY_DEBUG_VOXEL_GI_EMISSION,
VIEW_DISPLAY_DEBUG_SCENE_LUMINANCE,
VIEW_DISPLAY_DEBUG_SSAO,
+ VIEW_DISPLAY_DEBUG_SSIL,
VIEW_DISPLAY_DEBUG_GI_BUFFER,
VIEW_DISPLAY_DEBUG_DISABLE_LOD,
VIEW_DISPLAY_DEBUG_PSSM_SPLITS,
@@ -3444,6 +3444,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
Viewport::DEBUG_DRAW_VOXEL_GI_EMISSION,
Viewport::DEBUG_DRAW_SCENE_LUMINANCE,
Viewport::DEBUG_DRAW_SSAO,
+ Viewport::DEBUG_DRAW_SSIL,
Viewport::DEBUG_DRAW_GI_BUFFER,
Viewport::DEBUG_DRAW_DISABLE_LOD,
Viewport::DEBUG_DRAW_PSSM_SPLITS,
@@ -3672,8 +3673,6 @@ void Node3DEditorViewport::update_transform_gizmo_view() {
subviewport_container->get_stretch_shrink();
Vector3 scale = Vector3(1, 1, 1) * gizmo_scale;
- xform.basis.scale(scale);
-
// if the determinant is zero, we should disable the gizmo from being rendered
// this prevents supplying bad values to the renderer and then having to filter it out again
if (xform.basis.determinant() == 0) {
@@ -3690,18 +3689,26 @@ void Node3DEditorViewport::update_transform_gizmo_view() {
}
for (int i = 0; i < 3; i++) {
- RenderingServer::get_singleton()->instance_set_transform(move_gizmo_instance[i], xform);
+ Transform3D axis_angle = Transform3D();
+ if (xform.basis.get_axis(i).normalized().dot(xform.basis.get_axis((i + 1) % 3).normalized()) < 1.0) {
+ axis_angle = axis_angle.looking_at(xform.basis.get_axis(i).normalized(), xform.basis.get_axis((i + 1) % 3).normalized());
+ }
+ axis_angle.basis.scale(scale);
+ axis_angle.origin = xform.origin;
+ RenderingServer::get_singleton()->instance_set_transform(move_gizmo_instance[i], axis_angle);
RenderingServer::get_singleton()->instance_set_visible(move_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE));
- RenderingServer::get_singleton()->instance_set_transform(move_plane_gizmo_instance[i], xform);
+ RenderingServer::get_singleton()->instance_set_transform(move_plane_gizmo_instance[i], axis_angle);
RenderingServer::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_MOVE));
- RenderingServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[i], xform);
+ RenderingServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[i], axis_angle);
RenderingServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_ROTATE));
- RenderingServer::get_singleton()->instance_set_transform(scale_gizmo_instance[i], xform);
+ RenderingServer::get_singleton()->instance_set_transform(scale_gizmo_instance[i], axis_angle);
RenderingServer::get_singleton()->instance_set_visible(scale_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE));
- RenderingServer::get_singleton()->instance_set_transform(scale_plane_gizmo_instance[i], xform);
+ RenderingServer::get_singleton()->instance_set_transform(scale_plane_gizmo_instance[i], axis_angle);
RenderingServer::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SCALE));
}
// Rotation white outline
+ xform.orthonormalize();
+ xform.basis.scale(scale);
RenderingServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[3], xform);
RenderingServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[3], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == Node3DEditor::TOOL_MODE_ROTATE));
}
@@ -3984,6 +3991,37 @@ AABB Node3DEditorViewport::_calculate_spatial_bounds(const Node3D *p_parent, boo
return bounds;
}
+Node *Node3DEditorViewport::_sanitize_preview_node(Node *p_node) const {
+ Node3D *node_3d = Object::cast_to<Node3D>(p_node);
+ if (node_3d == nullptr) {
+ Node3D *replacement_node = memnew(Node3D);
+ replacement_node->set_name(p_node->get_name());
+ p_node->replace_by(replacement_node);
+ memdelete(p_node);
+ p_node = replacement_node;
+ } else {
+ VisualInstance3D *visual_instance = Object::cast_to<VisualInstance3D>(node_3d);
+ if (visual_instance == nullptr) {
+ Node3D *replacement_node = memnew(Node3D);
+ replacement_node->set_name(node_3d->get_name());
+ replacement_node->set_visible(node_3d->is_visible());
+ replacement_node->set_transform(node_3d->get_transform());
+ replacement_node->set_rotation_edit_mode(node_3d->get_rotation_edit_mode());
+ replacement_node->set_rotation_order(node_3d->get_rotation_order());
+ replacement_node->set_as_top_level(node_3d->is_set_as_top_level());
+ p_node->replace_by(replacement_node);
+ memdelete(p_node);
+ p_node = replacement_node;
+ }
+ }
+
+ for (int i = 0; i < p_node->get_child_count(); i++) {
+ _sanitize_preview_node(p_node->get_child(i));
+ }
+
+ return p_node;
+}
+
void Node3DEditorViewport::_create_preview(const Vector<String> &files) const {
for (int i = 0; i < files.size(); i++) {
String path = files[i];
@@ -4000,6 +4038,7 @@ void Node3DEditorViewport::_create_preview(const Vector<String> &files) const {
if (scene.is_valid()) {
Node *instance = scene->instantiate();
if (instance) {
+ instance = _sanitize_preview_node(instance);
preview_node->add_child(instance);
}
}
@@ -4091,7 +4130,7 @@ bool Node3DEditorViewport::_create_instance(Node *parent, String &path, const Po
instantiated_scene->set_scene_file_path(ProjectSettings::get_singleton()->localize_path(path));
}
- editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene);
+ editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene, true);
editor_data->get_undo_redo().add_do_method(instantiated_scene, "set_owner", editor->get_edited_scene());
editor_data->get_undo_redo().add_do_reference(instantiated_scene);
editor_data->get_undo_redo().add_undo_method(parent, "remove_child", instantiated_scene);
@@ -4351,6 +4390,7 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, Edito
display_submenu->add_radio_check_item(TTR("Scene Luminance"), VIEW_DISPLAY_DEBUG_SCENE_LUMINANCE);
display_submenu->add_separator();
display_submenu->add_radio_check_item(TTR("SSAO"), VIEW_DISPLAY_DEBUG_SSAO);
+ display_submenu->add_radio_check_item(TTR("SSIL"), VIEW_DISPLAY_DEBUG_SSIL);
display_submenu->add_separator();
display_submenu->add_radio_check_item(TTR("GI Buffer"), VIEW_DISPLAY_DEBUG_GI_BUFFER);
display_submenu->add_separator();
@@ -4878,7 +4918,6 @@ void Node3DEditor::update_transform_gizmo() {
gizmo_center += xf.origin;
if (count == 0 && local_gizmo_coords) {
gizmo_basis = xf.basis;
- gizmo_basis.orthonormalize();
}
count++;
}
@@ -4903,7 +4942,6 @@ void Node3DEditor::update_transform_gizmo() {
gizmo_center += xf.origin;
if (count == 0 && local_gizmo_coords) {
gizmo_basis = xf.basis;
- gizmo_basis.orthonormalize();
}
count++;
}
@@ -5778,6 +5816,12 @@ void fragment() {
{
//move gizmo
+ // Inverted zxy.
+ Vector3 ivec = Vector3(0, 0, -1);
+ Vector3 nivec = Vector3(-1, -1, 0);
+ Vector3 ivec2 = Vector3(-1, 0, 0);
+ Vector3 ivec3 = Vector3(0, -1, 0);
+
for (int i = 0; i < 3; i++) {
Color col;
switch (i) {
@@ -5815,16 +5859,6 @@ void fragment() {
mat_hl->set_albedo(albedo);
gizmo_color_hl[i] = mat_hl;
- Vector3 ivec;
- ivec[i] = 1;
- Vector3 nivec;
- nivec[(i + 1) % 3] = 1;
- nivec[(i + 2) % 3] = 1;
- Vector3 ivec2;
- ivec2[(i + 1) % 3] = 1;
- Vector3 ivec3;
- ivec3[(i + 2) % 3] = 1;
-
//translate
{
Ref<SurfaceTool> surftool = memnew(SurfaceTool);
diff --git a/editor/plugins/node_3d_editor_plugin.h b/editor/plugins/node_3d_editor_plugin.h
index 8d647808ba..8d42e88b53 100644
--- a/editor/plugins/node_3d_editor_plugin.h
+++ b/editor/plugins/node_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -125,6 +125,7 @@ class Node3DEditorViewport : public Control {
VIEW_DISPLAY_DEBUG_VOXEL_GI_EMISSION,
VIEW_DISPLAY_DEBUG_SCENE_LUMINANCE,
VIEW_DISPLAY_DEBUG_SSAO,
+ VIEW_DISPLAY_DEBUG_SSIL,
VIEW_DISPLAY_DEBUG_PSSM_SPLITS,
VIEW_DISPLAY_DEBUG_DECAL_ATLAS,
VIEW_DISPLAY_DEBUG_SDFGI,
@@ -384,6 +385,9 @@ private:
Vector3 _get_instance_position(const Point2 &p_pos) const;
static AABB _calculate_spatial_bounds(const Node3D *p_parent, bool p_exclude_top_level_transform = true);
+
+ Node *_sanitize_preview_node(Node *p_node) const;
+
void _create_preview(const Vector<String> &files) const;
void _remove_preview();
bool _cyclical_dependency_exists(const String &p_target_scene_path, Node *p_desired_node);
@@ -395,7 +399,7 @@ private:
void _project_settings_changed();
- Transform3D _compute_transform(TransformMode p_mode, const Transform3D &p_original, const Transform3D &p_original_local, Vector3 p_motion, double p_extra, bool p_local);
+ Transform3D _compute_transform(TransformMode p_mode, const Transform3D &p_original, const Transform3D &p_original_local, Vector3 p_motion, double p_extra, bool p_local, bool p_orthogonal);
protected:
void _notification(int p_what);
diff --git a/editor/plugins/occluder_instance_3d_editor_plugin.cpp b/editor/plugins/occluder_instance_3d_editor_plugin.cpp
index 1e85b19a84..2dd760275e 100644
--- a/editor/plugins/occluder_instance_3d_editor_plugin.cpp
+++ b/editor/plugins/occluder_instance_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/occluder_instance_3d_editor_plugin.h b/editor/plugins/occluder_instance_3d_editor_plugin.h
index 161b17811c..a9aa0b74e3 100644
--- a/editor/plugins/occluder_instance_3d_editor_plugin.h
+++ b/editor/plugins/occluder_instance_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/ot_features_plugin.cpp b/editor/plugins/ot_features_plugin.cpp
index 7f3ebc01d5..d2daa4fa8d 100644
--- a/editor/plugins/ot_features_plugin.cpp
+++ b/editor/plugins/ot_features_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/ot_features_plugin.h b/editor/plugins/ot_features_plugin.h
index add491ed48..073fe53a52 100644
--- a/editor/plugins/ot_features_plugin.h
+++ b/editor/plugins/ot_features_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/packed_scene_translation_parser_plugin.cpp b/editor/plugins/packed_scene_translation_parser_plugin.cpp
index 53c5b8dd70..b492c27f41 100644
--- a/editor/plugins/packed_scene_translation_parser_plugin.cpp
+++ b/editor/plugins/packed_scene_translation_parser_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/packed_scene_translation_parser_plugin.h b/editor/plugins/packed_scene_translation_parser_plugin.h
index af0291b69c..fc19496eb6 100644
--- a/editor/plugins/packed_scene_translation_parser_plugin.h
+++ b/editor/plugins/packed_scene_translation_parser_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/path_2d_editor_plugin.cpp b/editor/plugins/path_2d_editor_plugin.cpp
index 79f8ce95cd..c50673559c 100644
--- a/editor/plugins/path_2d_editor_plugin.cpp
+++ b/editor/plugins/path_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/path_2d_editor_plugin.h b/editor/plugins/path_2d_editor_plugin.h
index 867e0ce74f..210a5a140d 100644
--- a/editor/plugins/path_2d_editor_plugin.h
+++ b/editor/plugins/path_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/path_3d_editor_plugin.cpp b/editor/plugins/path_3d_editor_plugin.cpp
index e83f6481f9..c31b893498 100644
--- a/editor/plugins/path_3d_editor_plugin.cpp
+++ b/editor/plugins/path_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/path_3d_editor_plugin.h b/editor/plugins/path_3d_editor_plugin.h
index 974234ba8f..a7da2c07e5 100644
--- a/editor/plugins/path_3d_editor_plugin.h
+++ b/editor/plugins/path_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/physical_bone_3d_editor_plugin.cpp b/editor/plugins/physical_bone_3d_editor_plugin.cpp
index 71955cf62c..9d69bbaa0b 100644
--- a/editor/plugins/physical_bone_3d_editor_plugin.cpp
+++ b/editor/plugins/physical_bone_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/physical_bone_3d_editor_plugin.h b/editor/plugins/physical_bone_3d_editor_plugin.h
index 248aad9298..d30222d7e6 100644
--- a/editor/plugins/physical_bone_3d_editor_plugin.h
+++ b/editor/plugins/physical_bone_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp
index affcab9e7d..e272b96778 100644
--- a/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/polygon_2d_editor_plugin.h b/editor/plugins/polygon_2d_editor_plugin.h
index cbe7ecf360..a04179dcad 100644
--- a/editor/plugins/polygon_2d_editor_plugin.h
+++ b/editor/plugins/polygon_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/resource_preloader_editor_plugin.cpp b/editor/plugins/resource_preloader_editor_plugin.cpp
index 30b7a26aab..d5287bc2fb 100644
--- a/editor/plugins/resource_preloader_editor_plugin.cpp
+++ b/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/resource_preloader_editor_plugin.h b/editor/plugins/resource_preloader_editor_plugin.h
index 943765d4e0..838d72df41 100644
--- a/editor/plugins/resource_preloader_editor_plugin.h
+++ b/editor/plugins/resource_preloader_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/root_motion_editor_plugin.cpp b/editor/plugins/root_motion_editor_plugin.cpp
index d1830bf5af..34b39d2a17 100644
--- a/editor/plugins/root_motion_editor_plugin.cpp
+++ b/editor/plugins/root_motion_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/root_motion_editor_plugin.h b/editor/plugins/root_motion_editor_plugin.h
index c05975b6c3..c2866f269b 100644
--- a/editor/plugins/root_motion_editor_plugin.h
+++ b/editor/plugins/root_motion_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index caaac2c7d3..03ed0e0ef2 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h
index 0adeca031e..ca409e15ca 100644
--- a/editor/plugins/script_editor_plugin.h
+++ b/editor/plugins/script_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp
index d5af7c5b38..97a882c383 100644
--- a/editor/plugins/script_text_editor.cpp
+++ b/editor/plugins/script_text_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -238,10 +238,6 @@ void ScriptTextEditor::_show_warnings_panel(bool p_show) {
void ScriptTextEditor::_warning_clicked(Variant p_line) {
if (p_line.get_type() == Variant::INT) {
goto_line_centered(p_line.operator int64_t());
- } else if (p_line.get_type() == Variant::DICTIONARY) {
- Dictionary meta = p_line.operator Dictionary();
- code_editor->get_text_editor()->insert_line_at(meta["line"].operator int64_t() - 1, "# warning-ignore:" + meta["code"].operator String());
- _validate_script();
}
}
@@ -468,20 +464,8 @@ void ScriptTextEditor::_validate_script() {
}
// Add script warnings.
- warnings_panel->push_table(3);
+ warnings_panel->push_table(2);
for (const ScriptLanguage::Warning &w : warnings) {
- Dictionary ignore_meta;
- ignore_meta["line"] = w.start_line;
- ignore_meta["code"] = w.string_code.to_lower();
- warnings_panel->push_cell();
- warnings_panel->push_meta(ignore_meta);
- warnings_panel->push_color(
- warnings_panel->get_theme_color(SNAME("accent_color"), SNAME("Editor")).lerp(warnings_panel->get_theme_color(SNAME("mono_color"), SNAME("Editor")), 0.5));
- warnings_panel->add_text(TTR("[Ignore]"));
- warnings_panel->pop(); // Color.
- warnings_panel->pop(); // Meta ignore.
- warnings_panel->pop(); // Cell.
-
warnings_panel->push_cell();
warnings_panel->push_meta(w.start_line - 1);
warnings_panel->push_color(warnings_panel->get_theme_color(SNAME("warning_color"), SNAME("Editor")));
diff --git a/editor/plugins/script_text_editor.h b/editor/plugins/script_text_editor.h
index afe9a7453d..6e67444489 100644
--- a/editor/plugins/script_text_editor.h
+++ b/editor/plugins/script_text_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp
index d5ee52dfab..e8bbeb0834 100644
--- a/editor/plugins/shader_editor_plugin.cpp
+++ b/editor/plugins/shader_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -293,15 +293,20 @@ void ShaderTextEditor::_update_warning_panel() {
}
warning_count++;
+ int line = w.get_line();
// First cell.
warnings_panel->push_cell();
- warnings_panel->push_meta(w.get_line() - 1);
warnings_panel->push_color(warnings_panel->get_theme_color(SNAME("warning_color"), SNAME("Editor")));
- warnings_panel->add_text(TTR("Line") + " " + itos(w.get_line()));
- warnings_panel->add_text(" (" + w.get_name() + "):");
+ if (line != -1) {
+ warnings_panel->push_meta(line - 1);
+ warnings_panel->add_text(TTR("Line") + " " + itos(line));
+ warnings_panel->add_text(" (" + w.get_name() + "):");
+ warnings_panel->pop(); // Meta goto.
+ } else {
+ warnings_panel->add_text(w.get_name() + ":");
+ }
warnings_panel->pop(); // Color.
- warnings_panel->pop(); // Meta goto.
warnings_panel->pop(); // Cell.
// Second cell.
diff --git a/editor/plugins/shader_editor_plugin.h b/editor/plugins/shader_editor_plugin.h
index 77579754d3..cc90d381a5 100644
--- a/editor/plugins/shader_editor_plugin.h
+++ b/editor/plugins/shader_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/shader_file_editor_plugin.cpp b/editor/plugins/shader_file_editor_plugin.cpp
index 517de1901f..8250164885 100644
--- a/editor/plugins/shader_file_editor_plugin.cpp
+++ b/editor/plugins/shader_file_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/shader_file_editor_plugin.h b/editor/plugins/shader_file_editor_plugin.h
index 7d6e503b6c..feec0c206e 100644
--- a/editor/plugins/shader_file_editor_plugin.h
+++ b/editor/plugins/shader_file_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/skeleton_2d_editor_plugin.cpp b/editor/plugins/skeleton_2d_editor_plugin.cpp
index 510e264c48..b6d465ea81 100644
--- a/editor/plugins/skeleton_2d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/skeleton_2d_editor_plugin.h b/editor/plugins/skeleton_2d_editor_plugin.h
index 066888f685..2fa7f02622 100644
--- a/editor/plugins/skeleton_2d_editor_plugin.h
+++ b/editor/plugins/skeleton_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp
index bb5ef0f6eb..e1b27cb045 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1110,7 +1110,7 @@ void fragment() {
)");
selected_mat->set_shader(selected_sh);
- // Regist properties in editor settings.
+ // Register properties in editor settings.
EDITOR_DEF("editors/3d_gizmos/gizmo_colors/skeleton", Color(1, 0.8, 0.4));
EDITOR_DEF("editors/3d_gizmos/gizmo_colors/selected_bone", Color(0.8, 0.3, 0.0));
EDITOR_DEF("editors/3d_gizmos/gizmo_settings/bone_axis_length", (float)0.1);
diff --git a/editor/plugins/skeleton_3d_editor_plugin.h b/editor/plugins/skeleton_3d_editor_plugin.h
index 1dd2d2281d..d0d81d6498 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.h
+++ b/editor/plugins/skeleton_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/skeleton_ik_3d_editor_plugin.cpp b/editor/plugins/skeleton_ik_3d_editor_plugin.cpp
index 85632cf481..ca8786a385 100644
--- a/editor/plugins/skeleton_ik_3d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_ik_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/skeleton_ik_3d_editor_plugin.h b/editor/plugins/skeleton_ik_3d_editor_plugin.h
index b0d2138115..edc3f6dda4 100644
--- a/editor/plugins/skeleton_ik_3d_editor_plugin.h
+++ b/editor/plugins/skeleton_ik_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/sprite_2d_editor_plugin.cpp b/editor/plugins/sprite_2d_editor_plugin.cpp
index 48b10d5a8b..1eac651ed6 100644
--- a/editor/plugins/sprite_2d_editor_plugin.cpp
+++ b/editor/plugins/sprite_2d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/sprite_2d_editor_plugin.h b/editor/plugins/sprite_2d_editor_plugin.h
index d4a1ef4312..c93ad1610f 100644
--- a/editor/plugins/sprite_2d_editor_plugin.h
+++ b/editor/plugins/sprite_2d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp
index 316ef7b195..2da4f80751 100644
--- a/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1232,7 +1232,7 @@ SpriteFramesEditor::SpriteFramesEditor() {
split_sheet_vb->add_child(split_sheet_panel);
split_sheet_preview = memnew(TextureRect);
- split_sheet_preview->set_expand(true);
+ split_sheet_preview->set_ignore_texture_size(true);
split_sheet_preview->set_mouse_filter(MOUSE_FILTER_PASS);
split_sheet_preview->connect("draw", callable_mp(this, &SpriteFramesEditor::_sheet_preview_draw));
split_sheet_preview->connect("gui_input", callable_mp(this, &SpriteFramesEditor::_sheet_preview_input));
diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h
index 9732384000..8767e05a94 100644
--- a/editor/plugins/sprite_frames_editor_plugin.h
+++ b/editor/plugins/sprite_frames_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/style_box_editor_plugin.cpp b/editor/plugins/style_box_editor_plugin.cpp
index 1c7f319280..5d38352b22 100644
--- a/editor/plugins/style_box_editor_plugin.cpp
+++ b/editor/plugins/style_box_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/style_box_editor_plugin.h b/editor/plugins/style_box_editor_plugin.h
index d82e5ab05e..898628fd7f 100644
--- a/editor/plugins/style_box_editor_plugin.h
+++ b/editor/plugins/style_box_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/sub_viewport_preview_editor_plugin.cpp b/editor/plugins/sub_viewport_preview_editor_plugin.cpp
index 75c47bda2e..4498a1d64d 100644
--- a/editor/plugins/sub_viewport_preview_editor_plugin.cpp
+++ b/editor/plugins/sub_viewport_preview_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/sub_viewport_preview_editor_plugin.h b/editor/plugins/sub_viewport_preview_editor_plugin.h
index 03b8b678d1..7016910ebd 100644
--- a/editor/plugins/sub_viewport_preview_editor_plugin.h
+++ b/editor/plugins/sub_viewport_preview_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/text_control_editor_plugin.cpp b/editor/plugins/text_control_editor_plugin.cpp
index c878c83430..a51b5d3e03 100644
--- a/editor/plugins/text_control_editor_plugin.cpp
+++ b/editor/plugins/text_control_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -53,6 +53,10 @@ void TextControlEditor::_notification(int p_notification) {
}
}
+void TextControlEditor::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("_update_control"), &TextControlEditor::_update_control);
+}
+
void TextControlEditor::_find_resources(EditorFileSystemDirectory *p_dir) {
for (int i = 0; i < p_dir->get_subdir_count(); i++) {
_find_resources(p_dir->get_subdir(i));
@@ -179,8 +183,13 @@ void TextControlEditor::_update_control() {
}
// Get other theme overrides.
+ font_size_list->set_block_signals(true);
font_size_list->set_value(edited_control->get_theme_font_size(edited_font_size));
+ font_size_list->set_block_signals(false);
+
+ outline_size_list->set_block_signals(true);
outline_size_list->set_value(edited_control->get_theme_constant("outline_size"));
+ outline_size_list->set_block_signals(false);
font_color_picker->set_pick_color(edited_control->get_theme_color(edited_color));
outline_color_picker->set_pick_color(edited_control->get_theme_color("font_outline_color"));
@@ -188,7 +197,6 @@ void TextControlEditor::_update_control() {
}
void TextControlEditor::_font_selected(int p_id) {
- _update_styles_menu();
_set_font();
}
@@ -197,70 +205,177 @@ void TextControlEditor::_font_style_selected(int p_id) {
}
void TextControlEditor::_set_font() {
- if (edited_control) {
- if (font_list->get_selected_id() == FONT_INFO_THEME_DEFAULT) {
- // Remove font override.
- edited_control->remove_theme_font_override(edited_font);
- return;
- } else if (font_list->get_selected_id() == FONT_INFO_USER_CUSTOM) {
- // Restore "custom_font".
- edited_control->add_theme_font_override(edited_font, custom_font);
- return;
- } else {
- // Load new font resource using selected name and style.
- String name = font_list->get_item_text(font_list->get_selected());
- String sty = font_style_list->get_item_text(font_style_list->get_selected());
- if (sty.is_empty()) {
- sty = "Default";
- }
- if (fonts.has(name)) {
- Ref<FontData> fd = ResourceLoader::load(fonts[name][sty]);
- if (fd.is_valid()) {
- Ref<Font> f;
- f.instantiate();
- f->add_data(fd);
- edited_control->add_theme_font_override(edited_font, f);
- }
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font"));
+
+ if (font_list->get_selected_id() == FONT_INFO_THEME_DEFAULT) {
+ // Remove font override.
+ ur->add_do_method(edited_control, "remove_theme_font_override", edited_font);
+ } else if (font_list->get_selected_id() == FONT_INFO_USER_CUSTOM) {
+ // Restore "custom_font".
+ ur->add_do_method(edited_control, "add_theme_font_override", edited_font, custom_font);
+ } else {
+ // Load new font resource using selected name and style.
+ String name = font_list->get_item_text(font_list->get_selected());
+ String style = font_style_list->get_item_text(font_style_list->get_selected());
+ if (style.is_empty()) {
+ style = "Default";
+ }
+
+ if (fonts.has(name)) {
+ Ref<FontData> fd = ResourceLoader::load(fonts[name][style]);
+ if (fd.is_valid()) {
+ Ref<Font> font;
+ font.instantiate();
+ font->add_data(fd);
+ ur->add_do_method(edited_control, "add_theme_font_override", edited_font, font);
}
}
}
+
+ if (edited_control->has_theme_font_override(edited_font)) {
+ ur->add_undo_method(edited_control, "add_theme_font_override", edited_font, edited_control->get_theme_font(edited_font));
+ } else {
+ ur->add_undo_method(edited_control, "remove_theme_font_override", edited_font);
+ }
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::_font_size_selected(double p_size) {
- if (edited_control) {
- edited_control->add_theme_font_size_override(edited_font_size, p_size);
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Size"));
+
+ ur->add_do_method(edited_control, "add_theme_font_size_override", edited_font_size, p_size);
+ if (edited_control->has_theme_font_size_override(edited_font_size)) {
+ ur->add_undo_method(edited_control, "add_theme_font_size_override", edited_font_size, edited_control->get_theme_font_size(edited_font_size));
+ } else {
+ ur->add_undo_method(edited_control, "remove_theme_font_size_override", edited_font_size);
}
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::_outline_size_selected(double p_size) {
- if (edited_control) {
- edited_control->add_theme_constant_override("outline_size", p_size);
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Outline Size"));
+
+ ur->add_do_method(edited_control, "add_theme_constant_override", "outline_size", p_size);
+ if (edited_control->has_theme_constant_override("outline_size")) {
+ ur->add_undo_method(edited_control, "add_theme_constant_override", "outline_size", edited_control->get_theme_constant("outline_size"));
+ } else {
+ ur->add_undo_method(edited_control, "remove_theme_constant_override", "outline_size");
}
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::_font_color_changed(const Color &p_color) {
- if (edited_control) {
- edited_control->add_theme_color_override(edited_color, p_color);
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Color"), UndoRedo::MERGE_ENDS);
+
+ ur->add_do_method(edited_control, "add_theme_color_override", edited_color, p_color);
+ if (edited_control->has_theme_color_override(edited_color)) {
+ ur->add_undo_method(edited_control, "add_theme_color_override", edited_color, edited_control->get_theme_color(edited_color));
+ } else {
+ ur->add_undo_method(edited_control, "remove_theme_color_override", edited_color);
}
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::_outline_color_changed(const Color &p_color) {
- if (edited_control) {
- edited_control->add_theme_color_override("font_outline_color", p_color);
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Outline Color"), UndoRedo::MERGE_ENDS);
+
+ ur->add_do_method(edited_control, "add_theme_color_override", "font_outline_color", p_color);
+ if (edited_control->has_theme_color_override("font_outline_color")) {
+ ur->add_undo_method(edited_control, "add_theme_color_override", "font_outline_color", edited_control->get_theme_color("font_outline_color"));
+ } else {
+ ur->add_undo_method(edited_control, "remove_theme_color_override", "font_outline_color");
}
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::_clear_formatting() {
- if (edited_control) {
- edited_control->begin_bulk_theme_override();
- edited_control->remove_theme_font_override(edited_font);
- edited_control->remove_theme_font_size_override(edited_font_size);
- edited_control->remove_theme_color_override(edited_color);
- edited_control->remove_theme_color_override("font_outline_color");
- edited_control->remove_theme_constant_override("outline_size");
- edited_control->end_bulk_theme_override();
- _update_control();
+ if (!edited_control) {
+ return;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Clear Control Formatting"));
+
+ ur->add_do_method(edited_control, "begin_bulk_theme_override");
+ ur->add_undo_method(edited_control, "begin_bulk_theme_override");
+
+ ur->add_do_method(edited_control, "remove_theme_font_override", edited_font);
+ if (edited_control->has_theme_font_override(edited_font)) {
+ ur->add_undo_method(edited_control, "add_theme_font_override", edited_font, edited_control->get_theme_font(edited_font));
+ }
+
+ ur->add_do_method(edited_control, "remove_theme_font_size_override", edited_font_size);
+ if (edited_control->has_theme_font_size_override(edited_font_size)) {
+ ur->add_undo_method(edited_control, "add_theme_font_size_override", edited_font_size, edited_control->get_theme_font_size(edited_font_size));
+ }
+
+ ur->add_do_method(edited_control, "remove_theme_color_override", edited_color);
+ if (edited_control->has_theme_color_override(edited_color)) {
+ ur->add_undo_method(edited_control, "add_theme_color_override", edited_color, edited_control->get_theme_color(edited_color));
+ }
+
+ ur->add_do_method(edited_control, "remove_theme_color_override", "font_outline_color");
+ if (edited_control->has_theme_color_override("font_outline_color")) {
+ ur->add_undo_method(edited_control, "add_theme_color_override", "font_outline_color", edited_control->get_theme_color("font_outline_color"));
+ }
+
+ ur->add_do_method(edited_control, "remove_theme_constant_override", "outline_size");
+ if (edited_control->has_theme_constant_override("outline_size")) {
+ ur->add_undo_method(edited_control, "add_theme_constant_override", "outline_size", edited_control->get_theme_constant("outline_size"));
}
+
+ ur->add_do_method(edited_control, "end_bulk_theme_override");
+ ur->add_undo_method(edited_control, "end_bulk_theme_override");
+
+ ur->add_do_method(this, "_update_control");
+ ur->add_undo_method(this, "_update_control");
+
+ ur->commit_action();
}
void TextControlEditor::edit(Object *p_object) {
diff --git a/editor/plugins/text_control_editor_plugin.h b/editor/plugins/text_control_editor_plugin.h
index 7f4aa3754c..d284a30f16 100644
--- a/editor/plugins/text_control_editor_plugin.h
+++ b/editor/plugins/text_control_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -70,7 +70,7 @@ class TextControlEditor : public HBoxContainer {
protected:
void _notification(int p_notification);
- static void _bind_methods(){};
+ static void _bind_methods();
void _find_resources(EditorFileSystemDirectory *p_dir);
void _reload_fonts(const String &p_path);
diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp
index cbde382d67..12d13571f8 100644
--- a/editor/plugins/text_editor.cpp
+++ b/editor/plugins/text_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/text_editor.h b/editor/plugins/text_editor.h
index 7404557f46..d3fb0c0a16 100644
--- a/editor/plugins/text_editor.h
+++ b/editor/plugins/text_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/texture_3d_editor_plugin.cpp b/editor/plugins/texture_3d_editor_plugin.cpp
index b4e394a1c0..6080f9df87 100644
--- a/editor/plugins/texture_3d_editor_plugin.cpp
+++ b/editor/plugins/texture_3d_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/texture_3d_editor_plugin.h b/editor/plugins/texture_3d_editor_plugin.h
index 855194e644..5a200f6c11 100644
--- a/editor/plugins/texture_3d_editor_plugin.h
+++ b/editor/plugins/texture_3d_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/texture_editor_plugin.cpp b/editor/plugins/texture_editor_plugin.cpp
index e25b0270b4..84b33f0986 100644
--- a/editor/plugins/texture_editor_plugin.cpp
+++ b/editor/plugins/texture_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -84,7 +84,7 @@ TexturePreview::TexturePreview(Ref<Texture2D> p_texture, bool p_show_metadata) {
texture_display->set_texture(p_texture);
texture_display->set_anchors_preset(TextureRect::PRESET_WIDE);
texture_display->set_stretch_mode(TextureRect::STRETCH_KEEP_ASPECT_CENTERED);
- texture_display->set_expand(true);
+ texture_display->set_ignore_texture_size(true);
add_child(texture_display);
if (p_show_metadata) {
diff --git a/editor/plugins/texture_editor_plugin.h b/editor/plugins/texture_editor_plugin.h
index 60349febd7..5ba077d6fc 100644
--- a/editor/plugins/texture_editor_plugin.h
+++ b/editor/plugins/texture_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/texture_layered_editor_plugin.cpp b/editor/plugins/texture_layered_editor_plugin.cpp
index 1f536d13cf..a8c37d37fe 100644
--- a/editor/plugins/texture_layered_editor_plugin.cpp
+++ b/editor/plugins/texture_layered_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/texture_layered_editor_plugin.h b/editor/plugins/texture_layered_editor_plugin.h
index a7fe4b94e9..cd8eba1bfe 100644
--- a/editor/plugins/texture_layered_editor_plugin.h
+++ b/editor/plugins/texture_layered_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp
index 8e1c81a876..c03e55be69 100644
--- a/editor/plugins/texture_region_editor_plugin.cpp
+++ b/editor/plugins/texture_region_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/texture_region_editor_plugin.h b/editor/plugins/texture_region_editor_plugin.h
index c043d6ae33..23981ddb81 100644
--- a/editor/plugins/texture_region_editor_plugin.h
+++ b/editor/plugins/texture_region_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp
index b5d2b571f5..91c17399c2 100644
--- a/editor/plugins/theme_editor_plugin.cpp
+++ b/editor/plugins/theme_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -754,8 +754,9 @@ void ThemeItemImportTree::_import_selected() {
return;
}
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
ProgressDialog::get_singleton()->add_task("import_theme_items", TTR("Importing Theme Items"), selected_items.size() + 2);
int idx = 0;
@@ -808,7 +809,7 @@ void ThemeItemImportTree::_import_selected() {
}
}
- edited_theme->set_theme_item(ti.data_type, ti.item_name, ti.type_name, item_value);
+ new_snapshot->set_theme_item(ti.data_type, ti.item_name, ti.type_name, item_value);
}
idx++;
@@ -816,12 +817,24 @@ void ThemeItemImportTree::_import_selected() {
// Allow changes to be reported now that the operation is finished.
ProgressDialog::get_singleton()->task_step("import_theme_items", TTR("Updating the editor"), idx++);
- edited_theme->_unfreeze_and_propagate_changes();
+
// Make sure the task is not ended before the editor freezes to update the Inspector.
ProgressDialog::get_singleton()->task_step("import_theme_items", TTR("Finalizing"), idx++);
ProgressDialog::get_singleton()->end_task("import_theme_items");
- emit_signal(SNAME("items_imported"));
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Import Theme Items"));
+
+ ur->add_do_method(*edited_theme, "clear");
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "clear");
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
+
+ ur->add_do_method(this, "emit_signal", SNAME("items_imported"));
+ ur->add_undo_method(this, "emit_signal", SNAME("items_imported"));
+
+ ur->commit_action();
}
void ThemeItemImportTree::set_edited_theme(const Ref<Theme> &p_theme) {
@@ -1296,6 +1309,7 @@ void ThemeItemEditorDialog::_update_edit_types() {
edit_items_message->set_text(TTR("Select a theme type from the list to edit its items.\nYou can add a custom type or import a type with its items from another theme."));
edit_items_message->show();
}
+
_update_edit_item_tree(selected_type);
}
@@ -1475,19 +1489,25 @@ void ThemeItemEditorDialog::_item_tree_button_pressed(Object *p_item, int p_colu
String item_name = item->get_text(0);
int data_type = item->get_parent()->get_metadata(0);
_open_rename_theme_item_dialog((Theme::DataType)data_type, item_name);
+ _update_edit_item_tree(edited_item_type);
} break;
case ITEMS_TREE_REMOVE_ITEM: {
String item_name = item->get_text(0);
int data_type = item->get_parent()->get_metadata(0);
- edited_theme->clear_theme_item((Theme::DataType)data_type, item_name, edited_item_type);
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove Theme Item"));
+ ur->add_do_method(*edited_theme, "clear_theme_item", (Theme::DataType)data_type, item_name, edited_item_type);
+ ur->add_undo_method(*edited_theme, "set_theme_item", (Theme::DataType)data_type, item_name, edited_item_type, edited_theme->get_theme_item((Theme::DataType)data_type, item_name, edited_item_type));
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->commit_action();
} break;
case ITEMS_TREE_REMOVE_DATA_TYPE: {
int data_type = item->get_metadata(0);
_remove_data_type_items((Theme::DataType)data_type, edited_item_type);
} break;
}
-
- _update_edit_item_tree(edited_item_type);
}
void ThemeItemEditorDialog::_add_theme_type(const String &p_new_text) {
@@ -1500,57 +1520,91 @@ void ThemeItemEditorDialog::_add_theme_type(const String &p_new_text) {
edited_theme->add_font_size_type(new_type);
edited_theme->add_color_type(new_type);
edited_theme->add_constant_type(new_type);
+
_update_edit_types();
- // Force emit a change so that other parts of the editor can update.
edited_theme->emit_changed();
}
void ThemeItemEditorDialog::_add_theme_item(Theme::DataType p_data_type, String p_item_name, String p_item_type) {
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Create Theme Item"));
+
switch (p_data_type) {
case Theme::DATA_TYPE_ICON:
- edited_theme->set_icon(p_item_name, p_item_type, Ref<Texture2D>());
+ ur->add_do_method(*edited_theme, "set_icon", p_item_name, p_item_type, Ref<Texture2D>());
+ ur->add_undo_method(*edited_theme, "clear_icon", p_item_name, p_item_type);
break;
case Theme::DATA_TYPE_STYLEBOX:
- edited_theme->set_stylebox(p_item_name, p_item_type, Ref<StyleBox>());
+ ur->add_do_method(*edited_theme, "set_stylebox", p_item_name, p_item_type, Ref<StyleBox>());
+ ur->add_undo_method(*edited_theme, "clear_stylebox", p_item_name, p_item_type);
+
+ if (theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(p_item_name, p_item_type))) {
+ ur->add_undo_method(theme_type_editor, "_unpin_leading_stylebox");
+ }
break;
case Theme::DATA_TYPE_FONT:
- edited_theme->set_font(p_item_name, p_item_type, Ref<Font>());
+ ur->add_do_method(*edited_theme, "set_font", p_item_name, p_item_type, Ref<Font>());
+ ur->add_undo_method(*edited_theme, "clear_font", p_item_name, p_item_type);
break;
case Theme::DATA_TYPE_FONT_SIZE:
- edited_theme->set_font_size(p_item_name, p_item_type, -1);
+ ur->add_do_method(*edited_theme, "set_font_size", p_item_name, p_item_type, -1);
+ ur->add_undo_method(*edited_theme, "clear_font_size", p_item_name, p_item_type);
break;
case Theme::DATA_TYPE_COLOR:
- edited_theme->set_color(p_item_name, p_item_type, Color());
+ ur->add_do_method(*edited_theme, "set_color", p_item_name, p_item_type, Color());
+ ur->add_undo_method(*edited_theme, "clear_color", p_item_name, p_item_type);
break;
case Theme::DATA_TYPE_CONSTANT:
- edited_theme->set_constant(p_item_name, p_item_type, 0);
+ ur->add_do_method(*edited_theme, "set_constant", p_item_name, p_item_type, 0);
+ ur->add_undo_method(*edited_theme, "clear_constant", p_item_name, p_item_type);
break;
case Theme::DATA_TYPE_MAX:
break; // Can't happen, but silences warning.
}
+
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->commit_action();
}
void ThemeItemEditorDialog::_remove_data_type_items(Theme::DataType p_data_type, String p_item_type) {
List<StringName> names;
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove Data Type Items From Theme"));
- edited_theme->get_theme_item_list(p_data_type, p_item_type, &names);
+ new_snapshot->get_theme_item_list(p_data_type, p_item_type, &names);
for (const StringName &E : names) {
- edited_theme->clear_theme_item(p_data_type, E, p_item_type);
+ new_snapshot->clear_theme_item(p_data_type, E, edited_item_type);
+
+ if (p_data_type == Theme::DATA_TYPE_STYLEBOX && theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(E, p_item_type))) {
+ ur->add_do_method(theme_type_editor, "_unpin_leading_stylebox");
+ ur->add_undo_method(theme_type_editor, "_pin_leading_stylebox", E, edited_theme->get_stylebox(E, p_item_type));
+ }
}
- // Allow changes to be reported now that the operation is finished.
- edited_theme->_unfreeze_and_propagate_changes();
+ ur->add_do_method(*edited_theme, "clear");
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
+
+ ur->add_do_method(theme_type_editor, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(theme_type_editor, "_update_edit_item_tree", edited_item_type);
+
+ ur->commit_action();
}
void ThemeItemEditorDialog::_remove_class_items() {
List<StringName> names;
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove Class Items From Theme"));
for (int dt = 0; dt < Theme::DATA_TYPE_MAX; dt++) {
Theme::DataType data_type = (Theme::DataType)dt;
@@ -1558,62 +1612,95 @@ void ThemeItemEditorDialog::_remove_class_items() {
names.clear();
Theme::get_default()->get_theme_item_list(data_type, edited_item_type, &names);
for (const StringName &E : names) {
- if (edited_theme->has_theme_item_nocheck(data_type, E, edited_item_type)) {
- edited_theme->clear_theme_item(data_type, E, edited_item_type);
+ if (new_snapshot->has_theme_item_nocheck(data_type, E, edited_item_type)) {
+ new_snapshot->clear_theme_item(data_type, E, edited_item_type);
+
+ if (dt == Theme::DATA_TYPE_STYLEBOX && theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(E, edited_item_type))) {
+ ur->add_do_method(theme_type_editor, "_unpin_leading_stylebox");
+ ur->add_undo_method(theme_type_editor, "_pin_leading_stylebox", E, edited_theme->get_stylebox(E, edited_item_type));
+ }
}
}
}
- // Allow changes to be reported now that the operation is finished.
- edited_theme->_unfreeze_and_propagate_changes();
+ ur->add_do_method(*edited_theme, "clear");
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
+
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
- _update_edit_item_tree(edited_item_type);
+ ur->commit_action();
}
void ThemeItemEditorDialog::_remove_custom_items() {
List<StringName> names;
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove Custom Items From Theme"));
for (int dt = 0; dt < Theme::DATA_TYPE_MAX; dt++) {
Theme::DataType data_type = (Theme::DataType)dt;
names.clear();
- edited_theme->get_theme_item_list(data_type, edited_item_type, &names);
+ new_snapshot->get_theme_item_list(data_type, edited_item_type, &names);
for (const StringName &E : names) {
if (!Theme::get_default()->has_theme_item_nocheck(data_type, E, edited_item_type)) {
- edited_theme->clear_theme_item(data_type, E, edited_item_type);
+ new_snapshot->clear_theme_item(data_type, E, edited_item_type);
+
+ if (dt == Theme::DATA_TYPE_STYLEBOX && theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(E, edited_item_type))) {
+ ur->add_do_method(theme_type_editor, "_unpin_leading_stylebox");
+ ur->add_undo_method(theme_type_editor, "_pin_leading_stylebox", E, edited_theme->get_stylebox(E, edited_item_type));
+ }
}
}
}
- // Allow changes to be reported now that the operation is finished.
- edited_theme->_unfreeze_and_propagate_changes();
+ ur->add_do_method(*edited_theme, "clear");
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
- _update_edit_item_tree(edited_item_type);
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
+
+ ur->commit_action();
}
void ThemeItemEditorDialog::_remove_all_items() {
List<StringName> names;
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove All Items From Theme"));
for (int dt = 0; dt < Theme::DATA_TYPE_MAX; dt++) {
Theme::DataType data_type = (Theme::DataType)dt;
names.clear();
- edited_theme->get_theme_item_list(data_type, edited_item_type, &names);
+ new_snapshot->get_theme_item_list(data_type, edited_item_type, &names);
for (const StringName &E : names) {
- edited_theme->clear_theme_item(data_type, E, edited_item_type);
+ new_snapshot->clear_theme_item(data_type, E, edited_item_type);
+
+ if (dt == Theme::DATA_TYPE_STYLEBOX && theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(E, edited_item_type))) {
+ ur->add_do_method(theme_type_editor, "_unpin_leading_stylebox");
+ ur->add_undo_method(theme_type_editor, "_pin_leading_stylebox", E, edited_theme->get_stylebox(E, edited_item_type));
+ }
}
}
- // Allow changes to be reported now that the operation is finished.
- edited_theme->_unfreeze_and_propagate_changes();
+ ur->add_do_method(*edited_theme, "clear");
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
- _update_edit_item_tree(edited_item_type);
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
+
+ ur->commit_action();
}
void ThemeItemEditorDialog::_open_add_theme_item_dialog(int p_data_type) {
@@ -1692,14 +1779,21 @@ void ThemeItemEditorDialog::_confirm_edit_theme_item() {
if (item_popup_mode == CREATE_THEME_ITEM) {
_add_theme_item(edit_item_data_type, theme_item_name->get_text(), edited_item_type);
} else if (item_popup_mode == RENAME_THEME_ITEM) {
- edited_theme->rename_theme_item(edit_item_data_type, edit_item_old_name, theme_item_name->get_text(), edited_item_type);
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Rename Theme Item"));
+
+ ur->add_do_method(*edited_theme, "rename_theme_item", edit_item_data_type, edit_item_old_name, theme_item_name->get_text(), edited_item_type);
+ ur->add_undo_method(*edited_theme, "rename_theme_item", edit_item_data_type, theme_item_name->get_text(), edit_item_old_name, edited_item_type);
+
+ ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
+ ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
+
+ ur->commit_action();
}
item_popup_mode = ITEM_POPUP_MODE_MAX;
edit_item_data_type = Theme::DATA_TYPE_MAX;
edit_item_old_name = "";
-
- _update_edit_item_tree(edited_item_type);
}
void ThemeItemEditorDialog::_edit_theme_item_gui_input(const Ref<InputEvent> &p_event) {
@@ -1773,15 +1867,22 @@ void ThemeItemEditorDialog::_notification(int p_what) {
}
}
+void ThemeItemEditorDialog::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("_update_edit_types"), &ThemeItemEditorDialog::_update_edit_types);
+ ClassDB::bind_method(D_METHOD("_update_edit_item_tree"), &ThemeItemEditorDialog::_update_edit_item_tree);
+}
+
void ThemeItemEditorDialog::set_edited_theme(const Ref<Theme> &p_theme) {
edited_theme = p_theme;
}
-ThemeItemEditorDialog::ThemeItemEditorDialog() {
+ThemeItemEditorDialog::ThemeItemEditorDialog(ThemeTypeEditor *p_theme_type_editor) {
set_title(TTR("Manage Theme Items"));
get_ok_button()->set_text(TTR("Close"));
set_hide_on_ok(false); // Closing may require a confirmation in some cases.
+ theme_type_editor = p_theme_type_editor;
+
tc = memnew(TabContainer);
tc->set_tab_alignment(TabContainer::ALIGNMENT_LEFT);
add_child(tc);
@@ -2540,11 +2641,11 @@ void ThemeTypeEditor::_update_type_items() {
pin_leader_button->set_icon(get_theme_icon(SNAME("Pin"), SNAME("EditorIcons")));
pin_leader_button->set_tooltip(TTR("Unpin this StyleBox as a main style."));
item_control->add_child(pin_leader_button);
- pin_leader_button->connect("pressed", callable_mp(this, &ThemeTypeEditor::_unpin_leading_stylebox));
+ pin_leader_button->connect("pressed", callable_mp(this, &ThemeTypeEditor::_on_unpin_leader_button_pressed));
item_control->add_child(item_editor);
- if (leading_stylebox.stylebox.is_valid()) {
+ if (edited_theme->has_stylebox(leading_stylebox.item_name, edited_type)) {
item_editor->set_edited_resource(leading_stylebox.stylebox);
} else {
item_editor->set_edited_resource(RES());
@@ -2569,10 +2670,8 @@ void ThemeTypeEditor::_update_type_items() {
item_editor->set_base_type("StyleBox");
if (E.get()) {
- Ref<StyleBox> stylebox_value;
if (edited_theme->has_stylebox(E.key(), edited_type)) {
- stylebox_value = edited_theme->get_stylebox(E.key(), edited_type);
- item_editor->set_edited_resource(stylebox_value);
+ item_editor->set_edited_resource(edited_theme->get_stylebox(E.key(), edited_type));
} else {
item_editor->set_edited_resource(RES());
}
@@ -2585,7 +2684,7 @@ void ThemeTypeEditor::_update_type_items() {
pin_leader_button->set_icon(get_theme_icon(SNAME("Pin"), SNAME("EditorIcons")));
pin_leader_button->set_tooltip(TTR("Pin this StyleBox as a main style. Editing its properties will update the same properties in all other StyleBoxes of this type."));
item_control->add_child(pin_leader_button);
- pin_leader_button->connect("pressed", callable_mp(this, &ThemeTypeEditor::_pin_leading_stylebox), varray(item_editor, E.key()));
+ pin_leader_button->connect("pressed", callable_mp(this, &ThemeTypeEditor::_on_pin_leader_button_pressed), varray(item_editor, E.key()));
} else {
if (Theme::get_default()->has_stylebox(E.key(), edited_type)) {
item_editor->set_edited_resource(Theme::get_default()->get_stylebox(E.key(), edited_type));
@@ -2636,16 +2735,17 @@ void ThemeTypeEditor::_add_default_type_items() {
default_type = edited_theme->get_type_variation_base(edited_type);
}
+ Ref<Theme> old_snapshot = edited_theme->duplicate();
+ Ref<Theme> new_snapshot = edited_theme->duplicate();
+
updating = true;
- // Prevent changes from immediately being reported while the operation is still ongoing.
- edited_theme->_freeze_change_propagation();
{
names.clear();
Theme::get_default()->get_icon_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_icon(E, edited_type)) {
- edited_theme->set_icon(E, edited_type, Ref<Texture2D>());
+ if (!new_snapshot->has_icon(E, edited_type)) {
+ new_snapshot->set_icon(E, edited_type, Theme::get_default()->get_icon(E, edited_type));
}
}
}
@@ -2653,8 +2753,8 @@ void ThemeTypeEditor::_add_default_type_items() {
names.clear();
Theme::get_default()->get_stylebox_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_stylebox(E, edited_type)) {
- edited_theme->set_stylebox(E, edited_type, Ref<StyleBox>());
+ if (!new_snapshot->has_stylebox(E, edited_type)) {
+ new_snapshot->set_stylebox(E, edited_type, Theme::get_default()->get_stylebox(E, edited_type));
}
}
}
@@ -2662,8 +2762,8 @@ void ThemeTypeEditor::_add_default_type_items() {
names.clear();
Theme::get_default()->get_font_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_font(E, edited_type)) {
- edited_theme->set_font(E, edited_type, Ref<Font>());
+ if (!new_snapshot->has_font(E, edited_type)) {
+ new_snapshot->set_font(E, edited_type, Theme::get_default()->get_font(E, edited_type));
}
}
}
@@ -2671,8 +2771,8 @@ void ThemeTypeEditor::_add_default_type_items() {
names.clear();
Theme::get_default()->get_font_size_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_font_size(E, edited_type)) {
- edited_theme->set_font_size(E, edited_type, Theme::get_default()->get_font_size(E, default_type));
+ if (!new_snapshot->has_font_size(E, edited_type)) {
+ new_snapshot->set_font_size(E, edited_type, Theme::get_default()->get_font_size(E, edited_type));
}
}
}
@@ -2680,8 +2780,8 @@ void ThemeTypeEditor::_add_default_type_items() {
names.clear();
Theme::get_default()->get_color_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_color(E, edited_type)) {
- edited_theme->set_color(E, edited_type, Theme::get_default()->get_color(E, default_type));
+ if (!new_snapshot->has_color(E, edited_type)) {
+ new_snapshot->set_color(E, edited_type, Theme::get_default()->get_color(E, edited_type));
}
}
}
@@ -2689,17 +2789,25 @@ void ThemeTypeEditor::_add_default_type_items() {
names.clear();
Theme::get_default()->get_constant_list(default_type, &names);
for (const StringName &E : names) {
- if (!edited_theme->has_constant(E, edited_type)) {
- edited_theme->set_constant(E, edited_type, Theme::get_default()->get_constant(E, default_type));
+ if (!new_snapshot->has_constant(E, edited_type)) {
+ new_snapshot->set_constant(E, edited_type, Theme::get_default()->get_constant(E, edited_type));
}
}
}
- // Allow changes to be reported now that the operation is finished.
- edited_theme->_unfreeze_and_propagate_changes();
updating = false;
- _update_type_items();
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Override All Default Theme Items"));
+
+ ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
+ ur->add_undo_method(*edited_theme, "clear");
+ ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
+
+ ur->add_do_method(this, "_update_type_items");
+ ur->add_undo_method(this, "_update_type_items");
+
+ ur->commit_action();
}
void ThemeTypeEditor::_item_add_cbk(int p_data_type, Control *p_control) {
@@ -2709,27 +2817,43 @@ void ThemeTypeEditor::_item_add_cbk(int p_data_type, Control *p_control) {
}
String item_name = le->get_text().strip_edges();
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Add Theme Item"));
+
switch (p_data_type) {
case Theme::DATA_TYPE_COLOR: {
- edited_theme->set_color(item_name, edited_type, Color());
+ ur->add_do_method(*edited_theme, "set_color", item_name, edited_type, Color());
+ ur->add_undo_method(*edited_theme, "clear_color", item_name, edited_type);
} break;
case Theme::DATA_TYPE_CONSTANT: {
- edited_theme->set_constant(item_name, edited_type, 0);
+ ur->add_do_method(*edited_theme, "set_constant", item_name, edited_type, 0);
+ ur->add_undo_method(*edited_theme, "clear_constant", item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT: {
- edited_theme->set_font(item_name, edited_type, Ref<Font>());
+ ur->add_do_method(*edited_theme, "set_font", item_name, edited_type, Ref<Font>());
+ ur->add_undo_method(*edited_theme, "clear_font", item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT_SIZE: {
- edited_theme->set_font_size(item_name, edited_type, -1);
+ ur->add_do_method(*edited_theme, "set_font_size", item_name, edited_type, -1);
+ ur->add_undo_method(*edited_theme, "clear_font_size", item_name, edited_type);
} break;
case Theme::DATA_TYPE_ICON: {
- edited_theme->set_icon(item_name, edited_type, Ref<Texture2D>());
+ ur->add_do_method(*edited_theme, "set_icon", item_name, edited_type, Ref<Texture2D>());
+ ur->add_undo_method(*edited_theme, "clear_icon", item_name, edited_type);
} break;
case Theme::DATA_TYPE_STYLEBOX: {
- edited_theme->set_stylebox(item_name, edited_type, Ref<StyleBox>());
+ Ref<StyleBox> sb;
+ ur->add_do_method(*edited_theme, "set_stylebox", item_name, edited_type, sb);
+ ur->add_undo_method(*edited_theme, "clear_stylebox", item_name, edited_type);
+
+ if (is_stylebox_pinned(sb)) {
+ ur->add_undo_method(this, "_unpin_leading_stylebox");
+ }
} break;
}
+ ur->commit_action();
+
le->set_text("");
}
@@ -2738,53 +2862,94 @@ void ThemeTypeEditor::_item_add_lineedit_cbk(String p_value, int p_data_type, Co
}
void ThemeTypeEditor::_item_override_cbk(int p_data_type, String p_item_name) {
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Override Theme Item"));
+
switch (p_data_type) {
case Theme::DATA_TYPE_COLOR: {
- edited_theme->set_color(p_item_name, edited_type, Theme::get_default()->get_color(p_item_name, edited_type));
+ ur->add_do_method(*edited_theme, "set_color", p_item_name, edited_type, Theme::get_default()->get_color(p_item_name, edited_type));
+ ur->add_undo_method(*edited_theme, "clear_color", p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_CONSTANT: {
- edited_theme->set_constant(p_item_name, edited_type, Theme::get_default()->get_constant(p_item_name, edited_type));
+ ur->add_do_method(*edited_theme, "set_constant", p_item_name, edited_type, Theme::get_default()->get_constant(p_item_name, edited_type));
+ ur->add_undo_method(*edited_theme, "clear_constant", p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT: {
- edited_theme->set_font(p_item_name, edited_type, Ref<Font>());
+ ur->add_do_method(*edited_theme, "set_font", p_item_name, edited_type, Ref<Font>());
+ ur->add_undo_method(*edited_theme, "clear_font", p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT_SIZE: {
- edited_theme->set_font_size(p_item_name, edited_type, Theme::get_default()->get_font_size(p_item_name, edited_type));
+ ur->add_do_method(*edited_theme, "set_font_size", p_item_name, edited_type, Theme::get_default()->get_font_size(p_item_name, edited_type));
+ ur->add_undo_method(*edited_theme, "clear_font_size", p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_ICON: {
- edited_theme->set_icon(p_item_name, edited_type, Ref<Texture2D>());
+ ur->add_do_method(*edited_theme, "set_icon", p_item_name, edited_type, Ref<Texture2D>());
+ ur->add_undo_method(*edited_theme, "clear_icon", p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_STYLEBOX: {
- edited_theme->set_stylebox(p_item_name, edited_type, Ref<StyleBox>());
+ Ref<StyleBox> sb;
+ ur->add_do_method(*edited_theme, "set_stylebox", p_item_name, edited_type, sb);
+ ur->add_undo_method(*edited_theme, "clear_stylebox", p_item_name, edited_type);
+
+ if (is_stylebox_pinned(sb)) {
+ ur->add_undo_method(this, "_unpin_leading_stylebox");
+ }
} break;
}
+
+ ur->commit_action();
}
void ThemeTypeEditor::_item_remove_cbk(int p_data_type, String p_item_name) {
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Remove Theme Item"));
+
switch (p_data_type) {
case Theme::DATA_TYPE_COLOR: {
- edited_theme->clear_color(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_color", p_item_name, edited_type);
+ ur->add_undo_method(*edited_theme, "set_color", p_item_name, edited_type, edited_theme->get_color(p_item_name, edited_type));
} break;
case Theme::DATA_TYPE_CONSTANT: {
- edited_theme->clear_constant(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_constant", p_item_name, edited_type);
+ ur->add_undo_method(*edited_theme, "set_constant", p_item_name, edited_type, edited_theme->get_constant(p_item_name, edited_type));
} break;
case Theme::DATA_TYPE_FONT: {
- edited_theme->clear_font(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_font", p_item_name, edited_type);
+ if (edited_theme->has_font(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_font", p_item_name, edited_type, edited_theme->get_font(p_item_name, edited_type));
+ } else {
+ ur->add_undo_method(*edited_theme, "set_font", p_item_name, edited_type, Ref<Font>());
+ }
} break;
case Theme::DATA_TYPE_FONT_SIZE: {
- edited_theme->clear_font_size(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_font_size", p_item_name, edited_type);
+ ur->add_undo_method(*edited_theme, "set_font_size", p_item_name, edited_type, edited_theme->get_font_size(p_item_name, edited_type));
} break;
case Theme::DATA_TYPE_ICON: {
- edited_theme->clear_icon(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_icon", p_item_name, edited_type);
+ if (edited_theme->has_icon(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_icon", p_item_name, edited_type, edited_theme->get_icon(p_item_name, edited_type));
+ } else {
+ ur->add_undo_method(*edited_theme, "set_icon", p_item_name, edited_type, Ref<Texture2D>());
+ }
} break;
case Theme::DATA_TYPE_STYLEBOX: {
- edited_theme->clear_stylebox(p_item_name, edited_type);
+ Ref<StyleBox> sb = edited_theme->get_stylebox(p_item_name, edited_type);
+ ur->add_do_method(*edited_theme, "clear_stylebox", p_item_name, edited_type);
+ if (edited_theme->has_stylebox(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_stylebox", p_item_name, edited_type, sb);
+ } else {
+ ur->add_undo_method(*edited_theme, "set_stylebox", p_item_name, edited_type, Ref<StyleBox>());
+ }
- if (leading_stylebox.pinned && leading_stylebox.item_name == p_item_name) {
- _unpin_leading_stylebox();
+ if (is_stylebox_pinned(sb)) {
+ ur->add_do_method(this, "_unpin_leading_stylebox");
+ ur->add_undo_method(this, "_pin_leading_stylebox", p_item_name, sb);
}
} break;
}
+
+ ur->commit_action();
}
void ThemeTypeEditor::_item_rename_cbk(int p_data_type, String p_item_name, Control *p_control) {
@@ -2814,30 +2979,41 @@ void ThemeTypeEditor::_item_rename_confirmed(int p_data_type, String p_item_name
return;
}
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Rename Theme Item"));
+
switch (p_data_type) {
case Theme::DATA_TYPE_COLOR: {
- edited_theme->rename_color(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_color", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_color", new_name, p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_CONSTANT: {
- edited_theme->rename_constant(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_constant", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_constant", new_name, p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT: {
- edited_theme->rename_font(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_font", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_font", new_name, p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_FONT_SIZE: {
- edited_theme->rename_font_size(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_font_size", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_font_size", new_name, p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_ICON: {
- edited_theme->rename_icon(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_icon", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_icon", new_name, p_item_name, edited_type);
} break;
case Theme::DATA_TYPE_STYLEBOX: {
- edited_theme->rename_stylebox(p_item_name, new_name, edited_type);
+ ur->add_do_method(*edited_theme, "rename_stylebox", p_item_name, new_name, edited_type);
+ ur->add_undo_method(*edited_theme, "rename_stylebox", new_name, p_item_name, edited_type);
if (leading_stylebox.pinned && leading_stylebox.item_name == p_item_name) {
leading_stylebox.item_name = new_name;
}
} break;
}
+
+ ur->commit_action();
}
void ThemeTypeEditor::_item_rename_entered(String p_value, int p_data_type, String p_item_name, Control *p_control) {
@@ -2859,15 +3035,27 @@ void ThemeTypeEditor::_item_rename_canceled(int p_data_type, String p_item_name,
}
void ThemeTypeEditor::_color_item_changed(Color p_value, String p_item_name) {
- edited_theme->set_color(p_item_name, edited_type, p_value);
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Color Item in Theme"), UndoRedo::MERGE_ENDS);
+ ur->add_do_method(*edited_theme, "set_color", p_item_name, edited_type, p_value);
+ ur->add_undo_method(*edited_theme, "set_color", p_item_name, edited_type, edited_theme->get_color(p_item_name, edited_type));
+ ur->commit_action();
}
void ThemeTypeEditor::_constant_item_changed(float p_value, String p_item_name) {
- edited_theme->set_constant(p_item_name, edited_type, int(p_value));
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Constant Item in Theme"));
+ ur->add_do_method(*edited_theme, "set_constant", p_item_name, edited_type, p_value);
+ ur->add_undo_method(*edited_theme, "set_constant", p_item_name, edited_type, edited_theme->get_constant(p_item_name, edited_type));
+ ur->commit_action();
}
void ThemeTypeEditor::_font_size_item_changed(float p_value, String p_item_name) {
- edited_theme->set_font_size(p_item_name, edited_type, int(p_value));
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Size Item in Theme"));
+ ur->add_do_method(*edited_theme, "set_font_size", p_item_name, edited_type, p_value);
+ ur->add_undo_method(*edited_theme, "set_font_size", p_item_name, edited_type, edited_theme->get_font_size(p_item_name, edited_type));
+ ur->commit_action();
}
void ThemeTypeEditor::_edit_resource_item(RES p_resource, bool p_edit) {
@@ -2875,53 +3063,123 @@ void ThemeTypeEditor::_edit_resource_item(RES p_resource, bool p_edit) {
}
void ThemeTypeEditor::_font_item_changed(Ref<Font> p_value, String p_item_name) {
- edited_theme->set_font(p_item_name, edited_type, p_value);
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Font Item in Theme"));
+
+ ur->add_do_method(*edited_theme, "set_font", p_item_name, edited_type, p_value.is_valid() ? p_value : Ref<Font>());
+ if (edited_theme->has_font(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_font", p_item_name, edited_type, edited_theme->get_font(p_item_name, edited_type));
+ } else {
+ ur->add_undo_method(*edited_theme, "set_font", p_item_name, edited_type, Ref<Font>());
+ }
+
+ ur->add_do_method(this, "call_deferred", "_update_type_items");
+ ur->add_undo_method(this, "call_deferred", "_update_type_items");
+
+ ur->commit_action();
}
void ThemeTypeEditor::_icon_item_changed(Ref<Texture2D> p_value, String p_item_name) {
- edited_theme->set_icon(p_item_name, edited_type, p_value);
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Icon Item in Theme"));
+
+ ur->add_do_method(*edited_theme, "set_icon", p_item_name, edited_type, p_value.is_valid() ? p_value : Ref<Texture2D>());
+ if (edited_theme->has_icon(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_icon", p_item_name, edited_type, edited_theme->get_icon(p_item_name, edited_type));
+ } else {
+ ur->add_undo_method(*edited_theme, "set_icon", p_item_name, edited_type, Ref<Texture2D>());
+ }
+
+ ur->add_do_method(this, "call_deferred", "_update_type_items");
+ ur->add_undo_method(this, "call_deferred", "_update_type_items");
+
+ ur->commit_action();
}
void ThemeTypeEditor::_stylebox_item_changed(Ref<StyleBox> p_value, String p_item_name) {
- edited_theme->set_stylebox(p_item_name, edited_type, p_value);
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Stylebox Item in Theme"));
+
+ ur->add_do_method(*edited_theme, "set_stylebox", p_item_name, edited_type, p_value.is_valid() ? p_value : Ref<StyleBox>());
+ if (edited_theme->has_stylebox(p_item_name, edited_type)) {
+ ur->add_undo_method(*edited_theme, "set_stylebox", p_item_name, edited_type, edited_theme->get_stylebox(p_item_name, edited_type));
+ } else {
+ ur->add_undo_method(*edited_theme, "set_stylebox", p_item_name, edited_type, Ref<StyleBox>());
+ }
+
+ ur->add_do_method(this, "_change_pinned_stylebox");
+ ur->add_undo_method(this, "_change_pinned_stylebox");
+
+ ur->add_do_method(this, "call_deferred", "_update_type_items");
+ ur->add_undo_method(this, "call_deferred", "_update_type_items");
+
+ ur->commit_action();
+}
- if (leading_stylebox.pinned && leading_stylebox.item_name == p_item_name) {
+void ThemeTypeEditor::_change_pinned_stylebox() {
+ if (leading_stylebox.pinned) {
if (leading_stylebox.stylebox.is_valid()) {
leading_stylebox.stylebox->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
}
- leading_stylebox.stylebox = p_value;
- leading_stylebox.ref_stylebox = (p_value.is_valid() ? p_value->duplicate() : RES());
- if (p_value.is_valid()) {
- leading_stylebox.stylebox->connect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
- }
- }
-}
+ Ref<StyleBox> new_stylebox = edited_theme->get_stylebox(leading_stylebox.item_name, edited_type);
+ leading_stylebox.stylebox = new_stylebox;
+ leading_stylebox.ref_stylebox = (new_stylebox.is_valid() ? new_stylebox->duplicate() : RES());
-void ThemeTypeEditor::_pin_leading_stylebox(Control *p_editor, String p_item_name) {
- if (leading_stylebox.stylebox.is_valid()) {
+ if (leading_stylebox.stylebox.is_valid()) {
+ new_stylebox->connect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
+ }
+ } else if (leading_stylebox.stylebox.is_valid()) {
leading_stylebox.stylebox->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
}
+}
+void ThemeTypeEditor::_on_pin_leader_button_pressed(Control *p_editor, String p_item_name) {
Ref<StyleBox> stylebox;
if (Object::cast_to<EditorResourcePicker>(p_editor)) {
stylebox = Object::cast_to<EditorResourcePicker>(p_editor)->get_edited_resource();
}
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Pin Stylebox"));
+ ur->add_do_method(this, "_pin_leading_stylebox", p_item_name, stylebox);
+
+ if (leading_stylebox.pinned) {
+ ur->add_undo_method(this, "_pin_leading_stylebox", leading_stylebox.item_name, leading_stylebox.stylebox);
+ } else {
+ ur->add_undo_method(this, "_unpin_leading_stylebox");
+ }
+
+ ur->commit_action();
+}
+
+void ThemeTypeEditor::_pin_leading_stylebox(String p_item_name, Ref<StyleBox> p_stylebox) {
+ if (leading_stylebox.stylebox.is_valid()) {
+ leading_stylebox.stylebox->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
+ }
+
LeadingStylebox leader;
leader.pinned = true;
leader.item_name = p_item_name;
- leader.stylebox = stylebox;
- leader.ref_stylebox = (stylebox.is_valid() ? stylebox->duplicate() : RES());
+ leader.stylebox = p_stylebox;
+ leader.ref_stylebox = (p_stylebox.is_valid() ? p_stylebox->duplicate() : RES());
leading_stylebox = leader;
- if (leading_stylebox.stylebox.is_valid()) {
- leading_stylebox.stylebox->connect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
+ if (p_stylebox.is_valid()) {
+ p_stylebox->connect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
}
_update_type_items();
}
+void ThemeTypeEditor::_on_unpin_leader_button_pressed() {
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Unpin Stylebox"));
+ ur->add_do_method(this, "_unpin_leading_stylebox");
+ ur->add_undo_method(this, "_pin_leading_stylebox", leading_stylebox.item_name, leading_stylebox.stylebox);
+ ur->commit_action();
+}
+
void ThemeTypeEditor::_unpin_leading_stylebox() {
if (leading_stylebox.stylebox.is_valid()) {
leading_stylebox.stylebox->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
@@ -2982,11 +3240,22 @@ void ThemeTypeEditor::_update_stylebox_from_leading() {
}
void ThemeTypeEditor::_type_variation_changed(const String p_value) {
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Set Theme Type Variation"));
+
if (p_value.is_empty()) {
- edited_theme->clear_type_variation(edited_type);
+ ur->add_do_method(*edited_theme, "clear_type_variation", edited_type);
} else {
- edited_theme->set_type_variation(edited_type, StringName(p_value));
+ ur->add_do_method(*edited_theme, "set_type_variation", edited_type, StringName(p_value));
}
+
+ if (edited_theme->get_type_variation_base(edited_type) == "") {
+ ur->add_undo_method(*edited_theme, "clear_type_variation", edited_type);
+ } else {
+ ur->add_undo_method(*edited_theme, "set_type_variation", edited_type, edited_theme->get_type_variation_base(edited_type));
+ }
+
+ ur->commit_action();
}
void ThemeTypeEditor::_add_type_variation_cbk() {
@@ -3002,7 +3271,6 @@ void ThemeTypeEditor::_add_type_dialog_selected(const String p_type_name) {
select_type(p_type_name);
} else if (add_type_mode == ADD_VARIATION_BASE) {
_type_variation_changed(p_type_name);
- _update_type_items();
}
}
@@ -3028,6 +3296,13 @@ void ThemeTypeEditor::_notification(int p_what) {
}
}
+void ThemeTypeEditor::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("_update_type_items"), &ThemeTypeEditor::_update_type_items);
+ ClassDB::bind_method(D_METHOD("_pin_leading_stylebox"), &ThemeTypeEditor::_pin_leading_stylebox);
+ ClassDB::bind_method(D_METHOD("_unpin_leading_stylebox"), &ThemeTypeEditor::_unpin_leading_stylebox);
+ ClassDB::bind_method(D_METHOD("_change_pinned_stylebox"), &ThemeTypeEditor::_change_pinned_stylebox);
+}
+
void ThemeTypeEditor::set_edited_theme(const Ref<Theme> &p_theme) {
if (edited_theme.is_valid()) {
edited_theme->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_type_list_debounced));
@@ -3067,6 +3342,10 @@ void ThemeTypeEditor::select_type(String p_type_name) {
}
}
+bool ThemeTypeEditor::is_stylebox_pinned(Ref<StyleBox> p_stylebox) {
+ return leading_stylebox.pinned && leading_stylebox.stylebox == p_stylebox;
+}
+
ThemeTypeEditor::ThemeTypeEditor() {
VBoxContainer *main_vb = memnew(VBoxContainer);
add_child(main_vb);
@@ -3331,7 +3610,9 @@ ThemeEditor::ThemeEditor() {
theme_edit_button->connect("pressed", callable_mp(this, &ThemeEditor::_theme_edit_button_cbk));
top_menu->add_child(theme_edit_button);
- theme_edit_dialog = memnew(ThemeItemEditorDialog);
+ theme_type_editor = memnew(ThemeTypeEditor);
+
+ theme_edit_dialog = memnew(ThemeItemEditorDialog(theme_type_editor));
theme_edit_dialog->hide();
top_menu->add_child(theme_edit_dialog);
@@ -3381,7 +3662,6 @@ ThemeEditor::ThemeEditor() {
main_hs->add_child(preview_scene_dialog);
preview_scene_dialog->connect("file_selected", callable_mp(this, &ThemeEditor::_preview_scene_dialog_cbk));
- theme_type_editor = memnew(ThemeTypeEditor);
main_hs->add_child(theme_type_editor);
theme_type_editor->set_custom_minimum_size(Size2(280, 0) * EDSCALE);
}
diff --git a/editor/plugins/theme_editor_plugin.h b/editor/plugins/theme_editor_plugin.h
index bd1bf216e1..4c6b16a68c 100644
--- a/editor/plugins/theme_editor_plugin.h
+++ b/editor/plugins/theme_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -177,9 +177,13 @@ public:
ThemeItemImportTree();
};
+class ThemeTypeEditor;
+
class ThemeItemEditorDialog : public AcceptDialog {
GDCLASS(ThemeItemEditorDialog, AcceptDialog);
+ ThemeTypeEditor *theme_type_editor;
+
Ref<Theme> edited_theme;
TabContainer *tc;
@@ -258,11 +262,12 @@ class ThemeItemEditorDialog : public AcceptDialog {
protected:
void _notification(int p_what);
+ static void _bind_methods();
public:
void set_edited_theme(const Ref<Theme> &p_theme);
- ThemeItemEditorDialog();
+ ThemeItemEditorDialog(ThemeTypeEditor *p_theme_editor);
};
class ThemeTypeDialog : public ConfirmationDialog {
@@ -373,7 +378,10 @@ class ThemeTypeEditor : public MarginContainer {
void _font_item_changed(Ref<Font> p_value, String p_item_name);
void _icon_item_changed(Ref<Texture2D> p_value, String p_item_name);
void _stylebox_item_changed(Ref<StyleBox> p_value, String p_item_name);
- void _pin_leading_stylebox(Control *p_editor, String p_item_name);
+ void _change_pinned_stylebox();
+ void _on_pin_leader_button_pressed(Control *p_editor, String p_item_name);
+ void _pin_leading_stylebox(String p_item_name, Ref<StyleBox> p_stylebox);
+ void _on_unpin_leader_button_pressed();
void _unpin_leading_stylebox();
void _update_stylebox_from_leading();
@@ -384,10 +392,12 @@ class ThemeTypeEditor : public MarginContainer {
protected:
void _notification(int p_what);
+ static void _bind_methods();
public:
void set_edited_theme(const Ref<Theme> &p_theme);
void select_type(String p_type_name);
+ bool is_stylebox_pinned(Ref<StyleBox> p_stylebox);
ThemeTypeEditor();
};
diff --git a/editor/plugins/theme_editor_preview.cpp b/editor/plugins/theme_editor_preview.cpp
index 9a5ecd3802..c4ef6e086d 100644
--- a/editor/plugins/theme_editor_preview.cpp
+++ b/editor/plugins/theme_editor_preview.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,6 +36,8 @@
#include "editor/editor_scale.h"
+constexpr double REFRESH_TIMER = 1.5;
+
void ThemeEditorPreview::set_preview_theme(const Ref<Theme> &p_theme) {
preview_content->set_theme(p_theme);
}
@@ -66,7 +68,7 @@ void ThemeEditorPreview::_refresh_interval() {
}
void ThemeEditorPreview::_preview_visibility_changed() {
- set_process(is_visible());
+ set_process(is_visible_in_tree());
}
void ThemeEditorPreview::_picker_button_cbk() {
@@ -200,7 +202,7 @@ void ThemeEditorPreview::_notification(int p_what) {
case NOTIFICATION_PROCESS: {
time_left -= get_process_delta_time();
if (time_left < 0) {
- time_left = 1.5;
+ time_left = REFRESH_TIMER;
_refresh_interval();
}
} break;
diff --git a/editor/plugins/theme_editor_preview.h b/editor/plugins/theme_editor_preview.h
index 73422b4fba..a509ae3c50 100644
--- a/editor/plugins/theme_editor_preview.h
+++ b/editor/plugins/theme_editor_preview.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/atlas_merging_dialog.cpp b/editor/plugins/tiles/atlas_merging_dialog.cpp
index e4a16274fe..fc4764f61e 100644
--- a/editor/plugins/tiles/atlas_merging_dialog.cpp
+++ b/editor/plugins/tiles/atlas_merging_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -301,7 +301,7 @@ AtlasMergingDialog::AtlasMergingDialog() {
preview = memnew(TextureRect);
preview->set_h_size_flags(Control::SIZE_EXPAND_FILL);
preview->set_v_size_flags(Control::SIZE_EXPAND_FILL);
- preview->set_expand(true);
+ preview->set_ignore_texture_size(true);
preview->hide();
preview->set_stretch_mode(TextureRect::STRETCH_KEEP_ASPECT_CENTERED);
atlas_merging_right_panel->add_child(preview);
diff --git a/editor/plugins/tiles/atlas_merging_dialog.h b/editor/plugins/tiles/atlas_merging_dialog.h
index 7cb54bc17e..2ae94cf44a 100644
--- a/editor/plugins/tiles/atlas_merging_dialog.h
+++ b/editor/plugins/tiles/atlas_merging_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_atlas_view.cpp b/editor/plugins/tiles/tile_atlas_view.cpp
index 6a3261cbee..c85956991a 100644
--- a/editor/plugins/tiles/tile_atlas_view.cpp
+++ b/editor/plugins/tiles/tile_atlas_view.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_atlas_view.h b/editor/plugins/tiles/tile_atlas_view.h
index e1ca3eebee..ca7f083132 100644
--- a/editor/plugins/tiles/tile_atlas_view.h
+++ b/editor/plugins/tiles/tile_atlas_view.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_data_editors.cpp b/editor/plugins/tiles/tile_data_editors.cpp
index 5ded607ab5..73fd62d2c4 100644
--- a/editor/plugins/tiles/tile_data_editors.cpp
+++ b/editor/plugins/tiles/tile_data_editors.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_data_editors.h b/editor/plugins/tiles/tile_data_editors.h
index 3fc5e738bb..b45eb9530b 100644
--- a/editor/plugins/tiles/tile_data_editors.h
+++ b/editor/plugins/tiles/tile_data_editors.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_map_editor.cpp b/editor/plugins/tiles/tile_map_editor.cpp
index b4d6f3659d..aa92920722 100644
--- a/editor/plugins/tiles/tile_map_editor.cpp
+++ b/editor/plugins/tiles/tile_map_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_map_editor.h b/editor/plugins/tiles/tile_map_editor.h
index f462119727..b1bee03211 100644
--- a/editor/plugins/tiles/tile_map_editor.h
+++ b/editor/plugins/tiles/tile_map_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_proxies_manager_dialog.cpp b/editor/plugins/tiles/tile_proxies_manager_dialog.cpp
index 60a66ab954..ad44da8dc9 100644
--- a/editor/plugins/tiles/tile_proxies_manager_dialog.cpp
+++ b/editor/plugins/tiles/tile_proxies_manager_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_proxies_manager_dialog.h b/editor/plugins/tiles/tile_proxies_manager_dialog.h
index 6849be2cd6..b235d44982 100644
--- a/editor/plugins/tiles/tile_proxies_manager_dialog.h
+++ b/editor/plugins/tiles/tile_proxies_manager_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp
index 660eb94cf5..c4cc9745ee 100644
--- a/editor/plugins/tiles/tile_set_atlas_source_editor.cpp
+++ b/editor/plugins/tiles/tile_set_atlas_source_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_set_atlas_source_editor.h b/editor/plugins/tiles/tile_set_atlas_source_editor.h
index bd1fd2e7d0..51771c59ba 100644
--- a/editor/plugins/tiles/tile_set_atlas_source_editor.h
+++ b/editor/plugins/tiles/tile_set_atlas_source_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_set_editor.cpp b/editor/plugins/tiles/tile_set_editor.cpp
index b7495dbea9..ef8d423724 100644
--- a/editor/plugins/tiles/tile_set_editor.cpp
+++ b/editor/plugins/tiles/tile_set_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_set_editor.h b/editor/plugins/tiles/tile_set_editor.h
index 58312ce3df..98ebbae02f 100644
--- a/editor/plugins/tiles/tile_set_editor.h
+++ b/editor/plugins/tiles/tile_set_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp
index 035fe57d95..240c017b84 100644
--- a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp
+++ b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h
index 4e33128be5..5b48ea4762 100644
--- a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h
+++ b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/tiles/tiles_editor_plugin.cpp b/editor/plugins/tiles/tiles_editor_plugin.cpp
index 47dfc57b0f..f99fcb3675 100644
--- a/editor/plugins/tiles/tiles_editor_plugin.cpp
+++ b/editor/plugins/tiles/tiles_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -157,6 +157,17 @@ void TilesEditorPlugin::_update_editors() {
// Update the viewport.
CanvasItemEditor::get_singleton()->update_viewport();
+
+ // Update visibility of bottom panel buttons.
+ if (tileset_editor_button->is_pressed() && !tile_set.is_valid()) {
+ if (tile_map) {
+ editor_node->make_bottom_panel_item_visible(tilemap_editor);
+ } else {
+ editor_node->hide_bottom_panel();
+ }
+ }
+ tileset_editor_button->set_visible(tile_set.is_valid());
+ tilemap_editor_button->set_visible(tile_map);
}
void TilesEditorPlugin::_notification(int p_what) {
diff --git a/editor/plugins/tiles/tiles_editor_plugin.h b/editor/plugins/tiles/tiles_editor_plugin.h
index 33493040f6..59eb79480e 100644
--- a/editor/plugins/tiles/tiles_editor_plugin.h
+++ b/editor/plugins/tiles/tiles_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/version_control_editor_plugin.cpp b/editor/plugins/version_control_editor_plugin.cpp
index eea0d2789d..b1d5b348c4 100644
--- a/editor/plugins/version_control_editor_plugin.cpp
+++ b/editor/plugins/version_control_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/version_control_editor_plugin.h b/editor/plugins/version_control_editor_plugin.h
index 2782c1d9dc..86f98ad3aa 100644
--- a/editor/plugins/version_control_editor_plugin.h
+++ b/editor/plugins/version_control_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp
index 365cfd9232..03797b1797 100644
--- a/editor/plugins/visual_shader_editor_plugin.cpp
+++ b/editor/plugins/visual_shader_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -183,9 +183,15 @@ void VisualShaderGraphPlugin::set_input_port_default_value(VisualShader::Type p_
switch (p_value.get_type()) {
case Variant::COLOR: {
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ break;
+ }
button->set_custom_minimum_size(Size2(30, 0) * EDSCALE);
- if (!button->is_connected("draw", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_draw_color_over_button))) {
- button->connect("draw", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_draw_color_over_button), varray(button, p_value));
+
+ Callable ce = callable_mp(editor, &VisualShaderEditor::_draw_color_over_button);
+ if (!button->is_connected("draw", ce)) {
+ button->connect("draw", ce, varray(button, p_value));
}
} break;
case Variant::BOOL: {
@@ -320,13 +326,29 @@ void VisualShaderGraphPlugin::register_uniform_name(int p_node_id, LineEdit *p_u
}
void VisualShaderGraphPlugin::update_theme() {
- vector_expanded_color[0] = VisualShaderEditor::get_singleton()->get_theme_color(SNAME("axis_x_color"), SNAME("Editor")); // red
- vector_expanded_color[1] = VisualShaderEditor::get_singleton()->get_theme_color(SNAME("axis_y_color"), SNAME("Editor")); // green
- vector_expanded_color[2] = VisualShaderEditor::get_singleton()->get_theme_color(SNAME("axis_z_color"), SNAME("Editor")); // blue
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ return;
+ }
+ vector_expanded_color[0] = editor->get_theme_color(SNAME("axis_x_color"), SNAME("Editor")); // red
+ vector_expanded_color[1] = editor->get_theme_color(SNAME("axis_y_color"), SNAME("Editor")); // green
+ vector_expanded_color[2] = editor->get_theme_color(SNAME("axis_z_color"), SNAME("Editor")); // blue
}
void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
- if (p_type != visual_shader->get_shader_type()) {
+ if (!visual_shader.is_valid() || p_type != visual_shader->get_shader_type()) {
+ return;
+ }
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ return;
+ }
+ GraphEdit *graph = editor->graph;
+ if (!graph) {
+ return;
+ }
+ VisualShaderGraphPlugin *graph_plugin = editor->get_graph_plugin();
+ if (!graph_plugin) {
return;
}
@@ -370,13 +392,15 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
}
GraphNode *node = memnew(GraphNode);
+ graph->add_child(node);
+ editor->_update_created_node(node);
register_link(p_type, p_id, vsnode.ptr(), node);
if (is_resizable) {
size = resizable_node->get_size();
node->set_resizable(true);
- node->connect("resize_request", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_node_resized), varray((int)p_type, p_id));
+ node->connect("resize_request", callable_mp(editor, &VisualShaderEditor::_node_resized), varray((int)p_type, p_id));
}
if (is_expression) {
expression = expression_node->get_expression();
@@ -388,10 +412,10 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
if (p_id >= 2) {
node->set_show_close_button(true);
- node->connect("close_request", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_delete_node_request), varray(p_type, p_id), CONNECT_DEFERRED);
+ node->connect("close_request", callable_mp(editor, &VisualShaderEditor::_delete_node_request), varray(p_type, p_id), CONNECT_DEFERRED);
}
- node->connect("dragged", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_node_dragged), varray(p_id));
+ node->connect("dragged", callable_mp(editor, &VisualShaderEditor::_node_dragged), varray(p_id));
Control *custom_editor = nullptr;
int port_offset = 1;
@@ -416,6 +440,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
comment_label->set_v_size_flags(Control::SIZE_EXPAND_FILL);
comment_label->set_text(comment_node->get_description());
}
+ editor->call_deferred(SNAME("_set_node_size"), (int)p_type, p_id, size);
}
Ref<VisualShaderNodeParticleEmit> emit = vsnode;
@@ -424,32 +449,30 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
}
Ref<VisualShaderNodeUniform> uniform = vsnode;
- if (uniform.is_valid()) {
- VisualShaderEditor::get_singleton()->graph->add_child(node);
- VisualShaderEditor::get_singleton()->_update_created_node(node);
+ HBoxContainer *hb = nullptr;
+ if (uniform.is_valid()) {
LineEdit *uniform_name = memnew(LineEdit);
register_uniform_name(p_id, uniform_name);
+ uniform_name->set_h_size_flags(Control::SIZE_EXPAND_FILL);
uniform_name->set_text(uniform->get_uniform_name());
- node->add_child(uniform_name);
- uniform_name->connect("text_submitted", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_uniform_line_edit_changed), varray(p_id));
- uniform_name->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_uniform_line_edit_focus_out), varray(uniform_name, p_id));
-
- if (vsnode->get_input_port_count() == 0 && vsnode->get_output_port_count() == 1 && vsnode->get_output_port_name(0) == "") {
- //shortcut
- VisualShaderNode::PortType port_right = vsnode->get_output_port_type(0);
- node->set_slot(1, false, VisualShaderNode::PORT_TYPE_SCALAR, Color(), true, port_right, type_color[port_right]);
- if (!vsnode->is_use_prop_slots()) {
- return;
- }
+ uniform_name->connect("text_submitted", callable_mp(editor, &VisualShaderEditor::_uniform_line_edit_changed), varray(p_id));
+ uniform_name->connect("focus_exited", callable_mp(editor, &VisualShaderEditor::_uniform_line_edit_focus_out), varray(uniform_name, p_id));
+
+ if (vsnode->get_output_port_count() == 1 && vsnode->get_output_port_name(0) == "") {
+ hb = memnew(HBoxContainer);
+ hb->add_child(uniform_name);
+ node->add_child(hb);
+ } else {
+ node->add_child(uniform_name);
}
port_offset++;
}
- for (int i = 0; i < VisualShaderEditor::get_singleton()->plugins.size(); i++) {
+ for (int i = 0; i < editor->plugins.size(); i++) {
vsnode->set_meta("id", p_id);
vsnode->set_meta("shader_type", (int)p_type);
- custom_editor = VisualShaderEditor::get_singleton()->plugins.write[i]->create_editor(visual_shader, vsnode);
+ custom_editor = editor->plugins.write[i]->create_editor(visual_shader, vsnode);
vsnode->remove_meta("id");
vsnode->remove_meta("shader_type");
if (custom_editor) {
@@ -461,146 +484,76 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
}
Ref<VisualShaderNodeCurveTexture> curve = vsnode;
- if (curve.is_valid()) {
- if (curve->get_texture().is_valid() && !curve->get_texture()->is_connected("changed", callable_mp(VisualShaderEditor::get_singleton()->get_graph_plugin(), &VisualShaderGraphPlugin::update_curve))) {
- curve->get_texture()->connect("changed", callable_mp(VisualShaderEditor::get_singleton()->get_graph_plugin(), &VisualShaderGraphPlugin::update_curve), varray(p_id));
- }
-
- HBoxContainer *hbox = memnew(HBoxContainer);
- custom_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- hbox->add_child(custom_editor);
- custom_editor = hbox;
- }
-
Ref<VisualShaderNodeCurveXYZTexture> curve_xyz = vsnode;
- if (curve_xyz.is_valid()) {
- if (curve_xyz->get_texture().is_valid() && !curve_xyz->get_texture()->is_connected("changed", callable_mp(VisualShaderEditor::get_singleton()->get_graph_plugin(), &VisualShaderGraphPlugin::update_curve_xyz))) {
- curve_xyz->get_texture()->connect("changed", callable_mp(VisualShaderEditor::get_singleton()->get_graph_plugin(), &VisualShaderGraphPlugin::update_curve_xyz), varray(p_id));
- }
- HBoxContainer *hbox = memnew(HBoxContainer);
- custom_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- hbox->add_child(custom_editor);
- custom_editor = hbox;
+ bool is_curve = curve.is_valid() || curve_xyz.is_valid();
+ if (is_curve) {
+ hb = memnew(HBoxContainer);
+ node->add_child(hb);
}
- if (custom_editor && !vsnode->is_use_prop_slots() && vsnode->get_output_port_count() > 0 && vsnode->get_output_port_name(0) == "" && (vsnode->get_input_port_count() == 0 || vsnode->get_input_port_name(0) == "")) {
- //will be embedded in first port
- } else if (custom_editor) {
- port_offset++;
- node->add_child(custom_editor);
-
- bool is_curve = curve.is_valid() || curve_xyz.is_valid();
-
- if (is_curve) {
- // a default value handling
- {
- Variant default_value;
- bool port_left_used = false;
-
- for (const VisualShader::Connection &E : connections) {
- if (E.to_node == p_id && E.to_port == 0) {
- port_left_used = true;
- break;
- }
- }
-
- if (!port_left_used) {
- default_value = vsnode->get_input_port_default_value(0);
- }
-
- Button *button = memnew(Button);
- custom_editor->add_child(button);
- register_default_input_button(p_id, 0, button);
- custom_editor->move_child(button, 0);
-
- button->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_edit_port_default_input), varray(button, p_id, 0));
- if (default_value.get_type() != Variant::NIL) {
- set_input_port_default_value(p_type, p_id, 0, default_value);
- } else {
- button->hide();
- }
- }
-
- VisualShaderEditor::get_singleton()->graph->add_child(node);
- VisualShaderEditor::get_singleton()->_update_created_node(node);
-
- TextureButton *preview = memnew(TextureButton);
- preview->set_toggle_mode(true);
- preview->set_normal_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiVisibilityHidden"), SNAME("EditorIcons")));
- preview->set_pressed_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons")));
- preview->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
-
- register_output_port(p_id, 0, preview);
-
- preview->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_preview_select_port), varray(p_id, 0), CONNECT_DEFERRED);
- custom_editor->add_child(preview);
+ if (curve.is_valid()) {
+ custom_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (vsnode->get_output_port_for_preview() >= 0) {
- show_port_preview(p_type, p_id, vsnode->get_output_port_for_preview());
- }
+ Callable ce = callable_mp(graph_plugin, &VisualShaderGraphPlugin::update_curve);
+ if (curve->get_texture().is_valid() && !curve->get_texture()->is_connected("changed", ce)) {
+ curve->get_texture()->connect("changed", ce, varray(p_id));
}
- if (curve.is_valid()) {
- CurveEditor *curve_editor = memnew(CurveEditor);
- node->add_child(curve_editor);
- register_curve_editor(p_id, 0, curve_editor);
- curve_editor->set_custom_minimum_size(Size2(300, 0));
- curve_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (curve->get_texture().is_valid()) {
- curve_editor->set_curve(curve->get_texture()->get_curve());
- }
+ CurveEditor *curve_editor = memnew(CurveEditor);
+ node->add_child(curve_editor);
+ register_curve_editor(p_id, 0, curve_editor);
+ curve_editor->set_custom_minimum_size(Size2(300, 0));
+ curve_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ if (curve->get_texture().is_valid()) {
+ curve_editor->set_curve(curve->get_texture()->get_curve());
}
+ }
- if (curve_xyz.is_valid()) {
- CurveEditor *curve_editor_x = memnew(CurveEditor);
- node->add_child(curve_editor_x);
- register_curve_editor(p_id, 0, curve_editor_x);
- curve_editor_x->set_custom_minimum_size(Size2(300, 0));
- curve_editor_x->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (curve_xyz->get_texture().is_valid()) {
- curve_editor_x->set_curve(curve_xyz->get_texture()->get_curve_x());
- }
-
- CurveEditor *curve_editor_y = memnew(CurveEditor);
- node->add_child(curve_editor_y);
- register_curve_editor(p_id, 1, curve_editor_y);
- curve_editor_y->set_custom_minimum_size(Size2(300, 0));
- curve_editor_y->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (curve_xyz->get_texture().is_valid()) {
- curve_editor_y->set_curve(curve_xyz->get_texture()->get_curve_y());
- }
+ if (curve_xyz.is_valid()) {
+ custom_editor->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- CurveEditor *curve_editor_z = memnew(CurveEditor);
- node->add_child(curve_editor_z);
- register_curve_editor(p_id, 2, curve_editor_z);
- curve_editor_z->set_custom_minimum_size(Size2(300, 0));
- curve_editor_z->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- if (curve_xyz->get_texture().is_valid()) {
- curve_editor_z->set_curve(curve_xyz->get_texture()->get_curve_z());
- }
+ Callable ce = callable_mp(graph_plugin, &VisualShaderGraphPlugin::update_curve_xyz);
+ if (curve_xyz->get_texture().is_valid() && !curve_xyz->get_texture()->is_connected("changed", ce)) {
+ curve_xyz->get_texture()->connect("changed", ce, varray(p_id));
}
- if (is_curve) {
- VisualShaderNode::PortType port_left = vsnode->get_input_port_type(0);
- VisualShaderNode::PortType port_right = vsnode->get_output_port_type(0);
- node->set_slot(1, true, port_left, type_color[port_left], true, port_right, type_color[port_right]);
+ CurveEditor *curve_editor_x = memnew(CurveEditor);
+ node->add_child(curve_editor_x);
+ register_curve_editor(p_id, 0, curve_editor_x);
+ curve_editor_x->set_custom_minimum_size(Size2(300, 0));
+ curve_editor_x->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ if (curve_xyz->get_texture().is_valid()) {
+ curve_editor_x->set_curve(curve_xyz->get_texture()->get_curve_x());
+ }
- VisualShaderEditor::get_singleton()->call_deferred(SNAME("_set_node_size"), (int)p_type, p_id, size);
+ CurveEditor *curve_editor_y = memnew(CurveEditor);
+ node->add_child(curve_editor_y);
+ register_curve_editor(p_id, 1, curve_editor_y);
+ curve_editor_y->set_custom_minimum_size(Size2(300, 0));
+ curve_editor_y->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ if (curve_xyz->get_texture().is_valid()) {
+ curve_editor_y->set_curve(curve_xyz->get_texture()->get_curve_y());
}
- if (vsnode->is_use_prop_slots()) {
- String error = vsnode->get_warning(visual_shader->get_mode(), p_type);
- if (!error.is_empty()) {
- Label *error_label = memnew(Label);
- error_label->add_theme_color_override("font_color", VisualShaderEditor::get_singleton()->get_theme_color(SNAME("error_color"), SNAME("Editor")));
- error_label->set_text(error);
- node->add_child(error_label);
- }
+ CurveEditor *curve_editor_z = memnew(CurveEditor);
+ node->add_child(curve_editor_z);
+ register_curve_editor(p_id, 2, curve_editor_z);
+ curve_editor_z->set_custom_minimum_size(Size2(300, 0));
+ curve_editor_z->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ if (curve_xyz->get_texture().is_valid()) {
+ curve_editor_z->set_curve(curve_xyz->get_texture()->get_curve_z());
+ }
+ }
- return;
+ if (custom_editor) {
+ if (is_curve || (hb == nullptr && !vsnode->is_use_prop_slots() && vsnode->get_output_port_count() > 0 && vsnode->get_output_port_name(0) == "" && (vsnode->get_input_port_count() == 0 || vsnode->get_input_port_name(0) == ""))) {
+ //will be embedded in first port
+ } else {
+ port_offset++;
+ node->add_child(custom_editor);
+ custom_editor = nullptr;
}
- custom_editor = nullptr;
}
if (is_group) {
@@ -625,14 +578,14 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
Button *add_input_btn = memnew(Button);
add_input_btn->set_text(TTR("Add Input"));
- add_input_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_add_input_port), varray(p_id, group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, input_port_name), CONNECT_DEFERRED);
+ add_input_btn->connect("pressed", callable_mp(editor, &VisualShaderEditor::_add_input_port), varray(p_id, group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, input_port_name), CONNECT_DEFERRED);
hb2->add_child(add_input_btn);
hb2->add_spacer();
Button *add_output_btn = memnew(Button);
add_output_btn->set_text(TTR("Add Output"));
- add_output_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_add_output_port), varray(p_id, group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, output_port_name), CONNECT_DEFERRED);
+ add_output_btn->connect("pressed", callable_mp(editor, &VisualShaderEditor::_add_output_port), varray(p_id, group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, output_port_name), CONNECT_DEFERRED);
hb2->add_child(add_output_btn);
node->add_child(hb2);
@@ -693,7 +646,12 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
name_right = vector_expanded_name[expanded_port_counter++];
}
- HBoxContainer *hb = memnew(HBoxContainer);
+ bool is_first_hbox = false;
+ if (i == 0 && hb != nullptr) {
+ is_first_hbox = true;
+ } else {
+ hb = memnew(HBoxContainer);
+ }
hb->add_theme_constant_override("separation", 7 * EDSCALE);
Variant default_value;
@@ -705,7 +663,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
Button *button = memnew(Button);
hb->add_child(button);
register_default_input_button(p_id, i, button);
- button->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_edit_port_default_input), varray(button, p_id, i));
+ button->connect("pressed", callable_mp(editor, &VisualShaderEditor::_edit_port_default_input), varray(button, p_id, i));
if (default_value.get_type() != Variant::NIL) { // only a label
set_input_port_default_value(p_type, p_id, i, default_value);
} else {
@@ -728,20 +686,20 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
type_box->add_item(TTR("Sampler"));
type_box->select(group_node->get_input_port_type(i));
type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
- type_box->connect("item_selected", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_input_port_type), varray(p_id, i), CONNECT_DEFERRED);
+ type_box->connect("item_selected", callable_mp(editor, &VisualShaderEditor::_change_input_port_type), varray(p_id, i), CONNECT_DEFERRED);
LineEdit *name_box = memnew(LineEdit);
hb->add_child(name_box);
name_box->set_custom_minimum_size(Size2(65 * EDSCALE, 0));
name_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
name_box->set_text(name_left);
- name_box->connect("text_submitted", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_input_port_name), varray(name_box, p_id, i), CONNECT_DEFERRED);
- name_box->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_port_name_focus_out), varray(name_box, p_id, i, false), CONNECT_DEFERRED);
+ name_box->connect("text_submitted", callable_mp(editor, &VisualShaderEditor::_change_input_port_name), varray(name_box, p_id, i), CONNECT_DEFERRED);
+ name_box->connect("focus_exited", callable_mp(editor, &VisualShaderEditor::_port_name_focus_out), varray(name_box, p_id, i, false), CONNECT_DEFERRED);
Button *remove_btn = memnew(Button);
remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")));
remove_btn->set_tooltip(TTR("Remove") + " " + name_left);
- remove_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_remove_input_port), varray(p_id, i), CONNECT_DEFERRED);
+ remove_btn->connect("pressed", callable_mp(editor, &VisualShaderEditor::_remove_input_port), varray(p_id, i), CONNECT_DEFERRED);
hb->add_child(remove_btn);
} else {
Label *label = memnew(Label);
@@ -752,14 +710,14 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
if (vsnode->get_input_port_default_hint(i) != "" && !port_left_used) {
Label *hint_label = memnew(Label);
hint_label->set_text("[" + vsnode->get_input_port_default_hint(i) + "]");
- hint_label->add_theme_color_override("font_color", VisualShaderEditor::get_singleton()->get_theme_color(SNAME("font_readonly_color"), SNAME("TextEdit")));
+ hint_label->add_theme_color_override("font_color", editor->get_theme_color(SNAME("font_readonly_color"), SNAME("TextEdit")));
hint_label->add_theme_style_override("normal", label_style);
hb->add_child(hint_label);
}
}
}
- if (!is_group) {
+ if (!is_group && !is_first_hbox) {
hb->add_spacer();
}
@@ -768,7 +726,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
Button *remove_btn = memnew(Button);
remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")));
remove_btn->set_tooltip(TTR("Remove") + " " + name_left);
- remove_btn->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_remove_output_port), varray(p_id, i), CONNECT_DEFERRED);
+ remove_btn->connect("pressed", callable_mp(editor, &VisualShaderEditor::_remove_output_port), varray(p_id, i), CONNECT_DEFERRED);
hb->add_child(remove_btn);
LineEdit *name_box = memnew(LineEdit);
@@ -776,8 +734,8 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
name_box->set_custom_minimum_size(Size2(65 * EDSCALE, 0));
name_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
name_box->set_text(name_right);
- name_box->connect("text_submitted", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_output_port_name), varray(name_box, p_id, i), CONNECT_DEFERRED);
- name_box->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_port_name_focus_out), varray(name_box, p_id, i, true), CONNECT_DEFERRED);
+ name_box->connect("text_submitted", callable_mp(editor, &VisualShaderEditor::_change_output_port_name), varray(name_box, p_id, i), CONNECT_DEFERRED);
+ name_box->connect("focus_exited", callable_mp(editor, &VisualShaderEditor::_port_name_focus_out), varray(name_box, p_id, i, true), CONNECT_DEFERRED);
OptionButton *type_box = memnew(OptionButton);
hb->add_child(type_box);
@@ -788,7 +746,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
type_box->add_item(TTR("Transform"));
type_box->select(group_node->get_output_port_type(i));
type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
- type_box->connect("item_selected", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_change_output_port_type), varray(p_id, i), CONNECT_DEFERRED);
+ type_box->connect("item_selected", callable_mp(editor, &VisualShaderEditor::_change_output_port_type), varray(p_id, i), CONNECT_DEFERRED);
} else {
Label *label = memnew(Label);
label->set_text(name_right);
@@ -802,23 +760,23 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
if (vsnode->is_output_port_expandable(i)) {
TextureButton *expand = memnew(TextureButton);
expand->set_toggle_mode(true);
- expand->set_normal_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiTreeArrowDown"), SNAME("EditorIcons")));
- expand->set_pressed_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiTreeArrowRight"), SNAME("EditorIcons")));
+ expand->set_normal_texture(editor->get_theme_icon(SNAME("GuiTreeArrowDown"), SNAME("EditorIcons")));
+ expand->set_pressed_texture(editor->get_theme_icon(SNAME("GuiTreeArrowRight"), SNAME("EditorIcons")));
expand->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
expand->set_pressed(vsnode->_is_output_port_expanded(i));
- expand->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_expand_output_port), varray(p_id, i, !vsnode->_is_output_port_expanded(i)), CONNECT_DEFERRED);
+ expand->connect("pressed", callable_mp(editor, &VisualShaderEditor::_expand_output_port), varray(p_id, i, !vsnode->_is_output_port_expanded(i)), CONNECT_DEFERRED);
hb->add_child(expand);
}
if (vsnode->has_output_port_preview(i) && port_right != VisualShaderNode::PORT_TYPE_TRANSFORM && port_right != VisualShaderNode::PORT_TYPE_SAMPLER) {
TextureButton *preview = memnew(TextureButton);
preview->set_toggle_mode(true);
- preview->set_normal_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiVisibilityHidden"), SNAME("EditorIcons")));
- preview->set_pressed_texture(VisualShaderEditor::get_singleton()->get_theme_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons")));
+ preview->set_normal_texture(editor->get_theme_icon(SNAME("GuiVisibilityHidden"), SNAME("EditorIcons")));
+ preview->set_pressed_texture(editor->get_theme_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons")));
preview->set_v_size_flags(Control::SIZE_SHRINK_CENTER);
register_output_port(p_id, j, preview);
- preview->connect("pressed", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_preview_select_port), varray(p_id, j), CONNECT_DEFERRED);
+ preview->connect("pressed", callable_mp(editor, &VisualShaderEditor::_preview_select_port), varray(p_id, j), CONNECT_DEFERRED);
hb->add_child(preview);
}
}
@@ -830,13 +788,19 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
port_offset++;
}
- node->add_child(hb);
+ if (!is_first_hbox) {
+ node->add_child(hb);
+ }
if (expanded_type != VisualShaderNode::PORT_TYPE_SCALAR) {
continue;
}
- node->set_slot(i + port_offset, valid_left, port_left, type_color[port_left], valid_right, port_right, type_color[port_right]);
+ int idx = 1;
+ if (!is_first_hbox) {
+ idx = i + port_offset;
+ }
+ node->set_slot(idx, valid_left, port_left, type_color[port_left], valid_right, port_right, type_color[port_right]);
if (vsnode->_is_output_port_expanded(i)) {
if (vsnode->get_output_port_type(i) == VisualShaderNode::PORT_TYPE_VECTOR) {
@@ -879,7 +843,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
String error = vsnode->get_warning(visual_shader->get_mode(), p_type);
if (!error.is_empty()) {
Label *error_label = memnew(Label);
- error_label->add_theme_color_override("font_color", VisualShaderEditor::get_singleton()->get_theme_color(SNAME("error_color"), SNAME("Editor")));
+ error_label->add_theme_color_override("font_color", editor->get_theme_color(SNAME("error_color"), SNAME("Editor")));
error_label->set_text(error);
node->add_child(error_label);
}
@@ -905,7 +869,7 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
expression_box->set_syntax_highlighter(expression_syntax_highlighter);
expression_box->add_theme_color_override("background_color", background_color);
- for (const String &E : VisualShaderEditor::get_singleton()->keyword_list) {
+ for (const String &E : editor->keyword_list) {
if (ShaderLanguage::is_control_flow_keyword(E)) {
expression_syntax_highlighter->add_keyword_color(E, control_flow_keyword_color);
} else {
@@ -913,8 +877,8 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
}
}
- expression_box->add_theme_font_override("font", VisualShaderEditor::get_singleton()->get_theme_font(SNAME("expression"), SNAME("EditorFonts")));
- expression_box->add_theme_font_size_override("font_size", VisualShaderEditor::get_singleton()->get_theme_font_size(SNAME("expression_size"), SNAME("EditorFonts")));
+ expression_box->add_theme_font_override("font", editor->get_theme_font(SNAME("expression"), SNAME("EditorFonts")));
+ expression_box->add_theme_font_size_override("font_size", editor->get_theme_font_size(SNAME("expression_size"), SNAME("EditorFonts")));
expression_box->add_theme_color_override("font_color", text_color);
expression_syntax_highlighter->set_number_color(number_color);
expression_syntax_highlighter->set_symbol_color(symbol_color);
@@ -935,18 +899,11 @@ void VisualShaderGraphPlugin::add_node(VisualShader::Type p_type, int p_id) {
expression_box->set_context_menu_enabled(false);
expression_box->set_draw_line_numbers(true);
- expression_box->connect("focus_exited", callable_mp(VisualShaderEditor::get_singleton(), &VisualShaderEditor::_expression_focus_out), varray(expression_box, p_id));
+ expression_box->connect("focus_exited", callable_mp(editor, &VisualShaderEditor::_expression_focus_out), varray(expression_box, p_id));
}
- if (!uniform.is_valid()) {
- VisualShaderEditor::get_singleton()->graph->add_child(node);
- if (is_comment) {
- VisualShaderEditor::get_singleton()->graph->move_child(node, 0); // to prevents a bug where comment node overlaps its content
- }
- VisualShaderEditor::get_singleton()->_update_created_node(node);
- if (is_resizable) {
- VisualShaderEditor::get_singleton()->call_deferred(SNAME("_set_node_size"), (int)p_type, p_id, size);
- }
+ if (is_comment) {
+ graph->move_child(node, 0); // to prevents a bug where comment node overlaps its content
}
}
@@ -959,8 +916,18 @@ void VisualShaderGraphPlugin::remove_node(VisualShader::Type p_type, int p_id) {
}
void VisualShaderGraphPlugin::connect_nodes(VisualShader::Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) {
- if (visual_shader->get_shader_type() == p_type) {
- VisualShaderEditor::get_singleton()->graph->connect_node(itos(p_from_node), p_from_port, itos(p_to_node), p_to_port);
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ return;
+ }
+ GraphEdit *graph = editor->graph;
+ if (!graph) {
+ return;
+ }
+
+ if (visual_shader.is_valid() && visual_shader->get_shader_type() == p_type) {
+ graph->connect_node(itos(p_from_node), p_from_port, itos(p_to_node), p_to_port);
+
connections.push_back({ p_from_node, p_from_port, p_to_node, p_to_port });
if (links[p_to_node].input_ports.has(p_to_port) && links[p_to_node].input_ports[p_to_port].default_input_button != nullptr) {
links[p_to_node].input_ports[p_to_port].default_input_button->hide();
@@ -969,8 +936,18 @@ void VisualShaderGraphPlugin::connect_nodes(VisualShader::Type p_type, int p_fro
}
void VisualShaderGraphPlugin::disconnect_nodes(VisualShader::Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) {
- if (visual_shader->get_shader_type() == p_type) {
- VisualShaderEditor::get_singleton()->graph->disconnect_node(itos(p_from_node), p_from_port, itos(p_to_node), p_to_port);
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ return;
+ }
+ GraphEdit *graph = editor->graph;
+ if (!graph) {
+ return;
+ }
+
+ if (visual_shader.is_valid() && visual_shader->get_shader_type() == p_type) {
+ graph->disconnect_node(itos(p_from_node), p_from_port, itos(p_to_node), p_to_port);
+
for (const List<VisualShader::Connection>::Element *E = connections.front(); E; E = E->next()) {
if (E->get().from_node == p_from_node && E->get().from_port == p_from_port && E->get().to_node == p_to_node && E->get().to_port == p_to_port) {
connections.erase(E);
@@ -1001,8 +978,10 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
}
visual_shader = Ref<VisualShader>(p_visual_shader);
graph_plugin->register_shader(visual_shader.ptr());
- if (!visual_shader->is_connected("changed", callable_mp(this, &VisualShaderEditor::_update_preview))) {
- visual_shader->connect("changed", callable_mp(this, &VisualShaderEditor::_update_preview));
+
+ Callable ce = callable_mp(this, &VisualShaderEditor::_update_preview);
+ if (!visual_shader->is_connected("changed", ce)) {
+ visual_shader->connect("changed", ce);
}
#ifndef DISABLE_DEPRECATED
Dictionary engine_version = Engine::get_singleton()->get_version_info();
@@ -1029,8 +1008,9 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
_set_mode(visual_shader->get_mode());
} else {
if (visual_shader.is_valid()) {
- if (visual_shader->is_connected("changed", callable_mp(this, &VisualShaderEditor::_update_preview))) {
- visual_shader->disconnect("changed", callable_mp(this, &VisualShaderEditor::_update_preview));
+ Callable ce = callable_mp(this, &VisualShaderEditor::_update_preview);
+ if (visual_shader->is_connected("changed", ce)) {
+ visual_shader->disconnect("changed", ce);
}
}
visual_shader.unref();
@@ -4008,19 +3988,8 @@ VisualShaderEditor *VisualShaderEditor::singleton = nullptr;
VisualShaderEditor::VisualShaderEditor() {
singleton = this;
- updating = false;
- saved_node_pos_dirty = false;
- saved_node_pos = Point2(0, 0);
ShaderLanguage::get_keyword_list(&keyword_list);
- pending_update_preview = false;
- shader_error = false;
-
- to_node = -1;
- to_slot = -1;
- from_node = -1;
- from_slot = -1;
-
graph = memnew(GraphEdit);
graph->get_zoom_hbox()->set_h_size_flags(SIZE_EXPAND_FILL);
graph->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -4836,7 +4805,10 @@ public:
}
void _item_selected(int p_item) {
- VisualShaderEditor::get_singleton()->call_deferred(SNAME("_input_select_item"), input, get_item_text(p_item));
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (editor) {
+ editor->call_deferred(SNAME("_input_select_item"), input, get_item_text(p_item));
+ }
}
void setup(const Ref<VisualShaderNodeInput> &p_input) {
@@ -4880,7 +4852,10 @@ public:
}
void _item_selected(int p_item) {
- VisualShaderEditor::get_singleton()->call_deferred(SNAME("_uniform_select_item"), uniform_ref, get_item_text(p_item));
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (editor) {
+ editor->call_deferred(SNAME("_uniform_select_item"), uniform_ref, get_item_text(p_item));
+ }
}
void setup(const Ref<VisualShaderNodeUniformRef> &p_uniform_ref) {
@@ -4948,8 +4923,14 @@ public:
}
}
if (p_property != "constant") {
- undo_redo->add_do_method(VisualShaderEditor::get_singleton()->get_graph_plugin(), "update_node_deferred", shader_type, node_id);
- undo_redo->add_undo_method(VisualShaderEditor::get_singleton()->get_graph_plugin(), "update_node_deferred", shader_type, node_id);
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (editor) {
+ VisualShaderGraphPlugin *graph_plugin = editor->get_graph_plugin();
+ if (graph_plugin) {
+ undo_redo->add_do_method(graph_plugin, "update_node_deferred", shader_type, node_id);
+ undo_redo->add_undo_method(graph_plugin, "update_node_deferred", shader_type, node_id);
+ }
+ }
}
undo_redo->commit_action();
@@ -5101,6 +5082,11 @@ Control *VisualShaderNodePluginDefault::create_editor(const Ref<Resource> &p_par
}
void EditorPropertyShaderMode::_option_selected(int p_which) {
+ VisualShaderEditor *editor = VisualShaderEditor::get_singleton();
+ if (!editor) {
+ return;
+ }
+
//will not use this, instead will do all the logic setting manually
//emit_signal(SNAME("property_changed"), get_edited_property(), p_which);
@@ -5116,8 +5102,8 @@ void EditorPropertyShaderMode::_option_selected(int p_which) {
undo_redo->add_do_method(visual_shader.ptr(), "set_mode", p_which);
undo_redo->add_undo_method(visual_shader.ptr(), "set_mode", visual_shader->get_mode());
- undo_redo->add_do_method(VisualShaderEditor::get_singleton(), "_set_mode", p_which);
- undo_redo->add_undo_method(VisualShaderEditor::get_singleton(), "_set_mode", visual_shader->get_mode());
+ undo_redo->add_do_method(editor, "_set_mode", p_which);
+ undo_redo->add_undo_method(editor, "_set_mode", visual_shader->get_mode());
//now undo is hell
@@ -5156,12 +5142,11 @@ void EditorPropertyShaderMode::_option_selected(int p_which) {
}
}
- undo_redo->add_do_method(VisualShaderEditor::get_singleton(), "_update_options_menu");
- undo_redo->add_undo_method(VisualShaderEditor::get_singleton(), "_update_options_menu");
+ undo_redo->add_do_method(editor, "_update_options_menu");
+ undo_redo->add_undo_method(editor, "_update_options_menu");
- //update graph
- undo_redo->add_do_method(VisualShaderEditor::get_singleton(), "_update_graph");
- undo_redo->add_undo_method(VisualShaderEditor::get_singleton(), "_update_graph");
+ undo_redo->add_do_method(editor, "_update_graph");
+ undo_redo->add_undo_method(editor, "_update_graph");
undo_redo->commit_action();
}
diff --git a/editor/plugins/visual_shader_editor_plugin.h b/editor/plugins/visual_shader_editor_plugin.h
index 74ccda3c9a..2b837ef4a0 100644
--- a/editor/plugins/visual_shader_editor_plugin.h
+++ b/editor/plugins/visual_shader_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -131,42 +131,42 @@ class VisualShaderEditor : public VBoxContainer {
GDCLASS(VisualShaderEditor, VBoxContainer);
friend class VisualShaderGraphPlugin;
- CustomPropertyEditor *property_editor;
- int editing_node;
- int editing_port;
+ CustomPropertyEditor *property_editor = nullptr;
+ int editing_node = -1;
+ int editing_port = -1;
Ref<VisualShader> visual_shader;
- GraphEdit *graph;
- Button *add_node;
- Button *preview_shader;
+ GraphEdit *graph = nullptr;
+ Button *add_node = nullptr;
+ Button *preview_shader = nullptr;
OptionButton *edit_type = nullptr;
- OptionButton *edit_type_standard;
- OptionButton *edit_type_particles;
- OptionButton *edit_type_sky;
- OptionButton *edit_type_fog;
- CheckBox *custom_mode_box;
+ OptionButton *edit_type_standard = nullptr;
+ OptionButton *edit_type_particles = nullptr;
+ OptionButton *edit_type_sky = nullptr;
+ OptionButton *edit_type_fog = nullptr;
+ CheckBox *custom_mode_box = nullptr;
bool custom_mode_enabled = false;
- bool pending_update_preview;
- bool shader_error;
- Window *preview_window;
- VBoxContainer *preview_vbox;
- CodeEdit *preview_text;
- Ref<CodeHighlighter> syntax_highlighter;
- PanelContainer *error_panel;
- Label *error_label;
+ bool pending_update_preview = false;
+ bool shader_error = false;
+ Window *preview_window = nullptr;
+ VBoxContainer *preview_vbox = nullptr;
+ CodeEdit *preview_text = nullptr;
+ Ref<CodeHighlighter> syntax_highlighter = nullptr;
+ PanelContainer *error_panel = nullptr;
+ Label *error_label = nullptr;
- UndoRedo *undo_redo;
+ UndoRedo *undo_redo = nullptr;
Point2 saved_node_pos;
- bool saved_node_pos_dirty;
+ bool saved_node_pos_dirty = false;
- ConfirmationDialog *members_dialog;
+ ConfirmationDialog *members_dialog = nullptr;
VisualShaderNode::PortType members_input_port_type = VisualShaderNode::PORT_TYPE_MAX;
VisualShaderNode::PortType members_output_port_type = VisualShaderNode::PORT_TYPE_MAX;
- PopupMenu *popup_menu;
+ PopupMenu *popup_menu = nullptr;
PopupMenu *constants_submenu = nullptr;
- MenuButton *tools;
+ MenuButton *tools = nullptr;
PopupPanel *comment_title_change_popup = nullptr;
LineEdit *comment_title_change_edit = nullptr;
@@ -231,11 +231,11 @@ class VisualShaderEditor : public VBoxContainer {
SET_COMMENT_DESCRIPTION,
};
- Tree *members;
- AcceptDialog *alert;
- LineEdit *node_filter;
- RichTextLabel *node_desc;
- Label *highend_label;
+ Tree *members = nullptr;
+ AcceptDialog *alert = nullptr;
+ LineEdit *node_filter = nullptr;
+ RichTextLabel *node_desc = nullptr;
+ Label *highend_label = nullptr;
void _tools_menu_option(int p_idx);
void _show_members_dialog(bool at_mouse_pos, VisualShaderNode::PortType p_input_port_type = VisualShaderNode::PORT_TYPE_MAX, VisualShaderNode::PortType p_output_port_type = VisualShaderNode::PORT_TYPE_MAX);
@@ -330,7 +330,7 @@ class VisualShaderEditor : public VBoxContainer {
bool drag_dirty = false;
void _node_dragged(const Vector2 &p_from, const Vector2 &p_to, int p_node);
void _nodes_dragged();
- bool updating;
+ bool updating = false;
void _connection_request(const String &p_from, int p_from_index, const String &p_to, int p_to_index);
void _disconnection_request(const String &p_from, int p_from_index, const String &p_to, int p_to_index);
@@ -347,10 +347,10 @@ class VisualShaderEditor : public VBoxContainer {
void _edit_port_default_input(Object *p_button, int p_node, int p_port);
void _port_edited();
- int to_node;
- int to_slot;
- int from_node;
- int from_slot;
+ int to_node = -1;
+ int to_slot = -1;
+ int from_node = -1;
+ int from_slot = -1;
Set<int> selected_constants;
Set<int> selected_uniforms;
@@ -480,9 +480,9 @@ public:
class VisualShaderEditorPlugin : public EditorPlugin {
GDCLASS(VisualShaderEditorPlugin, EditorPlugin);
- VisualShaderEditor *visual_shader_editor;
- EditorNode *editor;
- Button *button;
+ VisualShaderEditor *visual_shader_editor = nullptr;
+ EditorNode *editor = nullptr;
+ Button *button = nullptr;
public:
virtual String get_name() const override { return "VisualShader"; }
@@ -504,7 +504,7 @@ public:
class EditorPropertyShaderMode : public EditorProperty {
GDCLASS(EditorPropertyShaderMode, EditorProperty);
- OptionButton *options;
+ OptionButton *options = nullptr;
void _option_selected(int p_which);
diff --git a/editor/plugins/voxel_gi_editor_plugin.cpp b/editor/plugins/voxel_gi_editor_plugin.cpp
index 4e81fc4e77..1fd47b67c5 100644
--- a/editor/plugins/voxel_gi_editor_plugin.cpp
+++ b/editor/plugins/voxel_gi_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/plugins/voxel_gi_editor_plugin.h b/editor/plugins/voxel_gi_editor_plugin.h
index ed66728557..4c7865d868 100644
--- a/editor/plugins/voxel_gi_editor_plugin.h
+++ b/editor/plugins/voxel_gi_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/pot_generator.cpp b/editor/pot_generator.cpp
index d57345cac1..4d9efefbd3 100644
--- a/editor/pot_generator.cpp
+++ b/editor/pot_generator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/pot_generator.h b/editor/pot_generator.h
index 61300064ba..2b42c681e5 100644
--- a/editor/pot_generator.h
+++ b/editor/pot_generator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/progress_dialog.cpp b/editor/progress_dialog.cpp
index 95a5646013..1644bd7e7f 100644
--- a/editor/progress_dialog.cpp
+++ b/editor/progress_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/progress_dialog.h b/editor/progress_dialog.h
index 3f4b1d2944..880e6bc9d4 100644
--- a/editor/progress_dialog.h
+++ b/editor/progress_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/project_export.cpp b/editor/project_export.cpp
index 0b748c12b6..9bd8c1e227 100644
--- a/editor/project_export.cpp
+++ b/editor/project_export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -265,10 +265,25 @@ void ProjectExportDialog::_edit_preset(int p_index) {
export_templates_error->hide();
}
+ export_warning->hide();
export_button->set_disabled(true);
get_ok_button()->set_disabled(true);
-
} else {
+ if (error != String()) {
+ Vector<String> items = error.split("\n", false);
+ error = "";
+ for (int i = 0; i < items.size(); i++) {
+ if (i > 0) {
+ error += "\n";
+ }
+ error += " - " + items[i];
+ }
+ export_warning->set_text(error);
+ export_warning->show();
+ } else {
+ export_warning->hide();
+ }
+
export_error->hide();
export_templates_error->hide();
export_button->set_disabled(false);
@@ -1247,6 +1262,11 @@ ProjectExportDialog::ProjectExportDialog() {
export_error->hide();
export_error->add_theme_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_theme_color(SNAME("error_color"), SNAME("Editor")));
+ export_warning = memnew(Label);
+ main_vb->add_child(export_warning);
+ export_warning->hide();
+ export_warning->add_theme_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_theme_color(SNAME("warning_color"), SNAME("Editor")));
+
export_templates_error = memnew(HBoxContainer);
main_vb->add_child(export_templates_error);
export_templates_error->hide();
diff --git a/editor/project_export.h b/editor/project_export.h
index aeace708b8..af7ec083c4 100644
--- a/editor/project_export.h
+++ b/editor/project_export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -99,6 +99,7 @@ private:
Label *script_key_error;
Label *export_error;
+ Label *export_warning;
HBoxContainer *export_templates_error;
String default_filename;
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp
index 134f238bb6..08e0f7ae30 100644
--- a/editor/project_manager.cpp
+++ b/editor/project_manager.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -204,7 +204,7 @@ private:
char fname[16384];
ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- if (String(fname).ends_with("project.godot")) {
+ if (String::utf8(fname).ends_with("project.godot")) {
break;
}
@@ -524,7 +524,7 @@ private:
char fname[16384];
unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String name = fname;
+ String name = String::utf8(fname);
if (name.ends_with("project.godot")) {
zip_root = name.substr(0, name.rfind("project.godot"));
break;
@@ -544,7 +544,7 @@ private:
char fname[16384];
ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String path = fname;
+ String path = String::utf8(fname);
if (path.is_empty() || path == zip_root || !zip_root.is_subsequence_of(path)) {
//
@@ -1765,8 +1765,8 @@ void ProjectList::erase_selected_projects(bool p_delete_project_contents) {
void ProjectList::_panel_draw(Node *p_hb) {
Control *hb = Object::cast_to<Control>(p_hb);
- if (is_layout_rtl() && get_v_scrollbar()->is_visible_in_tree()) {
- hb->draw_line(Point2(get_v_scrollbar()->get_minimum_size().x, hb->get_size().y + 1), Point2(hb->get_size().x, hb->get_size().y + 1), get_theme_color(SNAME("guide_color"), SNAME("Tree")));
+ if (is_layout_rtl() && get_v_scroll_bar()->is_visible_in_tree()) {
+ hb->draw_line(Point2(get_v_scroll_bar()->get_minimum_size().x, hb->get_size().y + 1), Point2(hb->get_size().x, hb->get_size().y + 1), get_theme_color(SNAME("guide_color"), SNAME("Tree")));
} else {
hb->draw_line(Point2(0, hb->get_size().y + 1), Point2(hb->get_size().x, hb->get_size().y + 1), get_theme_color(SNAME("guide_color"), SNAME("Tree")));
}
diff --git a/editor/project_manager.h b/editor/project_manager.h
index f45d34d461..f99e879664 100644
--- a/editor/project_manager.h
+++ b/editor/project_manager.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp
index f6975594cb..b710eb2546 100644
--- a/editor/project_settings_editor.cpp
+++ b/editor/project_settings_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/project_settings_editor.h b/editor/project_settings_editor.h
index f90db02c46..26af73c54e 100644
--- a/editor/project_settings_editor.h
+++ b/editor/project_settings_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp
index abe1bcf9e5..481ff1a781 100644
--- a/editor/property_editor.cpp
+++ b/editor/property_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -810,7 +810,7 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
//late init for performance
color_picker = memnew(ColorPicker);
color_picker->set_deferred_mode(true);
- add_child(color_picker);
+ value_vbox->add_child(color_picker);
color_picker->hide();
color_picker->connect("color_changed", callable_mp(this, &CustomPropertyEditor::_color_changed));
diff --git a/editor/property_editor.h b/editor/property_editor.h
index 2565c6ee27..9d88aaf26d 100644
--- a/editor/property_editor.h
+++ b/editor/property_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/property_selector.cpp b/editor/property_selector.cpp
index 838686ead6..3b0cbfdde9 100644
--- a/editor/property_selector.cpp
+++ b/editor/property_selector.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/property_selector.h b/editor/property_selector.h
index 37b00e938b..af848b9f18 100644
--- a/editor/property_selector.h
+++ b/editor/property_selector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/quick_open.cpp b/editor/quick_open.cpp
index b4ab6493ef..118c016c6d 100644
--- a/editor/quick_open.cpp
+++ b/editor/quick_open.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/quick_open.h b/editor/quick_open.h
index f1787d522b..00edf46622 100644
--- a/editor/quick_open.h
+++ b/editor/quick_open.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/register_exporters.h b/editor/register_exporters.h
index 5091292b1a..09076af978 100644
--- a/editor/register_exporters.h
+++ b/editor/register_exporters.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp
index 8cf5a26c55..0e34d200f2 100644
--- a/editor/rename_dialog.cpp
+++ b/editor/rename_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/rename_dialog.h b/editor/rename_dialog.h
index f383877eb2..7a882dc693 100644
--- a/editor/rename_dialog.h
+++ b/editor/rename_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/reparent_dialog.cpp b/editor/reparent_dialog.cpp
index f862260212..1a83a61534 100644
--- a/editor/reparent_dialog.cpp
+++ b/editor/reparent_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/reparent_dialog.h b/editor/reparent_dialog.h
index 3fcdda7bed..3d76eb3294 100644
--- a/editor/reparent_dialog.h
+++ b/editor/reparent_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 6ee9cc84e3..7e72777da1 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -726,7 +726,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
dup->set_name(parent->validate_child_name(dup));
- editor_data->get_undo_redo().add_do_method(add_below_node, "add_sibling", dup);
+ editor_data->get_undo_redo().add_do_method(add_below_node, "add_sibling", dup, true);
for (Node *F : owned) {
if (!duplimap.has(F)) {
@@ -942,6 +942,18 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
break;
}
+ if (tocopy->get_owner() != scene) {
+ accept->set_text(TTR("Can't save a branch which is a child of an already instantiated scene.\nTo save this branch into its own scene, open the original scene, right click on this branch, and select \"Save Branch as Scene\"."));
+ accept->popup_centered();
+ break;
+ }
+
+ if (scene->get_scene_inherited_state().is_valid() && scene->get_scene_inherited_state()->find_node_by_path(scene->get_path_to(tocopy)) >= 0) {
+ accept->set_text(TTR("Can't save a branch which is part of an inherited scene.\nTo save this branch into its own scene, open the original scene, right click on this branch, and select \"Save Branch as Scene\"."));
+ accept->popup_centered();
+ break;
+ }
+
new_scene_from_dialog->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE);
List<String> extensions;
diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h
index ef89162792..ffaf34cfdc 100644
--- a/editor/scene_tree_dock.h
+++ b/editor/scene_tree_dock.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -31,7 +31,6 @@
#ifndef SCENE_TREE_DOCK_H
#define SCENE_TREE_DOCK_H
-#include "editor/connections_dialog.h"
#include "editor/create_dialog.h"
#include "editor/editor_data.h"
#include "editor/groups_editor.h"
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp
index 4569841af6..c1ceba27b3 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/scene_tree_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/scene_tree_editor.h b/editor/scene_tree_editor.h
index b4c40ab17a..7fb1451934 100644
--- a/editor/scene_tree_editor.h
+++ b/editor/scene_tree_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp
index 0e96a1d247..2098fa2c85 100644
--- a/editor/script_create_dialog.cpp
+++ b/editor/script_create_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,7 +33,6 @@
#include "core/config/project_settings.h"
#include "core/io/file_access.h"
#include "core/io/resource_saver.h"
-#include "core/object/script_language.h"
#include "core/string/string_builder.h"
#include "editor/create_dialog.h"
#include "editor/editor_node.h"
@@ -45,17 +44,16 @@ void ScriptCreateDialog::_notification(int p_what) {
case NOTIFICATION_ENTER_TREE:
case NOTIFICATION_THEME_CHANGED: {
for (int i = 0; i < ScriptServer::get_language_count(); i++) {
- String lang = ScriptServer::get_language(i)->get_type();
- Ref<Texture2D> lang_icon = get_theme_icon(lang, SNAME("EditorIcons"));
- if (lang_icon.is_valid()) {
- language_menu->set_item_icon(i, lang_icon);
+ Ref<Texture2D> language_icon = get_theme_icon(ScriptServer::get_language(i)->get_type(), SNAME("EditorIcons"));
+ if (language_icon.is_valid()) {
+ language_menu->set_item_icon(i, language_icon);
}
}
- String last_lang = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_language", "");
- if (!last_lang.is_empty()) {
+ String last_language = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_language", "");
+ if (!last_language.is_empty()) {
for (int i = 0; i < language_menu->get_item_count(); i++) {
- if (language_menu->get_item_text(i) == last_lang) {
+ if (language_menu->get_item_text(i) == last_language) {
language_menu->select(i);
current_language = i;
break;
@@ -64,6 +62,10 @@ void ScriptCreateDialog::_notification(int p_what) {
} else {
language_menu->select(default_language);
}
+ if (EditorSettings::get_singleton()->has_meta("script_setup/use_script_templates")) {
+ is_using_templates = bool(EditorSettings::get_singleton()->get_meta("script_setup/use_script_templates"));
+ use_templates->set_pressed(is_using_templates);
+ }
path_button->set_icon(get_theme_icon(SNAME("Folder"), SNAME("EditorIcons")));
parent_browse_button->set_icon(get_theme_icon(SNAME("Folder"), SNAME("EditorIcons")));
@@ -114,7 +116,7 @@ void ScriptCreateDialog::config(const String &p_base_name, const String &p_base_
built_in_enabled = p_built_in_enabled;
load_enabled = p_load_enabled;
- _lang_changed(current_language);
+ _language_changed(current_language);
_class_name_changed("");
_path_changed(file_path->get_text());
}
@@ -145,8 +147,9 @@ bool ScriptCreateDialog::_validate_class(const String &p_string) {
for (int i = 0; i < p_string.length(); i++) {
if (i == 0) {
+ // Cannot start with a number.
if (p_string[0] >= '0' && p_string[0] <= '9') {
- return false; // no start with number plz
+ return false;
}
}
@@ -170,6 +173,10 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
return TTR("Filename is empty.");
}
+ if (!p.get_file().get_basename().is_valid_filename()) {
+ return TTR("Filename is invalid.");
+ }
+
p = ProjectSettings::get_singleton()->localize_path(p);
if (!p.begins_with("res://")) {
return TTR("Path is not local.");
@@ -178,11 +185,11 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES);
if (d->change_dir(p.get_base_dir()) != OK) {
memdelete(d);
- return TTR("Invalid base path.");
+ return TTR("Base path is invalid.");
}
memdelete(d);
- /* Does file already exist */
+ // Check if file exists.
DirAccess *f = DirAccess::create(DirAccess::ACCESS_RESOURCES);
if (f->dir_exists(p)) {
memdelete(f);
@@ -193,11 +200,11 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
}
memdelete(f);
- /* Check file extension */
+ // Check file extension.
String extension = p.get_extension();
List<String> extensions;
- // get all possible extensions for script
+ // Get all possible extensions for script.
for (int l = 0; l < language_menu->get_item_count(); l++) {
ScriptServer::get_language(l)->get_recognized_extensions(&extensions);
}
@@ -207,8 +214,6 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
int index = 0;
for (const String &E : extensions) {
if (E.nocasecmp_to(extension) == 0) {
- //FIXME (?) - changing language this way doesn't update controls, needs rework
- //language_menu->select(index); // change Language option by extension
found = true;
if (E == ScriptServer::get_language(language_menu->get_selected())->get_extension()) {
match = true;
@@ -222,16 +227,16 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
return TTR("Invalid extension.");
}
if (!match) {
- return TTR("Wrong extension chosen.");
+ return TTR("Extension doesn't match chosen language.");
}
- /* Let ScriptLanguage do custom validation */
+ // Let ScriptLanguage do custom validation.
String path_error = ScriptServer::get_language(language_menu->get_selected())->validate_path(p);
if (!path_error.is_empty()) {
return path_error;
}
- /* All checks passed */
+ // All checks passed.
return "";
}
@@ -244,40 +249,49 @@ String ScriptCreateDialog::_get_class_name() const {
}
void ScriptCreateDialog::_class_name_changed(const String &p_name) {
- if (_validate_class(class_name->get_text())) {
- is_class_name_valid = true;
- } else {
- is_class_name_valid = false;
- }
+ is_class_name_valid = _validate_class(class_name->get_text());
_update_dialog();
}
void ScriptCreateDialog::_parent_name_changed(const String &p_parent) {
- if (_validate_parent(parent_name->get_text())) {
- is_parent_name_valid = true;
- } else {
- is_parent_name_valid = false;
- }
+ is_parent_name_valid = _validate_parent(parent_name->get_text());
_update_dialog();
}
void ScriptCreateDialog::_template_changed(int p_template) {
- String selected_template = p_template == 0 ? "" : template_menu->get_item_text(p_template);
- EditorSettings::get_singleton()->set_project_metadata("script_setup", "last_selected_template", selected_template);
- if (p_template == 0) {
- //default
- script_template = "";
- return;
- }
- int selected_id = template_menu->get_selected_id();
-
- for (int i = 0; i < template_list.size(); i++) {
- const ScriptTemplateInfo &sinfo = template_list[i];
- if (sinfo.id == selected_id) {
- script_template = sinfo.dir.plus_file(sinfo.name + "." + sinfo.extension);
- break;
+ const ScriptLanguage::ScriptTemplate &sinfo = _get_current_template();
+ // Update last used dictionaries
+ if (is_using_templates && !parent_name->get_text().begins_with("\"res:")) {
+ if (sinfo.origin == ScriptLanguage::TemplateLocation::TEMPLATE_PROJECT) {
+ // Save the last used template for this node into the project dictionary.
+ Dictionary dic_templates_project = EditorSettings::get_singleton()->get_project_metadata("script_setup", "templates_dictionary", Dictionary());
+ dic_templates_project[parent_name->get_text()] = sinfo.get_hash();
+ EditorSettings::get_singleton()->set_project_metadata("script_setup", "templates_dictionary", dic_templates_project);
+ } else {
+ // Save template into to editor dictionary (not a project template).
+ Dictionary dic_templates;
+ if (EditorSettings::get_singleton()->has_meta("script_setup/templates_dictionary")) {
+ dic_templates = (Dictionary)EditorSettings::get_singleton()->get_meta("script_setup/templates_dictionary");
+ }
+ dic_templates[parent_name->get_text()] = sinfo.get_hash();
+ EditorSettings::get_singleton()->set_meta("script_setup/templates_dictionary", dic_templates);
+ // Remove template from project dictionary as we last used an editor level template.
+ Dictionary dic_templates_project = EditorSettings::get_singleton()->get_project_metadata("script_setup", "templates_dictionary", Dictionary());
+ if (dic_templates_project.has(parent_name->get_text())) {
+ dic_templates_project.erase(parent_name->get_text());
+ EditorSettings::get_singleton()->set_project_metadata("script_setup", "templates_dictionary", dic_templates_project);
+ }
}
}
+ // Update template label information.
+ String template_info = String::utf8("• ");
+ template_info += TTR("Template:");
+ template_info += " " + sinfo.name;
+ if (!sinfo.description.is_empty()) {
+ template_info += " - " + sinfo.description;
+ }
+ template_info_label->set_text(template_info);
+ template_info_label->add_theme_color_override("font_color", get_theme_color(SNAME("success_color"), SNAME("Editor")));
}
void ScriptCreateDialog::ok_pressed() {
@@ -287,6 +301,7 @@ void ScriptCreateDialog::ok_pressed() {
_load_exist();
}
+ EditorSettings::get_singleton()->save();
is_new_script_created = true;
_update_dialog();
}
@@ -295,18 +310,10 @@ void ScriptCreateDialog::_create_new() {
String cname_param = _get_class_name();
Ref<Script> scr;
- if (!script_template.is_empty()) {
- scr = ResourceLoader::load(script_template);
- if (scr.is_null()) {
- alert->set_text(vformat(TTR("Error loading template '%s'"), script_template));
- alert->popup_centered();
- return;
- }
- scr = scr->duplicate();
- ScriptServer::get_language(language_menu->get_selected())->make_template(cname_param, parent_name->get_text(), scr);
- } else {
- scr = ScriptServer::get_language(language_menu->get_selected())->get_template(cname_param, parent_name->get_text());
- }
+
+ const ScriptLanguage::ScriptTemplate sinfo = _get_current_template();
+
+ scr = ScriptServer::get_language(language_menu->get_selected())->make_template(sinfo.content, cname_param, parent_name->get_text());
if (has_named_classes) {
String cname = class_name->get_text();
@@ -345,8 +352,20 @@ void ScriptCreateDialog::_load_exist() {
hide();
}
-void ScriptCreateDialog::_lang_changed(int l) {
- ScriptLanguage *language = ScriptServer::get_language(l);
+Vector<String> ScriptCreateDialog::get_hierarchy(String p_object) const {
+ Vector<String> hierarchy;
+ hierarchy.append(p_object);
+
+ String parent_class = ClassDB::get_parent_class(p_object);
+ while (parent_class.is_valid_identifier()) {
+ hierarchy.append(parent_class);
+ parent_class = ClassDB::get_parent_class(parent_class);
+ }
+ return hierarchy;
+}
+
+void ScriptCreateDialog::_language_changed(int l) {
+ language = ScriptServer::get_language(l);
has_named_classes = language->has_named_classes();
can_inherit_from_file = language->can_inherit_from_file();
@@ -364,13 +383,13 @@ void ScriptCreateDialog::_lang_changed(int l) {
}
if (extension.length() == 0) {
- // add extension if none
+ // Add extension if none.
path += selected_ext;
_path_changed(path);
} else {
- // change extension by selected language
+ // Change extension by selected language.
List<String> extensions;
- // get all possible extensions for script
+ // Get all possible extensions for script.
for (int m = 0; m < language_menu->get_item_count(); m++) {
ScriptServer::get_language(m)->get_recognized_extensions(&extensions);
}
@@ -389,123 +408,12 @@ void ScriptCreateDialog::_lang_changed(int l) {
}
file_path->set_text(path);
- bool use_templates = language->is_using_templates();
- template_menu->set_disabled(!use_templates);
- template_menu->clear();
-
- if (use_templates) {
- _update_script_templates(language->get_extension());
-
- String last_lang = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_language", "");
- String last_template = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_template", "");
-
- template_menu->add_item(TTR("Default"));
-
- ScriptTemplateInfo *templates = template_list.ptrw();
-
- Vector<String> origin_names;
- origin_names.push_back(TTR("Project"));
- origin_names.push_back(TTR("Editor"));
- int cur_origin = -1;
-
- // Populate script template items previously sorted and now grouped by origin
- for (int i = 0; i < template_list.size(); i++) {
- if (int(templates[i].origin) != cur_origin) {
- template_menu->add_separator();
-
- String origin_name = origin_names[templates[i].origin];
-
- int last_index = template_menu->get_item_count() - 1;
- template_menu->set_item_text(last_index, origin_name);
-
- cur_origin = templates[i].origin;
- }
- String item_name = templates[i].name.capitalize();
- template_menu->add_item(item_name);
-
- int new_id = template_menu->get_item_count() - 1;
- templates[i].id = new_id;
- }
- // Disable overridden
- for (const KeyValue<String, Vector<int>> &E : template_overrides) {
- const Vector<int> &overrides = E.value;
-
- if (overrides.size() == 1) {
- continue; // doesn't override anything
- }
- const ScriptTemplateInfo &extended = template_list[overrides[0]];
-
- StringBuilder override_info;
- override_info += TTR("Overrides");
- override_info += ": ";
-
- for (int i = 1; i < overrides.size(); i++) {
- const ScriptTemplateInfo &overridden = template_list[overrides[i]];
-
- int disable_index = template_menu->get_item_index(overridden.id);
- template_menu->set_item_disabled(disable_index, true);
-
- override_info += origin_names[overridden.origin];
- if (i < overrides.size() - 1) {
- override_info += ", ";
- }
- }
- template_menu->set_item_icon(extended.id, get_theme_icon(SNAME("Override"), SNAME("EditorIcons")));
- template_menu->get_popup()->set_item_tooltip(extended.id, override_info.as_string());
- }
- // Reselect last selected template
- for (int i = 0; i < template_menu->get_item_count(); i++) {
- const String &ti = template_menu->get_item_text(i);
- if (language_menu->get_item_text(language_menu->get_selected()) == last_lang && last_template == ti) {
- template_menu->select(i);
- break;
- }
- }
- } else {
- template_menu->add_item(TTR("N/A"));
- script_template = "";
- }
-
- _template_changed(template_menu->get_selected());
EditorSettings::get_singleton()->set_project_metadata("script_setup", "last_selected_language", language_menu->get_item_text(language_menu->get_selected()));
_parent_name_changed(parent_name->get_text());
_update_dialog();
}
-void ScriptCreateDialog::_update_script_templates(const String &p_extension) {
- template_list.clear();
- template_overrides.clear();
-
- Vector<String> dirs;
-
- // Ordered from local to global for correct override mechanism
- dirs.push_back(EditorSettings::get_singleton()->get_project_script_templates_dir());
- dirs.push_back(EditorSettings::get_singleton()->get_script_templates_dir());
-
- for (int i = 0; i < dirs.size(); i++) {
- Vector<String> list = EditorSettings::get_singleton()->get_script_templates(p_extension, dirs[i]);
-
- for (int j = 0; j < list.size(); j++) {
- ScriptTemplateInfo sinfo;
- sinfo.origin = ScriptOrigin(i);
- sinfo.dir = dirs[i];
- sinfo.name = list[j];
- sinfo.extension = p_extension;
- template_list.push_back(sinfo);
-
- if (!template_overrides.has(sinfo.name)) {
- Vector<int> overrides;
- overrides.push_back(template_list.size() - 1); // first one
- template_overrides.insert(sinfo.name, overrides);
- } else {
- Vector<int> &overrides = template_overrides[sinfo.name];
- overrides.push_back(template_list.size() - 1);
- }
- }
- }
-}
-
void ScriptCreateDialog::_built_in_pressed() {
if (internal->is_pressed()) {
is_built_in = true;
@@ -517,6 +425,12 @@ void ScriptCreateDialog::_built_in_pressed() {
_update_dialog();
}
+void ScriptCreateDialog::_use_template_pressed() {
+ is_using_templates = use_templates->is_pressed();
+ EditorSettings::get_singleton()->set_meta("script_setup/use_script_templates", is_using_templates);
+ _update_dialog();
+}
+
void ScriptCreateDialog::_browse_path(bool browse_parent, bool p_save) {
is_browsing_parent = browse_parent;
@@ -545,16 +459,16 @@ void ScriptCreateDialog::_browse_path(bool browse_parent, bool p_save) {
}
void ScriptCreateDialog::_file_selected(const String &p_file) {
- String p = ProjectSettings::get_singleton()->localize_path(p_file);
+ String path = ProjectSettings::get_singleton()->localize_path(p_file);
if (is_browsing_parent) {
- parent_name->set_text("\"" + p + "\"");
+ parent_name->set_text("\"" + path + "\"");
_parent_name_changed(parent_name->get_text());
} else {
- file_path->set_text(p);
- _path_changed(p);
+ file_path->set_text(path);
+ _path_changed(path);
- String filename = p.get_file().get_basename();
- int select_start = p.rfind(filename);
+ String filename = path.get_file().get_basename();
+ int select_start = path.rfind(filename);
file_path->select(select_start, select_start + filename.length());
file_path->set_caret_column(select_start + filename.length());
file_path->grab_focus();
@@ -588,7 +502,7 @@ void ScriptCreateDialog::_path_changed(const String &p_path) {
return;
}
- /* Does file already exist */
+ // Check if file exists.
DirAccess *f = DirAccess::create(DirAccess::ACCESS_RESOURCES);
String p = ProjectSettings::get_singleton()->localize_path(p_path.strip_edges());
if (f->file_exists(p)) {
@@ -623,9 +537,98 @@ void ScriptCreateDialog::_msg_path_valid(bool valid, const String &p_msg) {
}
}
-void ScriptCreateDialog::_update_dialog() {
- /* "Add Script Dialog" GUI logic and script checks. */
+void ScriptCreateDialog::_update_template_menu() {
+ bool is_language_using_templates = language->is_using_templates();
+ template_menu->set_disabled(false);
+ template_menu->clear();
+ template_list.clear();
+ if (is_language_using_templates) {
+ // Get the latest templates used for each type of node from project settings then global settings.
+ Dictionary last_local_templates = EditorSettings::get_singleton()->get_project_metadata("script_setup", "templates_dictionary", Dictionary());
+ Dictionary last_global_templates;
+ if (EditorSettings::get_singleton()->has_meta("script_setup/templates_dictionary")) {
+ last_global_templates = (Dictionary)EditorSettings::get_singleton()->get_meta("script_setup/templates_dictionary");
+ }
+ String inherits_base_type = parent_name->get_text();
+
+ // If it inherits from a script, select Object instead.
+ if (inherits_base_type[0] == '"') {
+ inherits_base_type = "Object";
+ }
+
+ // Get all ancestor node for selected base node.
+ // There templates will also fit the base node.
+ Vector<String> hierarchy = get_hierarchy(inherits_base_type);
+ int last_used_template = -1;
+ int preselected_template = -1;
+ int previous_ancestor_level = -1;
+
+ // Templates can be stored in tree different locations.
+ Vector<ScriptLanguage::TemplateLocation> template_locations;
+ template_locations.append(ScriptLanguage::TEMPLATE_PROJECT);
+ template_locations.append(ScriptLanguage::TEMPLATE_EDITOR);
+ template_locations.append(ScriptLanguage::TEMPLATE_BUILT_IN);
+
+ for (const ScriptLanguage::TemplateLocation &template_location : template_locations) {
+ String display_name = _get_script_origin_label(template_location);
+ bool separator = false;
+ int ancestor_level = 0;
+ for (const String &current_node : hierarchy) {
+ Vector<ScriptLanguage::ScriptTemplate> templates_found;
+ if (template_location == ScriptLanguage::TEMPLATE_BUILT_IN) {
+ templates_found = language->get_built_in_templates(current_node);
+ } else {
+ String template_directory;
+ if (template_location == ScriptLanguage::TEMPLATE_PROJECT) {
+ template_directory = EditorSettings::get_singleton()->get_project_script_templates_dir();
+ } else {
+ template_directory = EditorSettings::get_singleton()->get_script_templates_dir();
+ }
+ templates_found = _get_user_templates(language, current_node, template_directory, template_location);
+ }
+ if (!templates_found.is_empty()) {
+ if (!separator) {
+ template_menu->add_separator();
+ template_menu->set_item_text(template_menu->get_item_count() - 1, display_name);
+ separator = true;
+ }
+ for (ScriptLanguage::ScriptTemplate &t : templates_found) {
+ template_menu->add_item(t.inherit + ": " + t.name);
+ int id = template_menu->get_item_count() - 1;
+ // Check if this template should be preselected if node isn't in the last used dictionary.
+ if (ancestor_level < previous_ancestor_level || previous_ancestor_level == -1) {
+ previous_ancestor_level = ancestor_level;
+ preselected_template = id;
+ }
+ // Check for last used template for this node in project settings then in global settings.
+ if (last_local_templates.has(parent_name->get_text()) && t.get_hash() == String(last_local_templates[parent_name->get_text()])) {
+ last_used_template = id;
+ } else if (last_used_template == -1 && last_global_templates.has(parent_name->get_text()) && t.get_hash() == String(last_global_templates[parent_name->get_text()])) {
+ last_used_template = id;
+ }
+ t.id = id;
+ template_list.push_back(t);
+ String icon = has_theme_icon(t.inherit, SNAME("EditorIcons")) ? t.inherit : "Object";
+ template_menu->set_item_icon(id, get_theme_icon(icon, SNAME("EditorIcons")));
+ }
+ }
+ ancestor_level++;
+ }
+ }
+
+ if (last_used_template != -1) {
+ template_menu->select(last_used_template);
+ } else if (preselected_template != -1) {
+ template_menu->select(preselected_template);
+ }
+ }
+ _template_changed(template_menu->get_selected());
+}
+
+void ScriptCreateDialog::_update_dialog() {
+ // "Add Script Dialog" GUI logic and script checks.
+ _update_template_menu();
bool script_ok = true;
// Is script path/name valid (order from top to bottom)?
@@ -697,41 +700,51 @@ void ScriptCreateDialog::_update_dialog() {
// This warning isn't relevant if the script is built-in.
script_name_warning_label->set_visible(!is_built_in && _get_class_name() == parent_name->get_text());
- if (is_built_in) {
- get_ok_button()->set_text(TTR("Create"));
- parent_name->set_editable(true);
- parent_search_button->set_disabled(false);
- parent_browse_button->set_disabled(!can_inherit_from_file);
- _msg_path_valid(true, TTR("Built-in script (into scene file)."));
- } else if (is_new_script_created) {
- // New script created.
-
- get_ok_button()->set_text(TTR("Create"));
- parent_name->set_editable(true);
- parent_search_button->set_disabled(false);
- parent_browse_button->set_disabled(!can_inherit_from_file);
- if (is_path_valid) {
+ bool is_new_file = is_built_in || is_new_script_created;
+
+ parent_name->set_editable(is_new_file);
+ parent_search_button->set_disabled(!is_new_file);
+ parent_browse_button->set_disabled(!is_new_file || !can_inherit_from_file);
+ template_inactive_message = "";
+ String button_text = is_new_file ? TTR("Create") : TTR("Load");
+ get_ok_button()->set_text(button_text);
+
+ if (is_new_file) {
+ if (is_built_in) {
+ _msg_path_valid(true, TTR("Built-in script (into scene file)."));
+ }
+ if (is_new_script_created && is_path_valid) {
_msg_path_valid(true, TTR("Will create a new script file."));
}
- } else if (load_enabled) {
- // Script loaded.
-
- get_ok_button()->set_text(TTR("Load"));
- parent_name->set_editable(false);
- parent_search_button->set_disabled(true);
- parent_browse_button->set_disabled(true);
- if (is_path_valid) {
- _msg_path_valid(true, TTR("Will load an existing script file."));
+ } else {
+ if (load_enabled) {
+ template_inactive_message = TTR("Using existing script file.");
+ if (is_path_valid) {
+ _msg_path_valid(true, TTR("Will load an existing script file."));
+ }
+ } else {
+ template_inactive_message = TTR("Using existing script file.");
+ _msg_path_valid(false, TTR("Script file already exists."));
+ script_ok = false;
+ }
+ }
+
+ // Show templates list if needed.
+ if (is_using_templates) {
+ // Check if at least one suitable template has been found.
+ if (template_menu->get_item_count() == 0 && template_inactive_message.is_empty()) {
+ template_inactive_message = TTR("No suitable template.");
}
} else {
- get_ok_button()->set_text(TTR("Create"));
- parent_name->set_editable(true);
- parent_search_button->set_disabled(false);
- parent_browse_button->set_disabled(!can_inherit_from_file);
- _msg_path_valid(false, TTR("Script file already exists."));
+ template_inactive_message = TTR("Empty");
+ }
- script_ok = false;
+ if (!template_inactive_message.is_empty()) {
+ template_menu->set_disabled(true);
+ template_menu->clear();
+ template_menu->add_item(template_inactive_message);
}
+ template_info_label->set_visible(!template_menu->is_disabled());
get_ok_button()->set_disabled(!script_ok);
@@ -745,6 +758,122 @@ void ScriptCreateDialog::_update_dialog() {
}
}
+ScriptLanguage::ScriptTemplate ScriptCreateDialog::_get_current_template() const {
+ int selected_id = template_menu->get_selected_id();
+ for (const ScriptLanguage::ScriptTemplate &t : template_list) {
+ if (is_using_templates) {
+ if (t.id == selected_id) {
+ return t;
+ }
+ } else {
+ // Using empty built-in template if templates are disabled.
+ if (t.origin == ScriptLanguage::TemplateLocation::TEMPLATE_BUILT_IN && t.name == "Empty") {
+ return t;
+ }
+ }
+ }
+ return ScriptLanguage::ScriptTemplate();
+}
+
+Vector<ScriptLanguage::ScriptTemplate> ScriptCreateDialog::_get_user_templates(const ScriptLanguage *language, const StringName &p_object, const String &p_dir, const ScriptLanguage::TemplateLocation &p_origin) const {
+ Vector<ScriptLanguage::ScriptTemplate> user_templates;
+ String extension = language->get_extension();
+
+ String dir_path = p_dir.plus_file(p_object);
+
+ DirAccess *d = DirAccess::open(dir_path);
+ if (d) {
+ d->list_dir_begin();
+ String file = d->get_next();
+ while (file != String()) {
+ if (file.get_extension() == extension) {
+ user_templates.append(_parse_template(language, dir_path, file, p_origin, p_object));
+ }
+ file = d->get_next();
+ }
+ d->list_dir_end();
+ memdelete(d);
+ }
+ return user_templates;
+}
+
+ScriptLanguage::ScriptTemplate ScriptCreateDialog::_parse_template(const ScriptLanguage *language, const String &p_path, const String &p_filename, const ScriptLanguage::TemplateLocation &p_origin, const String &p_inherits) const {
+ ScriptLanguage::ScriptTemplate script_template = ScriptLanguage::ScriptTemplate();
+ script_template.origin = p_origin;
+ script_template.inherit = p_inherits;
+ String space_indent = " ";
+ // Get meta delimiter
+ String meta_delimiter = String();
+ List<String> comment_delimiters;
+ language->get_comment_delimiters(&comment_delimiters);
+ for (const String &script_delimiter : comment_delimiters) {
+ if (script_delimiter.find(" ") == -1) {
+ meta_delimiter = script_delimiter;
+ break;
+ }
+ }
+ String meta_prefix = meta_delimiter + " meta-";
+
+ // Parse file for meta-information and script content
+ Error err;
+ FileAccess *file = FileAccess::open(p_path.plus_file(p_filename), FileAccess::READ, &err);
+ if (!err) {
+ while (!file->eof_reached()) {
+ String line = file->get_line();
+ if (line.begins_with(meta_prefix)) {
+ // Store meta information
+ line = line.substr(meta_prefix.length(), -1);
+ if (line.begins_with("name")) {
+ script_template.name = line.substr(5, -1).strip_edges();
+ }
+ if (line.begins_with("description")) {
+ script_template.description = line.substr(12, -1).strip_edges();
+ }
+ if (line.begins_with("space-indent")) {
+ String indent_value = line.substr(17, -1).strip_edges();
+ if (indent_value.is_valid_int()) {
+ space_indent = "";
+ for (int i = 0; i < indent_value.to_int(); i++) {
+ space_indent += " ";
+ }
+ } else {
+ WARN_PRINT(vformat("Template meta-use_space_indent need to be a valid integer value. Found %s.", indent_value));
+ }
+ }
+ } else {
+ // Store script
+ if (space_indent != "") {
+ line = line.replace(space_indent, "_TS_");
+ }
+ script_template.content += line.replace("\t", "_TS_") + "\n";
+ }
+ }
+ file->close();
+ memdelete(file);
+ }
+
+ script_template.content = script_template.content.lstrip("\n");
+
+ // Get name from file name if no name in meta information
+ if (script_template.name == String()) {
+ script_template.name = p_filename.get_basename().replace("_", " ").capitalize();
+ }
+
+ return script_template;
+}
+
+String ScriptCreateDialog::_get_script_origin_label(const ScriptLanguage::TemplateLocation &p_origin) const {
+ switch (p_origin) {
+ case ScriptLanguage::TEMPLATE_BUILT_IN:
+ return TTR("Built-in");
+ case ScriptLanguage::TEMPLATE_EDITOR:
+ return TTR("Editor");
+ case ScriptLanguage::TEMPLATE_PROJECT:
+ return TTR("Project");
+ }
+ return "";
+}
+
void ScriptCreateDialog::_bind_methods() {
ClassDB::bind_method(D_METHOD("config", "inherits", "path", "built_in_enabled", "load_enabled"), &ScriptCreateDialog::config, DEFVAL(true), DEFVAL(true));
@@ -757,7 +886,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
GridContainer *gc = memnew(GridContainer);
gc->set_columns(2);
- /* Error Messages Field */
+ /* Information Messages Field */
VBoxContainer *vb = memnew(VBoxContainer);
@@ -782,6 +911,10 @@ ScriptCreateDialog::ScriptCreateDialog() {
script_name_warning_label->set_autowrap_mode(Label::AUTOWRAP_WORD_SMART);
script_name_warning_label->hide();
+ template_info_label = memnew(Label);
+ vb->add_child(template_info_label);
+ template_info_label->set_autowrap_mode(Label::AUTOWRAP_WORD_SMART);
+
status_panel = memnew(PanelContainer);
status_panel->set_h_size_flags(Control::SIZE_FILL);
status_panel->set_v_size_flags(Control::SIZE_EXPAND_FILL);
@@ -801,7 +934,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
/* Language */
language_menu = memnew(OptionButton);
- language_menu->set_custom_minimum_size(Size2(250, 0) * EDSCALE);
+ language_menu->set_custom_minimum_size(Size2(350, 0) * EDSCALE);
language_menu->set_h_size_flags(Control::SIZE_EXPAND_FILL);
gc->add_child(memnew(Label(TTR("Language:"))));
gc->add_child(language_menu);
@@ -819,7 +952,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
}
current_language = default_language;
- language_menu->connect("item_selected", callable_mp(this, &ScriptCreateDialog::_lang_changed));
+ language_menu->connect("item_selected", callable_mp(this, &ScriptCreateDialog::_language_changed));
/* Inherits */
@@ -851,10 +984,24 @@ ScriptCreateDialog::ScriptCreateDialog() {
/* Templates */
- template_menu = memnew(OptionButton);
+ is_using_templates = true;
gc->add_child(memnew(Label(TTR("Template:"))));
- gc->add_child(template_menu);
+ HBoxContainer *template_hb = memnew(HBoxContainer);
+ template_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+
+ use_templates = memnew(CheckBox);
+ use_templates->set_pressed(is_using_templates);
+ use_templates->connect("pressed", callable_mp(this, &ScriptCreateDialog::_use_template_pressed));
+ template_hb->add_child(use_templates);
+
+ template_inactive_message = "";
+
+ template_menu = memnew(OptionButton);
+ template_menu->set_h_size_flags(Control::SIZE_EXPAND_FILL);
template_menu->connect("item_selected", callable_mp(this, &ScriptCreateDialog::_template_changed));
+ template_hb->add_child(template_menu);
+
+ gc->add_child(template_hb);
/* Built-in Script */
diff --git a/editor/script_create_dialog.h b/editor/script_create_dialog.h
index dba798eea7..67d30e21fb 100644
--- a/editor/script_create_dialog.h
+++ b/editor/script_create_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -31,6 +31,7 @@
#ifndef SCRIPT_CREATE_DIALOG_H
#define SCRIPT_CREATE_DIALOG_H
+#include "core/object/script_language.h"
#include "editor/editor_file_dialog.h"
#include "editor/editor_settings.h"
#include "scene/gui/check_box.h"
@@ -50,6 +51,7 @@ class ScriptCreateDialog : public ConfirmationDialog {
Label *path_error_label;
Label *builtin_warning_label;
Label *script_name_warning_label;
+ Label *template_info_label;
PanelContainer *status_panel;
LineEdit *parent_name;
Button *parent_browse_button;
@@ -61,12 +63,14 @@ class ScriptCreateDialog : public ConfirmationDialog {
Button *path_button;
EditorFileDialog *file_browse;
CheckBox *internal;
+ CheckBox *use_templates;
VBoxContainer *path_vb;
AcceptDialog *alert;
CreateDialog *select_class;
bool path_valid;
bool create_new;
bool is_browsing_parent;
+ String template_inactive_message;
String initial_bp;
bool is_new_script_created;
bool is_path_valid;
@@ -76,6 +80,7 @@ class ScriptCreateDialog : public ConfirmationDialog {
bool is_parent_name_valid;
bool is_class_name_valid;
bool is_built_in;
+ bool is_using_templates;
bool built_in_enabled;
bool load_enabled;
int current_language;
@@ -85,23 +90,8 @@ class ScriptCreateDialog : public ConfirmationDialog {
Control *path_controls[2];
Control *name_controls[2];
- enum ScriptOrigin {
- SCRIPT_ORIGIN_PROJECT,
- SCRIPT_ORIGIN_EDITOR,
- };
- struct ScriptTemplateInfo {
- int id = 0;
- ScriptOrigin origin = ScriptOrigin::SCRIPT_ORIGIN_EDITOR;
- String dir;
- String name;
- String extension;
- };
-
- String script_template;
- Vector<ScriptTemplateInfo> template_list;
- Map<String, Vector<int>> template_overrides; // name : indices
-
- void _update_script_templates(const String &p_extension);
+ Vector<ScriptLanguage::ScriptTemplate> template_list;
+ ScriptLanguage *language;
String base_type;
@@ -109,8 +99,9 @@ class ScriptCreateDialog : public ConfirmationDialog {
bool _can_be_built_in();
void _path_changed(const String &p_path = String());
void _path_submitted(const String &p_path = String());
- void _lang_changed(int l = 0);
+ void _language_changed(int l = 0);
void _built_in_pressed();
+ void _use_template_pressed();
bool _validate_parent(const String &p_string);
bool _validate_class(const String &p_string);
String _validate_path(const String &p_path, bool p_file_must_exist);
@@ -125,9 +116,15 @@ class ScriptCreateDialog : public ConfirmationDialog {
virtual void ok_pressed() override;
void _create_new();
void _load_exist();
+ Vector<String> get_hierarchy(String p_object) const;
void _msg_script_valid(bool valid, const String &p_msg = String());
void _msg_path_valid(bool valid, const String &p_msg = String());
+ void _update_template_menu();
void _update_dialog();
+ ScriptLanguage::ScriptTemplate _get_current_template() const;
+ Vector<ScriptLanguage::ScriptTemplate> _get_user_templates(const ScriptLanguage *language, const StringName &p_object, const String &p_dir, const ScriptLanguage::TemplateLocation &p_origin) const;
+ ScriptLanguage::ScriptTemplate _parse_template(const ScriptLanguage *language, const String &p_path, const String &p_filename, const ScriptLanguage::TemplateLocation &p_origin, const String &p_inherits) const;
+ String _get_script_origin_label(const ScriptLanguage::TemplateLocation &p_origin) const;
protected:
void _notification(int p_what);
diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp
index 8e12cb76ef..71edeefd10 100644
--- a/editor/settings_config_dialog.cpp
+++ b/editor/settings_config_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/settings_config_dialog.h b/editor/settings_config_dialog.h
index 7317a014b2..c3dfd736d5 100644
--- a/editor/settings_config_dialog.h
+++ b/editor/settings_config_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/shader_create_dialog.cpp b/editor/shader_create_dialog.cpp
index 302f7f78c5..239860c9ab 100644
--- a/editor/shader_create_dialog.cpp
+++ b/editor/shader_create_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/shader_create_dialog.h b/editor/shader_create_dialog.h
index cd20897ddb..be0fef211c 100644
--- a/editor/shader_create_dialog.h
+++ b/editor/shader_create_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/shader_globals_editor.cpp b/editor/shader_globals_editor.cpp
index 31c1dc85a8..f97ffcae65 100644
--- a/editor/shader_globals_editor.cpp
+++ b/editor/shader_globals_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/shader_globals_editor.h b/editor/shader_globals_editor.h
index 84ab6ac063..efec9f4219 100644
--- a/editor/shader_globals_editor.h
+++ b/editor/shader_globals_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/editor/template_builders.py b/editor/template_builders.py
new file mode 100644
index 0000000000..efed567d46
--- /dev/null
+++ b/editor/template_builders.py
@@ -0,0 +1,95 @@
+"""Functions used to generate source files during build time
+All such functions are invoked in a subprocess on Windows to prevent build flakiness.
+"""
+
+import os
+from io import StringIO
+from platform_methods import subprocess_main
+
+
+def parse_template(inherits, source, delimiter):
+ script_template = {
+ "inherits": inherits,
+ "name": "",
+ "description": "",
+ "version": "",
+ "script": "",
+ "space-indent": "4",
+ }
+ meta_prefix = delimiter + " meta-"
+ meta = ["name", "description", "version", "space-indent"]
+
+ with open(source) as f:
+ lines = f.readlines()
+ for line in lines:
+ if line.startswith(meta_prefix):
+ line = line[len(meta_prefix) :]
+ for m in meta:
+ if line.startswith(m):
+ strip_lenght = len(m) + 1
+ script_template[m] = line[strip_lenght:].strip()
+ else:
+ script_template["script"] += line
+ if script_template["space-indent"] != "":
+ indent = " " * int(script_template["space-indent"])
+ script_template["script"] = script_template["script"].replace(indent, "_TS_")
+ if script_template["name"] == "":
+ script_template["name"] = os.path.splitext(os.path.basename(source))[0].replace("_", " ").title()
+ script_template["script"] = (
+ script_template["script"].replace('"', '\\"').lstrip().replace("\n", "\\n").replace("\t", "_TS_")
+ )
+ return (
+ '{ String("'
+ + script_template["inherits"]
+ + '"), String("'
+ + script_template["name"]
+ + '"), String("'
+ + script_template["description"]
+ + '"), String("'
+ + script_template["script"]
+ + '")'
+ + " },\n"
+ )
+
+
+def make_templates(target, source, env):
+ dst = target[0]
+ s = StringIO()
+ s.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n\n")
+ s.write("#ifndef _CODE_TEMPLATES_H\n")
+ s.write("#define _CODE_TEMPLATES_H\n\n")
+ s.write('#include "core/object/object.h"\n')
+ s.write('#include "core/object/script_language.h"\n')
+
+ delimiter = "#" # GDScript single line comment delimiter by default.
+ if source:
+ ext = os.path.splitext(source[0])[1]
+ if ext == ".cs":
+ delimiter = "//"
+
+ parsed_template_string = ""
+ number_of_templates = 0
+
+ for filepath in source:
+ node_name = os.path.basename(os.path.dirname(filepath))
+ parsed_template = parse_template(node_name, filepath, delimiter)
+ parsed_template_string += "\t" + parsed_template
+ number_of_templates += 1
+
+ s.write("\nstatic const int TEMPLATES_ARRAY_SIZE = " + str(number_of_templates) + ";\n")
+ s.write("\nstatic const struct ScriptLanguage::ScriptTemplate TEMPLATES[" + str(number_of_templates) + "] = {\n")
+
+ s.write(parsed_template_string)
+
+ s.write("};\n")
+
+ s.write("\n#endif\n")
+
+ with open(dst, "w") as f:
+ f.write(s.getvalue())
+
+ s.close()
+
+
+if __name__ == "__main__":
+ subprocess_main(globals())
diff --git a/editor/translations/af.po b/editor/translations/af.po
index b2224828e7..fb80e360f9 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -1,6 +1,6 @@
# Afrikaans translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Ray West <the.raxar@gmail.com>, 2017.
# Julius Stopforth <jjstopforth@gmail.com>, 2018.
@@ -331,6 +331,10 @@ msgid "Duplicate Key(s)"
msgstr "Anim Dupliseer Sleutels"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "Anim Skrap Sleutels"
@@ -505,6 +509,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Skaal Sleutels"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1524,6 +1533,10 @@ msgid "Invalid name."
msgstr "Ongeldige naam."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Geldige karakters:"
@@ -1634,7 +1647,9 @@ msgstr "Toneel word opgedateer..."
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1656,6 +1671,7 @@ msgstr "Skep Vouer"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Naam:"
@@ -2161,7 +2177,7 @@ msgid "Properties"
msgstr "Eienskappe"
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2318,6 +2334,19 @@ msgstr "Eienskappe"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2327,6 +2356,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Eienskappe"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Eienskappe"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Eienskappe"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Afvoer:"
@@ -3079,6 +3131,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4183,6 +4249,11 @@ msgstr "Vind"
msgid "Find:"
msgstr "Vind"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Vervang"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4207,6 +4278,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Vervang Alles"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4219,7 +4295,7 @@ msgstr "Vervang"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Vervang Alles"
#: editor/find_in_files.cpp
@@ -4447,6 +4523,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5945,6 +6027,11 @@ msgstr "Skrap gekose lêers?"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Skrap gekose lêers?"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Verwyder geselekteerde baan."
@@ -5974,6 +6061,10 @@ msgid "Scale Mode"
msgstr "Wissel Modus"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6069,20 +6160,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Skrap"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Dupliseer Seleksie"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Verwyder Seleksie"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Verwyder Seleksie"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "EnkelHouer"
@@ -7752,6 +7867,11 @@ msgid "Find in Files..."
msgstr "Vind"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Vind"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8283,6 +8403,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Laai Verstek"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9049,6 +9182,28 @@ msgstr "Lede"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Anim Voeg Baan By"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Eienskappe"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim Baan Hernoem"
@@ -9073,20 +9228,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Anim Voeg Baan By"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Nodus Naam:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Laai Verstek"
@@ -9103,6 +9244,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Lede"
@@ -11542,11 +11687,6 @@ msgid "Batch Rename"
msgstr "Pas Letterkas"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Vervang"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11829,6 +11969,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12795,63 +12949,68 @@ msgstr "Alle Seleksie"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13834,6 +13993,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14040,16 +14209,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14448,10 +14623,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 47d1750765..406f882df8 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -1,6 +1,6 @@
# Arabic translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Adel <dragonhunter250@gmail.com>, 2018.
# athomield <athomield@hotmail.com>, 2017.
@@ -51,7 +51,7 @@
# Kareem Abduljaleel <karemjaleel34@gmail.com>, 2021.
# ILG - Game <moegypt277@gmail.com>, 2021.
# Hatim Jamal <hatimjamal8@gmail.com>, 2021.
-# HASSAN GAMER - حسن جيمر <gamerhassan55@gmail.com>, 2021.
+# HASSAN GAMER - حسن جيمر <gamerhassan55@gmail.com>, 2021, 2022.
# abubakrAlsaab <madeinsudan19@gmail.com>, 2021.
# Hafid Talbi <atalbiie@gmail.com>, 2021.
# Hareth Mohammed <harethpy@gmail.com>, 2021.
@@ -62,8 +62,8 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-14 15:28+0000\n"
-"Last-Translator: Spirit <i8bou3@gmail.com>\n"
+"PO-Revision-Date: 2022-01-03 03:54+0000\n"
+"Last-Translator: HASSAN GAMER - حسن جيمر <gamerhassan55@gmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/"
"godot/ar/>\n"
"Language: ar\n"
@@ -72,7 +72,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -374,6 +374,11 @@ msgid "Duplicate Key(s)"
msgstr "Ù…ÙØªØ§Ø­ (Ù…ÙØ§ØªÙŠØ­) المكررة"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Ø¥Ø¶Ø§ÙØ© %d إطار(ات)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Ù…ÙØªØ§Ø­ الحذÙ()"
@@ -540,6 +545,11 @@ msgid ""
msgstr "هذا الخيار لا يعمل لتعديل منحنى بيزر (Bezier), لأنه Ùقط مقطع واحد."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Ù…ÙØªØ§Ø­ تكبير حركة"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1517,6 +1527,10 @@ msgid "Invalid name."
msgstr "اسم غير صالح."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "الأحر٠الصالحة:"
@@ -1621,7 +1635,9 @@ msgstr "ÙŠÙØ­Ø¯Ø« المشهد..."
msgid "[empty]"
msgstr "[ÙØ§Ø±Øº]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[غير محÙوظ]"
@@ -1642,6 +1658,7 @@ msgstr "أنشئ مجلد"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "الأسم:"
@@ -2133,7 +2150,8 @@ msgid "Properties"
msgstr "خاصيات"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "يتجاوز:"
#: editor/editor_help.cpp
@@ -2142,7 +2160,7 @@ msgstr "Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ:"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "Ø§Ù„Ø·ÙØ±Ù‚"
+msgstr "طرق"
#: editor/editor_help.cpp
msgid "Theme Properties"
@@ -2155,7 +2173,7 @@ msgstr "اللون"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constants"
-msgstr "الثوابت"
+msgstr "ثوابت"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -2277,6 +2295,20 @@ msgstr "خاصية الموضوع (Theme)"
msgid "Property:"
msgstr "خاصية:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(القيمة)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2286,6 +2318,29 @@ msgstr "تحديد %s"
msgid "Set Multiple:"
msgstr "تحديد التكرار:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "خاصيات"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "خاصيات"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "نسخ مسار النص البرمجي"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Ø§Ù„Ù…ÙØ®Ø±Ø¬Ø§Øª:"
@@ -3096,6 +3151,20 @@ msgstr ""
"المشروع المشغل."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "مزامنة تغييرات المشهد"
@@ -4233,6 +4302,10 @@ msgstr "إبحث ÙÙŠ Ø§Ù„Ù…Ù„ÙØ§Øª"
msgid "Find:"
msgstr "إيجاد:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "إستبدال:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "مجلد:"
@@ -4258,6 +4331,11 @@ msgstr "ابحث..."
msgid "Replace..."
msgstr "استبدال..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "إستبدال الكل"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "إيجاد: "
@@ -4267,8 +4345,9 @@ msgid "Replace: "
msgstr "إستبدال: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "إستبدال الكل (بلا تراجع)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "إستبدال الكل"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4481,6 +4560,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr "تحذير: هناك Ù…Ùلحقات تستخدم هذا المورد، ربما سيتوق٠تحميلها بشكل صحيح."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "ÙØ´Ù„ تحميل المورد."
@@ -5959,6 +6044,11 @@ msgstr "Alt+سحب: تحريك"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+سحب: تحريك"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "ازالة الكائن المحدد او الإنتقال المحدد."
@@ -5990,6 +6080,10 @@ msgid "Scale Mode"
msgstr "وضع التحجيم"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6086,20 +6180,44 @@ msgstr "Ù‚ÙÙ„ العنصر المحدد ÙÙŠ هذا المكان (لا يمكن
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Ø­ÙØ¯Ø¯ القÙÙ„"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "إلغاء القÙÙ„ عن هذا العنصر (يمكن تحريكه الأن)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Ø­ÙØ¯Ø¯ إلغاء القÙÙ„"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "تأكد من أن الطÙÙ„ للعنصر غير قابل للتحديد."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Ø­ÙØ¯Ø¯ التجميع"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "إرجاع مقدرة تحديد الطÙÙ„ للعنصر."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Ø­ÙØ¯Ø¯ إلغاء التجميع"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "إعدادات الهكيل العظمي"
@@ -7761,6 +7879,11 @@ msgid "Find in Files..."
msgstr "Ø¬ÙØ¯ ÙÙŠ Ø§Ù„Ù…Ù„ÙØ§Øª..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "استبدال..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "مساعدة سياقية"
@@ -8312,6 +8435,19 @@ msgid "Toggle Freelook"
msgstr "إلغاء/ØªÙØ¹ÙŠÙ„ وضع الرؤية Ø§Ù„Ø­ÙØ±Ø©"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "إعادة التعيين إلى Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "التحوّل"
@@ -9094,6 +9230,29 @@ msgid "Another Theme"
msgstr "استيراد الموضوع Theme"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Ø¥Ø¶Ø§ÙØ© نوع"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Ø§Ù„Ù…Ù„ÙØ§Øª Ø§Ù„Ù…ØªÙˆØ§ÙØ±Ø©:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "اسم Ø§Ù„Ù…Ù„Ù ÙØ§Ø±Øº."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "هل أنت واثق من ÙØªØ­ أكثر من مشروع؟"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Confirm Item Rename"
msgstr "تغيير إسم مسار التحريك"
@@ -9120,19 +9279,6 @@ msgstr ""
"المشابهة ÙÙŠ جميع صناديق المظهر من هذا النوع."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Ø¥Ø¶Ø§ÙØ© نوع"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Ø¥Ø¶Ø§ÙØ© نوع للعنصر"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "نوع العÙقدة"
-
-#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "تحميل Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ"
@@ -9151,6 +9297,10 @@ msgid "Override all default type items."
msgstr "تجاوز جميع أنواع العناصر Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ©."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Ø¥Ø¶Ø§ÙØ© نوع للعنصر"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "الموضوع"
@@ -11681,10 +11831,6 @@ msgid "Batch Rename"
msgstr "إعادة تسمية Ø§Ù„Ø¯ÙØ¹Ø©"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "إستبدال:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "بادئة:"
@@ -11971,6 +12117,20 @@ msgstr ""
"مشهد جديد موروث… بدلاً عن ذلك."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Ø§Ø­ÙØ¸ المشهد الجديد Ùƒ..."
@@ -12944,63 +13104,69 @@ msgstr "تعبئة Ø§Ù„Ù…ÙØ­Ø¯Ø¯"
msgid "End of inner exception stack trace"
msgstr "نهاية تتبع مكدس الاستثناء الداخلي"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"يجب تعيين مصدر مجسم-التنقل (NavigationMesh) أو إنشاؤه حتى تعمل هذه العقدة."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "اطبخ شبكة ملاحة"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "إخلاء ميش المحاور."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "ÙŠÙØ¬Ù‡Ø² الإعدادات..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "يحسب حجم الشبكة..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "إنشاء مجال Ø§Ù„Ø¥Ø±ØªÙØ§Ø¹..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "تعليم مثلثات التحرك..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "يبني مجال Ø§Ù„Ø¥Ø±ØªÙØ§Ø¹ المدمج..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "تقويض منطقة السير..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "تجزئة..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "إنشاء المحيط..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "إنشاء نموذج الميش..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "يحول إلي ميش التنقل المحلي..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "منشئ تثبيت ميش التنقل:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "توزيع الأشكال الهندسية..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "تم!"
@@ -14065,6 +14231,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Ø§Ù„Ù…ÙØ¶Ù„ع Ø§Ù„Ù…ÙØºÙ„Ù‚ لهذا الغَلق ÙØ§Ø±Øº. الرجاء رسم Ù…ÙØ¶Ù„ع."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14338,12 +14514,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "بقعة الضوء بزاوية أكبر من 90 درجة لا يمكنها إلقاء الظلال."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"يجب تعيين مصدر مجسم-التنقل (NavigationMesh) أو إنشاؤه حتى تعمل هذه العقدة."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14351,6 +14526,12 @@ msgstr ""
"يجب أن يكون نموذج-مجسم-التنقل (NavigationMeshInstance) تابعًا أو Ø­Ùيدًا لعقدة "
"التنقل (Navigation node). انه ÙŠÙˆÙØ± Ùقط بيانات التنقل."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "لم يتم تعيين أي شكل."
@@ -14795,10 +14976,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "تكليÙها Ù„ÙˆØ¸ÙŠÙØ© برمجية."
diff --git a/editor/translations/az.po b/editor/translations/az.po
index ff29feec0c..bc7f45ca0f 100644
--- a/editor/translations/az.po
+++ b/editor/translations/az.po
@@ -1,6 +1,6 @@
# Azerbaijani translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Jafar Tarverdiyev <cefertarverdiyevv@gmail.com>, 2021.
@@ -341,6 +341,10 @@ msgid "Duplicate Key(s)"
msgstr "Açar(lar)ı çoxalt"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Açar(lar)ı sil"
@@ -518,6 +522,11 @@ msgstr "Bu seçim Bezier redaktəsi üçün işləmir, çünki yalnız bir izlid
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animasya Açarlarını Ölçülə"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1514,6 +1523,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1618,7 +1631,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1639,6 +1654,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2112,7 +2128,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2248,6 +2264,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2257,6 +2286,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Animasiya xüsusiyyətləri."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Animasiya xüsusiyyətləri."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Animasiya xüsusiyyətləri."
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2995,6 +3047,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4056,6 +4122,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4079,6 +4149,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Hamısını ÆvÉ™z Et"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4088,8 +4163,9 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Hamısını ÆvÉ™z Et"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4302,6 +4378,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5726,6 +5808,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5754,6 +5840,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5848,20 +5938,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Seçili açar(lar)-ı çoxalt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Seçili açar(lar)-ı çoxalt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Seçili açar(lar)-ı çoxalt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Seçili açar(lar)-ı çoxalt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7472,6 +7586,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Hamısını ÆvÉ™z Et"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7984,6 +8103,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8699,37 +8830,47 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Pano boÅŸdur!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Æminsinizmi ki, bütün É™laqÉ™lÉ™ri bu siqnaldan çıxartmaq istÉ™yirsiniz?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8749,6 +8890,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11091,10 +11236,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11367,6 +11508,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12297,63 +12452,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13289,6 +13449,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13495,16 +13665,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13899,10 +14075,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index fe8e1bc38f..03d385bf53 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -1,6 +1,6 @@
# Bulgarian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Bojidar Marinov <bojidar.marinov.bg@gmail.com>, 2016.
# Иван Пенев (Ðдмирал ÐнимЕ) <aeternus.arcis@gmail.com>, 2016-2017.
@@ -13,13 +13,14 @@
# zooid <the.zooid@gmail.com>, 2020.
# Любомир ВаÑилев <lyubomirv@gmx.com>, 2020, 2021.
# Ziv D <wizdavid@gmail.com>, 2020.
+# Violin Iliev <violin.developer@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-10-11 15:44+0000\n"
-"Last-Translator: Любомир ВаÑилев <lyubomirv@gmx.com>\n"
+"PO-Revision-Date: 2021-12-31 08:52+0000\n"
+"Last-Translator: Violin Iliev <violin.developer@gmail.com>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/godot-engine/"
"godot/bg/>\n"
"Language: bg\n"
@@ -27,7 +28,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 4.9-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -332,6 +333,11 @@ msgid "Duplicate Key(s)"
msgstr "Дублиране на ключа/ключовете"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "ДобавÑне на %d кадър/кадри"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Изтриване на ключа/ключовете"
@@ -494,6 +500,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1135,7 +1145,7 @@ msgstr "БлагодарноÑти от общноÑтта на Godot!"
#: editor/editor_about.cpp editor/editor_node.cpp editor/project_manager.cpp
msgid "Click to copy."
-msgstr ""
+msgstr "ÐатиÑни за да копираш."
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
@@ -1449,6 +1459,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1553,7 +1567,9 @@ msgstr "ОбновÑване на Ñцената..."
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1574,6 +1590,7 @@ msgstr "Създаване на папка"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Име:"
@@ -2045,8 +2062,9 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
-msgstr ""
+#, fuzzy
+msgid "overrides %s:"
+msgstr "ЗамÑна на вÑичко"
#: editor/editor_help.cpp
msgid "default:"
@@ -2182,6 +2200,20 @@ msgstr "СвойÑтво на тема"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(ÑтойноÑÑ‚)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2191,6 +2223,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Копиране на ÑвойÑтвата"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "ПоÑтавÑне на ÑвойÑтвата"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Копиране на ÑвойÑтвата"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2953,6 +3008,20 @@ msgstr ""
"видими в изпълнÑÐ²Ð°Ñ‰Ð¸Ñ Ñе проект."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4014,6 +4083,10 @@ msgstr "ТърÑене във файловете"
msgid "Find:"
msgstr "ТърÑене:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "ЗамÑна:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Папка:"
@@ -4037,6 +4110,11 @@ msgstr "ТърÑене..."
msgid "Replace..."
msgstr "ЗамÑна..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "ЗамÑна на вÑички"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "ТърÑене: "
@@ -4046,8 +4124,9 @@ msgid "Replace: "
msgstr "ЗамÑна: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "ЗамÑна на вÑички"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4260,6 +4339,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "РеÑурÑÑŠÑ‚ не може да бъде зареден."
@@ -5706,6 +5791,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Влачене: премеÑтване на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð²ÑŠÐ·ÐµÐ»."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Влачене: премеÑтване на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð²ÑŠÐ·ÐµÐ»."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Задаване на централната точка на възела."
@@ -5736,6 +5826,10 @@ msgid "Scale Mode"
msgstr "Режим на Ñкалиране"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5832,20 +5926,44 @@ msgstr "Заключване на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚ на мÑÑто (Ð
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Заключване на избраното"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Отключване на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚ (за да може да Ñе премеÑтва)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Изтриване на възела/възлите"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Прави така, че децата на този обект да не могат да бъдат избирани."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Групиране на избраното"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "ВъзÑтановÑва на ÑпоÑобноÑтта да Ñе избират децата на обекта."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Разгрупиране на избраното"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Опции на Ñкелета"
@@ -7470,6 +7588,11 @@ msgid "Find in Files..."
msgstr "ТърÑене във файловете…"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "ЗамÑна..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7989,6 +8112,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Връщане на Ñтандартните наÑтройки"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8702,6 +8838,28 @@ msgid "Another Theme"
msgstr "Друга тема"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "ДобавÑне на тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Ðалични профили:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Полигонната мрежа е празна!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Потвърждаване на преименуването на елемента"
@@ -8724,18 +8882,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "ДобавÑне на тип"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "ДобавÑне на тип елемент"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Типове на възлите:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Показване на Ñтандартните"
@@ -8752,6 +8898,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "ДобавÑне на тип елемент"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Тема:"
@@ -11114,10 +11264,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "ЗамÑна:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11390,6 +11536,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12329,63 +12489,70 @@ msgstr "Запълване на избраното"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"ТрÑбва да Ñе зададе или Ñъздаде реÑÑƒÑ€Ñ Ð¾Ñ‚ тип NavigationMesh, за може да "
+"работи този възел."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Изпичане на NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "ИзчиÑтване на навигационната полигонна мрежа."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Създаване на полигонна мрежа…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Преобразуване на навигационната полигонна мрежа в ÑобÑÑ‚Ð²ÐµÐ½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚â€¦"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "ÐаÑтройка на генератора на навигационни полигонни мрежи:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Готово!"
@@ -13351,6 +13518,16 @@ msgstr ""
"ПрикриващиÑÑ‚ полигон за този прикриващ обект е празен. МолÑ, нариÑувайте "
"полигон."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13568,13 +13745,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"ТрÑбва да Ñе зададе или Ñъздаде реÑÑƒÑ€Ñ Ð¾Ñ‚ тип NavigationMesh, за може да "
-"работи този възел."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -13582,6 +13757,12 @@ msgstr ""
"NavigationMeshInstance трÑбва да бъде дъщерен или под-дъщерен на възел от "
"тип Navigation. Той Ñамо предоÑÑ‚Ð°Ð²Ñ Ð´Ð°Ð½Ð½Ð¸Ñ‚Ðµ за навигирането."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13982,10 +14163,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index d2c5c1ce46..a5f504af97 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -1,6 +1,6 @@
# Bengali translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Abu Md. Maruf Sarker <maruf.webdev@gmail.com>, 2016-2017.
# Abdullah Zubair <abdullahzubair109@gmail.com>, 2017.
@@ -327,6 +327,11 @@ msgid "Duplicate Key(s)"
msgstr "কী (সমূহ) পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿ করà§à¦¨"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "ফà§à¦°à§‡à¦® যোগ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "কী (সমূহ) অপসারণ করà§à¦¨"
@@ -499,6 +504,11 @@ msgstr ""
"à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ বেজিয়ার সমà§à¦ªà¦¾à¦¦à¦¨à¦¾à¦° জনà§à¦¯ কাজ করে না, কারণ à¦à¦Ÿà¦¿ কেবলমাতà§à¦° Single টà§à¦°à§à¦¯à¦¾à¦•।"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° (Anim) চাবিসমূহের আকার পরিবরà§à¦¤à¦¨ করà§à¦¨"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1520,6 +1530,10 @@ msgid "Invalid name."
msgstr "অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ নাম।"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "গà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ অকà§à¦·à¦°à¦¸à¦®à§‚হ:"
@@ -1634,7 +1648,9 @@ msgstr "দৃশà§à¦¯ হাল নাগাদ হচà§à¦›à§‡..."
msgid "[empty]"
msgstr "(খালি/শূনà§à¦¯)"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[অসংরকà§à¦·à¦¿à¦¤]"
@@ -1656,6 +1672,7 @@ msgstr "ফোলà§à¦¡à¦¾à¦° তৈরি করà§à¦¨"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "নাম:"
@@ -2182,7 +2199,7 @@ msgstr "পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿-সমূহ:"
#: editor/editor_help.cpp
#, fuzzy
-msgid "override:"
+msgid "overrides %s:"
msgstr "ওভাররাইড..."
#: editor/editor_help.cpp
@@ -2350,6 +2367,20 @@ msgstr "পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿-সমূহ:"
msgid "Property:"
msgstr "পà§à¦°à¦ªà¦¾à¦°à§à¦Ÿà¦¿:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "মান"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2359,6 +2390,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿-সমূহ:"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿-সমূহ:"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "পথ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨"
+
#: editor/editor_log.cpp
#, fuzzy
msgid "Output:"
@@ -3192,6 +3246,20 @@ msgstr ""
"পলিগন-সমূহ দৃশà§à¦¯à¦®à¦¾à¦¨ হবে।"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "দৃশà§à¦¯à§‡à¦° পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ সà§à¦¸à¦‚গত/সমনà§à¦¬à§Ÿ করà§à¦¨"
@@ -4410,6 +4478,11 @@ msgstr "টাইল খà§à¦à¦œà§à¦¨"
msgid "Find:"
msgstr "সনà§à¦§à¦¾à¦¨ করà§à¦¨"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4435,6 +4508,11 @@ msgstr "খà§à¦à¦œà§à¦¨..."
msgid "Replace..."
msgstr "পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "সমসà§à¦¤à¦—à§à¦²à¦¿ পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4447,7 +4525,7 @@ msgstr "পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "সমসà§à¦¤à¦—à§à¦²à¦¿ পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨"
#: editor/find_in_files.cpp
@@ -4686,6 +4764,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "রিসোরà§à¦¸ লোড বà§à¦¯à¦°à§à¦¥ হয়েছে।"
@@ -6265,6 +6349,11 @@ msgstr "অলà§à¦Ÿà¦¾à¦° কী + টান: সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à¦°"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "অলà§à¦Ÿà¦¾à¦° কী + টান: সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à¦°"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ টà§à¦°à§à¦¯à¦¾à¦•/পথ অপসারণ করà§à¦¨à¥¤"
@@ -6297,6 +6386,10 @@ msgid "Scale Mode"
msgstr "মাপের মোড করà§à¦¨ (R)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6408,20 +6501,44 @@ msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ বসà§à¦¤à§à¦Ÿà¦¿à¦•ে à¦à¦‡ সà§à¦¥
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ বসà§à¦¤à§à¦Ÿà¦¿à¦•ে মà§à¦•à§à¦¤ করà§à¦¨ (সরানো সমà§à¦­à¦¬ হবে)।"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "বসà§à¦¤à§à¦° অনà§à¦¤à¦°à§à¦­à§à¦•à§à¦¤-সমূহ যাতে নিরà§à¦¬à¦¾à¦šà¦¨à¦¯à§‹à¦—à§à¦¯ না হয় তা নিশà§à¦šà¦¿à¦¤ করে।"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "বসà§à¦¤à§à¦° অনà§à¦¤à¦°à§à¦­à§à¦•à§à¦¤-সমূহের নিরà§à¦¬à¦¾à¦šà¦¨à¦¯à§‹à¦—à§à¦¯à¦¤à¦¾ পà§à¦¨à¦°à¦¾à§Ÿ ফিরিয়ে আনে।"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "সà§à¦•েলেটন/কাঠাম..."
@@ -8178,6 +8295,11 @@ msgid "Find in Files..."
msgstr "দà§à¦°à§à¦¤ ফাইলসমূহ ফিলà§à¦Ÿà¦¾à¦° করà§à¦¨..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "পà§à¦°à¦¾à¦¸à¦™à§à¦—িক সাহাযà§à¦¯"
@@ -8757,6 +8879,19 @@ msgid "Toggle Freelook"
msgstr "পূরà§à¦£-পরà§à¦¦à¦¾ অদলবদল/টগল করà§à¦¨"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• sRGB বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°"
@@ -9568,6 +9703,30 @@ msgstr "থিম ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "ধরণ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "উপসà§à¦¥à¦¿à¦¤ নোডসমূহ:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "সংরকà§à¦·à¦£à§‡à¦° পথটি খালি!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "à¦à¦•ধিক পà§à¦°à¦•লà§à¦ª খোলায় আপনি সà§à¦¨à¦¿à¦¶à§à¦šà¦¿à¦¤?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) টà§à¦°à§à¦¯à¦¾à¦•/পথ-à¦à¦° নাম পরিবরà§à¦¤à¦¨ করà§à¦¨"
@@ -9593,21 +9752,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "ধরণ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "বসà§à¦¤à§ যোগ করà§à¦¨"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "নোডের ধরণ সনà§à¦§à¦¾à¦¨ করà§à¦¨"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "লোড ডিফলà§à¦Ÿ"
@@ -9626,6 +9770,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "বসà§à¦¤à§ যোগ করà§à¦¨"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "থিম"
@@ -12216,11 +12365,6 @@ msgid "Batch Rename"
msgstr "পà§à¦¨à¦ƒà¦¨à¦¾à¦®à¦•রণ করà§à¦¨"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -12517,6 +12661,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "নতà§à¦¨ দৃশà§à¦¯ à¦à¦‡à¦°à§‚পে সংরকà§à¦·à¦£ করà§à¦¨..."
@@ -13577,71 +13735,78 @@ msgstr "সব সিলেকà§à¦Ÿ করà§à¦¨"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"à¦à¦‡ নোডটি সফলà§à¦­à¦¾à¦¬à§‡ কাজ করার জনà§à¦¯ à¦à¦•টি NavigationMesh রিসোরà§à¦¸ নিরà§à¦§à¦¾à¦°à¦¨ বা তৈরি "
+"করতে হবে।"
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
#, fuzzy
msgid "Clear the navigation mesh."
msgstr "Navigation Mesh তৈরি করà§à¦¨"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "কনফিগারেশন তৈরি করা হচà§à¦›à§‡..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "গà§à¦°à¦¿à¦¡ সাইজ হিসাব করা হচà§à¦›à§‡..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Creating heightfield..."
msgstr "লাইটের ওকটà§à¦°à§€ (octree) তৈরি করা হচà§à¦›à§‡"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Marking walkable triangles..."
msgstr "অনà§à¦¬à¦¾à¦¦-সমà§à¦­à¦¬ শবà§à¦¦à¦®à¦¾à¦²à¦¾/বাকà§à¦¯-সমূহ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "কমà§à¦ªà§à¦¯à¦¾à¦•à§à¦Ÿ হাইফিলà§à¦¡ তৈরি করা হছে..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "বà§à¦¯à¦¾à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পথ মà§à¦›à§‡ ফেলা হচà§à¦›à§‡..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Partitioning..."
msgstr "সতরà§à¦•তা"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Creating contours..."
msgstr "ওকটà§à¦°à§€ (octree) গঠনবিনà§à¦¯à¦¾à¦¸ তৈরি করা হচà§à¦›à§‡"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Creating polymesh..."
msgstr "পà§à¦°à¦¾à¦¨à§à¦¤à¦°à§‡à¦–া মেস তৈরি করà§à¦¨..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Converting to native navigation mesh..."
msgstr "Navigation Mesh তৈরি করà§à¦¨"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "নà§à¦¯à¦¾à¦­à¦¿à¦—েশন মà§à¦¯à¦¾à¦¶ জেনারেটর সেটআপ:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Parsing Geometry..."
msgstr "জà§à¦¯à¦¾à¦®à¦¿à¦¤à¦¿à¦•-আকার বিশà§à¦²à§‡à¦·à¦£ করা হচà§à¦›à§‡"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "সমà§à¦ªà¦¨à§à¦¨ হয়েছে!"
@@ -14688,6 +14853,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "à¦à¦‡ occluder à¦à¦° জনà§à¦¯ occluder পলিগনটি খালি। অনà§à¦—à§à¦°à¦¹ করে à¦à¦•টি পলিগন আà¦à¦•à§à¦¨!"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14921,13 +15096,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"à¦à¦‡ নোডটি সফলà§à¦­à¦¾à¦¬à§‡ কাজ করার জনà§à¦¯ à¦à¦•টি NavigationMesh রিসোরà§à¦¸ নিরà§à¦§à¦¾à¦°à¦¨ বা তৈরি "
-"করতে হবে।"
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14935,6 +15108,12 @@ msgstr ""
"NavigationMeshInstance-কে অবশà§à¦¯à¦‡ Navigation-à¦à¦° অংশ অথবা অংশের অংশ হতে হবে। "
"à¦à¦Ÿà¦¾ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° নà§à¦¯à¦¾à¦­à¦¿à¦—েশনের তথà§à¦¯ পà§à¦°à¦¦à¦¾à¦¨ করে।"
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -15354,10 +15533,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/br.po b/editor/translations/br.po
index 696097454d..e7990afc1f 100644
--- a/editor/translations/br.po
+++ b/editor/translations/br.po
@@ -1,6 +1,6 @@
# Breton translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Feufoll <feufoll@gmail.com>, 2020.
@@ -322,6 +322,10 @@ msgid "Duplicate Key(s)"
msgstr "Eilskoueriañ Alc'hwez(ioù)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Dilemel Alc'hwez(ioù)"
@@ -495,6 +499,11 @@ msgstr ""
"An opsion-se ne dro ket evit editañ Bezier, dre eo ur roudenn nemetken."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Cheñch Skeul Alc'hwezioù Fiñvskeudenn"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1449,6 +1458,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1553,7 +1566,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1574,6 +1589,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2046,7 +2062,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2182,6 +2198,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2191,6 +2220,27 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Roudenn Perzhioù"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2929,6 +2979,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3988,6 +4052,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4011,6 +4079,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4020,7 +4092,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4234,6 +4306,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5655,6 +5733,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5683,6 +5765,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5777,20 +5863,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Eilskoueriañ an Alc'whezh(ioù) Uhelsklaeriet"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Eilskoueriañ an Alc'whezh(ioù) Uhelsklaeriet"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Eilskoueriañ an Alc'whezh(ioù) Uhelsklaeriet"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Eilskoueriañ an Alc'whezh(ioù) Uhelsklaeriet"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7393,6 +7503,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7905,6 +8019,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8616,37 +8742,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8666,6 +8800,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11006,10 +11144,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11282,6 +11416,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12211,63 +12359,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13202,6 +13355,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13408,16 +13571,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13812,10 +13981,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index 367a724f79..043bc573f0 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -1,6 +1,6 @@
# Catalan translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# BennyBeat <bennybeat@gmail.com>, 2017.
# Javier Ocampos <xavier.ocampos@gmail.com>, 2018.
@@ -332,6 +332,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplica les Claus"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Afegir %d Fotograma(es)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Elimina les Claus"
@@ -502,6 +507,11 @@ msgstr ""
"Aquesta opció no funciona per l'edició de Bézier, ja que és una pista única."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Escala les Claus"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1499,6 +1509,10 @@ msgid "Invalid name."
msgstr "Nom no vàlid."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caràcters vàlids:"
@@ -1604,7 +1618,9 @@ msgstr "S'està actualitzant l'escena..."
msgid "[empty]"
msgstr "[buit]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[no desat]"
@@ -1625,6 +1641,7 @@ msgstr "Crea un Directori"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nom:"
@@ -2132,7 +2149,8 @@ msgid "Properties"
msgstr "Propietats"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "Sobreescriu:"
#: editor/editor_help.cpp
@@ -2188,8 +2206,8 @@ msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"Aquesta propietat no disposa de cap descripció. Podeu contribuir "
-"[color=$color][url=$url] tot aportant-ne una[/url][/color]!"
+"Aquesta propietat no disposa de cap descripció. Podeu contribuir [color="
+"$color][url=$url] tot aportant-ne una[/url][/color]!"
#: editor/editor_help.cpp
msgid "Method Descriptions"
@@ -2276,6 +2294,20 @@ msgstr "Propietats del tema"
msgid "Property:"
msgstr "Propietat:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2285,6 +2317,29 @@ msgstr "Definir %s"
msgid "Set Multiple:"
msgstr "Estableix Múltiples:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Propietats"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Propietats"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copia el camí de l'Script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Sortida:"
@@ -3056,8 +3111,8 @@ msgstr ""
"Quan aquesta opció està activada, utilitzar el desplegament en un clic farà "
"que l'executable intenti connectar-se a la IP d'aquest ordinador per tal que "
"el projecte pugui ser depurat.\n"
-"Aquesta opció està pensada per ser usada per la depuració remota ("
-"habitualment amb un dispositiu mòbil).\n"
+"Aquesta opció està pensada per ser usada per la depuració remota "
+"(habitualment amb un dispositiu mòbil).\n"
"No cal que l'activeu per utilitzar el depurador del GDScript localment."
#: editor/editor_node.cpp
@@ -3108,6 +3163,20 @@ msgstr ""
"l'execució del joc."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronitzar els Canvis en Escena"
@@ -4260,6 +4329,10 @@ msgstr "Cercar en els Fitxers"
msgid "Find:"
msgstr "Cercar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Reemplaça:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Directori:"
@@ -4285,6 +4358,11 @@ msgstr "Cerca..."
msgid "Replace..."
msgstr "Substitueix..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Reemplaça-hoTot"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Cerca: "
@@ -4294,8 +4372,9 @@ msgid "Replace: "
msgstr "Reemplaça: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Reemplaça-ho Tot (no es pot desfer)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Reemplaça-hoTot"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4521,6 +4600,12 @@ msgstr ""
"ADVERTIMENT: Existeixen elements que utilitzen aquest recurs, es possible "
"que deixin de carregar-se correctament."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "No s'ha pogut carregar el recurs."
@@ -6021,6 +6106,11 @@ msgstr "Alt+Arrossegar: Mou el node seleccionat."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrossegar: Mou el node seleccionat."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Eliminar el node o transició seleccionats."
@@ -6051,6 +6141,10 @@ msgid "Scale Mode"
msgstr "Mode d'Escalat"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6147,20 +6241,44 @@ msgstr "Immobilitza l'Objecte."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Bloca la selecció"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Allibera l'Objecte."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Elimina Seleccionats"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Impossibilita la selecció dels nodes fills."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Seleccionat"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Permet la selecció de nodes fills."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Seleccionat"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opcions d'esquelet"
@@ -7832,6 +7950,11 @@ msgid "Find in Files..."
msgstr "Cercar en Fitxers..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Substitueix..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Ajuda Contextual"
@@ -8378,6 +8501,19 @@ msgid "Toggle Freelook"
msgstr "Vista Lliure"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Carrega Valors predeterminats"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformar"
@@ -9152,6 +9288,30 @@ msgstr "Importa un Tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Tipus"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfils Disponibles:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "El nom del fitxer és buit."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Esteu segur que voleu obrir més d'un projecte de cop?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Reanomena la Pista"
@@ -9177,21 +9337,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tipus"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Afegeix un Element"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Tipus de node:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Carrega Valors predeterminats"
@@ -9209,6 +9354,11 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Item Type"
+msgstr "Afegeix un Element"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -11824,10 +11974,6 @@ msgid "Batch Rename"
msgstr "Reanomena en lot"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Reemplaça:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefix:"
@@ -12126,6 +12272,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Anomena i Desa la Nova Escena..."
@@ -13127,63 +13287,70 @@ msgstr "Omplir la Selecció"
msgid "End of inner exception stack trace"
msgstr "Final de la traça de la pila d'excepció interna"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Cal crear o establir un recurs de tipus NavigationMesh per al correcte "
+"funcionament d'aquest node."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Reestableix la malla de navegació."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Establint la Configuració..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calculant la mida de la quadrícula..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Creant un camp de desplaçaments verticals..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marcant els triangles transitables..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construcció d'un camp compacte de desplaçaments verticals..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erosionant l'àrea transitable..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Establint Particions..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Creant els contorns..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "creant la polyMesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Convertint-ho en una malla de navegació nativa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Configuració del Generador de Malles de Navegació:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Analitzant la Geometria..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Fet!"
@@ -14242,6 +14409,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"El polígon oclusor d'aquest oclusor és buit. Si us plau, dibuixeu un polígon."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14503,13 +14680,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"Un SpotLight amb un angle més ample que 90 graus no pot projectar ombres."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Cal crear o establir un recurs de tipus NavigationMesh per al correcte "
-"funcionament d'aquest node."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14517,6 +14692,12 @@ msgstr ""
"NavigationMeshInstance ha de ser fill o nét d'un node Navigation. Només "
"proporciona dades de navegació."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14958,10 +15139,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Assignació a funció."
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index e06ac81678..eba90c7fe3 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -1,6 +1,6 @@
# Czech translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Fadex <vitekpaulik@gmail.com>, 2017.
# Jan 'spl!te' Kondelík <j.kondelik@centrum.cz>, 2016, 2018.
@@ -9,7 +9,7 @@
# Luděk Novotný <gladosicek@gmail.com>, 2016, 2018.
# Martin Novák <maidx@seznam.cz>, 2017, 2019.
# zxey <r.hozak@seznam.cz>, 2018.
-# Vojtěch Šamla <auzkok@seznam.cz>, 2018, 2019, 2020, 2021.
+# Vojtěch Šamla <auzkok@seznam.cz>, 2018, 2019, 2020, 2021, 2022.
# Peeter Angelo <contact@peeterangelo.com>, 2019.
# VojtechBrezina <vojta.brezina@gmail.com>, 2019, 2021.
# Garrom Orc Shaman <garromorcshaman@gmail.com>, 2019.
@@ -33,8 +33,8 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-15 17:40+0000\n"
-"Last-Translator: Zbyněk <zbynek.fiala@gmail.com>\n"
+"PO-Revision-Date: 2022-01-03 03:55+0000\n"
+"Last-Translator: Vojtěch Šamla <auzkok@seznam.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/"
"cs/>\n"
"Language: cs\n"
@@ -42,7 +42,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -347,6 +347,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplikovat klíÄ(e)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Přidat %d snímků"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Odstranit klíÄ(e)"
@@ -515,6 +520,11 @@ msgstr ""
"jednu stopu."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animace: zmÄ›nit měřítko klíÄů"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1497,6 +1507,10 @@ msgid "Invalid name."
msgstr "Neplatný název."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Platné znaky:"
@@ -1601,7 +1615,9 @@ msgstr "Aktualizuji scénu..."
msgid "[empty]"
msgstr "[prázdné]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[neuloženo]"
@@ -1622,6 +1638,7 @@ msgstr "Vytvořit složku"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Jméno:"
@@ -2114,7 +2131,8 @@ msgid "Properties"
msgstr "Vlastnosti"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "přepsat:"
#: editor/editor_help.cpp
@@ -2138,19 +2156,16 @@ msgid "Constants"
msgstr "Konstanty"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Fonts"
-msgstr "Font"
+msgstr "Fonty"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Icons"
-msgstr "Ikona"
+msgstr "Ikony"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Styles"
-msgstr "Styl"
+msgstr "Styly"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2257,6 +2272,20 @@ msgstr "Vlastnost motivu"
msgid "Property:"
msgstr "Vlastnost:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(hodnota)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2266,6 +2295,29 @@ msgstr "Nastav %s"
msgid "Set Multiple:"
msgstr "Nastavit více:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Kopírovat vlastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Vložit vlastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Zkopírovat cestu ke skriptu"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Výstup:"
@@ -3072,6 +3124,20 @@ msgstr ""
"polygony."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Synchronizovat změny scény"
@@ -4189,6 +4255,10 @@ msgstr "Najít v souborech"
msgid "Find:"
msgstr "Najít:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Nahradit:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Složka:"
@@ -4214,6 +4284,11 @@ msgstr "Najít..."
msgid "Replace..."
msgstr "Nahradit..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Nahradit všechny"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Najít: "
@@ -4223,8 +4298,9 @@ msgid "Replace: "
msgstr "Nahradit: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Nahradit všechny (bez možnosti vrácení)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Nahradit všechny"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4443,6 +4519,12 @@ msgstr ""
"VAROVÃNÃ: Existují zdroje, který tento zdroj používají. Může se stát, že se "
"pÅ™estanou správnÄ› naÄítat."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Selhalo nahrání zdroje."
@@ -5899,6 +5981,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+přetažení: Přesun vybraného uzlu."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+přetažení: Přesun vybraného uzlu."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Nastavení polohy pivotu vybraného uzlu."
@@ -5928,6 +6015,10 @@ msgid "Scale Mode"
msgstr "Režim škálování"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6024,20 +6115,44 @@ msgstr "Uzamknout vybraný objekt na místě (nemůže být přesunut)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "UzamÄít vybraný"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Uvolnit vybraný objekt (může být přesunut)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "OdemÄít vybraný"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Zajistí, aby nebylo možné vybrat potomky objektu."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Seskupit vybrané"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Obnoví, aby bylo možné vybrat potomky objektu."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Odskupit vybrané"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Možnosti kostry"
@@ -6644,14 +6759,12 @@ msgid "Remove Selected Item"
msgstr "Odstranit vybranou položku"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Import from Scene (Ignore Transforms)"
-msgstr "Importovat ze scény"
+msgstr "Importovat ze scény (ignorovat transformace)"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid "Import from Scene (Apply Transforms)"
-msgstr "Importovat ze scény"
+msgstr "Importovat ze scény (aplikovat transformace)"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Update from Scene"
@@ -7224,9 +7337,8 @@ msgid "ResourcePreloader"
msgstr "Zdroj"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portals"
-msgstr "Převrátit horizontálně"
+msgstr "Převrátit portály"
#: editor/plugins/room_manager_editor_plugin.cpp
msgid "Room Generate Points"
@@ -7237,9 +7349,8 @@ msgid "Generate Points"
msgstr "Generovat body"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Flip Portal"
-msgstr "Převrátit horizontálně"
+msgstr "Převrátit portál"
#: editor/plugins/room_manager_editor_plugin.cpp
#, fuzzy
@@ -7677,6 +7788,11 @@ msgid "Find in Files..."
msgstr "Najít v souborech..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Nahradit..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kontextová nápověda"
@@ -8107,9 +8223,8 @@ msgstr ""
"Nelze jej použít jako spolehlivý ukazatel výkonu ve hře."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Convert Rooms"
-msgstr "Konvertovat na %s"
+msgstr "Konvertovat místnosti"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8215,6 +8330,19 @@ msgid "Toggle Freelook"
msgstr "Přepnout volný pohled"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Obnovit výchozí"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformace"
@@ -8339,9 +8467,8 @@ msgid "Post"
msgstr "Po"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Unnamed Gizmo"
-msgstr "Nepojmenovaný projekt"
+msgstr "Nepojmenované gizmo"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
@@ -8601,9 +8728,8 @@ msgid "{num} color(s)"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No colors found."
-msgstr "Nebyly nalezeny žádné dílÄí zdroje."
+msgstr "Nebyly nalezeny žádné barvy."
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8611,9 +8737,8 @@ msgid "{num} constant(s)"
msgstr "Konstanty"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "No constants found."
-msgstr "Konstantní barva."
+msgstr "Nebyly nalezeny žádné konstanty."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} font(s)"
@@ -8667,9 +8792,8 @@ msgid "Finalizing"
msgstr "Analyzuji"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Filter:"
-msgstr "Filtry:"
+msgstr "Filtr:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "With Data"
@@ -8776,9 +8900,8 @@ msgid "Deselect all Theme items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Import Selected"
-msgstr "Importovat scénu"
+msgstr "Importovat vybrané"
#: editor/plugins/theme_editor_plugin.cpp
msgid ""
@@ -8799,9 +8922,8 @@ msgid "Remove All Color Items"
msgstr "Odstranit všechny položky"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Rename Item"
-msgstr "Odstranit položku"
+msgstr "Přejmenovat položku"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8938,9 +9060,8 @@ msgid "Add Theme Item"
msgstr "Přidat položku"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Old Name:"
-msgstr "Název uzlu:"
+msgstr "Starý název:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8948,14 +9069,12 @@ msgid "Import Items"
msgstr "Importovat motiv"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Theme"
-msgstr "Výchozí"
+msgstr "Výchozí motiv"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Editor Theme"
-msgstr "Editovat téma"
+msgstr "Motiv editoru"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select Another Theme Resource:"
@@ -8967,6 +9086,29 @@ msgid "Another Theme"
msgstr "Importovat motiv"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Přidat typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Dostupné profily:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Název souboru je prázdný."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Jste si jisti, že chcete otevřit více než jeden projekt?"
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Confirm Item Rename"
msgstr "Animace: přejmenování stopy"
@@ -8977,9 +9119,8 @@ msgid "Cancel Item Rename"
msgstr "Dávkové přejmenování"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override Item"
-msgstr "Přepisuje"
+msgstr "Přepsat položku"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Unpin this StyleBox as a main style."
@@ -8992,38 +9133,27 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "Typ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Přidat položku"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Typy uzlu:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
-msgstr "NaÄíst výchozí"
+msgstr "Zobrazit výchozí"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show default type items alongside items that have been overridden."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Override All"
-msgstr "Přepisuje"
+msgstr "Přepsat všechny"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Item Type"
+msgstr "Přidat položku"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Motiv:"
@@ -9037,14 +9167,12 @@ msgid "Add, remove, organize and import Theme items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Add Preview"
-msgstr "Náhled"
+msgstr "Přidat náhled"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Default Preview"
-msgstr "Obnovit náhled"
+msgstr "Výchozí náhled"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select UI Scene:"
@@ -10772,7 +10900,6 @@ msgid "Imported Project"
msgstr "Importovaný projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Invalid project name."
msgstr "Neplatný název projektu."
@@ -11032,9 +11159,8 @@ msgid "Project Manager"
msgstr "Správce projektů"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Local Projects"
-msgstr "Projekty"
+msgstr "Místní projekty"
#: editor/project_manager.cpp
msgid "Loading, please wait..."
@@ -11045,14 +11171,12 @@ msgid "Last Modified"
msgstr "Datum modifikace"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Edit Project"
-msgstr "Exportovat projekt"
+msgstr "Upravit projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Run Project"
-msgstr "Přejmenovat projekt"
+msgstr "Spustit projekt"
#: editor/project_manager.cpp
msgid "Scan"
@@ -11072,14 +11196,12 @@ msgid "New Project"
msgstr "Nový projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Import Project"
-msgstr "Importovaný projekt"
+msgstr "Importovat projekt"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove Project"
-msgstr "Přejmenovat projekt"
+msgstr "Odstranit projekt"
#: editor/project_manager.cpp
msgid "Remove Missing"
@@ -11119,9 +11241,8 @@ msgstr ""
"Přejete si prozkoumat oficiální ukázkové projekty v knihovně assetů?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Filter projects"
-msgstr "Filtrovat vlastnosti"
+msgstr "Filtrovat projekty"
#: editor/project_manager.cpp
#, fuzzy
@@ -11332,9 +11453,8 @@ msgid "Override for Feature"
msgstr "Přepsání vlastnosti"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add %d Translations"
-msgstr "Přidat překlad"
+msgstr "Přidat %d překladů"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
@@ -11531,10 +11651,6 @@ msgid "Batch Rename"
msgstr "Dávkové přejmenování"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Nahradit:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefix:"
@@ -11813,6 +11929,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Uložit novou scénu jako..."
@@ -12597,9 +12727,8 @@ msgid "Export Mesh GLTF2"
msgstr "Exportovat Mesh Library"
#: modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export GLTF..."
-msgstr "Exportovat..."
+msgstr "Exportovat GLTF..."
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Plane"
@@ -12775,63 +12904,70 @@ msgstr "Vyplnit výběr"
msgid "End of inner exception stack trace"
msgstr "Konec zásobníku trasování vnitřní výjimky"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Aby tento uzel mohl fungovat, musí mít nastaven nebo vytvořen zdroj "
+"NavigationMesh."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Zapéct NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Vymazat navigaÄní model."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Nastavuji konfiguraci..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "PoÄítám velikost mřížky..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Vytvářím výškové pole..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "VyznaÄuji průchozí trojúhelníky..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Konstruuji kompaktní výškové pole..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Eroduji průchozí oblast..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Rozděluji..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Vytvářím kontury..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Vytvářím polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "PÅ™evádím na nativní navigaÄní mřížku..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Nastavení generátoru navigaÄní sítÄ›:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Parsuji geometrii..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Hotovo!"
@@ -13461,9 +13597,8 @@ msgid "'apksigner' returned with error #%d"
msgstr ""
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Verifying %s..."
-msgstr "Přidávám %s..."
+msgstr "Ověřuji %s..."
#: platform/android/export/export_plugin.cpp
msgid "'apksigner' verification of %s failed."
@@ -13552,9 +13687,8 @@ msgid "Package not found: %s"
msgstr "Animace nenalezena: '%s'"
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Creating APK..."
-msgstr "Vytvářím kontury..."
+msgstr "Vytvářím APK..."
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13573,9 +13707,8 @@ msgid ""
msgstr ""
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Adding files..."
-msgstr "Přidávám %s..."
+msgstr "Přidávám soubory..."
#: platform/android/export/export_plugin.cpp
msgid "Could not export project files"
@@ -13634,9 +13767,8 @@ msgid "Could not write file:"
msgstr "Nelze zapsat soubor:"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Could not read file:"
-msgstr "Nelze zapsat soubor:"
+msgstr "Nelze pÅ™eÄíst soubor:"
#: platform/javascript/export/export.cpp
#, fuzzy
@@ -13845,6 +13977,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Stínový polygon pro toto stínítko je prázdný. Nakreslete polygon."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14095,13 +14237,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight s úhlem širším než 90 stupňů nemůže vrhat stíny."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Aby tento uzel mohl fungovat, musí mít nastaven nebo vytvořen zdroj "
-"NavigationMesh."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14109,6 +14249,12 @@ msgstr ""
"NavigationMeshInstance musí být dítÄ›tem nebo vnouÄetem uzlu Navigation. "
"Poskytuje pouze data pro navigaci."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14555,10 +14701,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Přiřazeno funkci."
diff --git a/editor/translations/da.po b/editor/translations/da.po
index e240179bb3..f35a125640 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -1,6 +1,6 @@
# Danish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Dankse Memes <purplelops@gmail.com>, 2018.
# David Lamhauge <davidlamhauge@gmail.com>, 2016, 2018.
@@ -340,6 +340,10 @@ msgid "Duplicate Key(s)"
msgstr "Dublikér nøgle(r)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Slet nøgle(r)"
@@ -519,6 +523,11 @@ msgstr ""
"spor."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Skaler Nøgler"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1538,6 +1547,10 @@ msgid "Invalid name."
msgstr "Ugyldigt navn."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Gyldige karakterer:"
@@ -1653,7 +1666,9 @@ msgstr "Opdatere scene..."
msgid "[empty]"
msgstr "[tom]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ikke gemt]"
@@ -1674,6 +1689,7 @@ msgstr "Opret Mappe"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Navn:"
@@ -2199,7 +2215,7 @@ msgid "Properties"
msgstr "Egenskaber"
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2345,6 +2361,20 @@ msgstr "Tema Egenskaber"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(værdi)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2354,6 +2384,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Egenskaber"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Egenskaber"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopier Sti"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Output:"
@@ -3167,6 +3220,20 @@ msgstr ""
"denne indstilling er tændt."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Synkroniser Scene Ændringer"
@@ -4328,6 +4395,11 @@ msgstr "%d flere filer"
msgid "Find:"
msgstr "Find"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Erstat"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4353,6 +4425,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Erstat Alle"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4365,7 +4442,7 @@ msgstr "Erstat"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Erstat Alle"
#: editor/find_in_files.cpp
@@ -4595,6 +4672,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Fejler med at indlæse ressource."
@@ -6121,6 +6204,11 @@ msgstr "Slet markerede filer?"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Slet markerede filer?"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Fjern valgte node eller overgang."
@@ -6150,6 +6238,10 @@ msgid "Scale Mode"
msgstr "Skifter Modus"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6250,20 +6342,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Vælg værktøj"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Slet Valgte"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Fjern Markering"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Fjern Markering"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Singleton"
@@ -7956,6 +8072,11 @@ msgid "Find in Files..."
msgstr "Filtrer filer..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Filtrer filer..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8496,6 +8617,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Indlæs Default"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9279,6 +9413,30 @@ msgstr "Medlemmer"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Find Node Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Tilgængelige Noder:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Udklipsholder er tom"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Er du sikker på at du vil fjerne alle forbindelser fra dette signal?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim Omdøb Spor"
@@ -9303,20 +9461,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Find Node Type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Find Node Type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Indlæs Default"
@@ -9333,6 +9477,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Medlemmer"
@@ -11823,11 +11971,6 @@ msgid "Batch Rename"
msgstr "Omdøb"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Erstat"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -12116,6 +12259,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -13117,63 +13274,70 @@ msgstr "All selection"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"En NavigationMesh ressource skal laves eller oprettes for at denne node kan "
+"fungere."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -14198,6 +14362,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Occluder polygon for denne occluder er tom. Tegn venligst en polygon!"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14429,13 +14603,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"En NavigationMesh ressource skal laves eller oprettes for at denne node kan "
-"fungere."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14443,6 +14615,12 @@ msgstr ""
"NavigationMeshInstance skal være et barn eller barnebarn til en Navigation "
"node. Det giver kun navigationsdata."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14861,10 +15039,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/de.po b/editor/translations/de.po
index 5e468b75f0..27b04cd77b 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -1,6 +1,6 @@
# German translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Alexander Mahr <alex.mahr@gmail.com>, 2016, 2019.
# Andreas Esau <andreasesau@gmail.com>, 2016.
@@ -74,13 +74,14 @@
# Dominik Moos <dominik.moos@protonmail.com>, 2021.
# Zae Chao <zaevi@live.com>, 2021.
# Tim <tim14speckenwirth@gmail.com>, 2021.
+# Antonio Noack <corperateraider@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-11 06:25+0000\n"
-"Last-Translator: So Wieso <sowieso@dukun.de>\n"
+"PO-Revision-Date: 2022-01-03 03:55+0000\n"
+"Last-Translator: Antonio Noack <corperateraider@gmail.com>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
"Language: de\n"
@@ -88,7 +89,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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -391,6 +392,11 @@ msgid "Duplicate Key(s)"
msgstr "Schlüsselbilder duplizieren"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "%d Frame(s) hinzufügen"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Schlüsselbilder entfernen"
@@ -561,6 +567,11 @@ msgstr ""
"sich nur um eine einzige Spur handelt."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Schlüsselbilder skalieren"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1550,6 +1561,10 @@ msgid "Invalid name."
msgstr "Ungültiger Name."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Gültige Zeichen:"
@@ -1654,7 +1669,9 @@ msgstr "Aktualisiere Szene..."
msgid "[empty]"
msgstr "[leer]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ungespeichert]"
@@ -1675,6 +1692,7 @@ msgstr "Ordner erstellen"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Name:"
@@ -2180,7 +2198,8 @@ msgid "Properties"
msgstr "Eigenschaften"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "Überschreibungen:"
#: editor/editor_help.cpp
@@ -2217,7 +2236,7 @@ msgstr "Stile"
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr "Aufzählungen"
+msgstr "Aufzählungstypen"
#: editor/editor_help.cpp
msgid "Property Descriptions"
@@ -2320,6 +2339,20 @@ msgstr "Theme-Eigenschaft"
msgid "Property:"
msgstr "Eigenschaft:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(Wert)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2329,6 +2362,29 @@ msgstr "%s setzen"
msgid "Set Multiple:"
msgstr "Mehrfach festlegen:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Eigenschaften kopieren"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Eigenschaften einfügen"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Skriptpfad kopieren"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Ausgabe:"
@@ -3156,6 +3212,20 @@ msgstr ""
"diese Option gewählt ist."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Szenenänderungen synchronisieren"
@@ -4280,6 +4350,10 @@ msgstr "In Dateien suchen"
msgid "Find:"
msgstr "Suche:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Ersetzen:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Verzeichnis:"
@@ -4305,6 +4379,11 @@ msgstr "Finde..."
msgid "Replace..."
msgstr "Ersetzen..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Alle ersetzen"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Suche: "
@@ -4314,8 +4393,9 @@ msgid "Replace: "
msgstr "Ersetzen: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Alle ersetzen (nicht rückgängig)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Alle ersetzen"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4540,6 +4620,12 @@ msgstr ""
"ACHTUNG: Es existieren Inhalte die diese Ressource nutzen und nachher "
"möglicherweise nicht mehr ordnungsgemäß laden können."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Laden der Ressource gescheitert."
@@ -6005,6 +6091,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Ziehen = Ausgewähltes Node verschieben."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Ziehen = Ausgewähltes Node verschieben."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Pivotpunkt des ausgewählten Nodes festlegen."
@@ -6035,6 +6126,10 @@ msgid "Scale Mode"
msgstr "Skalierungsmodus"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6133,20 +6228,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Sperren ausgewählt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Das ausgewählte Objekt entsperren (kann bewegt werden)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Auswahl entsperren"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Verhindert das Auswählen von Unterobjekten dieses Nodes."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Auswahl gruppieren"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Stellt die Auswählbarkeit aller Unterobjekte wieder her."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Auswahl entgruppieren"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Skelett-Einstellungen"
@@ -7795,6 +7914,11 @@ msgid "Find in Files..."
msgstr "In Dateien suchen..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Ersetzen..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kontexthilfe"
@@ -8324,6 +8448,19 @@ msgid "Toggle Freelook"
msgstr "Freie Kamera umschalten"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Auf Standardwerte zurücksetzen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformation"
@@ -9048,6 +9185,29 @@ msgid "Another Theme"
msgstr "Anderes Design"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Typ hinzufügen"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Verfügbare Profile:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Dateiname ist leer."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Sollen wirklich mehrere Projekte geöffnet werden?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Elementumbenennung bestätigen"
@@ -9072,18 +9232,6 @@ msgstr ""
"StyleBox werden ebenfalls in allen StyleBoxen des gleichen Typs geändert."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Typ hinzufügen"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Elementtyp hinzufügen"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Node-Typen:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Standard anzeigen"
@@ -9100,6 +9248,10 @@ msgid "Override all default type items."
msgstr "Alle Standard-Typelemente überbrücken."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Elementtyp hinzufügen"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Thema:"
@@ -11616,10 +11768,6 @@ msgid "Batch Rename"
msgstr "Stapelweise Umbenennung"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Ersetzen:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Präfix:"
@@ -11915,6 +12063,20 @@ msgstr ""
"erzeugt werden."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Speichere neue Szene als..."
@@ -12878,63 +13040,70 @@ msgstr "Solution bauen"
msgid "End of inner exception stack trace"
msgstr "Ende des inneren Exception-Stack-Traces"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Damit dieser Node funktionieren kann, muss eine NavigationMesh Ressource "
+"erzeugt oder gesetzt werden."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "NavMesh backen"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Navigations-Mesh löschen."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Konfiguration wird erstellt..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Gittergröße wird berechnet..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Höhenmodell erstellen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Begehbare Dreiecke markieren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Kompaktes Höhenmodell wir konstruiert..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Begehbare Gebiete werden erodiert..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Einteilen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Konturen erzeugen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Polymesh erzeugen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "In natives Navigation-Mesh konvertieren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Navigation-Mesh-Generatoreinstellungen:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Parse Geometrie…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Abgeschlossen!"
@@ -13979,6 +14148,16 @@ msgstr ""
"Das Occluder-Polygon für diesen Occluder ist leer. Zum Fortfahren Polygon "
"zeichnen."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14247,13 +14426,11 @@ msgstr ""
"Ein SpotLight mit einem Winkel von mehr als 90 Grad kann keine Schatten "
"werfen."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Damit dieser Node funktionieren kann, muss eine NavigationMesh Ressource "
-"erzeugt oder gesetzt werden."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14261,6 +14438,12 @@ msgstr ""
"NavigationMeshInstance muss ein Unterobjekt erster oder zweiter Ordnung "
"eines Navigation-Nodes sein. Es liefert nur Navigationsinformationen."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Es wurde keine Form festgelegt."
@@ -14756,12 +14939,6 @@ msgstr ""
"erneut in der ‚vertex‘- oder ‚light‘-Funktion zugewiesen werden."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"Varying aus Fragment-Phase konnte nicht in gesonderter Funktion abgerufen "
-"werden!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Zuweisung an Funktion."
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 7d680c73f7..ab1796503c 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
@@ -314,6 +314,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -476,6 +480,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1428,6 +1436,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1532,7 +1544,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1553,6 +1567,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2024,7 +2039,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2160,6 +2175,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2169,6 +2197,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2907,6 +2955,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3964,6 +4026,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3987,6 +4053,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -3996,7 +4066,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4210,6 +4280,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5631,6 +5707,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5659,6 +5739,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5753,20 +5837,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7366,6 +7470,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7878,6 +7986,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8589,37 +8709,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8639,6 +8767,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10979,10 +11111,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11255,6 +11383,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12184,63 +12326,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13174,6 +13321,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13380,16 +13537,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13784,10 +13947,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/el.po b/editor/translations/el.po
index a164e4d7b5..1235fd00fe 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -1,6 +1,6 @@
# Greek translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# George Tsiamasiotis <gtsiam@windowslive.com>, 2017-2018, 2019, 2020, 2021.
# Georgios Katsanakis <geo.elgeo@gmail.com>, 2019.
@@ -332,6 +332,11 @@ msgid "Duplicate Key(s)"
msgstr "ΑναπαÏαγωγή Κλειδιών"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "ΠÏοσθήκη %d ΚαÏέ"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "ΔιαγÏαφή κλειδιών"
@@ -506,6 +511,11 @@ msgstr ""
"κομμάτι."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Κλιμάκωση Κλειδιών Κίνησης"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1501,6 +1511,10 @@ msgid "Invalid name."
msgstr "Μη έγκυÏο όνομα."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "ΈγκυÏοι χαÏακτήÏες:"
@@ -1608,7 +1622,9 @@ msgstr "ΕνημέÏωση σκηνής..."
msgid "[empty]"
msgstr "[άδειο]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[μη αποθηκευμένο]"
@@ -1629,6 +1645,7 @@ msgstr "ΔημιουÏγία φακέλου"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Όνομα:"
@@ -2130,7 +2147,8 @@ msgid "Properties"
msgstr "Ιδιότητες"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "παÏάκαμψη:"
#: editor/editor_help.cpp
@@ -2274,6 +2292,20 @@ msgstr "Ιδιότητα Θέματος"
msgid "Property:"
msgstr "Ιδιότητα:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(τιμή)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2283,6 +2315,29 @@ msgstr "Θέσε %s"
msgid "Set Multiple:"
msgstr "ΟÏισμός πολλών:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Ιδιότητες"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Ιδιότητες"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "ΑντιγÏαφή ΔιαδÏομής Δέσμης ΕνεÏγειών"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Έξοδος:"
@@ -3109,6 +3164,20 @@ msgstr ""
"επιλογή είναι ενεÏγοποιημένη."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "ΣυγχÏονισμός αλλαγών της σκηνής"
@@ -4266,6 +4335,10 @@ msgstr "ΕÏÏεση στα ΑÏχεία"
msgid "Find:"
msgstr "ΕÏÏεση:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Αντικατάσταση:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Φάκελος:"
@@ -4291,6 +4364,11 @@ msgstr "ΕÏÏεση..."
msgid "Replace..."
msgstr "Αντικατάσταση..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Αντικατάσταση όλων"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "ΕÏÏεση: "
@@ -4300,8 +4378,9 @@ msgid "Replace: "
msgstr "Αντικατάσταση: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Αντικατάσταση όλων (χωÏίς ανέÏαιση)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Αντικατάσταση όλων"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4518,6 +4597,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτός ο πόÏος χÏησιμοποιείται απο άλλους πόÏους."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Απέτυχε η φόÏτωση πόÏου."
@@ -6002,6 +6087,11 @@ msgstr "Alt + ΣÏÏσιμο: Μετακίνηση"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt + ΣÏÏσιμο: Μετακίνηση"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "ΑφαίÏεση επιλεγμένου κόμβου ή μετάβασης."
@@ -6033,6 +6123,10 @@ msgid "Scale Mode"
msgstr "ΛειτουÏγία Κλιμάκωσης"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6131,20 +6225,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Κλείδωσε το Επιλεγμένο"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Ξεκλείδωμα του επιλεγμένου αντικειμένου (μποÏεί να μετακινηθεί)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Ξεκλείδωσε το Επιλεγμένο"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "ΣιγουÏεÏει ότι τα παιδιά του αντικειμένου δεν μποÏοÏν να επιλεχθοÏν."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Ομαδοποίησε το Επιλεγμένο"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "ΕπαναφέÏει τη δυνατότητα των παιδιών του αντικειμένου να επιλεχθοÏν."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Απομαδοποίησε το Επιλεγμένο"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Επιλογές ΣκελετοÏ"
@@ -7821,6 +7939,11 @@ msgid "Find in Files..."
msgstr "ΕÏÏεση σε ΑÏχεία..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Αντικατάσταση..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Βοήθεια ανάλογα με τα συμφÏαζόμενα"
@@ -8376,6 +8499,19 @@ msgid "Toggle Freelook"
msgstr "Εναλλαγή ελεÏθεÏης κάμεÏας"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "ΕπαναφοÏά Ï€Ïοεπιλογών"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Μετασχηματισμός"
@@ -9147,6 +9283,30 @@ msgstr "Εισαγωγή θέματος"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "ΤÏπος"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Διαθέσιμα ΠÏοφίλ:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Άδειο όνομα αÏχείου."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Είστε σίγουÏοι πως θέλετε να ανοίξετε πεÏισσότεÏα από ένα έÏγα;"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim Μετονομασία κομματιοÏ"
@@ -9172,21 +9332,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "ΤÏπος"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "ΠÏοσθήκη στοιχείου"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Είδος Κόμβου"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "ΦόÏτωση Ï€Ïοεπιλογής"
@@ -9205,6 +9350,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "ΠÏοσθήκη στοιχείου"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Θέμα"
@@ -11741,10 +11891,6 @@ msgid "Batch Rename"
msgstr "Ομαδική Μετονομασία"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Αντικατάσταση:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "ΠÏόθεμα:"
@@ -12027,6 +12173,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Αποθήκευση νέας σκηνής ως..."
@@ -13004,63 +13164,70 @@ msgstr "Γέμισμα Επιλογής"
msgid "End of inner exception stack trace"
msgstr "Τέλος ιχνηλάτησης στοίβας εσωτεÏικής εξαίÏεσης"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Ένας πόÏος πλέγματος πλοήγησης θα Ï€Ïέπει να έχει οÏισθεί ή δημιουÏγηθεί για "
+"να δουλέψει αυτός ο κόμβος."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Ψήσιμο NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "ΕκκαθάÏιση του πλέγματος πλοήγησης."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "ΡÏθμιση παÏαμέτÏων..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Υπολογισμός μεγέθους πλέγματος..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "ΔημιουÏγία πεδίου Ïψους..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Επισήμανση βατών Ï„Ïιγώνων..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "ΔημιουÏγία συμπυκνωμένου πεδίου Ïψους..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "ΔιάβÏωση βατής πεÏιοχής..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "ΔιαμεÏισμός..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "ΔημιουÏγία πεÏιγÏαμμάτων..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "ΔημιουÏγία πολÏ-πλέγματος..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "ΜετατÏοπή σε εγγενή πλέγμα πλοήγησης..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "ΡÏθμιση γενήτÏιας πλέγματος πλοήγησης:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Ανάλυση γεωμετÏίας..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Τέλος!"
@@ -14109,6 +14276,16 @@ msgstr ""
"Το πολÏγωνο εμποδίου για αυτό το εμπόδιο είναι άδειο. ΠαÏακαλοÏμε ζωγÏαφίστε "
"ένα πολÏγωνο."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14374,13 +14551,11 @@ msgstr ""
"Οι Ï€Ïοβολείς (SpotLight) με γωνία ευÏÏτεÏη των 90 μοιÏών δεν μποÏοÏν να "
"δημιουÏγήσουν σκιές."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Ένας πόÏος πλέγματος πλοήγησης θα Ï€Ïέπει να έχει οÏισθεί ή δημιουÏγηθεί για "
-"να δουλέψει αυτός ο κόμβος."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14388,6 +14563,12 @@ msgstr ""
"Ένας κόμβος Ï„Ïπου στιγμιοτÏπου πλέγματος πλοήγησης Ï€Ïέπει να κληÏονομεί έναν "
"κόμβο Ï„Ïπου πλοήγηση, διότι διαθέτει μόνο δεδομένα πλοήγησης."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14840,10 +15021,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Ανάθεση σε συνάÏτηση."
diff --git a/editor/translations/eo.po b/editor/translations/eo.po
index 512f9ce725..f3aa813e83 100644
--- a/editor/translations/eo.po
+++ b/editor/translations/eo.po
@@ -1,6 +1,6 @@
# Esperanto translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Scott Starkey <yekrats@gmail.com>, 2019.
# AlexHoratio <yukithetupper@gmail.com>, 2019.
@@ -328,6 +328,10 @@ msgid "Duplicate Key(s)"
msgstr "Duobligi Åœlosilo(j)n"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Forigi Åœlosilo(j)n"
@@ -496,6 +500,11 @@ msgstr ""
"trako."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animado Skali Åœlosilojn"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1479,6 +1488,10 @@ msgid "Invalid name."
msgstr "Malvalida nomo."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Validaj signoj:"
@@ -1584,7 +1597,9 @@ msgstr "Aktualigas la scenon..."
msgid "[empty]"
msgstr "[malplena]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ne konservis]"
@@ -1605,6 +1620,7 @@ msgstr "Krei dosierujon"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nomo:"
@@ -2100,7 +2116,8 @@ msgid "Properties"
msgstr "Atributoj"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "redifino:"
#: editor/editor_help.cpp
@@ -2241,6 +2258,20 @@ msgstr "Etosa atributo"
msgid "Property:"
msgstr "Atributo:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valoro)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2250,6 +2281,29 @@ msgstr "Agordis %s"
msgid "Set Multiple:"
msgstr "Agordi pluroblan:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Atributoj"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Atributoj"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Atributoj"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Eligo:"
@@ -3061,6 +3115,20 @@ msgstr ""
"la rula projekto."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sinkronigi ÅanÄojn en sceno"
@@ -4205,6 +4273,10 @@ msgstr "Trovi en dosierojn"
msgid "Find:"
msgstr "Trovi:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "AnstataÅ­igo:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Dosierujo:"
@@ -4230,6 +4302,11 @@ msgstr "Trovi..."
msgid "Replace..."
msgstr "AnstataÅ­igi..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Anstataŭigi Ĉiujn"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Trovi: "
@@ -4239,8 +4316,9 @@ msgid "Replace: "
msgstr "AnstataÅ­igi: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "AnstataÅ­igi ciujn (senrevene)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Anstataŭigi Ĉiujn"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4457,6 +4535,12 @@ msgid ""
msgstr ""
"AVERTO: Havaĵoj ekzistas ke uzis ĉi tiu risurcon, ili povas ĉesi Åargi dece."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Ne eblas Åargi risurcon."
@@ -5923,6 +6007,11 @@ msgstr "Alt-klavo+Åovado: Movi"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt-klavo+Åovado: Movi"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Forigi elektitan nodon aÅ­ transpason."
@@ -5954,6 +6043,10 @@ msgid "Scale Mode"
msgstr "Skalada reÄimo"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6050,20 +6143,44 @@ msgstr "Åœlosi la elektitan objekton samloke (ne movebla)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Åœlosi elektiton"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "MalÅlosi la elektitan objekton (movebla)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "MalÅlosi elektiton"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Certigu la infanojn de la objekto ne estas elekteblajn."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Grupigi elektiton"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "RestaÅ­ras la elekteblecon de la infanoj de la objekto."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Malgrupigi elektiton"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opcioj de ostaro"
@@ -7705,6 +7822,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "AnstataÅ­igi..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kunteksta Helpo"
@@ -8241,6 +8363,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Rekomencigi al defaÅ­ltoj"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformo"
@@ -8998,6 +9133,30 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Disponeblaj profiloj:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "La dosiernomo estas malplena."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Ĉu vi certe volas malfermi plurajn projektojn?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Agordi kapton"
@@ -9023,20 +9182,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Nomo de nodo:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Åœargi defaÅ­lton"
@@ -9054,6 +9199,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11456,10 +11605,6 @@ msgid "Batch Rename"
msgstr "Renomi staple"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "AnstataÅ­igo:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefikso:"
@@ -11737,6 +11882,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Konservi novan scenon kiel..."
@@ -12693,63 +12852,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13716,6 +13880,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13922,16 +14096,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14328,10 +14508,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/es.po b/editor/translations/es.po
index 59abc8a5ad..156a3a5ec5 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -1,6 +1,6 @@
# Spanish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Addiel Lucena Perez <addiell2017@gmail.com>, 2017.
# Aleix Sanchis <aleixsanchis@hotmail.com>, 2017, 2018.
@@ -391,6 +391,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Clave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Añadir %d Fotograma(s)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Eliminar Clave(s)"
@@ -563,6 +568,11 @@ msgstr ""
"única."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Escalar Claves de Animación"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1548,6 +1558,10 @@ msgid "Invalid name."
msgstr "Nombre inválido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caracteres válidos:"
@@ -1652,7 +1666,9 @@ msgstr "Actualizando escena..."
msgid "[empty]"
msgstr "[vacío]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[sin guardar]"
@@ -1673,6 +1689,7 @@ msgstr "Crear Carpeta"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nombre:"
@@ -2177,7 +2194,8 @@ msgid "Properties"
msgstr "Propiedades"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "anulación:"
#: editor/editor_help.cpp
@@ -2317,6 +2335,20 @@ msgstr "Propiedades del Theme"
msgid "Property:"
msgstr "Propiedad:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2326,6 +2358,29 @@ msgstr "Establecer %s"
msgid "Set Multiple:"
msgstr "Asignar Múltiples:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copiar Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Pegar Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copiar Ruta del Script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Salida:"
@@ -3149,6 +3204,20 @@ msgstr ""
"serán visibles en el proyecto en ejecución."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Cambios de Escena"
@@ -4282,6 +4351,10 @@ msgstr "Buscar en Archivos"
msgid "Find:"
msgstr "Buscar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Reemplazar:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Carpeta:"
@@ -4307,6 +4380,11 @@ msgstr "Buscar..."
msgid "Replace..."
msgstr "Reemplazar..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Reemplazar Todo"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Buscar: "
@@ -4316,8 +4394,9 @@ msgid "Replace: "
msgstr "Reemplazar: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Reemplazar todo (no se puede deshacer)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Reemplazar Todo"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4538,6 +4617,12 @@ msgstr ""
"ADVERTENCIA: Existen assets que utilizan este recurso, pueden dejar de "
"cargarse correctamente."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Error al cargar el recurso."
@@ -6007,6 +6092,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Arrastrar: Mover el nodo seleccionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrastrar: Mover el nodo seleccionado."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Establecer la posición de pivote del nodo seleccionado."
@@ -6037,6 +6127,10 @@ msgid "Scale Mode"
msgstr "Modo de Escalado"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6134,20 +6228,44 @@ msgstr "Bloquear el objeto seleccionado en su sitio (no se puede mover)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Bloqueo Seleccionado"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Desbloquear el objeto seleccionado (puede ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Desbloquear Seleccionado"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Asegura que los hijos del objeto no sean seleccionables."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Seleccionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaura la capacidad de selección de los hijos del objeto."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Seleccionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opciones de Esqueleto"
@@ -7798,6 +7916,11 @@ msgid "Find in Files..."
msgstr "Buscar en Archivos..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Reemplazar..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Ayuda Contextual"
@@ -8322,6 +8445,19 @@ msgid "Toggle Freelook"
msgstr "Act./Desact. Vista Libre"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Restablecer Valores por Defecto"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformar"
@@ -9044,6 +9180,29 @@ msgid "Another Theme"
msgstr "Otro Theme"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Añadir Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfiles Disponibles:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "El nombre del archivo está vacío."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "¿Seguro que quieres abrir más de un proyecto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Confirmar Cambio de Nombre del Elemento"
@@ -9069,18 +9228,6 @@ msgstr ""
"de este tipo."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Añadir Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Añadir Tipo de Elemento"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Tipo de nodo:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Por Defecto"
@@ -9099,6 +9246,10 @@ msgid "Override all default type items."
msgstr "Anular todos los elementos de tipo por defecto."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Añadir Tipo de Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Theme:"
@@ -11610,10 +11761,6 @@ msgid "Batch Rename"
msgstr "Renombrar por lote"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Reemplazar:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefijo:"
@@ -11908,6 +12055,20 @@ msgstr ""
"su lugar."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Guardar Nueva Escena Como..."
@@ -12874,63 +13035,70 @@ msgstr "Crear Solución"
msgid "End of inner exception stack trace"
msgstr "Fin del reporte de la pila de excepciones"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Se debe crear o establecer un recurso NavigationMesh para que este nodo "
+"funcione."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Calcular NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Limpiar la malla de navegación."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Estableciendo la configuración..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calculando tamaño la cuadrícula..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Creando campo de alturas..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marcando triángulos transitables..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construyendo heightfield compacto..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erosionando área transitable..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Particionando..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Creando contornos..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Creando polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Convertir a malla de navegación nativa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Configuración del Generador de Mallas de Navegación:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Analizando geometría..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "¡Hecho!"
@@ -13988,6 +14156,16 @@ msgstr ""
"El polígono oclusor para este oclusor está vacío. Por favor, dibuja un "
"polígono."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14247,13 +14425,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"Un SpotLight con un ángulo superior a 90 grados no puede proyectar sombras."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Se debe crear o establecer un recurso NavigationMesh para que este nodo "
-"funcione."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14261,6 +14437,12 @@ msgstr ""
"NavigationMeshInstance debe ser hijo o nieto de un nodo Navigation. Ya que "
"sólo proporciona los datos de navegación."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "No se ha establecido ninguna forma."
@@ -14746,12 +14928,6 @@ msgstr ""
"'vértice' o 'ligero'."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"¡No se pudo acceder a la variación de la etapa de fragmento en la función "
-"personalizada!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Asignación a función."
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index 0899d2422c..23020a7573 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -1,6 +1,6 @@
# Spanish (Argentina) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Diego López <diegodario21@gmail.com>, 2017.
# Lisandro Lorea <lisandrolorea@gmail.com>, 2016-2018, 2019, 2020, 2021.
@@ -337,6 +337,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Clave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Agregar %d Frame(s)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Eliminar Clave(s)"
@@ -507,6 +512,11 @@ msgstr ""
"única."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Escalar Keys de Anim"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1493,6 +1503,10 @@ msgid "Invalid name."
msgstr "Nombre inválido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caracteres válidos:"
@@ -1597,7 +1611,9 @@ msgstr "Actualizando escena..."
msgid "[empty]"
msgstr "[vacío]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[sin guardar]"
@@ -1618,6 +1634,7 @@ msgstr "Crear Carpeta"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nombre:"
@@ -2119,7 +2136,8 @@ msgid "Properties"
msgstr "Propiedades"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "reemplazar(override):"
#: editor/editor_help.cpp
@@ -2259,6 +2277,20 @@ msgstr "Propiedades del Tema"
msgid "Property:"
msgstr "Propiedad:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2268,6 +2300,29 @@ msgstr "Asignar %s"
msgid "Set Multiple:"
msgstr "Asignar Múltiples:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copiar Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Pegar Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copiar Ruta de Script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Salida:"
@@ -3092,6 +3147,20 @@ msgstr ""
"serán visibles en el proyecto en ejecución."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Cambios de Escena"
@@ -4223,6 +4292,10 @@ msgstr "Buscar en archivos"
msgid "Find:"
msgstr "Buscar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Reemplazar:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Carpeta:"
@@ -4248,6 +4321,11 @@ msgstr "Encontrar..."
msgid "Replace..."
msgstr "Reemplazar..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Reemplazar Todo"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Encontrar: "
@@ -4257,8 +4335,9 @@ msgid "Replace: "
msgstr "Reemplazar: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Reemplazar todo (no se puede deshacer)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Reemplazar Todo"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4480,6 +4559,12 @@ msgstr ""
"ADVERTENCIA: Existen elementos que utilizan este recurso, podrían dejar de "
"cargar correctamente."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Fallo al cargar recurso."
@@ -5948,6 +6033,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Arrastrar: Mover el nodo seleccionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrastrar: Mover el nodo seleccionado."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Establecer la posición de pivote del nodo seleccionado."
@@ -5978,6 +6068,10 @@ msgid "Scale Mode"
msgstr "Modo de Escalado"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6074,20 +6168,44 @@ msgstr "Bloquear el objeto seleccionado en su sitio (no se puede mover)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Bloqueo Seleccionado"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Desbloquear el objeto seleccionado (puede ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Desbloquear Seleccionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Asegurarse que los hijos de un objeto no sean seleccionables."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Seleccionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaurar la habilidad de seleccionar los hijos de un objeto."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Seleccionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opciones de Esqueleto"
@@ -7733,6 +7851,11 @@ msgid "Find in Files..."
msgstr "Buscar en Archivos..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Reemplazar..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Ayuda Contextual"
@@ -8257,6 +8380,19 @@ msgid "Toggle Freelook"
msgstr "Act./Desact. Vista Libre"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Restablecer a Valores Por Defecto"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transform"
@@ -8978,6 +9114,29 @@ msgid "Another Theme"
msgstr "Otro Theme"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Añadir Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfiles Disponibles:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "El nombre del archivo está vacío."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "¿Estás seguro/a que quieres abrir más de un proyecto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Confirmar Cambio de Nombre del Elemento"
@@ -9003,18 +9162,6 @@ msgstr ""
"de este tipo."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Añadir Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Añadir Tipo de Elemento"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Tipos de Nodo:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Valores por Defecto"
@@ -9033,6 +9180,10 @@ msgid "Override all default type items."
msgstr "Anular todos los elementos de tipo por defecto."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Añadir Tipo de Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Theme:"
@@ -11544,10 +11695,6 @@ msgid "Batch Rename"
msgstr "Renombrar en Masa"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Reemplazar:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefijo:"
@@ -11842,6 +11989,20 @@ msgstr ""
"su lugar."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Guardar Nueva Escena Como..."
@@ -12807,63 +12968,69 @@ msgstr "Construir Solución"
msgid "End of inner exception stack trace"
msgstr "Fin del stack trace de excepción interna"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Se debe crear o setear un recurso NavigationMesh para que este nodo funcione."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Bake NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Restablecer mesh de navegación."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Seteando Configuración..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calculando tamaño de grilla..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Creando campo de alturas..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marcando triangulos caminables..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construyendo campo de alturas compacto..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erocionando area caminable..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Particionando..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Creando contornos..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Creando polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Convirtiendo a mesh de navegación nativo..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Configuración del Generador de Meshes de Navegación:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Parseando Geometría..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Hecho!"
@@ -13914,6 +14081,16 @@ msgstr ""
"El polígono oclusor para este oclusor está vacío. Por favor, dibujá un "
"polígono."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14174,12 +14351,11 @@ msgstr ""
"Un SpotLight con un ángulo mas ancho que 90 grados no puede proyectar "
"sombras."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Se debe crear o setear un recurso NavigationMesh para que este nodo funcione."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14187,6 +14363,12 @@ msgstr ""
"NavigationMeshInstance debe ser un hijo o nieto de un nodo Navigation. Solo "
"provee datos de navegación."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "No se ha establecido ninguna forma."
@@ -14669,11 +14851,6 @@ msgstr ""
"reasignadas en 'vertex' o 'light'."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"¡No se pudo acceder a la fragment-stage varying en la función personalizada!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Asignación a función."
diff --git a/editor/translations/et.po b/editor/translations/et.po
index 43cb90beed..acb2a18bcf 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -1,6 +1,6 @@
# Estonian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Jens <arrkiin@gmail.com>, 2019.
# Mattias Aabmets <mattias.aabmets@gmail.com>, 2019.
@@ -322,6 +322,10 @@ msgid "Duplicate Key(s)"
msgstr "Paljunda võti (võtmed)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Kustuta võti (võtmed)"
@@ -490,6 +494,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1452,6 +1460,10 @@ msgid "Invalid name."
msgstr "Vigane nimi."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Kehtivad märgid:"
@@ -1557,7 +1569,9 @@ msgstr "Värskendan stseeni..."
msgid "[empty]"
msgstr "[tühi]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[salvestamata]"
@@ -1578,6 +1592,7 @@ msgstr "Loo kaust"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nimi:"
@@ -2082,8 +2097,9 @@ msgid "Properties"
msgstr "Atribuudid"
#: editor/editor_help.cpp
-msgid "override:"
-msgstr ""
+#, fuzzy
+msgid "overrides %s:"
+msgstr "Salvesta kõik"
#: editor/editor_help.cpp
msgid "default:"
@@ -2218,6 +2234,20 @@ msgstr "Teema atribuut"
msgid "Property:"
msgstr "Atribuut:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(väärtus)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2227,6 +2257,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Sea mitu:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Atribuudid"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Atribuudid"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopeeri sõlme tee"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Väljund:"
@@ -2981,6 +3034,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sünkroniseeri stseeni muudatused"
@@ -4053,6 +4120,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4076,6 +4147,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Ava fail(id)"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4085,7 +4161,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4302,6 +4378,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5730,6 +5812,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5758,6 +5844,10 @@ msgid "Scale Mode"
msgstr "Skaleerimisrežiim"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5852,20 +5942,44 @@ msgstr "Lukusta valitud objekt praegusele kohale (seda ei saa liigutada)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Kustuta sõlm(ed)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Kustuta sõlm(ed)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Kustuta sõlm(ed)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Kustuta sõlm(ed)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7471,6 +7585,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Salvesta fail kui..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kontekstuaalne abi"
@@ -8003,6 +8122,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Laadi vaikimisi"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8743,40 +8875,48 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "Tüüp"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Saadaolevad profiilid:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "Tüüp"
+msgid "Override Item"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Sõlme nimi:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8797,6 +8937,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11162,10 +11306,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11440,6 +11580,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Salvesta uus stseen kui..."
@@ -12375,63 +12529,68 @@ msgstr "Poolresolutioon"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13378,6 +13537,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13585,16 +13754,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13990,10 +14165,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Funktsiooni määramine."
diff --git a/editor/translations/eu.po b/editor/translations/eu.po
index 441210abba..4006cdc00d 100644
--- a/editor/translations/eu.po
+++ b/editor/translations/eu.po
@@ -1,6 +1,6 @@
# Basque translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Julen Irazoki <rktzbkr.julen@gmail.com>, 2019.
# Osoitz <oelkoro@gmail.com>, 2019, 2020.
@@ -322,6 +322,10 @@ msgid "Duplicate Key(s)"
msgstr "Bikoiztu Giltza(k)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Ezabatu Giltza(k)"
@@ -492,6 +496,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1460,6 +1468,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1564,7 +1576,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1585,6 +1599,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2063,7 +2078,8 @@ msgid "Properties"
msgstr "Propietateak"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "gainidatzi:"
#: editor/editor_help.cpp
@@ -2199,6 +2215,20 @@ msgstr "Azalaren propietatea"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(balioa)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2208,6 +2238,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Propietateak"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Propietateak"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Propietateak"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2950,6 +3003,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4032,6 +4099,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4055,6 +4126,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Ireki fitxategia(k)"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4064,7 +4140,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4282,6 +4358,12 @@ msgstr ""
"ABISUA: Baliabide hau darabiltzaten aktiboak daude, kargatzeari utzi "
"liezaiokete."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5707,6 +5789,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5735,6 +5821,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5829,20 +5919,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Bikoiztu hautatutako gakoa(k)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Bikoiztu hautatutako gakoa(k)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Bikoiztu hautatutako gakoa(k)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Bikoiztu hautatutako gakoa(k)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7448,6 +7562,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7965,6 +8083,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8703,6 +8833,27 @@ msgid "Another Theme"
msgstr "Inportatu azala"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Eskuragarri dauden profilak:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Confirm Item Rename"
msgstr "Konfiguratu atxikitzea"
@@ -8727,18 +8878,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Inportatu profila(k)"
@@ -8757,6 +8896,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Azala"
@@ -11119,10 +11262,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11397,6 +11536,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12329,63 +12482,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13330,6 +13488,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13536,16 +13704,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13941,10 +14115,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/extract.py b/editor/translations/extract.py
index 8702ac664c..2594629e5c 100755
--- a/editor/translations/extract.py
+++ b/editor/translations/extract.py
@@ -36,8 +36,8 @@ unique_loc = {}
ctx_group = {} # Store msgctx, msg, and locations.
main_po = """
# LANGUAGE translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index 60b6eb603a..cea2728671 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -1,6 +1,6 @@
# Persian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# alabd14313 <alabd14313@yahoo.com>, 2016.
# Dante Marshal <Marshal.Devilhunter@gmail.com>, 2018.
@@ -341,6 +341,10 @@ msgid "Duplicate Key(s)"
msgstr "تکرار کلید(ها)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "حذ٠کلید(key)"
@@ -508,6 +512,11 @@ msgid ""
msgstr "این گزینه برای اصلاح Ø¨ÙØ²ÛŒÙر کار نمی کند, چون تنها یک مسیر واحد است."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "اندازه کلید های متحرک"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1498,6 +1507,10 @@ msgid "Invalid name."
msgstr "نام نامعتبر."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "کاراکترهای معتبر:"
@@ -1604,7 +1617,9 @@ msgstr "صحنه به روز می شود ..."
msgid "[empty]"
msgstr "[پوچ]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ذخیره نشده]"
@@ -1625,6 +1640,7 @@ msgstr "ایجاد پوشه"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "نام:"
@@ -2106,7 +2122,7 @@ msgid "Properties"
msgstr "خصوصیات"
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2242,6 +2258,20 @@ msgstr "ویژگی زمینه"
msgid "Property:"
msgstr "ویژگی:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(مقدار)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2251,6 +2281,29 @@ msgstr "تنظیم %s"
msgid "Set Multiple:"
msgstr "تعیین چندگانه:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "خصوصیات"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "خصوصیات"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "رونوشت مسیر گره"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "خروجی:"
@@ -2993,6 +3046,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4136,6 +4203,11 @@ msgstr "ÛŒØ§ÙØªÙ†"
msgid "Find:"
msgstr "ÛŒØ§ÙØªÙ†"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "جایگزینی"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4161,6 +4233,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "جایگزینی همه"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4173,7 +4250,7 @@ msgstr "جایگزینی"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "جایگزینی همه"
#: editor/find_in_files.cpp
@@ -4401,6 +4478,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5923,6 +6006,11 @@ msgstr "آیا پرونده‌های انتخاب شده حذ٠شود؟"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "آیا پرونده‌های انتخاب شده حذ٠شود؟"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "ترک انتخاب شده را حذ٠کن."
@@ -5952,6 +6040,10 @@ msgid "Scale Mode"
msgstr "انتخاب حالت"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6052,20 +6144,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "همه‌ی انتخاب ها"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "انتخاب شده را حذ٠کن"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "برداشتن انتخاب شده"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "برداشتن انتخاب شده"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "تنها در قسمت انتخاب شده"
@@ -7763,6 +7879,11 @@ msgid "Find in Files..."
msgstr "ÛŒØ§ÙØªÙ†"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "ÛŒØ§ÙØªÙ†"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8308,6 +8429,19 @@ msgid "Toggle Freelook"
msgstr "دید آزاد"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "بارگیری پیش ÙØ±Ø¶"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9101,6 +9235,30 @@ msgstr "عضوها"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "پیدا کردن نوع گره"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "نمایه‌های موجود:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "مسیر خالی است"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "آیا مطمئن هستید که می خواهید همه اتصالات را از این سیگنال حذ٠کنید؟"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "تغییر نام ترک انیمشین"
@@ -9125,21 +9283,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "پیدا کردن نوع گره"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Ø§ÙØ²ÙˆØ¯Ù† مورد"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "پیدا کردن نوع گره"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "بارگیری پیش ÙØ±Ø¶"
@@ -9157,6 +9300,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Ø§ÙØ²ÙˆØ¯Ù† مورد"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "عضوها"
@@ -11659,11 +11807,6 @@ msgid "Batch Rename"
msgstr "تغییر نام"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "جایگزینی"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11951,6 +12094,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12963,63 +13120,68 @@ msgstr "همه‌ی انتخاب ها"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "یک منبع NavigationMesh باید برای یک گره تنظیم یا ایجاد شود تا کار کند."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -14049,6 +14211,16 @@ msgstr "یک چندضلعی انسدادی باید تنظیم (یا ترسیم)
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "چندضلعی مسدود برای این مسدودکننده، خالی است. Ù„Ø·ÙØ§ یک چندضلعی رسم کنید!"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14282,11 +14454,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "یک منبع NavigationMesh باید برای یک گره تنظیم یا ایجاد شود تا کار کند."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14294,6 +14466,12 @@ msgstr ""
"NavigationMeshInstance باید یک ÙØ±Ø²Ù†Ø¯ یا نوه‌ی یک گره Navigation باشد. این "
"تنها داده‌ی پیمایش را ÙØ±Ø§Ù‡Ù… می‌کند."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14711,10 +14889,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index 83f743e4ea..f461bb0074 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -1,6 +1,6 @@
# Finnish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# basse <basse@roiske.org>, 2017.
# Bastian Salmela <bastian.salmela@gmail.com>, 2017, 2018.
@@ -329,6 +329,11 @@ msgid "Duplicate Key(s)"
msgstr "Kahdenna avainruudut"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Lisää %d ruutua"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Poista avainruudut"
@@ -495,6 +500,11 @@ msgid ""
msgstr "Tämä valinta ei käy Bezier-editoinnille, koska se on vain yksi raita."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animaatio: Skaalaa avaimia"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1476,6 +1486,10 @@ msgid "Invalid name."
msgstr "Virheellinen nimi."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Kelvolliset merkit:"
@@ -1583,7 +1597,9 @@ msgstr "Päivitetään skeneä..."
msgid "[empty]"
msgstr "[tyhjä]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[tallentamaton]"
@@ -1604,6 +1620,7 @@ msgstr "Luo kansio"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nimi:"
@@ -2100,7 +2117,8 @@ msgid "Properties"
msgstr "Ominaisuudet"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "ylikirjoita:"
#: editor/editor_help.cpp
@@ -2240,6 +2258,20 @@ msgstr "Teeman ominaisuus"
msgid "Property:"
msgstr "Ominaisuus:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(arvo)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2249,6 +2281,29 @@ msgstr "Aseta %s"
msgid "Set Multiple:"
msgstr "Aseta useita:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Kopioi ominaisuudet"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Liitä ominaisuudet"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopioi skriptin polku"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Tuloste:"
@@ -3058,6 +3113,20 @@ msgstr ""
"ajettaessa."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Synkronoi skenen muutokset"
@@ -4178,6 +4247,10 @@ msgstr "Etsi tiedostoista"
msgid "Find:"
msgstr "Etsi:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Korvaa:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Kansio:"
@@ -4203,6 +4276,11 @@ msgstr "Etsi..."
msgid "Replace..."
msgstr "Korvaa..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Korvaa kaikki"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Etsi: "
@@ -4212,8 +4290,9 @@ msgid "Replace: "
msgstr "Korvaa: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Korvaa kaikki (ei voi perua)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Korvaa kaikki"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4437,6 +4516,12 @@ msgstr ""
"VAROITUS: Tällä resurssilla on sitä käyttäviä assetteja, ne voivat lakata "
"latautumasta kunnolla."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Resurssin lataaminen epäonnistui."
@@ -5899,6 +5984,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Vedä: Siirrä valittua solmua."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Vedä: Siirrä valittua solmua."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Aseta nykyisen solmun kääntökeskiön sijainti."
@@ -5929,6 +6019,10 @@ msgid "Scale Mode"
msgstr "Skaalaustila"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6025,20 +6119,44 @@ msgstr "Lukitse valitut objektit paikalleen (ei voi liikutella)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Lukitse valitut"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Poista valittujen objektien lukitus (voi liikutella)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Vapauta valitut"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Varmistaa, ettei objektin alisolmuja voi valita."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Ryhmitä valitut"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Palauttaa objektin aliobjektien mahdollisuuden tulla valituksi."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Poista ryhmitys valituilta"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Luurangon asetukset"
@@ -7682,6 +7800,11 @@ msgid "Find in Files..."
msgstr "Etsi tiedostoista..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Korvaa..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Asiayhteydellinen ohje"
@@ -8206,6 +8329,19 @@ msgid "Toggle Freelook"
msgstr "Kytke liikkuminen päälle/pois"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Palauta oletusarvoihin"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Muunna"
@@ -8926,6 +9062,29 @@ msgid "Another Theme"
msgstr "Toinen teema"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Lisää tyyppi"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Saatavilla olevat profiilit:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Tiedostonimi on tyhjä."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Haluatko varmasti avata useamman kuin yhden projektin?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Vahvista osan uudelleen nimeäminen"
@@ -8950,18 +9109,6 @@ msgstr ""
"päivittää kaikkien muiden tämän tyyppisten tyylilaatikoiden ominaisuuksia."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Lisää tyyppi"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Lisää osan tyyppi"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Solmutyypit:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Näytä oletus"
@@ -8978,6 +9125,10 @@ msgid "Override all default type items."
msgstr "Ylikirjoita kaikki oletustyypin osat."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Lisää osan tyyppi"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Teema:"
@@ -11479,10 +11630,6 @@ msgid "Batch Rename"
msgstr "Niputettu uudelleennimeäminen"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Korvaa:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Etuliite:"
@@ -11776,6 +11923,20 @@ msgstr ""
"skeneilmentymästä Skene > Uusi periytetty skene... valikosta."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Tallenna uusi skene nimellä..."
@@ -12741,63 +12902,70 @@ msgstr "Muodosta ratkaisu"
msgid "End of inner exception stack trace"
msgstr "Sisemmän poikkeuksen kutsupinon loppu"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Tälle solmulle täytyy asettaa tai luoda NavigationMesh resurssi, jotta se "
+"toimisi."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Kehitä NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Tyhjennä navigointiverkko."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Luodaan konfiguraatiota..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Lasketaan ruudukon kokoa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Luodaan korkeuskenttää..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Merkitään kuljettavat kolmiot..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Rakennetaan tiivistä korkeuskenttää..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Syövytetään kuljettavaa aluetta..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Ositetaan..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Luodaan korkeuskäyriä..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Luodaan polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Muunnetaan alkuperäiseksi navigointiverkoksi..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Navigointiverkon generaattorin asetukset:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Jäsentää geometriaa…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Valmis!"
@@ -13827,6 +13995,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Tämän peittäjän peittopolygoni on tyhjä. Ole hyvä ja piirrä polygoni."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14087,13 +14265,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"SpotLight, jonka kulma on suurempi kuin 90 astetta, ei voi heittää varjoja."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Tälle solmulle täytyy asettaa tai luoda NavigationMesh resurssi, jotta se "
-"toimisi."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14101,6 +14277,12 @@ msgstr ""
"NavigationMeshInstance solmun täytyy olla Navigation solmun alaisuudessa. Se "
"tarjoaa vain navigointidataa."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Mitään muotoa ei ole asetettu."
@@ -14579,11 +14761,6 @@ msgstr ""
"uudelleensijoittaa 'vertex' tai 'light' funktioissa."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"Kuvapistevaiheen varying muuttujaa ei voitu käyttää mukautetussa funktiossa!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Sijoitus funktiolle."
diff --git a/editor/translations/fil.po b/editor/translations/fil.po
index 76daaee01e..3993213b38 100644
--- a/editor/translations/fil.po
+++ b/editor/translations/fil.po
@@ -1,6 +1,6 @@
# Filipino translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Marco Santos <enum.scima@gmail.com>, 2019.
# Amado Wilkins <epicalert68@gmail.com>, 2019.
@@ -328,6 +328,10 @@ msgid "Duplicate Key(s)"
msgstr "Kopyahin Ang (Mga) Key(s)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Tanggalin Ang (Mga) Key(s)"
@@ -491,6 +495,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1444,6 +1452,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1548,7 +1560,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1569,6 +1583,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2042,7 +2057,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2179,6 +2194,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Halaga:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2188,6 +2217,28 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Burahin ang (mga) Napiling Key"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Property Track"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2926,6 +2977,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3990,6 +4055,11 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Palitan"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4013,6 +4083,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Palitan ang Lahat"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4022,8 +4097,9 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Palitan ang Lahat"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4236,6 +4312,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5660,6 +5742,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5688,6 +5774,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5782,20 +5872,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "I-duplicate ang (mga) Napiling Key"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "I-duplicate ang (mga) Napiling Key"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "I-duplicate ang (mga) Napiling Key"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "I-duplicate ang (mga) Napiling Key"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7402,6 +7516,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Palitan ang Lahat"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7914,6 +8033,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8633,37 +8764,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8683,6 +8822,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11029,11 +11172,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Palitan"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11307,6 +11445,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12238,63 +12390,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13234,6 +13391,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13440,16 +13607,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13844,10 +14017,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index 9040b4b777..ae81d3dbdd 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -1,6 +1,6 @@
# French translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Antoine Carrier <ac.g392@gmail.com>, 2017-2018.
# ARocherVj <a.rocher.vj@gmail.com>, 2017.
@@ -69,7 +69,7 @@
# Sofiane <Sofiane-77@caramail.fr>, 2019, 2021.
# Camille Mohr-Daurat <pouleyketchoup@gmail.com>, 2019.
# Pierre Stempin <pierre.stempin@gmail.com>, 2019.
-# Pierre Caye <pierrecaye@laposte.net>, 2020, 2021.
+# Pierre Caye <pierrecaye@laposte.net>, 2020, 2021, 2022.
# Kevin Bouancheau <kevin.bouancheau@gmail.com>, 2020.
# LaurentOngaro <laurent@gameamea.com>, 2020.
# Julien Humbert <julroy67@gmail.com>, 2020.
@@ -90,8 +90,8 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-10 10:33+0000\n"
-"Last-Translator: Rémi Verschelde <akien@godotengine.org>\n"
+"PO-Revision-Date: 2022-01-03 03:55+0000\n"
+"Last-Translator: Pierre Caye <pierrecaye@laposte.net>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
"Language: fr\n"
@@ -99,7 +99,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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -402,6 +402,11 @@ msgid "Duplicate Key(s)"
msgstr "Dupliquer clé(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Ajouter %d Trame(s)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Supprimer clé(s)"
@@ -575,6 +580,11 @@ msgstr ""
"s’agit que d’une seule piste."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Mettre à l’échelle les clés d’animation"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1564,6 +1574,10 @@ msgid "Invalid name."
msgstr "Nom invalide."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caractères valides :"
@@ -1607,7 +1621,7 @@ msgstr "Supprimer l'AutoLoad"
#: editor/editor_autoload_settings.cpp editor/editor_plugin_settings.cpp
msgid "Enable"
-msgstr "Activer"
+msgstr "Enable"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
@@ -1672,7 +1686,9 @@ msgstr "Mise à jour de la scène…"
msgid "[empty]"
msgstr "[vide]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[non enregistré]"
@@ -1693,6 +1709,7 @@ msgstr "Créer un dossier"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nom :"
@@ -2195,7 +2212,8 @@ msgid "Properties"
msgstr "Propriétés"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "redéfinition :"
#: editor/editor_help.cpp
@@ -2335,6 +2353,20 @@ msgstr "Propriété du thème"
msgid "Property:"
msgstr "Propriété :"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valeur)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2344,6 +2376,29 @@ msgstr "Définir %s"
msgid "Set Multiple:"
msgstr "Définir plusieurs :"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copier les propriétés"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Coller les propriétés"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copier le chemin du script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Sortie :"
@@ -3175,6 +3230,20 @@ msgstr ""
"option est activée."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Synchroniser les modifications des scènes"
@@ -4306,6 +4375,10 @@ msgstr "Rechercher dans les fichiers"
msgid "Find:"
msgstr "Rechercher :"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Remplacer :"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Dossier :"
@@ -4331,6 +4404,11 @@ msgstr "Rechercher…"
msgid "Replace..."
msgstr "Remplacer…"
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Remplacer tout"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Rechercher : "
@@ -4340,8 +4418,9 @@ msgid "Replace: "
msgstr "Remplacer : "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Remplacer tout (pas de retour en arrière)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Remplacer tout"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4564,6 +4643,12 @@ msgstr ""
"AVERTISSEMENT : Il existe des atout qui utilisent cette ressource, elles "
"pourraient cesser de charger correctement."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Impossible de charger la ressource."
@@ -6035,6 +6120,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt + Glisser : Déplacer le nœud sélectionné."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt + Glisser : Déplacer le nœud sélectionné."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V : Définir la position du pivot pour le nœud sélectionné."
@@ -6065,6 +6155,10 @@ msgid "Scale Mode"
msgstr "Mode mise à l'échelle"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6161,20 +6255,44 @@ msgstr "Verrouiller l'objet sélectionné (il ne pourra plus être déplacé)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Verrouillage Sélectionné"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Déverrouiller l'objet sélectionné (il pourra être déplacé de nouveau)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Déverrouillage Sélectionné"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Rendre la sélection des enfants de l'objet impossible."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Groupe sélectionné"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Rendre la sélection des enfants de l'objet de nouveau possible."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Dégrouper Sélectionné"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Configuration du squelette"
@@ -7832,6 +7950,11 @@ msgid "Find in Files..."
msgstr "Rechercher dans les fichiers…"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Remplacer…"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Aide contextuelle"
@@ -8359,6 +8482,19 @@ msgid "Toggle Freelook"
msgstr "Basculer en vue libre"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Réinitialiser aux valeurs par défaut"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformation"
@@ -9089,6 +9225,29 @@ msgid "Another Theme"
msgstr "Autre thème"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Ajouter un type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profils disponibles :"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Le nom de fichier est vide."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Voulez-vous vraiment ouvrir plus d'un projet à la fois ?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Confirmer le renommage d'item"
@@ -9114,18 +9273,6 @@ msgstr ""
"appartenant à ce type."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Ajouter un type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Ajouter un item de type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Types de nœud :"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Afficher par défaut"
@@ -9143,6 +9290,10 @@ msgid "Override all default type items."
msgstr "Surcharge tous les items de type par défaut."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Ajouter un item de type"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Thème :"
@@ -11666,10 +11817,6 @@ msgid "Batch Rename"
msgstr "Renommer par lot"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Remplacer :"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Préfixe :"
@@ -11964,6 +12111,20 @@ msgstr ""
"à la place."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Enregistrer la nouvelle scène sous…"
@@ -12931,63 +13092,70 @@ msgstr "Compiler la solution"
msgid "End of inner exception stack trace"
msgstr "Fin de la trace d'appel (stack trace) intrinsèque"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Une ressource de type NavigationMesh doit être définie ou créée pour que ce "
+"nœud fonctionne."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Calculer le NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Effacer le maillage de navigation."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Initialisation de la configuration..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calcul de la taille de la grille..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Création du champ de hauteur…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marquage des triangles parcourables..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construction d'un champ de hauteur compact..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Réduction de la zone parcourable..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partitionnement..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Création des contours..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Création d'un maillage de contour…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Conversion en maillage de navigation natif…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Paramétrage du générateur de navigation dans la grille :"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Analyse de la géométrie..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "C'est fait !"
@@ -14052,6 +14220,16 @@ msgstr ""
"Le polygone d'occultation pour cet occulteur est vide. Veuillez dessiner un "
"polygone."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14317,13 +14495,11 @@ msgstr ""
"Une SpotLight avec un angle supérieur à 90 degrés ne peut pas projeter "
"d'ombres."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Une ressource de type NavigationMesh doit être définie ou créée pour que ce "
-"nœud fonctionne."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14331,6 +14507,12 @@ msgstr ""
"Un NavigationMeshInstance doit être enfant ou sous-enfant d'un nœud de type "
"Navigation. Il fournit uniquement des données de navigation."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Aucune forme n'est définie."
@@ -14821,12 +15003,6 @@ msgstr ""
"réattribuées dans 'vertex' ou 'light'."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"La varying de l'étape fragment n'a pas pu être accédée dans la fonction "
-"personnalisée !"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Affectation à la fonction."
diff --git a/editor/translations/ga.po b/editor/translations/ga.po
index b7b076d236..d0e6734463 100644
--- a/editor/translations/ga.po
+++ b/editor/translations/ga.po
@@ -1,6 +1,6 @@
# Irish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Rónán Quill <ronan085@gmail.com>, 2019, 2020.
msgid ""
@@ -319,6 +319,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -482,6 +486,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1436,6 +1444,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1540,7 +1552,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1561,6 +1575,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2034,7 +2049,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2170,6 +2185,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2179,6 +2207,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2918,6 +2966,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3976,6 +4038,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3999,6 +4065,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4008,7 +4078,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4224,6 +4294,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5648,6 +5724,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5676,6 +5756,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5770,20 +5854,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7384,6 +7488,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7897,6 +8005,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8613,37 +8733,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8663,6 +8791,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Amharc ar Chomhaid"
@@ -11009,10 +11141,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11285,6 +11413,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12217,63 +12359,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13212,6 +13359,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13418,16 +13575,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13822,10 +13985,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/gl.po b/editor/translations/gl.po
index e4339ad9aa..02e2a982b8 100644
--- a/editor/translations/gl.po
+++ b/editor/translations/gl.po
@@ -1,6 +1,6 @@
# Galician translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Andy Barcia <andybarcia4@gmail.com>, 2021.
@@ -322,6 +322,10 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Chave(s)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Eliminar Chave(s)"
@@ -490,6 +494,11 @@ msgstr ""
"Esta opción non funciona con edición Bezier, xa que é unha única pista."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Escalar Chaves de Animación"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1483,6 +1492,10 @@ msgid "Invalid name."
msgstr "Nome inválido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caracteres válidos:"
@@ -1589,7 +1602,9 @@ msgstr "Actualizando escena..."
msgid "[empty]"
msgstr "[baleiro]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[non gardado]"
@@ -1610,6 +1625,7 @@ msgstr "Crear Cartafol"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nome:"
@@ -2109,7 +2125,8 @@ msgid "Properties"
msgstr "Propiedades"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "sobrescribir:"
#: editor/editor_help.cpp
@@ -2253,6 +2270,20 @@ msgstr "Propiedade de Temas"
msgid "Property:"
msgstr "Propiedade:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2262,6 +2293,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Establecer Varios:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Propiedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copiar Ruta do Nodo"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Saída:"
@@ -3080,6 +3134,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Cambios na Escena"
@@ -4195,6 +4263,10 @@ msgstr "Buscar en Arquivos"
msgid "Find:"
msgstr "Buscar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Substituír:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Cartafol:"
@@ -4220,6 +4292,11 @@ msgstr "Buscar..."
msgid "Replace..."
msgstr "Substituír..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Substituír Todo"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Buscar: "
@@ -4229,8 +4306,9 @@ msgid "Replace: "
msgstr "Substituír: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Substituír todo (non se pode defacer)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Substituír Todo"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4445,6 +4523,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Fallou a carga do Recurso."
@@ -5887,6 +5971,11 @@ msgstr "Alt+Arrastrar: Mover"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrastrar: Mover"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "O nodo seleccionado non é unha Mini-Ventá (Viewport)!"
@@ -5918,6 +6007,10 @@ msgid "Scale Mode"
msgstr "Modo Escalado"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6014,20 +6107,44 @@ msgstr "Fixar o obxecto no sitio (non se poderá mover)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Eliminar Nodo(s)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Liberar o obxecto seleccionado (pode moverse)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Eliminar Nodo(s)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Asegúrase de que os fillos do obxecto non sexan seleccionables."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Selección"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Volve a permitir seleccionar os fillos do obxecto."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Selección"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7665,6 +7782,11 @@ msgid "Find in Files..."
msgstr "Buscar en Arquivos.."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Substituír..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Axuda Contextual"
@@ -8216,6 +8338,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Cargar Valores por Defecto"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformación"
@@ -8984,6 +9119,30 @@ msgstr "Importar Tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfís Dispoñibles:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "O nome de arquivo está baleiro."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Está seguro de que quere abrir máis dun proxecto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Configurar Axuste de Cuadrícula"
@@ -9008,21 +9167,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Engadir Elemento"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Tipo de nodo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Cargar Valores por Defecto"
@@ -9041,6 +9185,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Engadir Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Tema"
@@ -11488,10 +11637,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Substituír:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefixo:"
@@ -11765,6 +11910,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12701,63 +12860,68 @@ msgstr "Resolución á Metade"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Particionando..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Feito!"
@@ -13737,6 +13901,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13967,16 +14141,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14399,10 +14579,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/he.po b/editor/translations/he.po
index 6220b3ec85..3c2ce4ff95 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -1,6 +1,6 @@
# Hebrew translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Daniel <lorddaniel09@gmail.com>, 2018.
# Ben Golan <golanben4@gmail.com>, 2017.
@@ -338,6 +338,10 @@ msgid "Duplicate Key(s)"
msgstr "שכפול מפתח(ות)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "מחיקת מפתח(ות)"
@@ -504,6 +508,11 @@ msgid ""
msgstr "×פשרות זו ××™× ×” פעילה לעריכת בזייה, ×›×™ ×–×ת רק רצועה ×חת."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "הנפשה - שנה גודל של רצועות מפתח"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1475,6 +1484,10 @@ msgid "Invalid name."
msgstr "×©× ×©×’×•×™."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "×ª×•×•×™× ×ª×§×¤×™×:"
@@ -1579,7 +1592,9 @@ msgstr "הסצנה מתעדכנת…"
msgid "[empty]"
msgstr "[ריק]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[×œ× × ×©×ž×¨]"
@@ -1600,6 +1615,7 @@ msgstr "יצירת תיקייה"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "ש×:"
@@ -2086,7 +2102,8 @@ msgid "Properties"
msgstr "מ×פייני×"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "דריסה:"
#: editor/editor_help.cpp
@@ -2227,6 +2244,20 @@ msgstr "מ×פיין ערכת עיצוב"
msgid "Property:"
msgstr "מ×פיין:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(ערך)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2236,6 +2267,29 @@ msgstr "קביעת %s"
msgid "Set Multiple:"
msgstr "קביעה מרובה:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "מ×פייני×"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "מ×פייני×"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "העתקת נתיב הסקריפט"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "פלט:"
@@ -3022,6 +3076,20 @@ msgid ""
msgstr "רשתות ניווט ×•×ž×¦×•×œ×¢×™× ×™×”×™×• ×’×œ×•×™×™× ×‘×”×¨×¦×ª המשחק ×× ×פשרות ×–×ת מופעלת."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "סנכרון ×”×©×™× ×•×™×™× ×‘×¡×¦× ×”"
@@ -4157,6 +4225,11 @@ msgstr "×יתור בקבצי×"
msgid "Find:"
msgstr "×יתור"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "להחליף "
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4181,6 +4254,11 @@ msgstr "×יתור…"
msgid "Replace..."
msgstr "החלפה…"
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "להחליף הכול"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "×יתור "
@@ -4191,7 +4269,7 @@ msgstr "להחליף "
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "להחליף הכול"
#: editor/find_in_files.cpp
@@ -4420,6 +4498,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "טעינת המש×ב נכשלה."
@@ -5918,6 +6002,11 @@ msgstr "מחיקת המרובע שנבחר."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "מחיקת המרובע שנבחר."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "הסרת מפרק ×ו מעברון שנבחרו."
@@ -5947,6 +6036,10 @@ msgid "Scale Mode"
msgstr "מצב שינוי קנה מידה (R)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6049,20 +6142,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "בחירת מיקוד"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "בחירת מיקוד"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "הסרת הבחירה"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "הסרת הבחירה"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "יחידני"
@@ -7738,6 +7855,11 @@ msgid "Find in Files..."
msgstr "×יתור…"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "החלפה…"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "עזרה תלוית הקשר"
@@ -8290,6 +8412,19 @@ msgid "Toggle Freelook"
msgstr "החלפת מצב מבט חופשי"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "×יפוס לברירת מחדל"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "התמרה"
@@ -9078,6 +9213,30 @@ msgstr "×™×™×‘×•× ×¢×¨×›×ª עיצוב"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "סוג"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "×¤×¨×•×¤×™×œ×™× ×–×ž×™× ×™×:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "×©× ×”×§×•×‘×¥ ריק."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "×”×× ×תה בטוח ש×תה רוצה להסיר ×ת כל ×”×—×™×‘×•×¨×™× ×ž×”×ות ×”×–×”?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "הגדרת הצמדה"
@@ -9103,20 +9262,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "סוג"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "×יתור סוג מפרק"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "טעינת בררת המחדל"
@@ -9134,6 +9279,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "שמירת ערכת העיצוב"
@@ -11611,11 +11760,6 @@ msgid "Batch Rename"
msgstr "שינוי ש×"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "להחליף "
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11904,6 +12048,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "שמירת סצנה חדשה בש×…"
@@ -12862,63 +13020,68 @@ msgstr "מילוי הבחירה"
msgid "End of inner exception stack trace"
msgstr "סוף מחסנית מעקב לחריגה פנימית"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "יש להגדיר ×ו ליצור מש×ב NavigationMesh כדי שצומת ×–×” יפעל."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "×פיית NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "ניקוי רשת הניווט."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "הגדרת תצורה..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "חישוב גודל רשת..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "יצירת שדה גובה..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "סימון ×ž×©×•×œ×©×™× ×”× ×™×ª× ×™× ×œ×”×œ×™×›×”..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "בונה שדה גובה קומפקטי..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "שחיקת השטח הניתן להליכה..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "יצירת מחיצות..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "יצירת קווי מת×ר..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "יצירת polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "המרה לרשת ניווט מקומית..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "הגדרת מחולל רשת ניווט:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "ניתוח ×’×™×ומטרי..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "בוצע!"
@@ -13926,6 +14089,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14167,11 +14340,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight ×¢× ×–×•×•×™×ª רחבה מ-90 מעלות ×ינו יכול להטיל צללי×."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "יש להגדיר ×ו ליצור מש×ב NavigationMesh כדי שצומת ×–×” יפעל."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14179,6 +14352,12 @@ msgstr ""
"NavigationMeshInstance חייב להיות ילד ×ו נכד למפרק Navigation. ×”×•× ×ž×¡×¤×§ רק "
"נתוני ניווט."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14615,10 +14794,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "השמה לפונקציה."
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index ee434b6b24..29d59d3ee1 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -1,6 +1,6 @@
# Hindi translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Abhas Kumar Sinha <abhaskumarsinha@gmail.com>, 2017.
# Suryansh5545 <suryanshpathak5545@gmail.com>, 2018, 2020.
@@ -331,6 +331,10 @@ msgid "Duplicate Key(s)"
msgstr "डà¥à¤ªà¥à¤²à¥€à¤•ेट कà¥à¤‚जी (ओं)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "कà¥à¤‚जी को हटाà¤à¤‚"
@@ -499,6 +503,11 @@ msgid ""
msgstr "यह विकलà¥à¤ª बेज़ियर संपादन के लिठकाम नहीं करता है, कà¥à¤¯à¥‹à¤‚कि यह केवल à¤à¤• ही टà¥à¤°à¥ˆà¤• है।"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "à¤à¤¨à¤¿à¤®à¥‡à¤Ÿà¥‡à¤¡ सà¥à¤•ेल कà¥à¤‚जी"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1485,6 +1494,10 @@ msgid "Invalid name."
msgstr "अमानà¥à¤¯ नाम."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "मानà¥à¤¯ अकà¥à¤·à¤°:"
@@ -1590,7 +1603,9 @@ msgstr "सीन अपडेट कर रहा है..."
msgid "[empty]"
msgstr "[खाली]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[अनसेवà¥à¤¡]"
@@ -1611,6 +1626,7 @@ msgstr "फ़ोलà¥à¤¡à¤° बनाइये"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "नाम:"
@@ -2107,7 +2123,8 @@ msgid "Properties"
msgstr "विशेषता"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "अधिभावी करता है:"
#: editor/editor_help.cpp
@@ -2247,6 +2264,20 @@ msgstr "थिम पà¥à¤°à¥‹à¤ªà¤°à¥à¤Ÿà¥€"
msgid "Property:"
msgstr "पà¥à¤°à¥‹à¤ªà¤°à¥à¤Ÿà¥€:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(मूलà¥à¤¯)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2256,6 +2287,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "अनेक सेट करे:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "विशेषता"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "विशेषता"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "विशेषता"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "परिणाम:"
@@ -3049,6 +3103,20 @@ msgstr ""
"देंगे।"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "दृशà¥à¤¯ संशोधन सिंकà¥à¤°à¤¨à¤¾à¤‡à¤œà¤¼ करें"
@@ -4178,6 +4246,11 @@ msgstr "फ़ाइलों मे तलाशिये"
msgid "Find:"
msgstr "तलाशिये:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "बदले"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "फ़ोलà¥à¤¡à¤°:"
@@ -4202,6 +4275,11 @@ msgstr "तलाशिये..."
msgid "Replace..."
msgstr "बदली करे..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "सबको बदली करें"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "तलाशिये: "
@@ -4211,8 +4289,9 @@ msgid "Replace: "
msgstr "बदली करे: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "सभी बदली करे (इसे अंडू नहीं किया जा सकता है)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "सबको बदली करें"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4428,6 +4507,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5859,6 +5944,11 @@ msgstr "चयनित फ़ाइलें हटाà¤à¤‚?"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "चयनित फ़ाइलें हटाà¤à¤‚?"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "चयनित नोड या संकà¥à¤°à¤®à¤£ निकालें।"
@@ -5887,6 +5977,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5981,20 +6075,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "को हटा दें"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "चयनित चाबी (फ़ाइलें) डà¥à¤ªà¥à¤²à¤¿à¤•ेट"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "समूह चयनित"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "असमूह चयनित"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7634,6 +7752,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "बदली करे..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8155,6 +8278,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "पà¥à¤°à¤¾à¤¯à¤¿à¤• लोड कीजिये"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8919,41 +9055,50 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "तà¥à¤°à¤¿à¤•ोण जोड़ें"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "उपलबà¥à¤§ पà¥à¤°à¥‹à¤«à¤¼à¤¾à¤‡à¤²:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Override Item"
-msgstr "मौजूदा के ऊपर लिखे"
+msgid "Are you sure you want to create an empty type?"
+msgstr "कà¥à¤¯à¤¾ आप सà¥à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ हैं कि आप इस सिगà¥à¤¨à¤² से सभी कनेकà¥à¤¶à¤¨ हटाना चाहते हैं?"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "तà¥à¤°à¤¿à¤•ोण जोड़ें"
+msgid "Override Item"
+msgstr "मौजूदा के ऊपर लिखे"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "नोड का नाम:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8974,6 +9119,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "खोलो इसे"
@@ -11390,11 +11539,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "बदले"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11673,6 +11817,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12632,63 +12790,68 @@ msgstr "सभी खंड"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13664,6 +13827,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13872,16 +14045,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14281,10 +14460,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index 7dda3e5a1d..a5279a9099 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -1,6 +1,6 @@
# Croatian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Unlimited Creativity <marinosah1@gmail.com>, 2019.
# Patik <patrikfs5@gmail.com>, 2019.
@@ -321,6 +321,10 @@ msgid "Duplicate Key(s)"
msgstr "Duplicirani kljuÄ(evi)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "ObriÅ¡i kljuÄ(eve)"
@@ -485,6 +489,11 @@ msgstr ""
"Ova opcija ne radi za editiranje Beziera, zato što je samo jedna staza."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Skaliraj KljuÄeve"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1455,6 +1464,10 @@ msgid "Invalid name."
msgstr "Nevažeće ime."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Važeći znakovi:"
@@ -1559,7 +1572,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1580,6 +1595,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2059,7 +2075,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2195,6 +2211,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(vrijednost)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2204,6 +2234,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Omogućena Svojstva:"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Omogućena Svojstva:"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Omogućena Svojstva:"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2943,6 +2996,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4010,6 +4077,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Zamijeni:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4033,6 +4104,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Zamijeni sve"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4042,8 +4118,9 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Zamijeni sve"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4262,6 +4339,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5686,6 +5769,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5714,6 +5801,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5808,20 +5899,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Duplikati Odabranih KljuÄeva"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Duplikati Odabranih KljuÄeva"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Duplikati Odabranih KljuÄeva"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Duplikati Odabranih KljuÄeva"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7433,6 +7548,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Zamijeni sve"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7949,6 +8069,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "UÄitaj Zadano"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8674,39 +8807,49 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
-msgstr ""
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Dostupni Profili:"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Naziv datoteke je prazan."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Jesi li siguran da želiš ukloniti sve veze s ovog signala?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Naziv ÄŒvora(node):"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8726,6 +8869,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11086,10 +11233,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Zamijeni:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11363,6 +11506,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12297,63 +12454,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13297,6 +13459,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13503,16 +13675,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13908,10 +14086,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index c4d0d72376..722be28839 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -1,6 +1,6 @@
# Hungarian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Ãrpád Horváth <horvatha4@googlemail.com>, 2018.
# Nagy Lajos <neutron9707@gmail.com>, 2017.
@@ -21,13 +21,14 @@
# Frontrider <frontrider@tutanota.com>, 2021.
# Andras Virag <snowflake71@gmail.com>, 2021.
# balintmaci <balintmaci@gmail.com>, 2021.
+# Balázs Püspök-Kiss <pkblazsak@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-12-06 21:44+0000\n"
-"Last-Translator: balintmaci <balintmaci@gmail.com>\n"
+"PO-Revision-Date: 2021-12-23 15:30+0000\n"
+"Last-Translator: Balázs Püspök-Kiss <pkblazsak@gmail.com>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/"
"godot/hu/>\n"
"Language: hu\n"
@@ -35,7 +36,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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -338,6 +339,10 @@ msgid "Duplicate Key(s)"
msgstr "Kulcs(ok) Megkettőzése"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Kulcs(ok) Törlése"
@@ -509,6 +514,11 @@ msgstr ""
"Ez az opció nem működik Bezier szerkesztésre, mert ez csak egyetlen sáv."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animáció - Kulcsok Nyújtása"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1492,6 +1502,10 @@ msgid "Invalid name."
msgstr "Érvénytelen név."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Érvényes karakterek:"
@@ -1599,7 +1613,9 @@ msgstr "Scene frissítése..."
msgid "[empty]"
msgstr "[üres]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[nincs mentve]"
@@ -1620,6 +1636,7 @@ msgstr "Mappa Létrehozása"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Név:"
@@ -1764,7 +1781,7 @@ msgstr "Beépített hozzáférést ad a Csomagkönyvtárhoz."
#: editor/editor_feature_profile.cpp
msgid "Allows editing the node hierarchy in the Scene dock."
-msgstr ""
+msgstr "Engedélyezi a Node hierarchia szerkesztését a Jelenet dokkban."
#: editor/editor_feature_profile.cpp
msgid ""
@@ -2122,7 +2139,8 @@ msgid "Properties"
msgstr "Tulajdonságok"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "felülírja:"
#: editor/editor_help.cpp
@@ -2266,6 +2284,20 @@ msgstr "Téma tulajdonság"
msgid "Property:"
msgstr "Tulajdonság:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(érték)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2275,6 +2307,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Többszörös beállítása:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Tulajdonságok"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Tulajdonságok"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Szkript Útvonal Másolása"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Kimenet:"
@@ -3095,6 +3150,20 @@ msgstr ""
"lesznek a játék futásakor."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Jelenet Változások Szinkronizálása"
@@ -4215,6 +4284,10 @@ msgstr "Keresés a fájlokban"
msgid "Find:"
msgstr "Keres:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Csere:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Mappa:"
@@ -4238,6 +4311,11 @@ msgstr "Keresés..."
msgid "Replace..."
msgstr "Csere..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Összes cseréje"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Keres: "
@@ -4247,8 +4325,9 @@ msgid "Replace: "
msgstr "Csere: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Összes lecserélése (nem visszavonható)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Összes cseréje"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4465,6 +4544,12 @@ msgstr ""
"FIGYELMEZTETÉS: Vannak olyan eszközök, amelyek ezt az erőforrást használják, "
"ezért leállíthatják a megfelelő betöltést."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Nem sikerült betölteni az erőforrást."
@@ -5921,6 +6006,11 @@ msgstr "Alt + Húzás: Mozgatás"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt + Húzás: Mozgatás"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Kiválasztott node vagy átmenet eltávolítása."
@@ -5952,6 +6042,10 @@ msgid "Scale Mode"
msgstr "Méretezési mód"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6048,20 +6142,44 @@ msgstr "A kiválasztott objektum zárolása (nem lesz mozgatható)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Kijelölés zárolása"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "A kiválasztott objektum feloldása (mozgatható lesz)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Kijelölés feloldása"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Kiválaszthatatlanná teszi az objektum gyermekeit."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Kijelöltek csoportosítása"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Újra kiválaszthatóvá teszi az objektum gyermekeit."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "kijelölt csoportok szétbontása"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Csontváz beállítások"
@@ -7688,6 +7806,11 @@ msgid "Find in Files..."
msgstr "Keresés a fájlokban..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Csere..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Kontextusérzékeny Súgó"
@@ -8227,6 +8350,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Visszaállítás Alapértelmezettre"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8989,6 +9125,30 @@ msgstr "Téma Importálása"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Node típus keresése"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Elérhető profilok:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "A fájlnév üres."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Biztos, hogy egynél több projektet nyit meg?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Animáció nyomvonal átnevezés"
@@ -9014,21 +9174,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Node típus keresése"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Elem Hozzáadása"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Node típusa"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Alapértelmezett Betöltése"
@@ -9047,6 +9192,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Elem Hozzáadása"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Téma Mentése"
@@ -11407,10 +11557,6 @@ msgid "Batch Rename"
msgstr "Csoportos átnevezés"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Csere:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11687,6 +11833,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12625,63 +12785,68 @@ msgstr "Kijelölés kitöltése"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Navigációs háló törlése."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Konfiguráció beállítása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Rácsméret kiszámítása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Magasságmező létrehozása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Járható háromszögek megjelölése…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Kompakt magasságmező kiépítése…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Járható terület lepusztítása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Particionálás…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Kontúrok létrehozása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Polymesh létrehozása…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Ãtkonvertálás natív navigációs hálóra…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Navigációs Háló Generátor Beállítás:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Geometria Elemzése…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Kész!"
@@ -13644,6 +13809,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13852,16 +14027,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14260,10 +14441,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/id.po b/editor/translations/id.po
index c72e39eebd..686536da75 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -1,6 +1,6 @@
# Indonesian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Abdul Aziz Muslim Alqudsy <abdul.aziz.muslim.alqudsy@gmail.com>, 2016.
# Andevid Dynmyn <doyan4forum@gmail.com>, 2016.
@@ -352,6 +352,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplikat Key"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Tambah %d Frame"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Hapus Key"
@@ -520,6 +525,11 @@ msgid ""
msgstr "Opsi ini tidak bisa untuk mengedit Bezier, karena hanya satu track."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Skala Kunci Anim"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1501,6 +1511,10 @@ msgid "Invalid name."
msgstr "Nama tidak sah."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Karakter sah:"
@@ -1606,7 +1620,9 @@ msgstr "Memperbarui skena..."
msgid "[empty]"
msgstr "[kosong]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[belum disimpan]"
@@ -1627,6 +1643,7 @@ msgstr "Buat Folder"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nama:"
@@ -2124,7 +2141,8 @@ msgid "Properties"
msgstr "Properti"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "menimpa:"
#: editor/editor_help.cpp
@@ -2268,6 +2286,20 @@ msgstr "Properti Tema"
msgid "Property:"
msgstr "Properti:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(nilai)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2277,6 +2309,29 @@ msgstr "Setel %s"
msgid "Set Multiple:"
msgstr "Terapkan Bersamaan:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Salin Properti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Tempel Properti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Salin Lokasi Skrip"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Keluaran:"
@@ -3090,6 +3145,20 @@ msgstr ""
"Navigasi dan poligon akan terlihat saat game berjalan jika opsi ini aktif."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sinkronkan Perubahan Skena"
@@ -4206,6 +4275,10 @@ msgstr "Cari dalam Berkas"
msgid "Find:"
msgstr "Cari:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Ganti:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Direktori:"
@@ -4231,6 +4304,11 @@ msgstr "Cari..."
msgid "Replace..."
msgstr "Gantikan..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Ganti Semua"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Cari: "
@@ -4240,8 +4318,9 @@ msgid "Replace: "
msgstr "Ganti: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Ganti Semua (tidak bisa dikembalikan)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Ganti Semua"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4457,6 +4536,12 @@ msgstr ""
"PERINGATAN: Ada aset-aset yang menggunakan resource ini, mereka mungkin akan "
"berhenti untuk termuat secara sempurna."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Gagal memuat resource."
@@ -5912,6 +5997,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Seret: Pindahkan node terpilih."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Seret: Pindahkan node terpilih."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Atur posisi pivot node terpilih."
@@ -5942,6 +6032,10 @@ msgid "Scale Mode"
msgstr "Mode Skala"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6038,20 +6132,44 @@ msgstr "Kunci objek terpilih di tempat (tidak dapat di pindah)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Kunci yang Dipilih"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Buka kunci objek terpilih (dapat di pindah)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Lepas Kunci yang Dipilih"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Pastikan anak-anak objek tidak dapat diseleksi."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Kelompokkan yang Dipilih"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Jadikan anak-anak object dapat di seleksi kembali."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Keluarkan yang dipilih dari Grup"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opsi Pertulangan"
@@ -7697,6 +7815,11 @@ msgid "Find in Files..."
msgstr "Cari Dalam Berkas..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Gantikan..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Bantuan Kontekstual"
@@ -8226,6 +8349,19 @@ msgid "Toggle Freelook"
msgstr "Aktifkan Mode Tampilan Bebas"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Reset ke Default"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformasi"
@@ -8982,6 +9118,30 @@ msgstr "Impor Tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Tipe"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profil yang Tersedia:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Nama berkas kosong."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Apakah Anda yakin membuka lebih dari satu proyek?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Namai Kembali Trek Anim"
@@ -9007,20 +9167,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tipe"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Tambah Item"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Tipe node:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Muat Default"
@@ -9038,6 +9184,11 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Item Type"
+msgstr "Tambah Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -11565,10 +11716,6 @@ msgid "Batch Rename"
msgstr "Ubah Nama Massal"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Ganti:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Awalan:"
@@ -11850,6 +11997,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Simpan Skena Baru sebagai..."
@@ -12816,63 +12977,70 @@ msgstr "Isi Pilihan"
msgid "End of inner exception stack trace"
msgstr "Akhir dari inner exception stack trace"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Sebuah resource NavigationMesh harus diatur atau diciptakan supaya node ini "
+"bekerja."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Panggang NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Bersihkan mesh navigasi."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Menyiapkan Konfigurasi..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Menghitung ukuran kisi..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Membuat bidang ketinggian..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Segitiga penanda walkable..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Membangun dataran tinggi..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Mengikis area jalan..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Mempartisi..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Membuat kontur..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Membuat polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Mengkonversi ke mesh navigasi native..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Pengaturan Generator Navigasi Mesh:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Mengurai Geometri..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Selesai!"
@@ -13902,6 +14070,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"Polygon occluder untuk occluder ini kosong. Mohon gambar dulu sebuah poligon."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14161,13 +14339,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"SpotLight dengan sudut lebih dari 90 derajat tidak dapat memberikan bayangan."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Sebuah resource NavigationMesh harus diatur atau diciptakan supaya node ini "
-"bekerja."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14175,6 +14351,12 @@ msgstr ""
"NavigationMeshInstance harus menjadi child atau grandchild untuk sebuah node "
"Navigation. Ini hanya menyediakan data navigasi."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14630,10 +14812,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Penugasan ke fungsi."
diff --git a/editor/translations/is.po b/editor/translations/is.po
index 45656f16a8..99a2daa775 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -1,6 +1,6 @@
# Icelandic translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Jóhannes G. Þorsteinsson <johannesg@johannesg.com>, 2017, 2018, 2020.
# Kaan Gül <qaantum@hotmail.com>, 2018.
@@ -339,6 +339,10 @@ msgid "Duplicate Key(s)"
msgstr "Tvíteknir lyklar"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "Anim DELETE-lyklar"
@@ -510,6 +514,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Færa lykla af Anim"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1471,6 +1480,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1575,7 +1588,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1596,6 +1611,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2072,7 +2088,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2208,6 +2224,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2217,6 +2246,28 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Fjarlægja val"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Tvíteknir lyklar"
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2959,6 +3010,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4024,6 +4089,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4047,6 +4116,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4056,7 +4129,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4273,6 +4346,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5720,6 +5799,11 @@ msgstr "Afrita val"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Afrita val"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Fjarlægja val"
@@ -5748,6 +5832,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5842,20 +5930,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Anim DELETE-lyklar"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Afrita val"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Fjarlægja val"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Fjarlægja val"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7468,6 +7580,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7981,6 +8097,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8712,39 +8840,47 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "Anim bæta við lag"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Cancel Item Rename"
-msgstr "Endurnefning Anim track"
+msgid "Available Node-based types:"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Anim bæta við lag"
+msgid "Cancel Item Rename"
+msgstr "Endurnefning Anim track"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8764,6 +8900,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11152,10 +11292,6 @@ msgid "Batch Rename"
msgstr "Endurnefning Anim track"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11432,6 +11568,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12371,63 +12521,68 @@ msgstr "Allt úrvalið"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13375,6 +13530,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13581,16 +13746,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13985,10 +14156,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/it.po b/editor/translations/it.po
index 0f5d996449..18b4fe4bce 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -1,6 +1,6 @@
# Italian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Alessio Corridori <alessiocorridori@hotmail.com>, 2018.
# Dario Bonfanti <bonfi.96@hotmail.it>, 2016-2017.
@@ -59,17 +59,18 @@
# Alessandro Mandelli <mandelli.alessandro@ngi.it>, 2021.
# Jusef Azzolina <rosarioazzolina33@gmail.com>, 2021.
# Daniele Basso <tiziodcaio@gmail.com>, 2021.
-# Riteo Siuga <riteo@posteo.net>, 2021.
+# Riteo Siuga <riteo@posteo.net>, 2021, 2022.
# Luigi <luibass92@live.it>, 2021.
# Micky <micheledevita2@gmail.com>, 2021.
# Fabio Plos <altre0cose@gmail.com>, 2021.
# Theraloss <danilo.polani@gmail.com>, 2021.
+# Pietro Grungo <pietro.grungo@libero.it>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-11-19 08:43+0000\n"
+"PO-Revision-Date: 2022-01-06 01:53+0000\n"
"Last-Translator: Riteo Siuga <riteo@posteo.net>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
@@ -78,7 +79,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 4.9.1-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -380,6 +381,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplica i fotogrammi chiave selezionati"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Aggiungi %d frame"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Elimina i fotogrammi chiave selezionati"
@@ -553,6 +559,11 @@ msgstr ""
"si tratta di una singola traccia."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Scala delle chiavi d'animazione"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -682,7 +693,7 @@ msgstr "Crea traccia/e di rispristino"
#: editor/animation_track_editor.cpp
msgid "Anim. Optimizer"
-msgstr "Ottimizzatore anim."
+msgstr "Ottimizzatore animazioni"
#: editor/animation_track_editor.cpp
msgid "Max. Linear Error:"
@@ -1386,7 +1397,6 @@ msgid "Toggle Audio Bus Mute"
msgstr "Commuta l'ammutolimento di un bus audio"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Toggle Audio Bus Bypass Effects"
msgstr "Commuta il bypass degli effetti del bus audio"
@@ -1538,6 +1548,10 @@ msgid "Invalid name."
msgstr "Nome non valido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caratteri validi:"
@@ -1644,7 +1658,9 @@ msgstr "Aggiornamento della scena..."
msgid "[empty]"
msgstr "[vuoto]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[non salvato]"
@@ -1665,6 +1681,7 @@ msgstr "Crea una cartella"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nome:"
@@ -1849,10 +1866,8 @@ msgstr ""
"annullato."
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Profile must be a valid filename and must not contain '.'"
-msgstr ""
-"Il profilo deve essere un nome di file valido e non può contenere \".\""
+msgstr "Il profilo deve avere un nome valido e non può contenere \".\""
#: editor/editor_feature_profile.cpp
msgid "Profile with this name already exists."
@@ -1884,7 +1899,7 @@ msgstr "Proprietà delle classi:"
#: editor/editor_feature_profile.cpp
msgid "Main Features:"
-msgstr "Funzionalità Principali"
+msgstr "Funzionalità Principali:"
#: editor/editor_feature_profile.cpp
msgid "Nodes and Classes:"
@@ -1945,7 +1960,7 @@ msgstr "Configura il profilo selezionato:"
#: editor/editor_feature_profile.cpp
msgid "Extra Options:"
-msgstr "Opzioni Addizionali"
+msgstr "Opzioni aggiuntive:"
#: editor/editor_feature_profile.cpp
msgid "Create or import a profile to edit available classes and properties."
@@ -2170,7 +2185,8 @@ msgid "Properties"
msgstr "Proprietà"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "sovrascrivi:"
#: editor/editor_help.cpp
@@ -2186,9 +2202,8 @@ msgid "Theme Properties"
msgstr "Proprietà del tema"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Colors"
-msgstr "Colore"
+msgstr "Colori"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constants"
@@ -2203,9 +2218,8 @@ msgid "Icons"
msgstr "Icone"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Styles"
-msgstr "Stile"
+msgstr "Stili"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2312,6 +2326,20 @@ msgstr "Proprietà del tema"
msgid "Property:"
msgstr "Proprietà:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valore)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2321,6 +2349,29 @@ msgstr "Imposta %s"
msgid "Set Multiple:"
msgstr "Imposta più valori:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copia Proprietà"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Incolla Proprietà"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copia il percorso dello script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Output:"
@@ -2643,7 +2694,7 @@ msgstr "Salvare le modifiche a \"%s\" prima di chiudere?"
#: editor/editor_node.cpp
msgid "%s no longer exists! Please specify a new save location."
-msgstr "%s non esiste più! Specificare una nuova posizione di salvataggio"
+msgstr "%s non esiste più! Specificare una nuova posizione di salvataggio."
#: editor/editor_node.cpp
msgid ""
@@ -2659,7 +2710,7 @@ msgid ""
"Scene tree dock."
msgstr ""
"È necessario un nodo principale per salvare la scena. Puoi aggiungerne uno "
-"nel pannello di scena"
+"nel pannello di scena."
#: editor/editor_node.cpp
msgid "Save Scene As..."
@@ -2691,7 +2742,7 @@ msgstr "Scena attuale non salvata. Aprire comunque?"
#: editor/editor_node.cpp
msgid "Can't undo while mouse buttons are pressed."
-msgstr "Impossible annullare quando i bottoni del mouse sono premuti"
+msgstr "Impossibile tornare indietro mentre i tasti del mouse sono premuti."
#: editor/editor_node.cpp
msgid "Nothing to undo."
@@ -3144,6 +3195,20 @@ msgstr ""
"saranno visibili nel progetto in esecuzione."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizza i cambiamenti delle scene"
@@ -3261,7 +3326,6 @@ msgid "Support Godot Development"
msgstr "Supporta lo sviluppo di Godot"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Play the project."
msgstr "Esegui il progetto."
@@ -3311,7 +3375,6 @@ msgid "Update Continuously"
msgstr "Aggiorna continuamente"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Update When Changed"
msgstr "Aggiorna quando modificata"
@@ -3340,10 +3403,9 @@ msgid "Don't Save"
msgstr "Non salvare"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Android build template is missing, please install relevant templates."
msgstr ""
-"Modello di costruzione di Android mancante, si prega di installare i modelli "
+"Il modello di costruzione di Android manca, si prega di installare i modelli "
"rilevanti."
#: editor/editor_node.cpp
@@ -3398,7 +3460,6 @@ msgid "Template Package"
msgstr "Pacchetto di modelli"
#: editor/editor_node.cpp modules/gltf/editor_scene_exporter_gltf_plugin.cpp
-#, fuzzy
msgid "Export Library"
msgstr "Esporta Libreria"
@@ -3481,9 +3542,8 @@ msgid "No sub-resources found."
msgstr "Nessuna sottorisorsa trovata."
#: editor/editor_path.cpp
-#, fuzzy
msgid "Open a list of sub-resources."
-msgstr "Apre una lista di sottorisorse."
+msgstr "Apri una lista di sottorisorse."
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -3532,9 +3592,8 @@ msgid "Frame Time (ms)"
msgstr "Durata di un fotogramma (ms)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (ms)"
-msgstr "Tempo medio (sec)"
+msgstr "Tempo medio (ms)"
#: editor/editor_profiler.cpp
#, fuzzy
@@ -3635,7 +3694,6 @@ msgid "Pick a Viewport"
msgstr "Selezionare una vista"
#: editor/editor_properties.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Selected node is not a Viewport!"
msgstr "Il nodo selezionato non è un Viewport!"
@@ -3673,7 +3731,6 @@ msgstr ""
"questa proprietà (%s)."
#: editor/editor_resource_picker.cpp
-#, fuzzy
msgid "Quick Load"
msgstr "Caricamento rapido"
@@ -3696,7 +3753,6 @@ msgid "Paste"
msgstr "Incolla"
#: editor/editor_resource_picker.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Convert to %s"
msgstr "Converti in %s"
@@ -3724,9 +3780,8 @@ msgstr ""
"esistente come eseguibile."
#: editor/editor_run_script.cpp
-#, fuzzy
msgid "Write your logic in the _run() method."
-msgstr "Inserire la logica dello script nel metodo _run()."
+msgstr "Inserisci la logica dello script nel metodo _run()."
#: editor/editor_run_script.cpp
msgid "There is an edited scene already."
@@ -3749,10 +3804,9 @@ msgid "Did you forget the '_run' method?"
msgstr "Hai dimenticato il metodo \"_run\"?"
#: editor/editor_spin_slider.cpp
-#, fuzzy
msgid "Hold %s to round to integers. Hold Shift for more precise changes."
msgstr ""
-"Tenere premuto %s per arrotondare ai numeri interi. Tenere premuto Shift per "
+"Tieni premuto %s per arrotondare ai numeri interi. Tieni premuto Shift per "
"modifiche più precise."
#: editor/editor_sub_scene.cpp
@@ -3780,14 +3834,12 @@ msgid "Uninstall these templates."
msgstr "Disinstalla questi modelli."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "There are no mirrors available."
-msgstr "File \"%s\" assente."
+msgstr "Non ci sono mirror disponibili."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving the mirror list..."
-msgstr "Recupero dei mirror, attendi..."
+msgstr "Recupero dei mirror..."
#: editor/export_template_manager.cpp
msgid "Starting the download..."
@@ -3798,23 +3850,20 @@ msgid "Error requesting URL:"
msgstr "Errore nella richiesta URL:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to the mirror..."
-msgstr "Connessione al mirror in corso..."
+msgstr "Connessione al mirror..."
#: editor/export_template_manager.cpp
msgid "Can't resolve the requested address."
msgstr "Impossibile risolvere l'hostname."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't connect to the mirror."
-msgstr "Impossibile connettersi all'host."
+msgstr "Impossibile connettersi al mirror."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No response from the mirror."
-msgstr "Nessuna risposta dall'host:"
+msgstr "Nessuna risposta dal mirror."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -3984,9 +4033,8 @@ msgid "Uninstall templates for the current version."
msgstr "Disinstalla template dalla versione attuale."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download from:"
-msgstr "Errore durante il download"
+msgstr "Scarica da:"
#: editor/export_template_manager.cpp
#, fuzzy
@@ -4304,6 +4352,10 @@ msgstr "Trova nei File"
msgid "Find:"
msgstr "Trova:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Sostituisci:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Cartella:"
@@ -4329,6 +4381,11 @@ msgstr "Trova..."
msgid "Replace..."
msgstr "Sostituisci..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Sostituisci tutti"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Trova: "
@@ -4339,8 +4396,8 @@ msgstr "Sostituisci: "
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
-msgstr "Sostituisci tutto (non annullabile)"
+msgid "Replace All (NO UNDO)"
+msgstr "Sostituisci tutti"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4561,6 +4618,12 @@ msgstr ""
"ATTENZIONE: Esistono dei contenuti che utilizzano questa risorsa, potrebbero "
"non essere più caricati correttamente."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Caricamento della risorsa fallito."
@@ -4885,9 +4948,8 @@ msgid "Blend:"
msgstr "Blend:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Parameter Changed:"
-msgstr "Parametro Modificato"
+msgstr "Parametro modificato:"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
@@ -6036,6 +6098,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Trascina: Muovi nodo selezionato."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Trascina: Muovi nodo selezionato."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Imposta il perno di rotazione del nodo selezionato."
@@ -6066,6 +6133,10 @@ msgid "Scale Mode"
msgstr "Modalità scala"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6179,20 +6250,44 @@ msgstr "Blocca l'oggetto selezionato sul posto (non può essere mosso)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Blocca selezionato(i)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Sblocca l'oggetto selezionato (può essere mosso)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Sblocca selezionato(i)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Accerta che I figli dell'oggetto non siano selezionabili."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Raggruppa Selezionato(i)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Ripristina l'abilità dei figli dell'oggetto di essere selezionati."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Rimuovi selezionato(i) dal gruppo"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opzioni Scheletro"
@@ -6650,9 +6745,8 @@ msgid "No mesh to debug."
msgstr "Nessuna mesh da debuggare."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#, fuzzy
msgid "Mesh has no UV in layer %d."
-msgstr "Il modello non ha UV su questo layer"
+msgstr "Il modello non ha UV sul layer %d."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
@@ -7408,14 +7502,12 @@ msgid "Flip Portals"
msgstr "Ribalta orizzontalmente"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Room Generate Points"
-msgstr "Conteggio Punti Generati:"
+msgstr "Genera punti nella stanza"
#: editor/plugins/room_manager_editor_plugin.cpp
-#, fuzzy
msgid "Generate Points"
-msgstr "Conteggio Punti Generati:"
+msgstr "Genera punti"
#: editor/plugins/room_manager_editor_plugin.cpp
#, fuzzy
@@ -7863,6 +7955,11 @@ msgid "Find in Files..."
msgstr "Trova nei file..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Sostituisci..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Aiuto contestuale"
@@ -8115,9 +8212,8 @@ msgid "Surface Changes:"
msgstr "Cambiamenti delle superfici:"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Draw Calls:"
-msgstr "Draw Calls"
+msgstr "Draw Calls:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Vertices:"
@@ -8396,6 +8492,19 @@ msgid "Toggle Freelook"
msgstr "Commuta la vista libera"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Ripristina le impostazioni predefinite"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Trasforma"
@@ -8841,9 +8950,8 @@ msgid "Importing items {n}/{n}"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Uscire dall'editor?"
+msgstr "Aggiornamento dell'editor"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -8859,14 +8967,12 @@ msgid "With Data"
msgstr "Con i Dati"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select by data type:"
-msgstr "Scegli un Nodo"
+msgstr "Seleziona dati in base al tipo:"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible color items."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Seleziona tutti gli oggetti colorati visibili."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible color items and their data."
@@ -8877,9 +8983,8 @@ msgid "Deselect all visible color items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible constant items."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Seleziona tutti gli oggetti visibili."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible constant items and their data."
@@ -8890,9 +8995,8 @@ msgid "Deselect all visible constant items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible font items."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Seleziona tutti i font visibili."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible font items and their data."
@@ -8903,19 +9007,16 @@ msgid "Deselect all visible font items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Seleziona tutte le icone visibili."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all visible icon items and their data."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Seleziona tutte le icone visibili ed i loro dati."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Deselect all visible icon items."
-msgstr "Prima seleziona un oggetto di impostazione!"
+msgstr "Deseleziona tutte le icone visibili."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select all visible stylebox items."
@@ -8938,19 +9039,16 @@ msgstr ""
"peso della tua risorsa Tema."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Collapse types."
-msgstr "Comprimi Tutto"
+msgstr "Comprimi tipologie."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Expand types."
-msgstr "Espandi Tutto"
+msgstr "Espandi tipologie."
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select all Theme items."
-msgstr "Seleziona file template"
+msgstr "Seleziona tutti gli oggetti del tema."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Select With Data"
@@ -9146,9 +9244,8 @@ msgid "Editor Theme"
msgstr "Modifica Tema"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Select Another Theme Resource:"
-msgstr "Elimina risorsa"
+msgstr "Seleziona un'altra risorsa del tema:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9157,6 +9254,30 @@ msgstr "Importa tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profili disponibili:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Il nome del file è vuoto."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Sei sicuro di voler aprire più di un progetto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Traccia Anim Rinomina"
@@ -9181,21 +9302,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Aggiungi Elemento"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Tipo di nodo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Carica i predefiniti"
@@ -9213,6 +9319,11 @@ msgid "Override all default type items."
msgstr "Sovrascrivi tutti gli elementi predefiniti."
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Item Type"
+msgstr "Aggiungi Elemento"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -9280,9 +9391,8 @@ msgid "Checked Radio Item"
msgstr "Elemento Radio Controllato"
#: editor/plugins/theme_editor_preview.cpp
-#, fuzzy
msgid "Named Separator"
-msgstr "Chiamato Sep."
+msgstr "Chiamato Separatore"
#: editor/plugins/theme_editor_preview.cpp
msgid "Submenu"
@@ -11583,7 +11693,7 @@ msgstr "Impostazioni Progetto (project.godot)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
-msgstr "Informazioni Generali"
+msgstr "Generale"
#: editor/project_settings_editor.cpp
msgid "Override For..."
@@ -11738,10 +11848,6 @@ msgid "Batch Rename"
msgstr "Rinomina in blocco"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Sostituisci:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefisso:"
@@ -12037,6 +12143,20 @@ msgstr ""
"Ereditata... ."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Salva Nuova Scena Come..."
@@ -13004,63 +13124,70 @@ msgstr "Crea Soluzione"
msgid "End of inner exception stack trace"
msgstr "Fine dell'analisi dell’eccezione interna dello stack"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"È necessario creare o impostare una risorsa NavigationMesh affinché questo "
+"nodo funzioni."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Prepara NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Cancella mesh di navigazione."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Impostando la Configurazione..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calcolando dimensioni griglia..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Creazione heightfield..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Segnando triangoli percorribili..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Costruendo heightfield compatto..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erodendo area percorribile..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partizionando..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Creazione contorni..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Creando polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Convertendo a Mesh di Navigazione nativa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Impostazioni Generatore Mesh di Navigazione:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Elaborazione Geometria..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Fatto!"
@@ -14119,6 +14246,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"Il poligono per questo occluder è vuoto. Si prega di disegnare un poligono."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14382,13 +14519,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"Un SpotLight con un angolo più ampio di 90 gradi non può proiettare ombre."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"È necessario creare o impostare una risorsa NavigationMesh affinché questo "
-"nodo funzioni."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14396,6 +14531,12 @@ msgstr ""
"NavigationMeshInstance deve essere un figlio o nipote di un nodo Navigation. "
"Fornisce solamente dati per la navigazione."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Nessuna forma è impostata."
@@ -14886,12 +15027,6 @@ msgstr ""
"riassegnate in \"vertex\" o \"light\"."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"Non è stato possibile accedere a variabile in fase di Fragment nella "
-"funzione personalizzata!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Assegnazione alla funzione."
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index 3002f2c2f4..5ed1e5c5fe 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -1,6 +1,6 @@
# Japanese translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# akirakido <achts.y@gmail.com>, 2016-2017, 2018, 2019.
# D_first <dntk.daisei@gmail.com>, 2017, 2018.
@@ -351,6 +351,11 @@ msgid "Duplicate Key(s)"
msgstr "キーを複製"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "%dフレームを追加"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "キーを削除"
@@ -519,6 +524,11 @@ msgid ""
msgstr "ã“ã®ã‚ªãƒ—ションã¯å˜ä¸€ãƒˆãƒ©ãƒƒã‚¯ã§ã®ãƒ™ã‚¸ã‚§ç·¨é›†ã§ã¯æ©Ÿèƒ½ã—ã¾ã›ã‚“。"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚­ãƒ¼ã®æ‹¡ç¸®"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1500,6 +1510,10 @@ msgid "Invalid name."
msgstr "無効ãªåå‰ã§ã™ã€‚"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "æœ‰åŠ¹ãªæ–‡å­—:"
@@ -1604,7 +1618,9 @@ msgstr "シーンを更新..."
msgid "[empty]"
msgstr "[空]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[未ä¿å­˜]"
@@ -1625,6 +1641,7 @@ msgstr "フォルダーを作æˆ"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "åå‰:"
@@ -2124,7 +2141,8 @@ msgid "Properties"
msgstr "プロパティ"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "上書ã:"
#: editor/editor_help.cpp
@@ -2264,6 +2282,20 @@ msgstr "テーマプロパティ"
msgid "Property:"
msgstr "プロパティ:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(値)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2273,6 +2305,29 @@ msgstr "%s を設定"
msgid "Set Multiple:"
msgstr "複数設定:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "プロパティをコピー"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "プロパティを貼り付ã‘"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "スクリプトã®ãƒ‘スをコピー"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "出力:"
@@ -3085,6 +3140,20 @@ msgstr ""
"実行中ã«ã‚‚表示ã•れるよã†ã«ãªã‚Šã¾ã™ã€‚"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "シーンã®å¤‰æ›´ã‚’åŒæœŸ"
@@ -4205,6 +4274,10 @@ msgstr "複数ファイル内を検索"
msgid "Find:"
msgstr "検索:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "ç½®æ›:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "フォルダー:"
@@ -4229,6 +4302,11 @@ msgstr "検索..."
msgid "Replace..."
msgstr "ç½®æ›..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "ã™ã¹ã¦ç½®æ›"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "検索: "
@@ -4238,8 +4316,9 @@ msgid "Replace: "
msgstr "ç½®æ›: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "ã™ã¹ã¦ç½®æ› (å…ƒã«æˆ»ã›ã¾ã›ã‚“)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "ã™ã¹ã¦ç½®æ›"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4459,6 +4538,12 @@ msgstr ""
"警告:ã“ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’使用ã™ã‚‹ã‚¢ã‚»ãƒƒãƒˆãŒå­˜åœ¨ã™ã‚‹ãŸã‚ã€æ­£ã—ãロードã•れãªã„å¯èƒ½æ€§"
"ãŒã‚りã¾ã™ã€‚"
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "リソースã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
@@ -5916,6 +6001,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+ドラッグ: é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã‚’移動。"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+ドラッグ: é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã‚’移動。"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã®ãƒ”ボットã®ä½ç½®ã‚’設定ã™ã‚‹ã€‚"
@@ -5946,6 +6036,10 @@ msgid "Scale Mode"
msgstr "スケールモード"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6042,20 +6136,44 @@ msgstr "é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®ä½ç½®ã‚’ロック (移動ä¸å¯èƒ½ã«ã
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "é¸æŠžå¯¾è±¡ã‚’ãƒ­ãƒƒã‚¯"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "é¸æŠžã—ãŸã‚ªãƒ–ジェクトをロック解除 (移動å¯èƒ½ã«ã™ã‚‹)。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "é¸æŠžå¯¾è±¡ã‚’ãƒ­ãƒƒã‚¯è§£é™¤"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "オブジェクトã®å­ã‚’é¸æŠžä¸å¯ã«ã™ã‚‹ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "é¸æŠžå¯¾è±¡ã‚’ã‚°ãƒ«ãƒ¼ãƒ—åŒ–"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "オブジェクトã®å­ã‚’é¸æŠžå¯èƒ½ã«æˆ»ã™ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "é¸æŠžå¯¾è±¡ã‚’ã‚°ãƒ«ãƒ¼ãƒ—è§£é™¤"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "スケルトンã®ã‚ªãƒ—ション"
@@ -7698,6 +7816,11 @@ msgid "Find in Files..."
msgstr "複数ファイル内を検索..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "ç½®æ›..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "コンテキスト ヘルプ"
@@ -8221,6 +8344,19 @@ msgid "Toggle Freelook"
msgstr "フリールックã®ã‚ªãƒ³ / オフ"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã«æˆ»ã™"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "トランスフォーム"
@@ -8942,6 +9078,29 @@ msgid "Another Theme"
msgstr "ä»–ã®ãƒ†ãƒ¼ãƒž"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "タイプを追加"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "利用å¯èƒ½ãªãƒ—ロファイル:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "ファイルåãŒç©ºã§ã™ã€‚"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "複数ã®ãƒ—ロジェクトを開ã„ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "アイテムå変更ã®ç¢ºèª"
@@ -8966,18 +9125,6 @@ msgstr ""
"ã¦ã®ã“ã®ã‚¿ã‚¤ãƒ—ã®StyleBoxã§åŒã˜ãƒ—ãƒ­ãƒ‘ãƒ†ã‚£ãŒæ›´æ–°ã•れã¾ã™ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "タイプを追加"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "アイテムã®ã‚¿ã‚¤ãƒ—を追加"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "ノードã®ã‚¿ã‚¤ãƒ—:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "デフォルトã®è¡¨ç¤º"
@@ -8995,6 +9142,10 @@ msgid "Override all default type items."
msgstr "ã™ã¹ã¦ã®ãƒ‡ãƒ•ォルトタイプã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’オーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã™ã‚‹ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "アイテムã®ã‚¿ã‚¤ãƒ—を追加"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "テーマ:"
@@ -11488,10 +11639,6 @@ msgid "Batch Rename"
msgstr "åå‰ã®ä¸€æ‹¬å¤‰æ›´"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "ç½®æ›:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "接頭辞:"
@@ -11783,6 +11930,20 @@ msgstr ""
"をベース㫠シーン > æ–°ã—ã„継承シーン... ã‹ã‚‰ç¶™æ‰¿ã‚·ãƒ¼ãƒ³ã‚’作æˆã—ã¦ãã ã•ã„。"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "æ–°è¦ã‚·ãƒ¼ãƒ³ã«åå‰ã‚’付ã‘ã¦ä¿å­˜..."
@@ -12745,63 +12906,70 @@ msgstr "ソリューションをビルド"
msgid "End of inner exception stack trace"
msgstr "内部例外スタックトレースã®çµ‚了"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"ã“ã®ãƒŽãƒ¼ãƒ‰ã‚’å‹•ã‹ã™ãŸã‚ã« NavigationMesh リソースを設定ã¾ãŸã¯ä½œæˆã™ã‚‹å¿…è¦ãŒã‚"
+"りã¾ã™ã€‚"
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "NavMeshを焼ã込む"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "ãƒŠãƒ“ã‚²ãƒ¼ã‚·ãƒ§ãƒ³ãƒ¡ãƒƒã‚·ãƒ¥ã®æ¶ˆåŽ»ã€‚"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "設定中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "グリッドサイズ計算中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "ãƒã‚¤ãƒˆãƒ•ィールド生æˆä¸­..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "移動å¯èƒ½ãªãƒãƒªã‚´ãƒ³ã‚’記録中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "ãƒã‚¤ãƒˆãƒ•ィールド圧縮中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "移動å¯èƒ½ãªé ˜åŸŸã‚’作æˆä¸­..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "分割中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "輪郭を作æˆã—ã¦ã„ã¾ã™..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "ãƒãƒªãƒ¡ãƒƒã‚·ãƒ¥ã‚’作æˆã—ã¦ã„ã¾ã™..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "ãƒã‚¤ãƒ†ã‚£ãƒ–ナビゲーションメッシュã«å¤‰æ›ã—ã¦ã„ã¾ã™..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "ナビゲーションメッシュ生æˆè¨­å®š:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "ジオメトリを解æžã—ã¦ã„ã¾ã™..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "完了ï¼"
@@ -13828,6 +13996,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "ã“ã®é®è”½ç”¨ã®ã‚ªã‚¯ãƒ«ãƒ¼ãƒ€ãƒ¼ãƒãƒªã‚´ãƒ³ã¯ç©ºã§ã™ã€‚ãƒãƒªã‚´ãƒ³ã‚’æã„ã¦ãã ã•ã„。"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14089,13 +14267,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "90度を超ãˆã‚‹è§’度ã®ã‚¹ãƒãƒƒãƒˆãƒ©ã‚¤ãƒˆã¯ã€ã‚·ãƒ£ãƒ‰ã‚¦ã‚’投影ã§ãã¾ã›ã‚“。"
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"ã“ã®ãƒŽãƒ¼ãƒ‰ã‚’å‹•ã‹ã™ãŸã‚ã« NavigationMesh リソースを設定ã¾ãŸã¯ä½œæˆã™ã‚‹å¿…è¦ãŒã‚"
-"りã¾ã™ã€‚"
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14103,6 +14279,12 @@ msgstr ""
"NavigationMeshInstance ã¯ã€ãƒŠãƒ“ゲーションノードã®å­ã‚„å­«ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
"ã“れã¯ãƒŠãƒ“ゲーションデータã®ã¿æä¾›ã—ã¾ã™ã€‚"
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "シェイプãŒè¨­å®šã•れã¦ã„ã¾ã›ã‚“。"
@@ -14579,10 +14761,6 @@ msgstr ""
"ã¨ã¯ã§ãã¾ã›ã‚“。"
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "カスタム関数内ã§Fragment-stageã®Varyingã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“ã§ã—ãŸï¼"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "関数ã¸ã®å‰²ã‚Šå½“ã¦ã€‚"
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index ae9919323a..09eea3dce4 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -1,6 +1,6 @@
# Georgian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Giorgi Beriashvili <giorgi.beriashvili@outlook.com>, 2018.
# George Dzavashvili <dzavashviligeorge@gmail.com>, 2018.
@@ -344,6 +344,10 @@ msgid "Duplicate Key(s)"
msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ¡áƒáƒ¦áƒ”ბების áƒáƒ¡áƒšáƒ˜áƒ¡ შექმნáƒ"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ¡áƒáƒ¦áƒ”ბების წáƒáƒ¨áƒšáƒ"
@@ -524,6 +528,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "áƒáƒœáƒ˜áƒ› გáƒáƒ¡áƒáƒ¦áƒ”ბების ზáƒáƒ›áƒ˜áƒ¡ შეცვლáƒ"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1530,6 +1539,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1634,7 +1647,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1655,6 +1670,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2142,7 +2158,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2287,6 +2303,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2296,6 +2325,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ . პáƒáƒ áƒáƒ›áƒ”ტრები."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ . პáƒáƒ áƒáƒ›áƒ”ტრები."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ . პáƒáƒ áƒáƒ›áƒ”ტრები."
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -3044,6 +3096,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4128,6 +4194,11 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "ჩáƒáƒœáƒáƒªáƒ•ლებáƒ"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4151,6 +4222,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "ყველáƒáƒ¡ ჩáƒáƒœáƒáƒªáƒ•ლებáƒ"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4162,7 +4238,7 @@ msgstr "ჩáƒáƒœáƒáƒªáƒ•ლებáƒ"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "ყველáƒáƒ¡ ჩáƒáƒœáƒáƒªáƒ•ლებáƒ"
#: editor/find_in_files.cpp
@@ -4386,6 +4462,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5862,6 +5944,11 @@ msgstr "წáƒáƒ•შáƒáƒšáƒáƒ— მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ ფáƒáƒ˜áƒšáƒ”ბá
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "წáƒáƒ•შáƒáƒšáƒáƒ— მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ ფáƒáƒ˜áƒšáƒ”ბი?"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ თრექის წáƒáƒ¨áƒšáƒ."
@@ -5891,6 +5978,10 @@ msgid "Scale Mode"
msgstr "მáƒáƒ¡áƒ¨áƒ¢áƒáƒ‘ის თáƒáƒœáƒáƒ¤áƒáƒ áƒ“áƒáƒ‘áƒ:"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5986,20 +6077,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "წáƒáƒ¨áƒšáƒ"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ გáƒáƒ¡áƒáƒ¦áƒ”ბ(ებ)ის áƒáƒ¡áƒšáƒ˜áƒ¡ შექმნáƒ"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ áƒ”ბáƒ"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ áƒ”ბáƒ"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ მხáƒáƒšáƒáƒ“"
@@ -7651,6 +7766,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "ყველáƒáƒ¡ ჩáƒáƒœáƒáƒªáƒ•ლებáƒ"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8175,6 +8295,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8924,6 +9056,29 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ . პáƒáƒ áƒáƒ›áƒ”ტრები."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "ბუფერი ცáƒáƒ áƒ˜áƒ”ლიáƒ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის გáƒáƒ“áƒáƒ áƒ¥áƒ›áƒ”ვáƒ"
@@ -8947,19 +9102,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr ""
@@ -8976,6 +9118,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "გáƒáƒ®áƒ¡áƒœáƒ˜áƒšáƒ˜"
@@ -11401,11 +11547,6 @@ msgid "Batch Rename"
msgstr "სáƒáƒ¥áƒ›áƒ˜áƒ¡ დáƒáƒ›áƒ—ხვევáƒ"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "ჩáƒáƒœáƒáƒªáƒ•ლებáƒ"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11685,6 +11826,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12642,63 +12797,68 @@ msgstr "ყველრმáƒáƒœáƒ˜áƒ¨áƒœáƒ•áƒ"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13664,6 +13824,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13870,16 +14040,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14281,10 +14457,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/km.po b/editor/translations/km.po
index cd632079d6..570aace246 100644
--- a/editor/translations/km.po
+++ b/editor/translations/km.po
@@ -1,6 +1,6 @@
# LANGUAGE translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Withuse <withuse@gmail.com>, 2021.
@@ -319,6 +319,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -481,6 +485,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1433,6 +1441,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1537,7 +1549,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1558,6 +1572,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2029,7 +2044,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2165,6 +2180,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2174,6 +2202,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2912,6 +2960,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3970,6 +4032,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3993,6 +4059,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4002,7 +4072,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4216,6 +4286,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5637,6 +5713,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5665,6 +5745,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5759,20 +5843,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Key(s) ដែលបានជ្រើសស្ទួន"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Key(s) ដែលបានជ្រើសស្ទួន"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Key(s) ដែលបានជ្រើសស្ទួន"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Key(s) ដែលបានជ្រើសស្ទួន"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7375,6 +7483,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7887,6 +7999,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8598,37 +8722,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8648,6 +8780,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10988,10 +11124,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11264,6 +11396,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12193,63 +12339,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13183,6 +13334,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13389,16 +13550,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13793,10 +13960,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index 2c7629a09a..674d0ab18c 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -1,6 +1,6 @@
# Korean translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Ch <ccwpc@hanmail.net>, 2017.
# paijai 송 (fivejobi) <xotjq237@gmail.com>, 2018.
@@ -346,6 +346,11 @@ msgid "Duplicate Key(s)"
msgstr "키 복제"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "프레임 %d개 추가"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "키 삭제"
@@ -515,6 +520,11 @@ msgstr ""
"ì´ ì„¤ì •ì€ ë‹¨ì¼ íŠ¸ëž™ì—ë§Œ ì ìš© 가능하므로 베지어 íŽ¸ì§‘ì— ì‚¬ìš©í•  수 없습니다."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "애니메ì´ì…˜ 키 스케ì¼"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1492,6 +1502,10 @@ msgid "Invalid name."
msgstr "올바르지 ì•Šì€ ì´ë¦„입니다."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "올바른 문ìž:"
@@ -1596,7 +1610,9 @@ msgstr "씬 ì—…ë°ì´íЏ 중..."
msgid "[empty]"
msgstr "[비었ìŒ]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[저장ë˜ì§€ 않ìŒ]"
@@ -1617,6 +1633,7 @@ msgstr "í´ë” 만들기"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "ì´ë¦„:"
@@ -2110,7 +2127,8 @@ msgid "Properties"
msgstr "ì†ì„±"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "오버ë¼ì´ë“œ:"
#: editor/editor_help.cpp
@@ -2251,6 +2269,20 @@ msgstr "테마 ì†ì„±"
msgid "Property:"
msgstr "ì†ì„±:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(ê°’)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2260,6 +2292,29 @@ msgstr "Set %s"
msgid "Set Multiple:"
msgstr "다수 설정:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "ì†ì„± 복사"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "ì†ì„± 붙여넣기"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "스í¬ë¦½íЏ 경로 복사"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "출력:"
@@ -3067,6 +3122,20 @@ msgstr ""
"ì´ê²Œ ë©ë‹ˆë‹¤."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "씬 변경사항 ë™ê¸°í™”"
@@ -4176,6 +4245,10 @@ msgstr "파ì¼ì—서 찾기"
msgid "Find:"
msgstr "찾기:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "바꾸기:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "í´ë”:"
@@ -4201,6 +4274,11 @@ msgstr "찾기..."
msgid "Replace..."
msgstr "바꾸기..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "ëª¨ë‘ ë°”ê¾¸ê¸°"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "찾기: "
@@ -4210,8 +4288,9 @@ msgid "Replace: "
msgstr "바꾸기: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "ëª¨ë‘ ë°”ê¾¸ê¸° (ë˜ëŒë¦´ 수 없습니다)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "ëª¨ë‘ ë°”ê¾¸ê¸°"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4430,6 +4509,12 @@ msgstr ""
"경고: ì´ ë¦¬ì†ŒìŠ¤ë¥¼ 사용하는 ì• ì…‹ì´ ìžˆìŠµë‹ˆë‹¤. ì •ìƒì ìœ¼ë¡œ 불러오지 못할 ìˆ˜ë„ ìžˆ"
"습니다."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "리소스 ë¶ˆëŸ¬ì˜¤ê¸°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
@@ -5880,6 +5965,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+드래그: ì„ íƒëœ 노드를 ì´ë™í•©ë‹ˆë‹¤."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+드래그: ì„ íƒëœ 노드를 ì´ë™í•©ë‹ˆë‹¤."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: ì„ íƒëœ ë…¸ë“œì˜ í”¼ë²— 위치를 설정합니다."
@@ -5909,6 +5999,10 @@ msgid "Scale Mode"
msgstr "ìŠ¤ì¼€ì¼ ëª¨ë“œ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6005,20 +6099,44 @@ msgstr "ì„ íƒëœ 오브ì íŠ¸ë¥¼ ê·¸ ìžë¦¬ì— 잠급니다 (움ì§ì¼ 수 ì—†ì
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "ì„ íƒ í•­ëª© 잠그기"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "ì„ íƒëœ 오브ì íŠ¸ë¥¼ 잠금ì—서 풉니다 (움ì§ì¼ 수 있습니다)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "ì„ íƒ í•­ëª© 잠금 풀기"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "오브ì íŠ¸ì˜ ìžì‹ì„ ì„ íƒí•˜ì§€ 않ë„ë¡ í•©ë‹ˆë‹¤."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "ì„ íƒ í•­ëª© 묶기"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "오브ì íŠ¸ì˜ ìžì‹ì„ ì„ íƒí•  수 있ë„ë¡ ë³µì›í•©ë‹ˆë‹¤."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "ì„ íƒ í•­ëª© ë¬¶ìŒ í’€ê¸°"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "스켈레톤 설정"
@@ -7656,6 +7774,11 @@ msgid "Find in Files..."
msgstr "파ì¼ì—서 찾기..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "바꾸기..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "ìƒí™©ì— 맞는 ë„움ë§"
@@ -8177,6 +8300,19 @@ msgid "Toggle Freelook"
msgstr "ìžìœ  ì‹œì  í† ê¸€"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "ë””í´íŠ¸ë¡œ 재설정"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "변형"
@@ -8896,6 +9032,29 @@ msgid "Another Theme"
msgstr "다른 테마"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "타입 추가"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "사용 가능한 프로필:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "íŒŒì¼ ì´ë¦„ì´ ë¹„ì—ˆìŠµë‹ˆë‹¤."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "ë‘ ê°œ ì´ìƒì˜ 프로ì íŠ¸ë¥¼ 여시겠습니까?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "항목 ì´ë¦„ 바꾸기 확ì¸"
@@ -8920,18 +9079,6 @@ msgstr ""
"ì¼ë°•스ì—서 ê°™ì€ ì†ì„±ì´ ì—…ë°ì´íЏë©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "타입 추가"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "항목 타입 추가"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "노드 타입:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "ë””í´íЏ ë³´ì´ê¸°"
@@ -8948,6 +9095,10 @@ msgid "Override all default type items."
msgstr "모든 ë””í´íЏ 타입 í•­ëª©ì„ ì˜¤ë²„ë¼ì´ë“œí•©ë‹ˆë‹¤."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "항목 타입 추가"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "테마:"
@@ -11417,10 +11568,6 @@ msgid "Batch Rename"
msgstr "ì¼ê´„ ì´ë¦„ 바꾸기"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "바꾸기:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "ì ‘ë‘사:"
@@ -11708,6 +11855,20 @@ msgstr ""
"씬...ì„ ëŒ€ì‹  사용하여 만들 수 있습니다."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "새 ì”¬ì„ ë‹¤ë¥¸ ì´ë¦„으로 저장..."
@@ -12663,63 +12824,69 @@ msgstr "솔루션 빌드"
msgid "End of inner exception stack trace"
msgstr "ë‚´ë¶€ 예외 ìŠ¤íƒ ì¶”ì ì˜ ë"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"ì´ ë…¸ë“œê°€ ìž‘ë™í•˜ë ¤ë©´ NavigationMesh 리소스를 설정하거나 만들어야 합니다."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "NavMesh 굽기"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "내비게ì´ì…˜ 메시를 ì§€ì›ë‹ˆë‹¤."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "구성 설정 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "그리드 í¬ê¸° 계산 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Heightfield 만드는 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "걷기 가능한 삼ê°í˜• 표시 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "ì••ì¶•ëœ Heightfield를 구성 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "걷기 가능한 ì˜ì—­ 계산 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "파티션 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "윤곽선 만드는 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Polymesh 만드는 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "네ì´í‹°ë¸Œ 내비게ì´ì…˜ 메시로 변환 중..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "내비게ì´ì…˜ 메시 ìƒì„±ê¸° 설정:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "지오메트리 ë¶„ì„ ì¤‘..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "완료!"
@@ -13722,6 +13889,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Occluder í´ë¦¬ê³¤ì´ 비어있습니다. í´ë¦¬ê³¤ì„ 그려주세요."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13973,12 +14150,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLightì˜ ê°ë„를 90ë„ ì´ìƒìœ¼ë¡œ 잡으면 그림ìžë¥¼ 투ì˜í•  수 없습니다."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"ì´ ë…¸ë“œê°€ ìž‘ë™í•˜ë ¤ë©´ NavigationMesh 리소스를 설정하거나 만들어야 합니다."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -13986,6 +14162,12 @@ msgstr ""
"NavigationMeshInstance는 Navigation ë…¸ë“œì˜ ìžì‹ì´ë‚˜ ì†ì£¼ì— 있어야 합니다. ì´"
"ê²ƒì€ ë‚´ë¹„ê²Œì´ì…˜ ë°ì´í„°ë§Œ 제공합니다."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "설정할 ëª¨ì–‘ì´ ì—†ìŠµë‹ˆë‹¤."
@@ -14453,10 +14635,6 @@ msgstr ""
"ì„ ìˆ˜ 있습니다."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "커스텀 함수ì—서 Fragment-stage varyingì— ì ‘ê·¼í•  수 없습니다!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "í•¨ìˆ˜ì— ëŒ€ìž…."
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index 832b47a62a..c9ef760bbf 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -1,6 +1,6 @@
# Lithuanian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Ignas Kiela <ignaskiela@super.lt>, 2017.
# Kornelijus <kornelijus.github@gmail.com>, 2017, 2018.
@@ -332,6 +332,10 @@ msgid "Duplicate Key(s)"
msgstr "Kopijuoti raktažodį (-ius)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Ištrinti raktažodį (-ius)"
@@ -500,6 +504,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1481,6 +1489,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1585,7 +1597,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1606,6 +1620,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Vardas:"
@@ -2100,7 +2115,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2242,6 +2257,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Naujas pavadinimas:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2251,6 +2280,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Animacija"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Animacija"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Animacija"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -3002,6 +3054,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4105,6 +4171,10 @@ msgstr "Filtrai..."
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4129,6 +4199,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Pakeisti Visus"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4138,8 +4213,9 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Pakeisti Visus"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4359,6 +4435,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5840,6 +5922,11 @@ msgstr "Panaikinti pasirinkimÄ…"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Panaikinti pasirinkimÄ…"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Panaikinti pasirinkimÄ…"
@@ -5869,6 +5956,10 @@ msgid "Scale Mode"
msgstr "TimeScale Nodas"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5964,20 +6055,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Ištrinti Efektą"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Kopijuoti pasirinktą (-us) raktažodį (-žius)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Panaikinti pasirinkimÄ…"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Panaikinti pasirinkimÄ…"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7633,6 +7748,11 @@ msgid "Find in Files..."
msgstr "Filtrai..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Filtrai..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8150,6 +8270,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8904,41 +9036,49 @@ msgid "Another Theme"
msgstr "Redaguoti Filtrus"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "Animacija: Pridėti Takelį"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Cancel Item Rename"
-msgstr "Animacija: Pervadinti Takelį"
+msgid "Available Node-based types:"
+msgstr "Animacija"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Animacija: Pridėti Takelį"
+msgid "Cancel Item Rename"
+msgstr "Animacija: Pervadinti Takelį"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Naujas pavadinimas:"
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
@@ -8957,6 +9097,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Redaguoti Filtrus"
@@ -11384,10 +11528,6 @@ msgid "Batch Rename"
msgstr "Animacija: Pervadinti Takelį"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11666,6 +11806,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12625,63 +12779,70 @@ msgstr "Visas Pasirinkimas"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"NavigationMesh resursas turi būti nustatytas ar sukurtas, kad šis Nodas "
+"veiktų."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13648,6 +13809,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13854,18 +14025,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"NavigationMesh resursas turi būti nustatytas ar sukurtas, kad šis Nodas "
-"veiktų."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14268,10 +14443,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index d3e6b22e5b..4bd1bae67d 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -1,6 +1,6 @@
# Latvian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Gustavs Porietis (pg829-) <porietisgustavs@gmail.com>, 2018.
# Martch Zagorski <martchzagorski@gmail.com>, 2018, 2020.
@@ -327,6 +327,10 @@ msgid "Duplicate Key(s)"
msgstr "Dublicēt atslēgvietnes"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Izdzēst atslēgvietnes"
@@ -493,6 +497,11 @@ msgid ""
msgstr "Å Ä« iespÄ“ja nestrÄdÄ ar BazjÄ“ rediģēšanu, jo tai ir tikai viens celiņš."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Mainīt Atslēgas Izmēru"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1476,6 +1485,10 @@ msgid "Invalid name."
msgstr "Nederīgs nosaukums."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Derīgie simboli:"
@@ -1582,7 +1595,9 @@ msgstr "Atjauno ainu...."
msgid "[empty]"
msgstr "[tukšs]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[nesaglabÄts]"
@@ -1603,6 +1618,7 @@ msgstr "Izveidot mapi"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nosaukums:"
@@ -2098,7 +2114,8 @@ msgid "Properties"
msgstr "Iestatījumi"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "pÄrrakstīšana:"
#: editor/editor_help.cpp
@@ -2238,6 +2255,20 @@ msgstr "Motīva Mainīgais"
msgid "Property:"
msgstr "Parametrs:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(vērtība)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2247,6 +2278,29 @@ msgstr "Likt %s"
msgid "Set Multiple:"
msgstr "Uzlikt vairÄkus:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Kopēt iestatījumus"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Ielīmēt iestatījumus"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopēt mezgla ceļu"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Izeja:"
@@ -3020,6 +3074,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sinhronizēt ainas izmaiņas"
@@ -4087,6 +4155,10 @@ msgstr "Atrast Failos"
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Aizvietot:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4110,6 +4182,11 @@ msgstr "Meklēt..."
msgid "Replace..."
msgstr "Aizvietot..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Aizvietot visu"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4119,8 +4196,9 @@ msgid "Replace: "
msgstr "Aizvietot: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Aizvietot visu"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4333,6 +4411,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5754,6 +5838,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+BÄ«dÄ«t: PÄrvietot izvÄ“lÄ“to mezglu."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+BÄ«dÄ«t: PÄrvietot izvÄ“lÄ“to mezglu."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Uzlikt izvÄ“lÄ“tÄ mezgla centra pozÄ«ciju."
@@ -5782,6 +5871,10 @@ msgid "Scale Mode"
msgstr "Mēroga Režīms"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5876,20 +5969,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Dzēst mezglu(s)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Dzēst mezglu(s)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Grupa Izvēlēta"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "PÄrtraukt IzvÄ“lÄ“tÄ Grupēšanu"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7490,6 +7607,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Aizvietot..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8002,6 +8124,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Atiestatīt uz noklusējumu"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8713,6 +8848,30 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Pievienot tipu"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Pieejamie Profili:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Faila Nosaukums nav definēts."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+"Vai esat droÅ¡s(Å¡a), ka vÄ“laties noņemt visus savienojumus no šī signÄla?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr ""
@@ -8735,18 +8894,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Pievienot tipu"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "RÄdÄ«t noklusÄ“jumu"
@@ -8763,6 +8910,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Motīvs:"
@@ -11106,10 +11257,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Aizvietot:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11382,6 +11529,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "SaglabÄt jaunu ainu kÄ..."
@@ -12313,63 +12474,68 @@ msgstr "BÅ«vÄ“t risinÄjumu"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Darīts!"
@@ -13303,6 +13469,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13509,16 +13685,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13918,10 +14100,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/mi.po b/editor/translations/mi.po
index 832af7ceb1..535251ede2 100644
--- a/editor/translations/mi.po
+++ b/editor/translations/mi.po
@@ -1,6 +1,6 @@
# MÄori translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# follower <follower@rancidbacon.com>, 2019.
msgid ""
@@ -311,6 +311,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -473,6 +477,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1425,6 +1433,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1529,7 +1541,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1550,6 +1564,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2021,7 +2036,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2157,6 +2172,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2166,6 +2194,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2904,6 +2952,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3961,6 +4023,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3984,6 +4050,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -3993,7 +4063,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4207,6 +4277,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5628,6 +5704,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5656,6 +5736,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5750,20 +5834,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7363,6 +7467,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7875,6 +7983,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8586,37 +8706,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8636,6 +8764,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10976,10 +11108,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11252,6 +11380,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12181,63 +12323,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13171,6 +13318,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13377,16 +13534,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13781,10 +13944,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/mk.po b/editor/translations/mk.po
index 4d3f8021a7..e1a6d054c8 100644
--- a/editor/translations/mk.po
+++ b/editor/translations/mk.po
@@ -1,6 +1,6 @@
# Macedonian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Kristijan Fremen Velkovski <me@krisfremen.com>, 2021.
@@ -319,6 +319,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -481,6 +485,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1433,6 +1441,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1537,7 +1549,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1558,6 +1572,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2030,7 +2045,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2166,6 +2181,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2175,6 +2203,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "СвојÑтва на анимацијата."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "СвојÑтва на анимацијата."
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "СвојÑтва на анимацијата."
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2913,6 +2964,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3971,6 +4036,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3994,6 +4063,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4003,7 +4076,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4217,6 +4290,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5641,6 +5720,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5669,6 +5752,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5763,20 +5850,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Дуплирај избран(и) клуч(еви)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Дуплирај избран(и) клуч(еви)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Дуплирај избран(и) клуч(еви)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Дуплирај избран(и) клуч(еви)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7379,6 +7490,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7891,6 +8006,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8602,37 +8729,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8652,6 +8787,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10992,10 +11131,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11268,6 +11403,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12197,63 +12346,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13187,6 +13341,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13393,16 +13557,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13797,10 +13967,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index e6c50a3d78..50770a8962 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -1,6 +1,6 @@
# Malayalam translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# christy james <jkuttu@gmail.com>, 2018.
# Lakshmi-Jayakumar <lakshmi.jayakumar.tkm@gmail.com>, 2019.
@@ -321,6 +321,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -485,6 +489,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1438,6 +1446,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1542,7 +1554,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1563,6 +1577,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2034,7 +2049,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2172,6 +2187,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "വില:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2181,6 +2210,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "à´—àµà´£à´‚ നോകàµà´•àµà´•"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "à´—àµà´£à´‚ നോകàµà´•àµà´•"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "à´—àµà´£à´‚ നോകàµà´•àµà´•"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2919,6 +2971,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3977,6 +4043,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4000,6 +4070,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4009,7 +4083,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4223,6 +4297,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5648,6 +5728,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5676,6 +5760,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5770,20 +5858,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "സൂചികകളàµà´Ÿàµ† പകർപàµà´ªàµ†à´Ÿàµà´•àµà´•àµà´•"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "സൂചികകളàµà´Ÿàµ† പകർപàµà´ªàµ†à´Ÿàµà´•àµà´•àµà´•"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "സൂചികകളàµà´Ÿàµ† പകർപàµà´ªàµ†à´Ÿàµà´•àµà´•àµà´•"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "സൂചികകളàµà´Ÿàµ† പകർപàµà´ªàµ†à´Ÿàµà´•àµà´•àµà´•"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7387,6 +7499,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7899,6 +8015,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8610,37 +8738,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8660,6 +8796,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11001,10 +11141,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11277,6 +11413,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12206,63 +12356,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13198,6 +13353,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13404,16 +13569,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13808,10 +13979,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/mr.po b/editor/translations/mr.po
index 99f6fdcf33..6a5005167a 100644
--- a/editor/translations/mr.po
+++ b/editor/translations/mr.po
@@ -1,6 +1,6 @@
# Marathi translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Prachi Joshi <josprachi@yahoo.com>, 2019, 2020.
# Shirious <sad3119823@gmail.com>, 2020.
@@ -318,6 +318,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -481,6 +485,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1433,6 +1441,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1537,7 +1549,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1558,6 +1572,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2029,7 +2044,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2165,6 +2180,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(किंमत)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2174,6 +2203,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2912,6 +2961,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3970,6 +4033,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3993,6 +4060,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4002,7 +4073,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4216,6 +4287,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5639,6 +5716,11 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "निवडलेले नोड किंवा संकà¥à¤°à¤®à¤£ काढा."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "निवडलेले नोड किंवा संकà¥à¤°à¤®à¤£ काढा."
@@ -5667,6 +5749,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5761,20 +5847,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7376,6 +7482,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7889,6 +7999,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8601,38 +8723,46 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "नोड जोडा"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "नोड जोडा"
+msgid "Cancel Item Rename"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8652,6 +8782,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10994,10 +11128,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11270,6 +11400,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12199,63 +12343,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13190,6 +13339,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13396,16 +13555,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13800,10 +13965,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index c44ed5566a..4909f7f9b1 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -1,6 +1,6 @@
# Malay translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Sam Vanguard <syafz119@gmail.com>, 2018.
# Shaqir Rafiq <moshamoradev@gmail.com>, 2018.
@@ -327,6 +327,10 @@ msgid "Duplicate Key(s)"
msgstr "Menduakan Kunci"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Padam Kunci"
@@ -495,6 +499,11 @@ msgstr ""
"trek."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Kunci Skala Anim"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1479,6 +1488,10 @@ msgid "Invalid name."
msgstr "Nama tidak sah."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Watak yang sah:"
@@ -1584,7 +1597,9 @@ msgstr "Mengemaskini adegan..."
msgid "[empty]"
msgstr "[kosong]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[tidak disimpan]"
@@ -1605,6 +1620,7 @@ msgstr "Cipta Folder"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nama:"
@@ -2105,7 +2121,8 @@ msgid "Properties"
msgstr "Sifat-sifat"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "ganti:"
#: editor/editor_help.cpp
@@ -2245,6 +2262,20 @@ msgstr "Sifat Tema"
msgid "Property:"
msgstr "Sifat:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(nilai)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2254,6 +2285,29 @@ msgstr "Tetapkan %s"
msgid "Set Multiple:"
msgstr "Tetapkan Pelbagai:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Sifat-sifat"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Sifat-sifat"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Sifat-sifat"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Keluaran:"
@@ -3071,6 +3125,20 @@ msgstr ""
"dapat dilihat dalam projek yang sedang berjalan."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Segerakkan Perubahan Adegan"
@@ -4211,6 +4279,10 @@ msgstr "Cari dalam Fail-fail"
msgid "Find:"
msgstr "Cari:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Ganti:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Folder:"
@@ -4236,6 +4308,11 @@ msgstr "Cari..."
msgid "Replace..."
msgstr "Ganti..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Ganti Semua"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Cari: "
@@ -4245,8 +4322,9 @@ msgid "Replace: "
msgstr "Ganti: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Ganti semua (tiada buat asal)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Ganti Semua"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4463,6 +4541,12 @@ msgstr ""
"AMARAN: Terdapat aset-aset yang menggunakan sumber ini, mereka mungkin "
"berhenti memuat dengan betul."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Gagal untuk memuatkan sumber."
@@ -5910,6 +5994,11 @@ msgstr "Padam Rect yang dipilih."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Padam Rect yang dipilih."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Node yang dipilih bukan Viewport!"
@@ -5938,6 +6027,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6032,20 +6125,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Semua Pilihan"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Gandakan Kunci Terpilih"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Semua Pilihan"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Semua Pilihan"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7661,6 +7778,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Ganti..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8184,6 +8306,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Set Semula ke Lalai"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8937,6 +9072,31 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Add Type"
+msgstr "Tambah Segi Tiga"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profil yang ada:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Papan klip kosong!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+"Adakah anda pasti anda mahu mengeluarkan semua sambungan dari isyarat ini?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr ""
@@ -8962,20 +9122,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Tambah Segi Tiga"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Nama Nod:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Muatkan Lalai"
@@ -8993,6 +9139,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11363,10 +11513,6 @@ msgid "Batch Rename"
msgstr "Namakan Semula Kumpulan"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Ganti:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11640,6 +11786,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12579,63 +12739,68 @@ msgstr "Semua Pilihan"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13593,6 +13758,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13799,16 +13974,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14203,10 +14384,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index 498aa106eb..2aab12820b 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -1,6 +1,6 @@
# Norwegian Bokmål translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Allan Nordhøy <epost@anotheragency.no>, 2017-2018, 2019, 2020, 2021.
# Anonymous <GentleSaucepan@protonmail.com>, 2017, 2021.
@@ -25,8 +25,8 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-11-03 13:15+0000\n"
-"Last-Translator: Daniel Skogly <daniel@klungo.no>\n"
+"PO-Revision-Date: 2021-12-26 17:18+0000\n"
+"Last-Translator: Petter Reinholdtsen <pere-weblate@hungry.com>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/godot-"
"engine/godot/nb_NO/>\n"
"Language: nb\n"
@@ -34,7 +34,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 4.9-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -337,6 +337,10 @@ msgid "Duplicate Key(s)"
msgstr "Dupliser Nøkler"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Fjern Nøkler"
@@ -507,6 +511,11 @@ msgstr ""
"Dette valget virker ikke på Bézier-redigering, da det kun er ett enkelt spor."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Skalér Nøkler"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -882,7 +891,7 @@ msgstr "Engangs"
#: editor/connections_dialog.cpp
msgid "Disconnects the signal after its first emission."
-msgstr ""
+msgstr "Kobler fra signalet etter dets første utsending."
#: editor/connections_dialog.cpp
#, fuzzy
@@ -1524,6 +1533,10 @@ msgid "Invalid name."
msgstr "Ugyldig navn."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Gyldige karakterer:"
@@ -1636,7 +1649,9 @@ msgstr "Oppdaterer scene..."
msgid "[empty]"
msgstr "[blank]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ulagret]"
@@ -1658,6 +1673,7 @@ msgstr "Lag Mappe"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Navn:"
@@ -2184,7 +2200,7 @@ msgstr "Egenskaper"
#: editor/editor_help.cpp
#, fuzzy
-msgid "override:"
+msgid "overrides %s:"
msgstr "Overskriv"
#: editor/editor_help.cpp
@@ -2345,6 +2361,20 @@ msgstr "Egenskaper"
msgid "Property:"
msgstr "Egenskap:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Verdi:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2354,6 +2384,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Sett mange:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Egenskaper"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Egenskaper"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopier Skript-Sti"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Output:"
@@ -3075,7 +3128,7 @@ msgstr "Sett opp versjonskontroll"
#: editor/editor_node.cpp
msgid "Shut Down Version Control"
-msgstr ""
+msgstr "Steng ned versjonskontroll"
#: editor/editor_node.cpp
#, fuzzy
@@ -3175,6 +3228,20 @@ msgstr ""
"denne innstillingen er aktivert."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Synkroniser Sceneendringer"
@@ -3663,7 +3730,7 @@ msgstr ""
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Pick a Viewport"
-msgstr ""
+msgstr "Velg visningsvindu"
#: editor/editor_properties.cpp editor/property_editor.cpp
msgid "Selected node is not a Viewport!"
@@ -4155,6 +4222,11 @@ msgid ""
"\n"
"Do you wish to overwrite them?"
msgstr ""
+"Disse filene eller mappene er i konflikt med oppføringene i målstedet «%s»:\n"
+"\n"
+"%s\n"
+"\n"
+"Ønsker du å overskrive dem?"
#: editor/filesystem_dock.cpp
msgid "Renaming file:"
@@ -4351,6 +4423,10 @@ msgstr "Finn i Filer"
msgid "Find:"
msgstr "Finn"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Erstatt:"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4376,6 +4452,11 @@ msgstr "Finn..."
msgid "Replace..."
msgstr "Erstatt..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Erstatt Alle"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Finn: "
@@ -4386,7 +4467,7 @@ msgstr "Erstatt: "
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Erstatt Alle"
#: editor/find_in_files.cpp
@@ -4620,6 +4701,12 @@ msgstr ""
"ADVARSEL: ___ eksister som bruker denne ressursen, det kan hende de ikke "
"laster inn riktig."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Kunne ikke laste ressurs."
@@ -6182,6 +6269,11 @@ msgstr "Alt+Dra: Flytt"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Dra: Flytt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Fjern valgt spor."
@@ -6213,6 +6305,10 @@ msgid "Scale Mode"
msgstr "Skaler Modus"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid ""
@@ -6321,20 +6417,44 @@ msgstr "LÃ¥s fast det valgte objektet (kan ikke flyttes)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Slett Valgte"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "LÃ¥s opp det valgte objektet (kan flyttes)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Slett Valgte"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Vær sikker at objektets barn ikke er valgbar."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Fjern Utvalg"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Gjenopprett objektets barn sin mulighet for å bli valgt."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Fjern Utvalg"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Singleton"
@@ -8038,6 +8158,11 @@ msgid "Find in Files..."
msgstr "Filtrer Filer..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Erstatt..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8288,9 +8413,8 @@ msgid "Yaw:"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Size:"
-msgstr "Størrelse: "
+msgstr "Størrelse:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Objects Drawn:"
@@ -8588,6 +8712,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Last Standard"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9054,9 +9191,8 @@ msgid "Importing items {n}/{n}"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Updating the editor"
-msgstr "Avslutt redigeringsverktøyet?"
+msgstr "Oppdaterer redigeringsverktøyet"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -9373,6 +9509,30 @@ msgstr "Importer Tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Finn Node Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Tilgjengelige Noder:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Filnavnet er tomt."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Er du sikker på at du vil åpne mer enn ett prosjekt?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim-Spor Endre Navn"
@@ -9398,21 +9558,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Finn Node Type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Legg til Element"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Finn Node Type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Last Standard"
@@ -9431,6 +9576,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Legg til Element"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Tema"
@@ -11400,14 +11550,12 @@ msgid "Are you sure to run %d projects at once?"
msgstr "Er du sikker på at du vil kjøre mer enn ett prosjekt?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove %d projects from the list?"
-msgstr "Velg enhet fra listen"
+msgstr "Fjern %d prosjekter fra listen?"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Remove this project from the list?"
-msgstr "Velg enhet fra listen"
+msgstr "Fjern dette prosjektet fra listen?"
#: editor/project_manager.cpp
msgid ""
@@ -11938,10 +12086,6 @@ msgid "Batch Rename"
msgstr "Endre Navn på Parti"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Erstatt:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -12228,6 +12372,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -13229,63 +13387,68 @@ msgstr "Alle valg"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Regner ut rutenettstørrelse…"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partisjonerer..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Lager konturer..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Ferdig!"
@@ -13977,9 +14140,8 @@ msgid ""
msgstr ""
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "Could not export project files to gradle project\n"
-msgstr "Kunne ikke endre project.godot i projsektstien."
+msgstr "Klarte ikke eksportere prosjektfiler til gradle-prosjekt\n"
#: platform/android/export/export_plugin.cpp
#, fuzzy
@@ -14295,6 +14457,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14462,6 +14634,8 @@ msgid ""
"Plane shapes don't work well and will be removed in future versions. Please "
"don't use them."
msgstr ""
+"Flate former virker ikke så bra og vil bli fjernet i fremtidige versjoner. "
+"Veldig fint om de ikke brukes."
#: scene/3d/collision_shape.cpp
msgid ""
@@ -14503,16 +14677,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14914,10 +15094,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 4dee14141b..9574536fb7 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -1,6 +1,6 @@
# Dutch translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# aelspire <aelspire@gmail.com>, 2017.
# Aram Nap <xyphex.aram@gmail.com>, 2017.
@@ -52,13 +52,14 @@
# Edgar <Edgar@anotherfoxguy.com>, 2021.
# Daan van Luijk <daanvl@outlook.be>, 2021.
# Dani Verschoor <daniverschoor@outlook.com>, 2021.
+# naan <xlightfox@hotmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-11-20 22:07+0000\n"
-"Last-Translator: Dani Verschoor <daniverschoor@outlook.com>\n"
+"PO-Revision-Date: 2021-12-31 08:52+0000\n"
+"Last-Translator: naan <xlightfox@hotmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/"
"nl/>\n"
"Language: nl\n"
@@ -66,7 +67,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 4.9.1\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -370,6 +371,11 @@ msgid "Duplicate Key(s)"
msgstr "Sleutel(s) dupliceren"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Voeg %d Frame(s) toe"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Sleutel(s) verwijderen"
@@ -538,6 +544,11 @@ msgstr ""
"aanwezig is."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Schaal Keys"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -992,7 +1003,7 @@ msgstr "Bewerken..."
#: editor/connections_dialog.cpp
msgid "Go to Method"
-msgstr "Ga naar methode"
+msgstr "Ga naar Methode"
#: editor/create_dialog.cpp
msgid "Change %s Type"
@@ -1526,6 +1537,10 @@ msgid "Invalid name."
msgstr "Ongeldige naam."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Geldige karakters:"
@@ -1630,7 +1645,9 @@ msgstr "Scène aan het bijwerken..."
msgid "[empty]"
msgstr "[leeg]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[niet opgeslagen]"
@@ -1651,6 +1668,7 @@ msgstr "Map maken"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Naam:"
@@ -1710,7 +1728,7 @@ msgid ""
"'Import Pvrtc' in Project Settings."
msgstr ""
"Doelplatform vereist 'PVRTC' textuurcompressie voor GLES2. Schakel 'Import "
-"Etc' in bij de Projectinstellingen."
+"Pvrtc' in bij de Projectinstellingen."
#: editor/editor_export.cpp
msgid ""
@@ -2147,7 +2165,8 @@ msgid "Properties"
msgstr "Eigenschappen"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "overschreven:"
#: editor/editor_help.cpp
@@ -2291,6 +2310,20 @@ msgstr "Thema-eigenschap"
msgid "Property:"
msgstr "Eigenschap:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(waarde)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2300,6 +2333,29 @@ msgstr "Zet %s"
msgid "Set Multiple:"
msgstr "Zet Meerdere:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Eigenschappen"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Eigenschappen"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopieer Script Pad"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Uitvoer:"
@@ -3117,6 +3173,20 @@ msgstr ""
"aanstaat."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Veranderingen in de scène synchroniseren"
@@ -4269,6 +4339,10 @@ msgstr "In bestanden zoeken"
msgid "Find:"
msgstr "Zoeken:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Vervangen:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Map:"
@@ -4294,6 +4368,11 @@ msgstr "Vind..."
msgid "Replace..."
msgstr "Vervang..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Alles vervangen"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Zoeken: "
@@ -4303,8 +4382,9 @@ msgid "Replace: "
msgstr "Vervangen: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Alles vervangen (onomkeerbaar)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Alles vervangen"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4522,6 +4602,12 @@ msgstr ""
"WAARSCHUWING: Er bestaan assets die gebruikmaken van deze bron, hierdoor "
"kunnen deze mogelijk niet worden geladen."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Bron laden mislukt."
@@ -5991,6 +6077,11 @@ msgstr "Alt + Slepen : Verplaatsen"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt + Slepen : Verplaatsen"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "De uitgekozen knoop of overgang verwijderen."
@@ -6022,6 +6113,10 @@ msgid "Scale Mode"
msgstr "Schaalmodus"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6120,23 +6215,47 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Slot Geselecteerd"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Ontgrendel het geselecteerde object (kan verplaatst worden)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Geselecteerde Verwijderen"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
"Zorgt ervoor dat de kinderen van dit object niet geselecteerd kunnen worden."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Selectie Groeperen"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
"Herstelt de mogelijkheid van selecteerbaarheid bij de kinderen van het "
"object."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Selectie Degroeperen"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Skeletinstellingen"
@@ -6186,6 +6305,7 @@ msgid "Show Group And Lock Icons"
msgstr "Toon Groep en Slot Iconen"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Center Selection"
msgstr "Centreer Selectie"
@@ -7798,6 +7918,11 @@ msgid "Find in Files..."
msgstr "Zoeken in bestanden..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Vervang..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Contextuele Hulp"
@@ -8349,6 +8474,19 @@ msgid "Toggle Freelook"
msgstr "Toggle Freelook"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Reset naar standaard waarden"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformatie"
@@ -9122,6 +9260,30 @@ msgstr "Thema importeren"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Beschikbare Profielen:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Bestandsnaam is leeg."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Weet je zeker dat je meer dan één project wilt openen?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim Track Hernoemen"
@@ -9147,21 +9309,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Type"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Element toevoegen"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Knooptype"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Laad standaard"
@@ -9180,6 +9327,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Element toevoegen"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Thema"
@@ -11715,10 +11867,6 @@ msgid "Batch Rename"
msgstr "Bulk hernoemen"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Vervangen:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Voorvoegsel:"
@@ -12001,6 +12149,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Nieuwe scène opslaan als..."
@@ -12964,63 +13126,68 @@ msgstr "Vul selectie"
msgid "End of inner exception stack trace"
msgstr "Einde van innerlijke exception stack trace"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "Een NavigationMesh-bron is nodig om deze knoop te laten werken."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Bak NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Navigatiemesh wissen."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Configuratie aan het instellen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Raster groote uitrekenen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Hoogteveld aan het creëeren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "begaanbaare driehoeken markeren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Bezig met opbouw van compact hoogteveld..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Wandelbaar gebied aan het eroderen..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partitioneren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Contouren aan het creëeren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Polymesh aan het creëeren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Naar navigatie mesh aan het converteren..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Navigatie Mesh Generator Setup:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Geometrie aan het ontleden..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Klaar!"
@@ -14064,6 +14231,16 @@ msgstr ""
"De occluder-polygoon van deze occluder is leeg. Teken alstublieft een "
"polygoon."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14316,11 +14493,11 @@ msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
"Een SpotLight met een hoek breder dan 90 graden kan geen schaduwen werpen."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "Een NavigationMesh-bron is nodig om deze knoop te laten werken."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14328,6 +14505,12 @@ msgstr ""
"NavigationMeshInstance moet een (klein)kind zijn van een Navigation-knoop om "
"navigatiegevens door te geven."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14775,10 +14958,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Toewijzing aan functie."
diff --git a/editor/translations/or.po b/editor/translations/or.po
index 15a041d554..59c61de288 100644
--- a/editor/translations/or.po
+++ b/editor/translations/or.po
@@ -1,6 +1,6 @@
# Odia translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Pro Neon <proneon267@gmail.com>, 2019.
msgid ""
@@ -317,6 +317,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -479,6 +483,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1431,6 +1439,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1535,7 +1547,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1556,6 +1570,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2027,7 +2042,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2163,6 +2178,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2172,6 +2200,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2910,6 +2958,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3967,6 +4029,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3990,6 +4056,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -3999,7 +4069,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4213,6 +4283,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5634,6 +5710,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5662,6 +5742,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5756,20 +5840,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7369,6 +7473,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7881,6 +7989,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8592,37 +8712,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8642,6 +8770,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10982,10 +11114,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11258,6 +11386,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12187,63 +12329,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13177,6 +13324,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13383,16 +13540,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13787,10 +13950,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index 3d6a9cc22f..fd2468a30e 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -1,6 +1,6 @@
# Polish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# 8-bit Pixel <dawdejw@gmail.com>, 2016.
# Adam Wolanski <adam.wolanski94@gmail.com>, 2017.
@@ -57,7 +57,7 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-10-31 22:17+0000\n"
+"PO-Revision-Date: 2021-12-23 15:30+0000\n"
"Last-Translator: Tomek <kobewi4e@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
@@ -67,7 +67,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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 4.9-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -370,6 +370,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplikuj klucz(e)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Dodaj %d klatek"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Usuń klucz(e)"
@@ -538,6 +543,11 @@ msgstr ""
"Ta opcja nie działa dla edycji Beziera, ponieważ jest to tylko jedna ścieżka."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Przeskaluj klatki kluczowe"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1518,6 +1528,10 @@ msgid "Invalid name."
msgstr "Niewłaściwa nazwa."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Dopuszczalne znaki:"
@@ -1622,7 +1636,9 @@ msgstr "Aktualizacja sceny ..."
msgid "[empty]"
msgstr "[pusty]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[niezapisany]"
@@ -1643,6 +1659,7 @@ msgstr "Utwórz katalog"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nazwa:"
@@ -2135,7 +2152,8 @@ msgid "Properties"
msgstr "Właściwości"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "nadpisanie:"
#: editor/editor_help.cpp
@@ -2167,9 +2185,8 @@ msgid "Icons"
msgstr "Ikony"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Styles"
-msgstr "Styl"
+msgstr "Style"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2276,6 +2293,20 @@ msgstr "Właściwość motywu"
msgid "Property:"
msgstr "Właściwość:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(wartość)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2285,6 +2316,29 @@ msgstr "Ustaw %s"
msgid "Set Multiple:"
msgstr "Ustaw wiele:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Skopiuj właściwości"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Wklej właściwości"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Skopiuj ścieżkę skryptu"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Wyjście:"
@@ -3097,6 +3151,20 @@ msgstr ""
"w uruchomionym projekcie."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Synchronizuj zmiany na scenie"
@@ -4215,6 +4283,10 @@ msgstr "Znajdź w plikach"
msgid "Find:"
msgstr "Znajdź:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "ZastÄ…p:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Folder:"
@@ -4240,6 +4312,11 @@ msgstr "Znajdź..."
msgid "Replace..."
msgstr "Zamień..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "ZastÄ…p wszystkie"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Znajdź: "
@@ -4249,8 +4326,9 @@ msgid "Replace: "
msgstr "ZastÄ…p: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Zastąp wszystkie (nie można cofnąć)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "ZastÄ…p wszystkie"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4471,6 +4549,12 @@ msgstr ""
"OSTRZEŻENIE: Istnieje zawartość używająca tego zasobu, która może przestać "
"działać prawidłowo."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Nie udało się wczytać zasobu."
@@ -5935,6 +6019,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Przeciągnij: Przesuń zaznaczony węzeł."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Przeciągnij: Przesuń zaznaczony węzeł."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Ustaw pozycję osi obrotu zaznaczonego węzła."
@@ -5965,6 +6054,10 @@ msgid "Scale Mode"
msgstr "Tryb skalowania"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6061,20 +6154,44 @@ msgstr "Zablokuj wybrany obiekt w miejscu (nie można go przesuwać)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Zablokuj wybrane"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Odblokuj wybrany obiekt (można go przesuwać)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Odblokuj wybrane"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Zablokuj selekcję węzłów podrzędnych."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Grupuj wybrane"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Odblokuj selekcję węzłów podrzędnych."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Rozgrupuj wybrane"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opcje szkieletu"
@@ -7716,6 +7833,11 @@ msgid "Find in Files..."
msgstr "Znajdź w plikach..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Zamień..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Pomoc kontekstowa"
@@ -8240,6 +8362,19 @@ msgid "Toggle Freelook"
msgstr "Przełącz swobodny widok"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Resetuj do domyślnych"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Przekształcanie"
@@ -8962,6 +9097,29 @@ msgid "Another Theme"
msgstr "Inny motyw"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Dodaj typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Dostępne profile:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Nazwa pliku jest pusta."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Czy jesteś pewny że chcesz otworzyć więcej niż jeden projekt?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Potwierdź zmianę nazwy elementu"
@@ -8986,18 +9144,6 @@ msgstr ""
"zaktualizuje te same właściwości we wszystkich innych StyleBoxach tego typu."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Dodaj typ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Dodaj typ elementu"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Typy węzłów:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Pokaż domyślne"
@@ -9014,6 +9160,10 @@ msgid "Override all default type items."
msgstr "Nadpisz wszystkie domyślne elementy typu."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Dodaj typ elementu"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Motyw:"
@@ -11518,10 +11668,6 @@ msgid "Batch Rename"
msgstr "Grupowa zmiana nazwy"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "ZastÄ…p:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Przedrostek:"
@@ -11811,6 +11957,20 @@ msgstr ""
"bazowaną na instancji sceny, używając Scena -> Nowa scena dziedzicząca..."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Zapisz nowÄ… scenÄ™ jako ..."
@@ -12772,63 +12932,70 @@ msgstr "Zbuduj rozwiÄ…zanie"
msgid "End of inner exception stack trace"
msgstr "Koniec śladu stosu wewnętrznego wyjątku"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Zasób typu NavigationMesh musi być ustawiony w odpowiednim polu, aby ten "
+"węzeł zadziałał."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Przygotuj NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Wyczyść siatkę nawigacji."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Ustawianie konfiguracji..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Obliczanie wielkości siatki..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Tworzenie pola wysokości..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Zaznaczanie możliwych do przejścia trójkątów ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Konstruowanie zwartego pola wysokości..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erodowanie osiÄ…galnego obszaru..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Rozdzielanie..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Tworzenie konturów..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Tworzenie siatki wielokÄ…tnej..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Konwertowanie do natywnej siatki nawigacyjnej..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Ustawienia generatora siatek nawigacyjnych:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Parsowanie Geometrii..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Skończone!"
@@ -13395,20 +13562,16 @@ msgid "\"Use Custom Build\" must be enabled to use the plugins."
msgstr "\"Use Custom Build\" musi być włączone, by używać wtyczek."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" "
"or \"OpenXR\"."
msgstr ""
-"\"Hand Tracking\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus Mobile VR"
-"\"."
+"\"Hand Tracking\" jest poprawne tylko, gdy \"Xr Mode\" jest \"Oculus Mobile "
+"VrApi\" lub \"OpenXR\"."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"."
-msgstr ""
-"\"Hand Tracking\" jest poprawne tylko gdy \"Xr Mode\" jest \"Oculus Mobile VR"
-"\"."
+msgstr "\"Passthrough\" jest poprawne tylko, gdy \"Xr Mode\" jest \"OpenXR\"."
#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
@@ -13416,23 +13579,23 @@ msgstr ""
"\"Eksportuj AAB\" jest ważne tylko gdy \"Use Custom Build\" jest włączone."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-"\"Eksportuj AAB\" jest ważne tylko gdy \"Use Custom Build\" jest włączone."
+"Zmiana \"Min Sdk\" jest poprawna tylko, gdy \"Use Custom Build\" jest "
+"włączone."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is "
"enabled."
msgstr ""
-"\"Eksportuj AAB\" jest ważne tylko gdy \"Use Custom Build\" jest włączone."
+"Zmiana \"Target Sdk\" jest poprawna tylko, gdy \"Use Custom Build\" jest "
+"włączone."
#: platform/android/export/export_plugin.cpp
msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version."
-msgstr ""
+msgstr "Wersja \"Target Sdk\" musi być większa lub równa wersji \"Min Sdk\"."
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13864,6 +14027,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"Wielokąt przesłaniający dla tego przesłaniacza jest pusty. Narysuj wielokąt."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14123,13 +14296,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight z kątem szerszym niż 90 stopni nie może rzucać cieni."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Zasób typu NavigationMesh musi być ustawiony w odpowiednim polu, aby ten "
-"węzeł zadziałał."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14137,6 +14308,12 @@ msgstr ""
"NavigationMeshInstance musi być dzieckiem lub wnukiem węzła typu Navigation. "
"Udostępnia on tylko dane nawigacyjne."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Żaden kształt nie jest ustawiony."
@@ -14612,11 +14789,6 @@ msgstr ""
"ponownie we \"vertex\" ani \"light\"."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"Varying z etapu fragmentów nie jest dostępny w niestandardowej funkcji!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Przypisanie do funkcji."
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index 7b4329c771..799813904a 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -1,6 +1,6 @@
# Pirate translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Calum Knott <calum@calumk.com>, 2017.
# Zion Nimchuk <zionnimchuk@gmail.com>, 2016-2017.
@@ -341,6 +341,10 @@ msgid "Duplicate Key(s)"
msgstr "Rename Variable"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "Yar, Blow th' Selected Down!"
@@ -509,6 +513,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1483,6 +1491,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1588,7 +1600,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1609,6 +1623,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2104,7 +2119,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2246,6 +2261,19 @@ msgstr "Paste yer Node"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2255,6 +2283,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Paste yer Node"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Paste yer Node"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Forge yer Node!"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Cap'n's Log:"
@@ -3005,6 +3056,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4109,6 +4174,10 @@ msgstr "Find ye Node Type"
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4133,6 +4202,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Find ye Node Type"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4142,7 +4216,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4363,6 +4437,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5842,6 +5922,11 @@ msgstr "Yar, Blow th' Selected Down!"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Discharge ye' Signal"
@@ -5871,6 +5956,10 @@ msgid "Scale Mode"
msgstr "Slit th' Node"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5969,20 +6058,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Yar, Blow th' Selected Down!"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Yar, Blow th' Selected Down!"
@@ -7630,6 +7743,11 @@ msgid "Find in Files..."
msgstr "Find ye Node Type"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Find ye Node Type"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8159,6 +8277,18 @@ msgid "Toggle Freelook"
msgstr "Toggle ye Breakpoint"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8918,40 +9048,48 @@ msgid "Another Theme"
msgstr "th' Members:"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "Find ye Node Type"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "yer Nodes doing nothin':"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "Find ye Node Type"
+msgid "Override Item"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Find ye Node Type"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
@@ -8970,6 +9108,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "th' Members:"
@@ -11404,10 +11546,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11688,6 +11826,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12665,63 +12817,68 @@ msgstr "All yer Booty"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13715,6 +13872,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13921,16 +14088,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14329,10 +14502,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/pt.po b/editor/translations/pt.po
index f6aefb33cb..fcaec3fee6 100644
--- a/editor/translations/pt.po
+++ b/editor/translations/pt.po
@@ -1,6 +1,6 @@
# Portuguese translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# António Sarmento <antonio.luis.sarmento@gmail.com>, 2016.
# Carlos Vieira <carlos.vieira@gmail.com>, 2017.
@@ -24,7 +24,7 @@ msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-11-07 09:45+0000\n"
+"PO-Revision-Date: 2021-12-31 08:52+0000\n"
"Last-Translator: João Lopes <linux-man@hotmail.com>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/godot-engine/"
"godot/pt/>\n"
@@ -33,7 +33,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 4.9-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -336,6 +336,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Chave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Adicionar %d Frame(s)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Apagar Chave(s)"
@@ -505,6 +510,11 @@ msgstr ""
"Esta opção não funciona para edição de Bezier, dado que é uma única faixa."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Escalar Chaves"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1489,6 +1499,10 @@ msgid "Invalid name."
msgstr "Nome inválido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caracteres válidos:"
@@ -1594,7 +1608,9 @@ msgstr "A atualizar cena..."
msgid "[empty]"
msgstr "[vazio]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[não guardado]"
@@ -1615,6 +1631,7 @@ msgstr "Criar Pasta"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nome:"
@@ -2110,7 +2127,8 @@ msgid "Properties"
msgstr "Propriedades"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "sobrepor:"
#: editor/editor_help.cpp
@@ -2142,9 +2160,8 @@ msgid "Icons"
msgstr "Ãcones"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Styles"
-msgstr "Estilo"
+msgstr "Estilos"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2251,6 +2268,20 @@ msgstr "Propriedade do Tema"
msgid "Property:"
msgstr "Propriedade:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2260,6 +2291,29 @@ msgstr "Definir %s"
msgid "Set Multiple:"
msgstr "Definir Múltiplo:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copiar Propriedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Colar Propriedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copiar Caminho do Script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Saída:"
@@ -3074,6 +3128,20 @@ msgstr ""
"projeto em execução."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Alterações da Cena"
@@ -3298,8 +3366,8 @@ msgstr ""
"Poderá depois aplicar modificações e compilar o seu APK personalizado a "
"exportar (com adição de módulos, a alterar AndroidManifest.xml, etc.).\n"
"Repare que de forma a criar compilações personalizadas em vez de usar APKs "
-"pré-compilados, a opção \"Usar Compilação Personalizada\" deve ser ativada "
-"na predefinição da exportação Android."
+"pré-compilados, a opção \"Use Custom Build\" deve ser ativada na "
+"predefinição da exportação Android."
#: editor/editor_node.cpp
msgid ""
@@ -4200,6 +4268,10 @@ msgstr "Localizar em Ficheiros"
msgid "Find:"
msgstr "Localizar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Substituir:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Pasta:"
@@ -4225,6 +4297,11 @@ msgstr "Localizar..."
msgid "Replace..."
msgstr "Substituir..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Substituir todos"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Localizar: "
@@ -4234,8 +4311,9 @@ msgid "Replace: "
msgstr "Substituir: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Substituir tudo (definitivo)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Substituir todos"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4454,6 +4532,12 @@ msgstr ""
"AVISO: Outros recursos usam este recurso, e podem não ser carregados "
"corretamente."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Falha ao carregar recurso."
@@ -5913,6 +5997,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Arrastar: Mover nó selecionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrastar: Mover nó selecionado."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Define posição do pivô do nó selecionado."
@@ -5943,6 +6032,10 @@ msgid "Scale Mode"
msgstr "Modo Escalar"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6039,20 +6132,44 @@ msgstr "Bloquear a posição do objeto selecionado (não pode ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Bloquear Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Desbloquear o Objeto selecionado (pode ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Desbloquear Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Assegura que os Objetos-filho não são selecionáveis."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaura a capacidade de selecionar os Objetos-filho."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opções do Esqueleto"
@@ -7689,6 +7806,11 @@ msgid "Find in Files..."
msgstr "Localizar em Ficheiros..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Substituir..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Ajuda Contextual"
@@ -8213,6 +8335,19 @@ msgid "Toggle Freelook"
msgstr "Alternar Freelook"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Restaurar Predefinição"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformar"
@@ -8934,6 +9069,29 @@ msgid "Another Theme"
msgstr "Outro Tema"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Adicionar Tipo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfis disponíveis:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Nome do Ficheiro vazio."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Está seguro que quer abrir mais do que um Projeto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Confirmar Renomear Item"
@@ -8958,18 +9116,6 @@ msgstr ""
"atualizar as mesmas em todos os StyleBoxes deste tipo."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Adicionar Tipo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Adicionar Tipo de Item"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Tipos de Nó:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Predefinição"
@@ -8987,6 +9133,10 @@ msgid "Override all default type items."
msgstr "Sobrepõe todos os itens de tipo predefinido."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Adicionar Tipo de Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -11484,10 +11634,6 @@ msgid "Batch Rename"
msgstr "Renomear em Massa"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Substituir:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefixo:"
@@ -11777,6 +11923,20 @@ msgstr ""
"cena instanciada usando Cena > Nova Cena Herdada..."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Guardar Nova Cena Como..."
@@ -12739,63 +12899,70 @@ msgstr "Construir Solução"
msgid "End of inner exception stack trace"
msgstr "Fim do stack trace de exceção interna"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Um recurso NavigationMesh tem de ser definido ou criado para este nó "
+"funcionar."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Consolidar NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Limpar a malha de navegação."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "A ajustar configuração..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "A calcular tamanho da grelha..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "A criar heightfield..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "A marcar triângulos caminháveis..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "A construir heightfield compacto..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "A corroer a área caminhável..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "A segmentar..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "A criar contornos..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "A criar polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "A converter para malha de navegação nativa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Configuração do Gerador da Malha de Navegação:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "A analisar geometria..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Feito!"
@@ -13363,51 +13530,41 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "\"Use Custom Build\" must be enabled to use the plugins."
-msgstr ""
-"\"Usar Compilação Personalizada\" têm de estar ativa para usar os plugins."
+msgstr "\"Use Custom Build\" têm de estar ativa para usar os plugins."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" "
"or \"OpenXR\"."
msgstr ""
-"\"Rastreamento de Mão\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR"
-"\"."
+"\"Rastreamento de Mão\" só é válido quando \"Modo Xr\" é \"Oculus Mobile "
+"VrApi\" ou \"OpenXR\"."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"."
-msgstr ""
-"\"Rastreamento de Mão\" só é válido quando \"Modo Xr\" é \"Oculus Mobile VR"
-"\"."
+msgstr "\"Passthrough\" só é válido quando \"Modo Xr\" é \"OpenXR\"."
#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
-msgstr ""
-"\"Exportar AAB\" só é válido quando \"Usar Compilação Personalizada\" está "
-"ativa."
+msgstr "\"Exportar AAB\" só é válido quando \"Use Custom Build\" está ativa."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-"\"Exportar AAB\" só é válido quando \"Usar Compilação Personalizada\" está "
-"ativa."
+"Mudança de \"Min Sdk\" só é válida quando \"Use Custom Build\" está ativa."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is "
"enabled."
msgstr ""
-"\"Exportar AAB\" só é válido quando \"Usar Compilação Personalizada\" está "
-"ativa."
+"Mudança de \"Target Sdk\" só é válida quando \"Use Custom Build\" está ativa."
#: platform/android/export/export_plugin.cpp
msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version."
msgstr ""
+"Versão de \"Target Sdk\" tem de ser maior ou igual à versão de \"Min Sdk\"."
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13835,6 +13992,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "O polígono oclusor deste oclusor está vazio. Desenhe um polígono."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14089,13 +14256,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "Uma SpotLight com ângulo superior a 90 graus não cria sombras."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Um recurso NavigationMesh tem de ser definido ou criado para este nó "
-"funcionar."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14103,6 +14268,12 @@ msgstr ""
"NavigationMeshInstance tem de ser filho ou neto de um nó Navigation. Apenas "
"fornece dados de navegação."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Nenhuma forma está definida."
@@ -14578,10 +14749,6 @@ msgstr ""
"'vertex' ou 'light'."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "Variante fragment-stage não pode ser acedida em função personalizada!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Atribuição a função."
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index 2045a1140c..f4872c4483 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -1,6 +1,6 @@
# Portuguese (Brazil) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Allyson Souza <allyson_as@outlook.com>, 2017.
# Anderson Araujo <anderson.araujoprog@gmail.com>, 2018.
@@ -105,7 +105,7 @@
# Elton <eltondeoliveira@outlook.com>, 2020, 2021.
# ThiagoCTN <thiagocampostn@gmail.com>, 2020.
# Alec Santos <alecsantos96@gmail.com>, 2020.
-# Augusto Milão <augusto.milao01@gmail.com>, 2021.
+# Augusto Milão <augusto.milao01@gmail.com>, 2021, 2022.
# Gabriel Gavazzi Felix <mutcholoko32@gmail.com>, 2021.
# Lucas Dantas <lucas.lucantas38@gmail.com>, 2021.
# Carlos Bonifacio <carlosboni.sa@gmail.com>, 2021.
@@ -130,13 +130,16 @@
# Cearaj <pmoraisleal@gmail.com>, 2021.
# Alefy San <alefyferreiradeoliveira@outlook.com>, 2021.
# Joel Gomes da Silva <joelgomes1994@hotmail.com>, 2021.
+# Orangotango De tanga <luizinho0045@gmail.com>, 2021.
+# Felipe SiFa <felipe@logus.digital>, 2022.
+# Gabriel Gian <gabrielgian@live.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2021-12-09 23:13+0000\n"
-"Last-Translator: Joel Gomes da Silva <joelgomes1994@hotmail.com>\n"
+"PO-Revision-Date: 2022-01-07 11:42+0000\n"
+"Last-Translator: Felipe SiFa <felipe@logus.digital>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -144,7 +147,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 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -446,6 +449,11 @@ msgid "Duplicate Key(s)"
msgstr "Duplicar Chave(s)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Adicionar %d Frame(s)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Deletar Chave(s)"
@@ -616,6 +624,11 @@ msgstr ""
"única."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Alterar Escala das Chaves na Anim"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -813,7 +826,7 @@ msgstr "Mudar Deslocamento do Início do Clip de Trilha de Audio"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip End Offset"
-msgstr "Alterar fim da Trilha de Aúdio"
+msgstr "Alterar fim da Trilha de Ãudio"
#: editor/array_property_edit.cpp
msgid "Resize Array"
@@ -1598,6 +1611,10 @@ msgid "Invalid name."
msgstr "Nome Inválido."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caracteres válidos:"
@@ -1702,7 +1719,9 @@ msgstr "Atualizando Cena..."
msgid "[empty]"
msgstr "[vazio]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[não salvo]"
@@ -1723,6 +1742,7 @@ msgstr "Criar Pasta"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nome:"
@@ -2220,7 +2240,8 @@ msgid "Properties"
msgstr "Propriedades"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "sobrescrever:"
#: editor/editor_help.cpp
@@ -2252,7 +2273,6 @@ msgid "Icons"
msgstr "Ãcones"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Styles"
msgstr "Estilo"
@@ -2361,6 +2381,20 @@ msgstr "Propriedade do Tema"
msgid "Property:"
msgstr "Propriedade:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valor)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2370,6 +2404,29 @@ msgstr "Conjunto %s"
msgid "Set Multiple:"
msgstr "Definir Múltiplos:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Copiar Propriedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Colar Propriedades"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Copiar Caminho do Script"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Saída:"
@@ -2416,7 +2473,7 @@ msgstr "Acima"
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
-msgstr "Nó"
+msgstr "Nodo"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
@@ -2444,8 +2501,8 @@ msgid ""
"Update Continuously is enabled, which can increase power usage. Click to "
"disable it."
msgstr ""
-"Gira quando a janela do editor é redesenhada.\n"
-"Atualização contínua está habilitada, o que pode aumentar o uso de energia. "
+"Roda quando a janela do editor é redesenhada.\n"
+"Atualização Continua é habilitada, o que pode aumentar o consumo de energia. "
"Clique para desativá-lo."
#: editor/editor_node.cpp
@@ -2836,7 +2893,9 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: '%s'."
-msgstr "Não foi possível encontrar o campo de script para o plugin em: '%s'."
+msgstr ""
+"Não foi possível encontrar o campo de script para o plugin em: 'res://addons/"
+"%s'."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
@@ -3188,6 +3247,20 @@ msgstr ""
"durante o projeto em execução."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sincronizar Mudanças de Cena"
@@ -3449,7 +3522,7 @@ msgstr "Aplicar transformações da MeshInstance"
#: editor/editor_node.cpp
msgid "Open & Run a Script"
-msgstr "Abrir e Rodar um Script"
+msgstr "Abrir e Executar um Script"
#: editor/editor_node.cpp
msgid ""
@@ -4226,19 +4299,19 @@ msgstr "Ordenar arquivos"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Ascending)"
-msgstr "Ordenar por Nome (Ascendente)"
+msgstr "Ordenar por Nome (Crescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Name (Descending)"
-msgstr "Ordenar por Nome (Descendente)"
+msgstr "Ordenar por Nome (Decrescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Ascending)"
-msgstr "Ordenar por Tipo (Ascendente)"
+msgstr "Ordenar por Tipo (Crescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Type (Descending)"
-msgstr "Ordenar por Tipo (Descendente)"
+msgstr "Ordenar por Tipo (Decrescente)"
#: editor/filesystem_dock.cpp
msgid "Sort by Last Modified"
@@ -4258,7 +4331,7 @@ msgstr "Renomear..."
#: editor/filesystem_dock.cpp
msgid "Focus the search box"
-msgstr "Focar a caixa de pesquisa"
+msgstr "Foca a caixa de pesquisa"
#: editor/filesystem_dock.cpp
msgid "Previous Folder/File"
@@ -4319,6 +4392,10 @@ msgstr "Localizar nos arquivos"
msgid "Find:"
msgstr "Encontrar:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Substituir:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Pasta:"
@@ -4344,6 +4421,11 @@ msgstr "Localizar..."
msgid "Replace..."
msgstr "Substituir..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Substituir Tudo"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Encontrar: "
@@ -4353,8 +4435,9 @@ msgid "Replace: "
msgstr "Substituir: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Substituir Tudo (sem desfazer)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Substituir Tudo"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4362,7 +4445,7 @@ msgstr "Procurando..."
#: editor/find_in_files.cpp
msgid "%d match in %d file."
-msgstr "%d correspondências no arquivo %d."
+msgstr "%d corresponde a %d arquivo."
#: editor/find_in_files.cpp
msgid "%d matches in %d file."
@@ -4516,7 +4599,7 @@ msgstr "Importador:"
#: editor/import_defaults_editor.cpp
msgid "Reset to Defaults"
-msgstr "Redefinir padrões"
+msgstr "Redefinir para o padrão"
#: editor/import_dock.cpp
msgid "Keep File (No Import)"
@@ -4575,6 +4658,12 @@ msgstr ""
"AVISO: Existem objetos que utilizam esse recurso, eles podem parar de "
"carregar apropriadamente."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Falha ao carregar recurso."
@@ -4910,7 +4999,7 @@ msgstr "Nó de Saída não pode ser adicionado à árvore de mistura."
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Add Node to BlendTree"
-msgstr "Adicionar Nó(s) a Partir da Ãrvore (BlendTree)"
+msgstr "Adicionar Nó(s) à BlendTree"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
msgid "Node Moved"
@@ -5853,7 +5942,7 @@ msgid ""
"Children of containers have their anchors and margins values overridden by "
"their parent."
msgstr ""
-"Filhos de contêineres tem suas posições e tamanhos sobrescritos pelos seus "
+"Filhos de contêineres têm suas posições e tamanhos sobrescritos pelos seus "
"pais."
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -6043,6 +6132,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Arrastar: Mover nó selecionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Arrastar: Mover nó selecionado."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Define a posição do pivô do nó selecionado."
@@ -6073,6 +6167,10 @@ msgid "Scale Mode"
msgstr "Modo de Escalonamento"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6169,20 +6267,44 @@ msgstr "Travar o objeto selecionado no local (não pode ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Fixar Seleção"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Destravar o objeto selecionado (pode ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Destravar Selecionado"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Garante que os filhos do objeto não sejam selecionáveis."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Agrupar Selecionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaura a habilidade dos filhos do objeto de serem selecionados."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Desagrupar Selecionados"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Opções de esqueleto"
@@ -7824,6 +7946,11 @@ msgid "Find in Files..."
msgstr "Procurar nos Arquivos..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Substituir..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Ajuda Contextual"
@@ -8313,19 +8440,19 @@ msgstr "Orbitar Visão Para Baixo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View Left"
-msgstr "Orbitar Visão Para Esquerda"
+msgstr "Orbitar Visão para a Esquerda"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View Right"
-msgstr "Orbitar Visão Para Direita"
+msgstr "Orbitar Visão para a Direita"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View Up"
-msgstr "Orbitar Visão Para Cima"
+msgstr "Orbitar Visão para Cima"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orbit View 180"
-msgstr "Orbitar Visão Em 180"
+msgstr "Orbitar Visão em 180"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal View"
@@ -8348,6 +8475,19 @@ msgid "Toggle Freelook"
msgstr "Alternar Visão Livre"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Redefinir padrões"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformação"
@@ -9070,6 +9210,29 @@ msgid "Another Theme"
msgstr "Outro Tema"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Adicionar Modelo"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Perfis Disponíveis:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "O nome do arquivo está vazio."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Tem certeza de que quer abrir mais de um projeto?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Confirmar Renomeação do Item"
@@ -9094,18 +9257,6 @@ msgstr ""
"atualizará as mesmas propriedades em todos os outros StyleBoxes deste tipo."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Adicionar Modelo"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Adicionar Tipo de Item"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Tipos de Nó:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Mostrar Padrão"
@@ -9123,6 +9274,10 @@ msgid "Override all default type items."
msgstr "Substituir todos os itens do modelo padrão."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Adicionar Tipo de Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -9151,7 +9306,7 @@ msgid ""
"Toggle the control picker, allowing to visually select control types for "
"edit."
msgstr ""
-"Alterar o selecionador de controles, permitindo selecionar visualmente os "
+"Acionar o selecionador de controles, permitindo selecionar visualmente os "
"tipos de controles para edição."
#: editor/plugins/theme_editor_preview.cpp
@@ -11623,10 +11778,6 @@ msgid "Batch Rename"
msgstr "Renomear em lote"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Substituir:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Prefixo:"
@@ -11918,6 +12069,20 @@ msgstr ""
"disso."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Salvar Nova Cena Como..."
@@ -12853,7 +13018,7 @@ msgstr "Gerar buffers"
#: modules/lightmapper_cpu/lightmapper_cpu.cpp
msgid "Direct lighting"
-msgstr "Direct lightning"
+msgstr "Iluminação direta"
#: modules/lightmapper_cpu/lightmapper_cpu.cpp
msgid "Indirect lighting"
@@ -12879,63 +13044,70 @@ msgstr "Construir Solução"
msgid "End of inner exception stack trace"
msgstr "Fim da pilha de rastreamento de exceção interna"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Um recurso do tipo NavigationMesh deve ser definido ou criado para que este "
+"nó funcione."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Bake NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Apagar a malha de navegação."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Preparando Configuração..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calculando tamanho da grade..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Criando mapa de altura..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marcando triângulos caminháveis..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construindo um mapa de altura compacto..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Erodindo área caminhável..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Particionando..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Criando contornos..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Criando polimalha..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Convertando para malha de navegação nativa..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Configuração do Gerador de Malha de Navegação:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Analisando Geometria..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Pronto!"
@@ -13464,7 +13636,7 @@ msgstr "Um caminho Android SDK é necessário nas Configurações do Editor."
#: platform/android/export/export_plugin.cpp
msgid "Invalid Android SDK path in Editor Settings."
-msgstr "Caminho do Android SDK está inválido para Configurações do Editor."
+msgstr "Caminho do Android SDK está inválido nas Configurações do Editor."
#: platform/android/export/export_plugin.cpp
msgid "Missing 'platform-tools' directory!"
@@ -13483,7 +13655,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Missing 'build-tools' directory!"
-msgstr "Diretório 'ferramentas-da-plataforma' está faltando !"
+msgstr "Diretório 'ferramentas-da-plataforma' está faltando!"
#: platform/android/export/export_plugin.cpp
msgid "Unable to find Android SDK build-tools' apksigner command."
@@ -13514,7 +13686,6 @@ msgstr ""
"utilizar plugins."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VrApi\" "
"or \"OpenXR\"."
@@ -13522,10 +13693,9 @@ msgstr ""
"\"Hand Tracking\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR\"."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"."
msgstr ""
-"\"Hand Tracking\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR\"."
+"\"Passthrough\" só é válido quando o \"Xr Mode\" é \"Oculus Mobile VR\"."
#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
@@ -13534,7 +13704,6 @@ msgstr ""
"habilitado."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
@@ -13542,7 +13711,6 @@ msgstr ""
"habilitado."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is "
"enabled."
@@ -13553,6 +13721,8 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version."
msgstr ""
+"Versão do \"Target Sdk\" precisa ser igual ou maior que a versão do \"Min Sdk"
+"\"."
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13596,7 +13766,7 @@ msgstr "Exportando para Android"
#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
-msgstr "Nome de arquivo invalido! Android App Bunlde requer a extensão *.aab."
+msgstr "Nome de arquivo inválido! Android App Bundle requer a extensão *.aab."
#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
@@ -13976,6 +14146,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"O polígono para este oclusor está vazio. Por favor desenhe um polígono."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14234,13 +14414,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "Um SpotLight com um ângulo maior que 90 graus não pode criar sombras."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Um recurso do tipo NavigationMesh deve ser definido ou criado para que este "
-"nó funcione."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14248,6 +14426,12 @@ msgstr ""
"NavigationMeshInstance deve ser filho ou neto de um nó Navigation. Ele "
"apenas fornece dados de navegação."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Nenhuma forma foi definida."
@@ -14571,7 +14755,7 @@ msgid ""
"children placement behavior.\n"
"If you don't intend to add a script, use a plain Control node instead."
msgstr ""
-"O contêiner por si só não tem nenhum propósito, a menos que um script "
+"O contêiner por si só não possui propósito algum, a menos que um script "
"configure seu comportamento de posicionamento dos filhos.\n"
"Se você não pretende adicionar um script, use um nó de Controle simples."
@@ -14598,7 +14782,7 @@ msgstr "Deve usar uma extensão válida."
#: scene/gui/graph_edit.cpp
msgid "Enable grid minimap."
-msgstr "Ativar minimapa de grade."
+msgstr "Ativar mini mapa em grade."
#: scene/gui/nine_patch_rect.cpp
msgid ""
@@ -14669,10 +14853,11 @@ msgid ""
"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
"texture to some node for display."
msgstr ""
-"Este viewport não está definido como destino de render. Se você pretende que "
-"ele mostre seu conteúdo diretamente na tela, faça-o filho de um nó Control "
-"para que ele possa ter um tamanho. Caso contrário, defina-o como destino de "
-"render e atribua sua textura interna a algum nó para exibir."
+"Este viewport não está definido como destino de renderização. Se você "
+"pretende que ele mostre seu conteúdo diretamente na tela, faça-o filho de um "
+"nó de Controle para que ele possa ter um tamanho. Caso contrário, defina-o "
+"como destino de renderização e atribua sua textura interna a algum nó para "
+"exibir."
#: scene/main/viewport.cpp
msgid ""
@@ -14727,10 +14912,6 @@ msgstr ""
"'vertex' ou 'light'."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "Variante Fragment-stage não pôde ser acessada na função personalizada!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Atribuição à função."
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index 8a556a8e8f..d763d64a8c 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -1,6 +1,6 @@
# Romanian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Calin Sopterean <csopterean@gmail.com>, 2018.
# Filip <filipanton@tutanota.com>, 2018, 2020.
@@ -336,6 +336,10 @@ msgid "Duplicate Key(s)"
msgstr "Clonare Chei"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Ștergeți Cheile"
@@ -504,6 +508,11 @@ msgstr ""
"singură pistă."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Scalați Cheile"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1490,6 +1499,10 @@ msgid "Invalid name."
msgstr "Nume nevalid."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Caractere valide:"
@@ -1598,7 +1611,9 @@ msgstr "Scena se Actualizează..."
msgid "[empty]"
msgstr "[gol]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[nesalvat]"
@@ -1619,6 +1634,7 @@ msgstr "Creare folder"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Nume:"
@@ -2118,7 +2134,8 @@ msgid "Properties"
msgstr "Proprietăți"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "extindere:"
#: editor/editor_help.cpp
@@ -2259,6 +2276,20 @@ msgstr "Proprietate Temă"
msgid "Property:"
msgstr "Proprietate:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(valoare)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
#, fuzzy
@@ -2269,6 +2300,29 @@ msgstr "Setați %s"
msgid "Set Multiple:"
msgstr "Seteaza Multiple:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Proprietăți"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Proprietăți"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Proprietăți"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Afișare:"
@@ -3079,6 +3133,20 @@ msgstr ""
"dacă această opțiune este activată."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Sincronizează Modificările Scenei"
@@ -4198,6 +4266,11 @@ msgstr "Caută în fișiere"
msgid "Find:"
msgstr "Găsiți:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Înlocuiți:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Folderul:"
@@ -4221,6 +4294,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Înlocuiți Tot"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Găsiți: "
@@ -4230,8 +4308,9 @@ msgid "Replace: "
msgstr "Înlocuiți: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Înlocuiește tot (fără anulare)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Înlocuiți Tot"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4449,6 +4528,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Încărcarea resursei a eșuat."
@@ -5969,6 +6054,11 @@ msgstr "Alt+Trage: Mutare"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Trage: Mutare"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Ștergeți pista selectată."
@@ -6001,6 +6091,10 @@ msgid "Scale Mode"
msgstr "Mod Redimensionare (R)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6108,20 +6202,44 @@ msgstr "Imobilizează obiectul selectat (nu poate fi mișcat)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Selectează"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Remobilizează obiectul selectat (poate fi mișcat)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Selectează"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Asigură-te că nu pot fi selectați copiii obiectului."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Elminați Selecția"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Restaurează abilitatea copiilor obiectului de a fi selectați."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Elminați Selecția"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Singleton (Unicat)"
@@ -7816,6 +7934,11 @@ msgid "Find in Files..."
msgstr "Filtrează fișierele..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Filtrează fișierele..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8358,6 +8481,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Încărcați Implicit"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9137,6 +9273,30 @@ msgstr "Membri"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Adaugă Obiect"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profile Disponibile:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Numele fișierului este gol."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Ești sigur că vrei să ștergi toate conexiunile de la acest semnal?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Redenumește Pista Anim"
@@ -9162,21 +9322,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Adaugă Obiect"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Adaugă Obiect"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Tip nod"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Încărcați Implicit"
@@ -9195,6 +9340,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Adaugă Obiect"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Membri"
@@ -11654,11 +11804,6 @@ msgid "Batch Rename"
msgstr "Redenumește"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Înlocuiți:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11938,6 +12083,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12917,63 +13076,68 @@ msgstr "Toată selecția"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Curăță mesh-ul de navigare."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Inițializarea configurației..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Calcularea mărimii grilei..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Crearea câmpului de înălțare..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Marcarea triunghiurilor traversabile..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Construcție câmp de înălțare compact..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Reducerea zonei traversabile..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partiționare..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Crearea conturilor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Crearea plasei de contur..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Se convertește în mesh nativ de navigare..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Setup Generare Mesh de Navigare:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Analiza geometriei..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Efectuat!"
@@ -13953,6 +14117,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14161,16 +14335,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14568,10 +14748,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index faabe7c86d..dfecd99550 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -1,6 +1,6 @@
# Russian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Ðркадий ÐÐ²Ð°Ñ <savvot@gmail.com>, 2018.
# Artem Varaksa <aymfst@gmail.com>, 2018.
@@ -421,6 +421,11 @@ msgid "Duplicate Key(s)"
msgstr "Дублировать ключ(и)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Добавить кадров: %d"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Удалить ключ(и)"
@@ -590,6 +595,11 @@ msgstr ""
"одна дорожка."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "МаÑштабировать ключи"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1570,6 +1580,10 @@ msgid "Invalid name."
msgstr "ÐедопуÑтимое имÑ."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "ДопуÑтимые Ñимволы:"
@@ -1674,7 +1688,9 @@ msgstr "Обновление Ñцены..."
msgid "[empty]"
msgstr "[пуÑто]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[не Ñохранено]"
@@ -1695,6 +1711,7 @@ msgstr "Создать папку"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "ИмÑ:"
@@ -2194,7 +2211,8 @@ msgid "Properties"
msgstr "СвойÑтва"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "переопределено:"
#: editor/editor_help.cpp
@@ -2334,6 +2352,20 @@ msgstr "СвойÑтво темы"
msgid "Property:"
msgstr "Параметр:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(значение)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2343,6 +2375,29 @@ msgstr "Задать %s"
msgid "Set Multiple:"
msgstr "Задать неÑколько:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Копировать ÑвойÑтва"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Ð’Ñтавить ÑвойÑтва"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Копировать путь к Ñкрипту"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Вывод:"
@@ -3158,6 +3213,20 @@ msgstr ""
"запущенном проекте."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в Ñценах"
@@ -4280,6 +4349,10 @@ msgstr "Ðайти в файлах"
msgid "Find:"
msgstr "Ðайти:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Заменить:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Папка:"
@@ -4305,6 +4378,11 @@ msgstr "Ðайти..."
msgid "Replace..."
msgstr "Заменить..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Заменить вÑÑ‘"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Ðайти: "
@@ -4314,8 +4392,9 @@ msgid "Replace: "
msgstr "Заменить: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Заменить вÑÑ‘ (Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Заменить вÑÑ‘"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4535,6 +4614,12 @@ msgstr ""
"Предупреждение: ÑущеÑтвуют объекты, которые иÑпользуют Ñтот реÑурÑ, они "
"могут переÑтать загружатьÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ‹Ð¼ образом."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Ðе удалоÑÑŒ загрузить реÑурÑ."
@@ -5994,6 +6079,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Тащить: перемещение выбранного узла."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Тащить: перемещение выбранного узла."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Задать положение pivot выделенного узла."
@@ -6024,6 +6114,10 @@ msgid "Scale Mode"
msgstr "Режим маÑштабированиÑ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6120,20 +6214,44 @@ msgstr "ЗафикÑировать выбранный объект."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Заблокировать выбранное"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Разблокировать выбранный объект."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Разблокировать выделенное"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Делает потомков объекта невыбираемыми."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Сгруппировать выделенное"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "ВоÑÑтанавливает возможноÑть выбора потомков объекта."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Разгруппировать выделенное"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Опции Ñкелета"
@@ -7775,6 +7893,11 @@ msgid "Find in Files..."
msgstr "Ðайти в файлах..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Заменить..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "КонтекÑÑ‚Ð½Ð°Ñ Ñправка"
@@ -8300,6 +8423,19 @@ msgid "Toggle Freelook"
msgstr "Включить Ñвободный вид"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "СброÑить наÑтройки"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Преобразование"
@@ -9023,6 +9159,29 @@ msgid "Another Theme"
msgstr "Ð”Ñ€ÑƒÐ³Ð°Ñ Ñ‚ÐµÐ¼Ð°"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Добавить тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "ДоÑтупные профили:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "ПуÑтое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Вы уверены, что хотите открыть более одного проекта?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Подтвердить переименование Ñлемента"
@@ -9048,18 +9207,6 @@ msgstr ""
"Ñтого типа."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Добавить тип"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Добавить тип Ñлемента"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Типы узлов:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Показать по умолчанию"
@@ -9078,6 +9225,10 @@ msgid "Override all default type items."
msgstr "Переопределить вÑе Ñлементы типа по умолчанию."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Добавить тип Ñлемента"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Тема:"
@@ -11576,10 +11727,6 @@ msgid "Batch Rename"
msgstr "Групповое переименование"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Заменить:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "ПрефикÑ:"
@@ -11876,6 +12023,20 @@ msgstr ""
"унаÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñцена..."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Сохранить новую Ñцену как..."
@@ -12840,63 +13001,69 @@ msgstr "Собрать решение"
msgid "End of inner exception stack trace"
msgstr "Конец траÑÑировки внутреннего Ñтека иÑключений"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"РеÑÑƒÑ€Ñ NavigationMesh должен быть уÑтановлен или Ñоздан Ð´Ð»Ñ Ñтого узла."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Запечь NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "ОчиÑтить полиÑетку навигации."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "ÐаÑтройка конфигурации..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "РаÑчёт размера Ñетки..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Создание карты выÑот..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Маркировка проходимых треугольников..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "ПоÑтроение компактной карты выÑот..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Размытие проходимого района..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Разбиение..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Создание контуров..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Создание полиÑетки..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Преобразование в ÑобÑтвенную навигационную полиÑетку..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "ÐаÑтройка генератора навигационной полиÑетки:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Ðнализ геометрии..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Сделано!"
@@ -13920,6 +14087,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"ЗаÑлонÑющий полигон Ð´Ð»Ñ Ñтого окклюдера пуÑÑ‚. ПожалуйÑта, добавьте полигон."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14179,12 +14356,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight Ñ ÑƒÐ³Ð»Ð¾Ð¼ более 90 градуÑов не может отбраÑывать тени."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"РеÑÑƒÑ€Ñ NavigationMesh должен быть уÑтановлен или Ñоздан Ð´Ð»Ñ Ñтого узла."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14192,6 +14368,12 @@ msgstr ""
"NavigationMeshInstance должен быть дочерним или под-дочерним узлом "
"Navigation. Он предоÑтавлÑет только навигационные данные."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Форма не задана."
@@ -14672,10 +14854,6 @@ msgstr ""
"или «light»."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "Varying Ñтадии fragment не доÑтупны из пользовательÑких функций!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "Ðазначение функции."
diff --git a/editor/translations/si.po b/editor/translations/si.po
index 045d642f0a..c1b97c5ebf 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -1,6 +1,6 @@
# Sinhala translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Yohan Sandun <Yohan99ysk@gmail.com>, 2018.
# thushariii <thusharipahalage@gmail.com>, 2021.
@@ -328,6 +328,10 @@ msgid "Duplicate Key(s)"
msgstr "යතුරු පිටපත් කරන්න"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "යතුරු මක෠දමන්න"
@@ -503,6 +507,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1459,6 +1467,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1563,7 +1575,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1584,6 +1598,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2057,7 +2072,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2194,6 +2209,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2203,6 +2231,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "ලක්ෂණය ලුහුබදින්න"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "යතුරු පිටපත් කරන්න"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "ලක්ෂණය ලුහුබදින්න"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2942,6 +2993,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4003,6 +4068,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4026,6 +4095,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4035,7 +4108,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4250,6 +4323,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5691,6 +5770,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "à¶­à·à¶»à·à¶œà¶­à·Š යතුරු මක෠දමන්න"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "à¶­à·à¶»à·à¶œà¶­à·Š යතුරු මක෠දමන්න"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5719,6 +5803,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5814,20 +5902,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "යතුරු මක෠දමන්න"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "à¶­à·à¶»à·à¶œà¶­à·Š යතුරු à¶´à·’à¶§à¶´à¶­à·Š කරන්න"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "à¶­à·à¶»à·à¶œà¶­à·Š යතුරු à¶´à·’à¶§à¶´à¶­à·Š කරන්න"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "à¶­à·à¶»à·à¶œà¶­à·Š යතුරු à¶´à·’à¶§à¶´à¶­à·Š කරන්න"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7437,6 +7549,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7949,6 +8065,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8672,38 +8800,46 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "ලුහුබදින්නෙක් එක් කරන්න"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Type"
-msgstr "ලුහුබදින්නෙක් එක් කරන්න"
+msgid "Cancel Item Rename"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8723,6 +8859,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11086,10 +11226,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11366,6 +11502,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12299,63 +12449,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13303,6 +13458,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13509,16 +13674,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13913,10 +14084,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index 330fb36807..09e2d1221d 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -1,6 +1,6 @@
# Slovak translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# J08nY <johnenter@gmail.com>, 2016.
# MineGame 159 <minegame459@gmail.com>, 2018.
@@ -328,6 +328,10 @@ msgid "Duplicate Key(s)"
msgstr "Duplikovanie KľúÄov"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Vymazanie kľúÄa(ov)"
@@ -496,6 +500,11 @@ msgid ""
msgstr "Táto možnosť nefunguje pre Bezier editovanie, lebo je to jeden track."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Scale keys Animácie"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1483,6 +1492,10 @@ msgid "Invalid name."
msgstr "Neplatný Názov."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Platné písmená:"
@@ -1588,7 +1601,9 @@ msgstr "Aktualizovanie scény..."
msgid "[empty]"
msgstr "[Prázdne]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[Neuložené]"
@@ -1609,6 +1624,7 @@ msgstr "Vytvoriť adresár"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Meno:"
@@ -2112,7 +2128,8 @@ msgid "Properties"
msgstr "Vlastnosti"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "Predpísať:"
#: editor/editor_help.cpp
@@ -2252,6 +2269,20 @@ msgstr "Vlastnosť Témy"
msgid "Property:"
msgstr "Vlastnosť:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(hodnota)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2261,6 +2292,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Nastaviť Viac:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Vlastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Vlastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Vlastnosti"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Output:"
@@ -3068,6 +3122,20 @@ msgstr ""
"NavigaÄné mesh-e a polygony budú viditeľné po spustení projektu."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Zosynchronizovať Zmeny Scény"
@@ -4208,6 +4276,11 @@ msgstr "Nájsť v Súboroch"
msgid "Find:"
msgstr "Nájsť:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Nahradiť: "
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "PrieÄinok:"
@@ -4233,6 +4306,11 @@ msgstr "Nájsť..."
msgid "Replace..."
msgstr "Nahradiť..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Nahradiť Všetko"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Nájsť: "
@@ -4242,8 +4320,9 @@ msgid "Replace: "
msgstr "Nahradiť: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Nahradiť všetky (nedá sa vrátiť späť)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Nahradiť Všetko"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4458,6 +4537,12 @@ msgstr ""
"VAROVANIE: Položky ktoré existujú v tomto prostriedku, Sa nemusia naÄitaÅ¥ "
"správne."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Nepodarilo sa naÄítaÅ¥ prostriedok."
@@ -5933,6 +6018,11 @@ msgstr "Alt+Potiahnutie: Pohyb"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Potiahnutie: Pohyb"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "VymazaÅ¥ oznaÄený node alebo prechod."
@@ -5964,6 +6054,10 @@ msgid "Scale Mode"
msgstr "Zmena Veľkosti"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6060,20 +6154,44 @@ msgstr "Zamknúť oznaÄený objekt na mieste (už sa s ním nebude daÅ¥ hýbaÅ¥
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Zamknúť OznaÄené"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Odomknúť oznaÄený objekt (dá sa s ním hýbaÅ¥)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Odomknúť OznaÄené"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Uistite sa že sa nedá oznaÄiÅ¥ dieÅ¥a objektu."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "PridaÅ¥ OznaÄené do Skupiny"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Aby ste oznaÄili dieÅ¥a objektu tak mu musíte obnoviÅ¥ schopnosÅ¥."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "OdskupiÅ¥ OznaÄené"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Nastavenia Kostry"
@@ -7734,6 +7852,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Nahradiť..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8273,6 +8396,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Obnoviť na východzie"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9044,6 +9180,30 @@ msgstr "Súbor:"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Pridať Node"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Profily k dispozícii:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Mesh je prázdny!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Naozaj chcete odstrániť všetky pripojenia z tohto signálu?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Konfigurovať Prichytenie"
@@ -9068,20 +9228,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Pridať Node"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Meno Node-u:"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "NaÄítaÅ¥ predvolené"
@@ -9099,6 +9245,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "Súbor:"
@@ -11563,11 +11713,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Nahradiť: "
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11842,6 +11987,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12817,63 +12976,68 @@ msgstr "Všetky vybrané"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13870,6 +14034,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14084,16 +14258,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14490,10 +14670,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index 402c9008e2..afb725022c 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -1,6 +1,6 @@
# Slovenian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# matevž lapajne <sivar.lapajne@gmail.com>, 2016-2018.
# Matjaž Vitas <matjaz.vitas@gmail.com>, 2017-2018.
@@ -347,6 +347,10 @@ msgid "Duplicate Key(s)"
msgstr "Animacija Podvoji kljuÄe"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "Animacija IzbriÅ¡i kljuÄe"
@@ -528,6 +532,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Spremeni Obseg KljuÄev"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1544,6 +1553,10 @@ msgid "Invalid name."
msgstr "Neveljavno ime."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Veljavni znaki:"
@@ -1655,7 +1668,9 @@ msgstr "Posodabljanje scene..."
msgid "[empty]"
msgstr "[prazno]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[neshranjeno]"
@@ -1677,6 +1692,7 @@ msgstr "Ustvarite Mapo"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Ime:"
@@ -2192,7 +2208,7 @@ msgid "Properties"
msgstr "Lastnosti"
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2352,6 +2368,20 @@ msgstr "Lastnosti"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Novo ime:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2361,6 +2391,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Lastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Lastnosti"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Lastnosti"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Izhod:"
@@ -3177,6 +3230,20 @@ msgstr ""
"poteku igre."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Usklajuj Spremembe Prizora"
@@ -4332,6 +4399,11 @@ msgstr "%d veÄ datotek"
msgid "Find:"
msgstr "Najdi"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Zamenjaj"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4357,6 +4429,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Zamenjaj Vse"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4369,7 +4446,7 @@ msgstr "Zamenjaj"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Zamenjaj Vse"
#: editor/find_in_files.cpp
@@ -4600,6 +4677,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Napaka pri nalaganju vira."
@@ -6161,6 +6244,11 @@ msgstr "Alt+Drag: Premakni"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Drag: Premakni"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Odstrani izbrano sled."
@@ -6193,6 +6281,10 @@ msgid "Scale Mode"
msgstr "NaÄin Obsega (R)"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6303,20 +6395,44 @@ msgstr "Izbrani predmet zakleni na svoje mesto (ni ga mogoÄe premakniti)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Izbira Orodja"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Odkleni izbrani predmet (lahko ga premaknete)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Izbriši Izbrano"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Odstrani izbrano"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Odstrani izbrano"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Posameznik"
@@ -8004,6 +8120,11 @@ msgid "Find in Files..."
msgstr "Filtriraj datoteke..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Filtriraj datoteke..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8545,6 +8666,19 @@ msgid "Toggle Freelook"
msgstr "Preklopi Svobodni Pregled"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Naložite Prevzeto"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Preoblikovanje"
@@ -9329,6 +9463,29 @@ msgstr "ÄŒlani"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "PoiÅ¡Äi tip vozliÅ¡Äa"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Na voljo Nodes:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Model je prazen!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Animacija Preimenuj sled"
@@ -9353,20 +9510,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "PoiÅ¡Äi tip vozliÅ¡Äa"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "PoiÅ¡Äi tip vozliÅ¡Äa"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Naložite Prevzeto"
@@ -9383,6 +9526,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "ÄŒlani"
@@ -11876,11 +12023,6 @@ msgid "Batch Rename"
msgstr "Preimenuj"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Zamenjaj"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -12169,6 +12311,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -13166,63 +13322,68 @@ msgstr "Celotna izbira"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -14234,6 +14395,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14447,16 +14618,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14867,10 +15044,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index 8fcc01ee4c..6669292e99 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -1,6 +1,6 @@
# Albanian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Igli <iglibh@outlook.com>, 2018.
# Enrik Qose <enrikqose@gmail.com>, 2019.
@@ -324,6 +324,10 @@ msgid "Duplicate Key(s)"
msgstr "Dyfisho Key(s)"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Fshi Key(s)"
@@ -488,6 +492,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1481,6 +1489,10 @@ msgid "Invalid name."
msgstr "Emër i palejuar."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Karakteret e lejuar:"
@@ -1592,7 +1604,9 @@ msgstr "Duke përditësuar skenën..."
msgid "[empty]"
msgstr "[bosh]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[e paruajtur]"
@@ -1614,6 +1628,7 @@ msgstr "Krijo një Folder"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Emri:"
@@ -2138,7 +2153,7 @@ msgstr "Vetitë"
#: editor/editor_help.cpp
#, fuzzy
-msgid "override:"
+msgid "overrides %s:"
msgstr "Mbishkruaj"
#: editor/editor_help.cpp
@@ -2286,6 +2301,20 @@ msgstr "Vetitë e Temës"
msgid "Property:"
msgstr "Vetitë:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Vlerë e Re:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2295,6 +2324,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Vendos të Shumëfishta:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Vetitë"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Vetitë"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Vetitë"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Përfundimi:"
@@ -3116,6 +3168,20 @@ msgstr ""
"opsion është i aktivizuar."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Sinkronizo Nryshimet e Skenës"
@@ -4264,6 +4330,11 @@ msgstr "Gjej në Skedarët"
msgid "Find:"
msgstr "Gjej:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Zëvendëso: "
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Folderi:"
@@ -4287,6 +4358,11 @@ msgstr "Gjej..."
msgid "Replace..."
msgstr "Zëvendëso..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Hap Skedarët"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Gjej: "
@@ -4296,7 +4372,8 @@ msgid "Replace: "
msgstr "Zëvendëso: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
msgstr "Zëvendëso të gjitha (pa kthim pas)"
#: editor/find_in_files.cpp
@@ -4528,6 +4605,12 @@ msgstr ""
"Kujdes: Egzistojnë asete që përdorin këtë resurs, ato mund të ndalojnë të "
"ngarkohen si duhet."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Dështoi të ngarkojë resursin."
@@ -5984,6 +6067,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Nyja e zgjedhur nuk është një 'Viewport'!"
@@ -6013,6 +6100,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6108,20 +6199,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Zgjidh"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Zgjidh"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Zgjidh"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Zgjidh"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7755,6 +7870,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Zëvendëso..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8282,6 +8402,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Ngarko të Parazgjedhur"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9042,6 +9175,29 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Vetitë:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Clipboard-i është bosh"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "A jeni i sigurt që doni të hiqni të gjitha lidhjet nga ky sinjal?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr ""
@@ -9065,19 +9221,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Emri i Nyjes:"
-
-#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Show Default"
msgstr "Ngarko të Parazgjedhur"
@@ -9096,6 +9239,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr " Skedarët"
@@ -11501,11 +11648,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Zëvendëso: "
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11786,6 +11928,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12754,63 +12910,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13783,6 +13944,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13991,16 +14162,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14395,10 +14572,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index afd2bbdd52..fb013c20a9 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -1,6 +1,6 @@
# Serbian (cyrillic) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# ÐлекÑандар Урошевић <nicecubedude@gmail.com>, 2017.
@@ -359,6 +359,11 @@ msgstr "Дуплирај кључеве"
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Додај оквир"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid "Delete Key(s)"
msgstr "Уколни кључеве"
@@ -549,6 +554,11 @@ msgstr "Ова операција не ради за Безиер уређива
#: editor/animation_track_editor.cpp
#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Увећај кључеве"
+
+#: editor/animation_track_editor.cpp
+#, fuzzy
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1601,6 +1611,10 @@ msgid "Invalid name."
msgstr "Ðеважеће име."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Важећа Ñлова:"
@@ -1712,7 +1726,9 @@ msgstr "Ðжурирам Ñцену..."
msgid "[empty]"
msgstr "(празно)"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
msgid "[unsaved]"
msgstr "[неÑачувано]"
@@ -1735,6 +1751,7 @@ msgstr "Ðаправи директоријум"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Име:"
@@ -2284,7 +2301,7 @@ msgstr "ОÑобине"
#: editor/editor_help.cpp
#, fuzzy
-msgid "override:"
+msgid "overrides %s:"
msgstr "препиши"
#: editor/editor_help.cpp
@@ -2449,6 +2466,20 @@ msgstr "ОÑобине"
msgid "Property:"
msgstr "ОÑобина:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Ðово име:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
#, fuzzy
@@ -2460,6 +2491,29 @@ msgstr "ПоÑтави %s"
msgid "Set Multiple:"
msgstr "ПоÑтави Више:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "ОÑобине"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "ОÑобине"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Копирај Путању Скрипте"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Излаз:"
@@ -3300,6 +3354,20 @@ msgstr ""
"укључена."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Синхронизуј промене Ñцене"
@@ -4534,6 +4602,11 @@ msgstr "Ðађи плочицу"
msgid "Find:"
msgstr "Ðађи"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Замени"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Folder:"
@@ -4562,6 +4635,11 @@ msgstr "Тражи..."
msgid "Replace..."
msgstr "Замени..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Замени Ñве"
+
#: editor/find_in_files.cpp
#, fuzzy
msgid "Find: "
@@ -4574,7 +4652,7 @@ msgstr "Замени"
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Замени Ñве"
#: editor/find_in_files.cpp
@@ -4814,6 +4892,12 @@ msgstr ""
"УПОЗОРЕЊЕ: ПоÑтоје ÑредÑтва која кориÑте овај реÑурÑ, могу преÑтати да Ñе "
"учитавају правилно."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Грешка при учитавању реÑурÑа."
@@ -6446,6 +6530,11 @@ msgstr "Alt+вучење: померање"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+вучење: померање"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Обриши одабрани чвор или прелаз."
@@ -6478,6 +6567,10 @@ msgid "Scale Mode"
msgstr "Режим Увећања"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6588,20 +6681,44 @@ msgstr "Закључај одабрани објекат на меÑту (нем
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Закључај одабрано"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Откључај одабрани објекат (могуће померање)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Откључај одабрано"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Уверава Ñе да деца објекта не могу бити изабрана."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Групиши Одабрано"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Врати могућноÑÑ‚ бирања деце објекта."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Разгрупиши Одабрано"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Синглетон"
@@ -8413,6 +8530,11 @@ msgid "Find in Files..."
msgstr "Филтрирај датотеке..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Замени..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "КонтекÑтуална помоћ"
@@ -8989,6 +9111,19 @@ msgid "Toggle Freelook"
msgstr "Укљ./ИÑкљ. режим Ñлободног гледања"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Учитај уобичајено"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "ТранÑформација"
@@ -9806,6 +9941,30 @@ msgstr "Увези тему"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Ð’Ñ€Ñта"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "ОÑобине"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Име фајла је празно."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Да ли Ñигурно желиш да отвориш више одједног пројекта?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Измени име анимације"
@@ -9831,21 +9990,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Ð’Ñ€Ñта"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Додај Ñтвар"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Ð’Ñ€Ñта Чвора"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Учитај уобичајено"
@@ -9864,6 +10008,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Додај Ñтвар"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Тема"
@@ -12833,11 +12982,6 @@ msgstr "Преименуј Гомилу"
#: editor/rename_dialog.cpp
#, fuzzy
-msgid "Replace:"
-msgstr "Замени"
-
-#: editor/rename_dialog.cpp
-#, fuzzy
msgid "Prefix:"
msgstr "Предметак"
@@ -13174,6 +13318,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Save New Scene As..."
msgstr "Упамти Ðову Сцену Као..."
@@ -14337,64 +14495,72 @@ msgstr "ИÑпуни одабрано"
msgid "End of inner exception stack trace"
msgstr "Крај Унутрашњег израза потражне наÑлаге"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+#, fuzzy
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"ÐавигационаМрежа реÑÑƒÑ€Ñ Ð¼Ð¾Ñ€Ð° бити поÑтављен или креиран да би овај чвор "
+"радио."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
#, fuzzy
msgid "Bake NavMesh"
msgstr "ИÑпеци ÐавМрежу"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Обриши навигациону мрежу."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Подешавање конфигурације..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Израчунавање величине мреже..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Прављење виÑинÑког поља..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Маркирање проходних троуглова..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "КонÑтруиÑање компактног виÑинÑког поља..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Ерозија проходне површине..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Партиционирање..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Прављење контура..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Прављење полигонÑке мреже..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Конвертовање у природну навигациону мрежу..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "ПоÑтавке генератора навигационе мреже:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Ðнализирање геометрије..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Готово!"
@@ -15506,6 +15672,16 @@ msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
"Многоугао затамљивач за овај затамљивач је празан. Молимо нацртај моногоугао."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
#, fuzzy
msgid ""
@@ -15795,14 +15971,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "ТачкаСветло Ñа углом ширим од 90 Ñтепени не може бацати Ñенке."
-#: scene/3d/navigation_mesh.cpp
-#, fuzzy
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"ÐавигационаМрежа реÑÑƒÑ€Ñ Ð¼Ð¾Ñ€Ð° бити поÑтављен или креиран да би овај чвор "
-"радио."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
#, fuzzy
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
@@ -15811,6 +15984,12 @@ msgstr ""
"ÐавМрежнаИнÑтанца мора бити дете или прадете Ðавигационог чвора. Само "
"обезбећује навигационе податке."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -16291,10 +16470,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
#, fuzzy
msgid "Assignment to function."
msgstr "Додељивање функцији."
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index 1a2f45aec3..9a5bbeb2ec 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -1,6 +1,6 @@
# Serbian (latin) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Milos Ponjavusic <brane@branegames.com>, 2018.
# BLu <blmasfon@gmail.com>, 2018.
@@ -334,6 +334,10 @@ msgid "Duplicate Key(s)"
msgstr "Dupliraj KljuÄeve"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "ObriÅ¡i KljuÄeve"
@@ -505,6 +509,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animacija Skaliraj KljuÄeve"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1466,6 +1475,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1570,7 +1583,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1591,6 +1606,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2067,7 +2083,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2205,6 +2221,20 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Vrednost:"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2214,6 +2244,28 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Obriši Selekciju"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Animacija Uduplaj KljuÄeve"
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2955,6 +3007,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4021,6 +4087,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4044,6 +4114,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4053,7 +4127,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4269,6 +4343,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5723,6 +5803,11 @@ msgstr "IzbriÅ¡i oznaÄeni kljuÄ(eve)"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "IzbriÅ¡i oznaÄeni kljuÄ(eve)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Obriši Selekciju"
@@ -5751,6 +5836,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5845,20 +5934,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Animacija ObriÅ¡i KljuÄeve"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Dupliraj Selektovane KljuÄeve"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Obriši Selekciju"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Obriši Selekciju"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7485,6 +7598,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8004,6 +8121,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8743,39 +8872,47 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "Animacija Dodaj Kanal"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Cancel Item Rename"
-msgstr "Animacija Preimenuj Kanal"
+msgid "Available Node-based types:"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Animacija Dodaj Kanal"
+msgid "Cancel Item Rename"
+msgstr "Animacija Preimenuj Kanal"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8795,6 +8932,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11191,10 +11332,6 @@ msgid "Batch Rename"
msgstr "Animacija Preimenuj Kanal"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11471,6 +11608,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12413,63 +12564,68 @@ msgstr "Sve sekcije"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13419,6 +13575,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13625,16 +13791,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14029,10 +14201,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index f5afd7df7e..b8c190d92a 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -1,6 +1,6 @@
# Swedish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# bergmarklund <davemcgroin@gmail.com>, 2017, 2018.
# Christoffer Sundbom <christoffer_karlsson@live.se>, 2017, 2021.
@@ -341,6 +341,10 @@ msgid "Duplicate Key(s)"
msgstr "Duplicera Nycklar"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Ta bort Nycklar"
@@ -510,6 +514,11 @@ msgstr ""
"spår."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Anim Skala Nycklar"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1496,6 +1505,10 @@ msgid "Invalid name."
msgstr "Ogiltigt namn."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Giltiga tecken:"
@@ -1600,7 +1613,9 @@ msgstr "Uppdaterar scen..."
msgid "[empty]"
msgstr "[tom]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[inte sparad]"
@@ -1621,6 +1636,7 @@ msgstr "Skapa Mapp"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Namn:"
@@ -2130,7 +2146,8 @@ msgid "Properties"
msgstr "Egenskaper"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "skriv över:"
#: editor/editor_help.cpp
@@ -2289,6 +2306,20 @@ msgstr "Egenskaper"
msgid "Property:"
msgstr "Egenskap:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "Värde"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2298,6 +2329,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr "Sätt Flera:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Egenskaper"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Egenskaper"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopiera Sökvägen"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Output:"
@@ -3112,6 +3166,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "Synkronisera scenändringar"
@@ -4242,6 +4310,11 @@ msgstr "%d fler filer"
msgid "Find:"
msgstr "Hitta:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "Ersätt:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Mapp:"
@@ -4267,6 +4340,11 @@ msgstr "Hitta..."
msgid "Replace..."
msgstr "Ersätt..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Ersätt Alla"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Hitta: "
@@ -4277,7 +4355,7 @@ msgstr "Ersätt: "
#: editor/find_in_files.cpp
#, fuzzy
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr "Ersätt Alla"
#: editor/find_in_files.cpp
@@ -4510,6 +4588,12 @@ msgstr ""
"VARNING: Det finns tillgångar som använder den här resursen, de kan sluta "
"laddas in korrekt."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Misslyckades att ladda resurs."
@@ -6006,6 +6090,11 @@ msgstr "Ta bort vald Rect."
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Ta bort vald Rect."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Ta bort valt spår."
@@ -6035,6 +6124,10 @@ msgid "Scale Mode"
msgstr "Växla Läge"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6132,20 +6225,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Välj"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Ta bort Nod(er)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Ser till att objektets barn inte är valbara."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Ta bort Urval"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Återställer objektets barns egenskap att väljas."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Ta bort Urval"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "Singleton"
@@ -7825,6 +7942,11 @@ msgid "Find in Files..."
msgstr "Filtrera Filer..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Ersätt..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8368,6 +8490,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Ladda Standard"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Transformera"
@@ -9143,6 +9278,30 @@ msgstr "Importera Tema"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Typ"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Tillgängliga Profiler:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Filnamn är tom."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Är du säker att du vill ta bort alla kopplingar från denna signal?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Anim Byt Namn På Spår"
@@ -9168,20 +9327,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Typ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Nod typ"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Ladda Standard"
@@ -9198,6 +9343,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -11654,11 +11803,6 @@ msgid "Batch Rename"
msgstr "Byt namn"
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "Ersätt:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11940,6 +12084,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Save New Scene As..."
msgstr "Spara Ny Scen Som..."
@@ -12918,63 +13076,68 @@ msgstr "Alla urval"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Partitionerar..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Skapar konturer..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Klar!"
@@ -13952,6 +14115,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14176,16 +14349,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14588,10 +14767,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index 5bd7dfcbf0..b7c8cf73e3 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -1,6 +1,6 @@
# Tamil translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Senthil Kumar K <logickumar@gmail.com>, 2017.
@@ -336,6 +336,10 @@ msgid "Duplicate Key(s)"
msgstr "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•ளà¯"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -504,6 +508,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1461,6 +1469,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1565,7 +1577,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1586,6 +1600,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2060,7 +2075,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2196,6 +2211,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2205,6 +2233,28 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•ளà¯"
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2945,6 +2995,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4008,6 +4072,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4031,6 +4099,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4040,7 +4112,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4256,6 +4328,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5697,6 +5775,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5725,6 +5808,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5819,20 +5906,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•ளà¯"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7439,6 +7550,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7951,6 +8066,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8677,39 +8804,47 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+#, fuzzy
+msgid "Add Type"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதை சேரà¯"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Cancel Item Rename"
-msgstr "அசைவூடà¯à®Ÿà¯ பாதைகà¯à®•௠மறà¯à®ªà¯†à®¯à®°à¯ இடà¯"
+msgid "Available Node-based types:"
+msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "அசைவூடà¯à®Ÿà¯ பாதை சேரà¯"
+msgid "Cancel Item Rename"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதைகà¯à®•௠மறà¯à®ªà¯†à®¯à®°à¯ இடà¯"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8729,6 +8864,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -11092,10 +11231,6 @@ msgid "Batch Rename"
msgstr "அசைவூடà¯à®Ÿà¯ பாதைகà¯à®•௠மறà¯à®ªà¯†à®¯à®°à¯ இடà¯"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11372,6 +11507,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12310,63 +12459,68 @@ msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13309,6 +13463,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13515,16 +13679,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13919,10 +14089,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/te.po b/editor/translations/te.po
index 75ed723328..448aa534eb 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -1,21 +1,22 @@
# Telugu translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# suresh p <suresh9247@gmail.com>, 2019, 2020.
+# Jagadeesh Vijay Varma <jagadeeshvarma.b@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2020-09-15 07:17+0000\n"
-"Last-Translator: suresh p <suresh9247@gmail.com>\n"
+"PO-Revision-Date: 2021-12-26 17:18+0000\n"
+"Last-Translator: Jagadeesh Vijay Varma <jagadeeshvarma.b@gmail.com>\n"
"Language-Team: Telugu <https://hosted.weblate.org/projects/godot-engine/"
"godot/te/>\n"
"Language: te\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 4.3-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -39,9 +40,8 @@ msgid "Invalid input %i (not passed) in expression"
msgstr "à°µà±à°¯à°•à±à°¤à±€à°•రణలో చెలà±à°²à°¨à°¿ ఇనà±à°ªà±à°Ÿà± %i (ఆమోదించబడలేదà±)"
#: core/math/expression.cpp
-#, fuzzy
msgid "self can't be used because instance is null (not passed)"
-msgstr "తనకౠతానà±à°—à°¾(self) ఉపయోగించà±à°•ోలేదౠఎందà±à°•ంటే instance à°’à°• శూనà±à°¯à°‚ (ఆమోదించబడలేదౠ)"
+msgstr "à°¸à±à°µà°¯à°‚ ఉపయోగించబడదౠఎందà±à°•ంటే ఉదాహరణ శూనà±à°¯à°‚ (ఉతà±à°¤à±€à°°à±à°£à°¤ లేదà±)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
@@ -320,6 +320,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -482,6 +486,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -899,7 +907,7 @@ msgstr ""
#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
msgid "Signals"
-msgstr ""
+msgstr "సంకేతాలà±"
#: editor/connections_dialog.cpp
msgid "Filter signals"
@@ -1434,6 +1442,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1538,7 +1550,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1559,6 +1573,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -1797,7 +1812,7 @@ msgstr ""
#: editor/editor_feature_profile.cpp editor/editor_node.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
msgid "Import"
-msgstr ""
+msgstr "దిగà±à°®à°¤à°¿"
#: editor/editor_feature_profile.cpp editor/project_export.cpp
msgid "Export"
@@ -2030,7 +2045,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2039,7 +2054,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Methods"
-msgstr ""
+msgstr "పదà±à°§à°¤à±à°²à±"
#: editor/editor_help.cpp
msgid "Theme Properties"
@@ -2051,7 +2066,7 @@ msgstr ""
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constants"
-msgstr ""
+msgstr "à°¸à±à°¥à°¿à°°à°¾à°‚కాలà±"
#: editor/editor_help.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Fonts"
@@ -2067,7 +2082,7 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Enumerations"
-msgstr ""
+msgstr "గణనలà±"
#: editor/editor_help.cpp
msgid "Property Descriptions"
@@ -2166,6 +2181,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2175,6 +2203,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2221,7 +2269,7 @@ msgstr ""
#: editor/editor_network_profiler.cpp editor/editor_node.cpp
msgid "Node"
-msgstr ""
+msgstr "నోడà±"
#: editor/editor_network_profiler.cpp
msgid "Incoming RPC"
@@ -2913,6 +2961,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3971,6 +4033,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3994,6 +4060,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4003,7 +4073,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4217,6 +4287,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5638,6 +5714,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5666,6 +5746,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5760,20 +5844,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -6064,7 +6168,7 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat 1"
-msgstr ""
+msgstr "à°«à±à°²à°¾à°Ÿà± 1"
#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp
msgid "Ease In"
@@ -7373,6 +7477,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7885,6 +7993,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8596,37 +8716,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8646,6 +8774,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10987,10 +11119,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11263,6 +11391,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12192,63 +12334,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13182,6 +13329,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13388,16 +13545,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13792,10 +13955,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/th.po b/editor/translations/th.po
index e1c5f6053d..acb8f8cbf3 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -1,6 +1,6 @@
# Thai translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Kaveeta Vivatchai <goodytong@gmail.com>, 2017.
# Poommetee Ketson (Noshyaar) <poommetee@protonmail.com>, 2017-2018.
@@ -335,6 +335,11 @@ msgid "Duplicate Key(s)"
msgstr "สร้างคีย์ซ้ำอีà¸à¸­à¸±à¸™"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "เพิ่ม %d เฟรม(วินาที)"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "ลบคีย์"
@@ -502,6 +507,11 @@ msgid ""
msgstr "ตัวเลือà¸à¸™à¸µà¹‰à¹„ม่สามารถทำงานà¸à¸±à¸šà¹à¸—ร็à¸à¹€à¸šà¸‹à¸´à¹€à¸¢à¸£à¹Œ เนื่องจาà¸à¹€à¸›à¹‡à¸™à¹à¸„่à¹à¸—ร็à¸à¹€à¸”ี่ยว"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "ปรับคีย์à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1485,6 +1495,10 @@ msgid "Invalid name."
msgstr "ชื่อผิดพลาด"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "ตัวอัà¸à¸©à¸£à¸—ี่ใช้ได้:"
@@ -1591,7 +1605,9 @@ msgstr "อัพเดทฉาà¸..."
msgid "[empty]"
msgstr "[ว่างเปล่า]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[ไฟล์ใหม่]"
@@ -1612,6 +1628,7 @@ msgstr "สร้างโฟลเดอร์"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "ชื่อ:"
@@ -2107,7 +2124,8 @@ msgid "Properties"
msgstr "คุณสมบัติ"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "à¹à¸—นที่:"
#: editor/editor_help.cpp
@@ -2247,6 +2265,20 @@ msgstr "คุณสมบัติธีม"
msgid "Property:"
msgstr "คุณสมบัติ:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(ค่า)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2256,6 +2288,29 @@ msgstr "ตั้ง %s"
msgid "Set Multiple:"
msgstr "à¸à¸³à¸«à¸™à¸” หลายอย่าง:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "คุณสมบัติ"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "คุณสมบัติ"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "คัดลอà¸à¸•ำà¹à¸«à¸™à¹ˆà¸‡à¸ªà¸„ริปต์"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "เอาท์พุต:"
@@ -3042,6 +3097,20 @@ msgid ""
msgstr "เมื่อตัวเลือà¸à¸™à¸µà¹‰à¹€à¸›à¸´à¸”ใช้งาน ตัวนำทาง mesh à¹à¸¥à¸°à¹‚พลีà¸à¸­à¸™à¸ˆà¸°à¸–ูà¸à¸¡à¸­à¸‡à¹€à¸«à¹‡à¸™à¹ƒà¸™à¹‚ปรเจà¸à¸•์ที่ทำงานอยู่"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "ซิงค์à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‰à¸²à¸"
@@ -4171,6 +4240,10 @@ msgstr "ค้นหาในไฟล์"
msgid "Find:"
msgstr "ค้นหา:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "à¹à¸—นที่:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "โฟลเดอร์:"
@@ -4195,6 +4268,11 @@ msgstr "ค้นหา..."
msgid "Replace..."
msgstr "à¹à¸—นที่..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "à¹à¸—นที่ทั้งหมด"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "ค้นหา: "
@@ -4204,8 +4282,9 @@ msgid "Replace: "
msgstr "à¹à¸—นที่: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "à¹à¸—นที่ทั้งหมด(à¹à¸à¹‰à¹„ขไม่ได้)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "à¹à¸—นที่ทั้งหมด"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4418,6 +4497,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr "คำเตือน: มีเนื้อหาที่ใช้ทรัพยาà¸à¸£à¸™à¸µà¹‰à¸­à¸¢à¸¹à¹ˆ ซึ่งอาจทำให้à¸à¸²à¸£à¹‚หลดเà¸à¸´à¸”à¸à¸²à¸£à¸«à¸¢à¸¸à¸”ขึ้น"
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "โหลดทรัพยาà¸à¸£à¹„ม่ได้"
@@ -5869,6 +5954,11 @@ msgstr "Alt+ลาà¸: ย้าย"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+ลาà¸: ย้าย"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "ลบโหนดหรือทรานสิชันที่เลือà¸"
@@ -5897,6 +5987,10 @@ msgid "Scale Mode"
msgstr "โหมดปรับขนาด"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5993,20 +6087,44 @@ msgstr "ล็อคไม่ให้ออบเจà¸à¸•์ที่เลื
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "ล็อà¸à¸—ี่เลือà¸"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "ปลดล็อคออบเจà¸à¸•์ที่เลือà¸"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "ปลดล็อคที่เลือà¸"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "โหนดลูà¸à¸‚องออบเจà¸à¸•์ไม่สามารถถูà¸à¹€à¸¥à¸·à¸­à¸"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "จัดà¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่เลือà¸"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "คืนค่าความสามารถในà¸à¸²à¸£à¸–ูà¸à¹€à¸¥à¸·à¸­à¸à¸à¸±à¸šà¹‚หนดลูà¸à¸‚องออบเจà¸à¸•์"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "เลิà¸à¸ˆà¸±à¸”à¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่เลือà¸"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "ตั้งค่าโครง"
@@ -7652,6 +7770,11 @@ msgid "Find in Files..."
msgstr "ค้นหาในไฟล์..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "à¹à¸—นที่..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "ค้นหาคำที่เลือà¸à¹ƒà¸™à¸„ู่มือ"
@@ -8202,6 +8325,19 @@ msgid "Toggle Freelook"
msgstr "เปิด/ปิดมุมมองอิสระ"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "รีเซ็ตเป็นค่าเริ่มต้น"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "à¸à¸²à¸£à¹à¸›à¸¥à¸‡"
@@ -8973,6 +9109,30 @@ msgstr "นำเข้าธีม"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "ชนิด"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "โปรไฟล์ที่มีให้ใช้:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "ชื่อไฟล์ว่างเปล่า"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "ยืนยันà¸à¸²à¸£à¹€à¸›à¸´à¸”โปรเจà¸à¸•์มาà¸à¸à¸§à¹ˆà¸² 1 โปรเจà¸à¸•์?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "เปลี่ยนชื่อà¹à¸—ร็à¸à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
@@ -8998,21 +9158,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "ชนิด"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "เพิ่มไอเทม"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "ชนิดโหนด"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "โหลดค่าเริ่มต้น"
@@ -9031,6 +9176,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "เพิ่มไอเทม"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "ธีม"
@@ -11499,10 +11649,6 @@ msgid "Batch Rename"
msgstr "เปลี่ยนชื่อหลายรายà¸à¸²à¸£"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "à¹à¸—นที่:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "คำนำหน้า:"
@@ -11781,6 +11927,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "บันทึà¸à¸‰à¸²à¸à¹ƒà¸«à¸¡à¹ˆà¹€à¸›à¹‡à¸™..."
@@ -12737,63 +12897,68 @@ msgstr "เติมส่วนที่เลือà¸"
msgid "End of inner exception stack trace"
msgstr "สิ้นสุดสà¹à¸•คข้อผิดพลาดภายใน"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "ต้องมี NavigationMesh เพื่อให้โหนดนี้ทำงานได้"
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Bake NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "ล้าง Mesh นำทาง"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ˆà¸±à¸”à¸à¸²à¸£à¹‚ครงร่าง..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„ำนวณขนาดà¸à¸£à¸´à¸”..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ªà¸£à¹‰à¸²à¸‡à¸ªà¸™à¸²à¸¡à¸„วามสูง..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸à¸³à¸«à¸™à¸”พื้นผิวที่เดินผ่านได้..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸µà¸šà¸­à¸±à¸”สนามความสูง..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "บีบà¹à¸„บส่วนที่เดินผ่านได้..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¹à¸šà¹ˆà¸‡à¸ªà¹ˆà¸§à¸™..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ªà¸£à¹‰à¸²à¸‡à¸„อนทัวร์..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ªà¸£à¹‰à¸²à¸‡ Polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¹à¸›à¸¥à¸‡à¸à¸¥à¸±à¸šà¹€à¸›à¹‡à¸™ Mesh นำทาง..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "à¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸žà¸·à¹‰à¸™à¸œà¸´à¸§à¸™à¸³à¸—าง:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "วิเคราะห์พื้นผิว..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "เสร็จสิ้น!"
@@ -13786,6 +13951,16 @@ msgstr "ต้องมีรูปหลายเหลี่ยมเพื่
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "รูปหลายเหลี่ยมของตัวบังà¹à¸ªà¸‡à¸™à¸µà¹‰à¸§à¹ˆà¸²à¸‡à¹€à¸›à¸¥à¹ˆà¸² à¸à¸£à¸¸à¸“าวาดโพลีà¸à¸­à¸™"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14015,11 +14190,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight ที่มีมุมมาà¸à¸à¸§à¹ˆà¸² 90 ไม่สามารถสร้างเงา"
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "ต้องมี NavigationMesh เพื่อให้โหนดนี้ทำงานได้"
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14027,6 +14202,12 @@ msgstr ""
"NavigationMeshInstance ต้องเป็นโหนดลูà¸/หลานของโหนด Navigation "
"โดยจะให้ข้อมูลà¸à¸²à¸£à¸™à¸³à¸—างเท่านั้น"
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14456,10 +14637,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "à¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ให้à¸à¸±à¸šà¸Ÿà¸±à¸‡à¸à¹Œà¸Šà¸±à¸™"
diff --git a/editor/translations/tl.po b/editor/translations/tl.po
index 4a73228fb1..3e48f9d911 100644
--- a/editor/translations/tl.po
+++ b/editor/translations/tl.po
@@ -1,14 +1,14 @@
# Tagalog translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
-# Napstaguy04 <brokenscreen3@gmail.com>, 2021.
+# Napstaguy04 <brokenscreen3@gmail.com>, 2021, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2021-12-09 23:13+0000\n"
+"PO-Revision-Date: 2022-01-07 11:42+0000\n"
"Last-Translator: Napstaguy04 <brokenscreen3@gmail.com>\n"
"Language-Team: Tagalog <https://hosted.weblate.org/projects/godot-engine/"
"godot/tl/>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 "
"|| n % 10 == 6 || n % 10 == 9);\n"
-"X-Generator: Weblate 4.10-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -38,7 +38,7 @@ msgstr "Kulang na bytes para sa decoding bytes, o di-wastong format."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "Di-wastong input %i (di naipasa) sa expression"
+msgstr "Di-wastong input %i (di naipasa) sa ekspresyon"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
@@ -324,6 +324,10 @@ msgid "Duplicate Key(s)"
msgstr "Doblehin ang (mga) Key"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Tanggalin Ang (mga) Key"
@@ -495,6 +499,11 @@ msgstr ""
"ito."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Mga Key ng Anim Scale"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1471,6 +1480,10 @@ msgid "Invalid name."
msgstr "Di-wastong pangalan."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Mga Pinapayagang Karakter:"
@@ -1576,7 +1589,9 @@ msgstr ""
msgid "[empty]"
msgstr "[wala]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[di-nakasave]"
@@ -1597,6 +1612,7 @@ msgstr "Gumawa ng Folder"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Pangalan:"
@@ -2069,7 +2085,8 @@ msgid "Properties"
msgstr "Mga Katangian"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "ipagpalit:"
#: editor/editor_help.cpp
@@ -2209,6 +2226,20 @@ msgstr "Katangian ng Tema"
msgid "Property:"
msgstr "Katangian:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(halaga)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2216,8 +2247,31 @@ msgstr "Itakda ang %s"
#: editor/editor_inspector.cpp
msgid "Set Multiple:"
+msgstr "Magtakda ng Marami:"
+
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
msgstr ""
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Katangian"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Katangian"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Kopyahin ang Kinaroroonan"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Kalabasan:"
@@ -2608,15 +2662,17 @@ msgstr "Buksan ang Talaan ng mga Proyekto?"
#: editor/editor_node.cpp
msgid "Save & Quit"
-msgstr ""
+msgstr "I-save at Umalis"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr ""
+msgstr "I-save ang (mga sumusunod na) binagong eksena bago umalis?"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before opening Project Manager?"
msgstr ""
+"I-save ang (mga sumusunod na) binagong eksena bago buksan ang Tagapangasiwa "
+"ng Proyekto?"
#: editor/editor_node.cpp
msgid ""
@@ -2726,7 +2782,7 @@ msgstr "Karaniwan"
#: editor/editor_node.cpp editor/editor_resource_picker.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
msgid "Show in FileSystem"
-msgstr ""
+msgstr "Ipakita sa FileSystem"
#: editor/editor_node.cpp
msgid "Play This Scene"
@@ -2885,7 +2941,7 @@ msgstr "Magluwas..."
#: editor/editor_node.cpp
msgid "Install Android Build Template..."
-msgstr ""
+msgstr "Ikabit ang Android Build Template..."
#: editor/editor_node.cpp
msgid "Open Project Data Folder"
@@ -2961,6 +3017,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -2990,7 +3060,7 @@ msgstr "Editor"
#: editor/editor_node.cpp
msgid "Editor Settings..."
-msgstr ""
+msgstr "Kaayusan ng Editor..."
#: editor/editor_node.cpp
msgid "Editor Layout"
@@ -3003,6 +3073,7 @@ msgstr "Kumuha ng Screenshot"
#: editor/editor_node.cpp
msgid "Screenshots are stored in the Editor Data/Settings Folder."
msgstr ""
+"Nakaimpok lahat ng mga screenshot sa Folder ng Data/Kaayusan ng Editor."
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
@@ -3030,7 +3101,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Manage Export Templates..."
-msgstr ""
+msgstr "Pangasiwaan ang mga Export Template..."
#: editor/editor_node.cpp editor/plugins/shader_editor_plugin.cpp
msgid "Help"
@@ -3066,7 +3137,7 @@ msgstr "Tungkol sa Godot"
#: editor/editor_node.cpp
msgid "Support Godot Development"
-msgstr "Suportahan ang Development ng Godot"
+msgstr "Suportahan ang Paglalago ng Godot"
#: editor/editor_node.cpp
msgid "Play the project."
@@ -3127,11 +3198,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "FileSystem"
-msgstr ""
+msgstr "FileSystem"
#: editor/editor_node.cpp
msgid "Inspector"
-msgstr "Taga-siyasat"
+msgstr "Tagasuri"
#: editor/editor_node.cpp
msgid "Expand Bottom Panel"
@@ -3943,7 +4014,7 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Sort by Last Modified"
-msgstr ""
+msgstr "Ayusin ayon sa Huling Binago"
#: editor/filesystem_dock.cpp
msgid "Sort by First Modified"
@@ -4018,6 +4089,10 @@ msgstr "Hanapin sa mga file"
msgid "Find:"
msgstr "Hanapin:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4041,6 +4116,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Palitan Lahat"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4050,8 +4130,9 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr ""
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Palitan Lahat"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4264,6 +4345,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5690,6 +5777,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Drag: Maglipat ng napiling node."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Drag: Maglipat ng napiling node."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Itakda ang posisyon ng pivot sa node."
@@ -5718,6 +5810,10 @@ msgid "Scale Mode"
msgstr "Paraan ng Pagpapalaki"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5814,20 +5910,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Doblehin ang (mga) Napiling Key"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Doblehin ang (mga) Napiling Key"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Ipangkat Ang Napili"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Ibuwag Ang Pangkat ng Napili"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Pagsasaayos ng Kalansay"
@@ -6884,11 +7004,11 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
-msgstr ""
+msgstr "Linisin ang UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Settings"
-msgstr ""
+msgstr "Kaayusan ng Grid"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Snap"
@@ -6940,7 +7060,7 @@ msgstr ""
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Rename Resource"
-msgstr ""
+msgstr "Baguhin ang Pangalan ng Resource"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -6958,19 +7078,19 @@ msgstr ""
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_editor.cpp
msgid "Instance:"
-msgstr ""
+msgstr "Instance:"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Type:"
-msgstr ""
+msgstr "Uri:"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
msgid "Open in Editor"
-msgstr ""
+msgstr "Buksan sa Editor"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Load Resource"
@@ -7030,15 +7150,15 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving file!"
-msgstr ""
+msgstr "Nabigong maimpok ang file!"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme."
-msgstr ""
+msgstr "Nabigong maimpok ang tema."
#: editor/plugins/script_editor_plugin.cpp
msgid "Error Saving"
-msgstr ""
+msgstr "Nabigo ang Pagiimpok"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing theme."
@@ -7079,7 +7199,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr ""
+msgstr "Iangkat ang Tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
@@ -7117,11 +7237,11 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Filter methods"
-msgstr ""
+msgstr "Salain ang mga method"
#: editor/plugins/script_editor_plugin.cpp
msgid "Sort"
-msgstr ""
+msgstr "Pagkakaayos"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
@@ -7178,31 +7298,31 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme"
-msgstr ""
+msgstr "Tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme..."
-msgstr ""
+msgstr "Magangkat ng Tema..."
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
-msgstr ""
+msgstr "Sariwain ang Tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme"
-msgstr ""
+msgstr "Iimpok ang Tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close All"
-msgstr ""
+msgstr "Isara lahat"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close Docs"
-msgstr ""
+msgstr "Isara ang Dokumentasyon"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
msgid "Run"
-msgstr ""
+msgstr "Patakbuhin"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -7210,7 +7330,7 @@ msgstr ""
#: editor/plugins/visual_shader_editor_plugin.cpp
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Search"
-msgstr ""
+msgstr "Maghanap"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Into"
@@ -7240,7 +7360,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/shader_editor_plugin.cpp
msgid "Online Docs"
-msgstr ""
+msgstr "Dokumentasyong Online"
#: editor/plugins/script_editor_plugin.cpp
msgid "Open Godot online documentation."
@@ -7290,7 +7410,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Target"
-msgstr ""
+msgstr "Pinagtututukan"
#: editor/plugins/script_text_editor.cpp
msgid ""
@@ -7324,7 +7444,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
-msgstr ""
+msgstr "Pumili ng Kulay"
#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp
msgid "Convert Case"
@@ -7427,6 +7547,11 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Magsala ng mga File..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7531,19 +7656,19 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top Orthogonal"
-msgstr ""
+msgstr "Taas Ortogonal"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top Perspective"
-msgstr ""
+msgstr "Perspektibong Taas"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom Orthogonal"
-msgstr ""
+msgstr "Babang Ortogonal"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom Perspective"
-msgstr ""
+msgstr "Perspektibong Baba"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left Orthogonal"
@@ -7580,12 +7705,12 @@ msgstr ""
#. TRANSLATORS: This will be appended to the view name when Auto Orthogonal is enabled.
#: editor/plugins/spatial_editor_plugin.cpp
msgid " [auto]"
-msgstr ""
+msgstr " [kusa]"
#. TRANSLATORS: This will be appended to the view name when Portal Occulusion is enabled.
#: editor/plugins/spatial_editor_plugin.cpp
msgid " [portals active]"
-msgstr ""
+msgstr " [mga aktibong portal]"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
@@ -7939,6 +8064,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Ibalik sa Dati"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -7953,39 +8091,39 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "1 Viewport"
-msgstr ""
+msgstr "1 Tinginan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports"
-msgstr ""
+msgstr "2 Tinginan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr ""
+msgstr "2 Tinginan (Alt)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
-msgstr ""
+msgstr "3 Tinginan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr ""
+msgstr "3 Tinginan (Alt)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr ""
+msgstr "4 na Tinginan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Gizmos"
-msgstr ""
+msgstr "Mga Gizmo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
-msgstr ""
+msgstr "Tingnan ang Pinagmulan"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Grid"
-msgstr ""
+msgstr "Tignan ang Grid"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Portal Culling"
@@ -7998,7 +8136,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings..."
-msgstr ""
+msgstr "Kaayusan..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
@@ -8042,11 +8180,11 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate (deg.):"
-msgstr ""
+msgstr "Ikot (deg.):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale (ratio):"
-msgstr ""
+msgstr "Laki (rasyo):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Type"
@@ -8098,7 +8236,7 @@ msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
-msgstr ""
+msgstr "Walang laman ang Sprite!"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Can't convert a sprite using animation frames to mesh."
@@ -8118,11 +8256,11 @@ msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Polygon2D"
-msgstr ""
+msgstr "Ipalit sa Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create collision polygon."
-msgstr ""
+msgstr "Di-wastong geometry, hindi makagawa ng collision polygon."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create CollisionPolygon2D Sibling"
@@ -8138,7 +8276,7 @@ msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite"
-msgstr ""
+msgstr "Sprite"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Simplification: "
@@ -8146,19 +8284,19 @@ msgstr ""
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Shrink (Pixels): "
-msgstr ""
+msgstr "Palitiin (Pa-pixel): "
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Grow (Pixels): "
-msgstr ""
+msgstr "Palakihin (pa-Pixel): "
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Update Preview"
-msgstr ""
+msgstr "Sariwain ang Preview"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Settings:"
-msgstr ""
+msgstr "Kaayusan:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "No Frames Selected"
@@ -8190,7 +8328,7 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Empty"
-msgstr ""
+msgstr "Magdagdag ng Puwang"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
@@ -8198,7 +8336,7 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "(empty)"
-msgstr ""
+msgstr "(puwang)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Move Frame"
@@ -8214,11 +8352,11 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Speed:"
-msgstr ""
+msgstr "Bilis:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
-msgstr ""
+msgstr "Ipaulit-ulit"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animation Frames:"
@@ -8282,23 +8420,23 @@ msgstr ""
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
-msgstr ""
+msgstr "Paraan ng Paguurong:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Pixel Snap"
-msgstr ""
+msgstr "Paguurong na Pa-pixel"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Snap"
-msgstr ""
+msgstr "Paguurong na Pa-grid"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
-msgstr ""
+msgstr "Kusang Paghahati"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Offset:"
-msgstr ""
+msgstr "Usog:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Step:"
@@ -8322,7 +8460,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "No colors found."
-msgstr ""
+msgstr "Walang kulay na nahanap."
#: editor/plugins/theme_editor_plugin.cpp
msgid "{num} constant(s)"
@@ -8374,11 +8512,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Updating the editor"
-msgstr ""
+msgstr "Sinasariwa ang editor"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Finalizing"
-msgstr ""
+msgstr "Tinatapos ang pagsasariwa"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Filter:"
@@ -8507,7 +8645,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Color Items"
-msgstr ""
+msgstr "Alisin Lahat ng Color Items"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Rename Item"
@@ -8545,7 +8683,7 @@ msgstr "Magdagdag ng Constant Item"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Font Item"
-msgstr ""
+msgstr "Magdagdag ng Font Item"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Icon Item"
@@ -8593,7 +8731,7 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Types:"
-msgstr ""
+msgstr "Mga Uri:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Type:"
@@ -8652,6 +8790,29 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Magdagdag ng Uri"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Magagamit na mga Profile:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Walang laman ang Sprite!"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Gusto mo bang alisin lahat ng pagkakabit sa hudyat na ito?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr ""
@@ -8674,18 +8835,6 @@ msgid ""
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Magdagdag ng Uri"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Ipakita ang Karaniwan"
@@ -8702,8 +8851,12 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Magdagdag ng Bagong Uri ng Item"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
-msgstr ""
+msgstr "Tema:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Manage Items..."
@@ -10574,7 +10727,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Last Modified"
-msgstr ""
+msgstr "Huling Binago"
#: editor/project_manager.cpp
msgid "Edit Project"
@@ -11042,10 +11195,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11318,6 +11467,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -11413,7 +11576,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Editable Children"
-msgstr ""
+msgstr "Mababagong mga Anak"
#: editor/scene_tree_dock.cpp
msgid "Load As Placeholder"
@@ -11539,7 +11702,7 @@ msgstr ""
#: editor/scene_tree_editor.cpp
msgid "Open Script:"
-msgstr ""
+msgstr "Buksan ang Skrip:"
#: editor/scene_tree_editor.cpp
msgid ""
@@ -11552,6 +11715,8 @@ msgid ""
"Children are not selectable.\n"
"Click to make selectable."
msgstr ""
+"Hindi maaring piliin ang mga anak na ito.\n"
+"Pindutin upang gawing pilian."
#: editor/scene_tree_editor.cpp
msgid "Toggle Visibility"
@@ -12021,15 +12186,15 @@ msgstr ""
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
-msgstr ""
+msgstr "Sangunianan"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
-msgstr ""
+msgstr "Mga Sanggunianan: "
#: modules/gdnative/register_types.cpp
msgid "GDNative"
-msgstr ""
+msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
msgid "Step argument is zero!"
@@ -12141,15 +12306,15 @@ msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit X Axis"
-msgstr ""
+msgstr "Ayusin ang X Axis"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Y Axis"
-msgstr ""
+msgstr "Ayusin ang Y Axis"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Z Axis"
-msgstr ""
+msgstr "Ayusin ang Z Axis"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate X"
@@ -12181,7 +12346,7 @@ msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Paste Selects"
-msgstr ""
+msgstr "I-pasta Lahat ng Pinili"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clear Selection"
@@ -12193,7 +12358,7 @@ msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Settings"
-msgstr ""
+msgstr "Kaayusan ng GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Pick Distance:"
@@ -12247,65 +12412,70 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
-msgstr ""
+msgstr "Gumagawa ng polymesh..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
-msgstr ""
+msgstr "Sinisiyasat ang Geometry..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
-msgstr ""
+msgstr "Tapos na!"
#: modules/visual_script/visual_script.cpp
msgid ""
@@ -12427,7 +12597,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
-msgstr ""
+msgstr "Magdagdag ng Variable"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Signal"
@@ -12483,7 +12653,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s)"
-msgstr ""
+msgstr "Magdagdag ng (mga) Node"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -12505,7 +12675,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Base Type"
-msgstr ""
+msgstr "Ibahin ang Punong-Uri"
#: modules/visual_script/visual_script_editor.cpp
msgid "Move Node(s)"
@@ -12549,7 +12719,7 @@ msgstr "Hindi makopya ang punsyon ng node."
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste VisualScript Nodes"
-msgstr ""
+msgstr "I-pasta ang mga node ng VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function with a function node."
@@ -12569,15 +12739,15 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Create Function"
-msgstr ""
+msgstr "Gumawa ng Punsyon"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
-msgstr ""
+msgstr "Alisin ang Punsyon"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
-msgstr ""
+msgstr "Alisin ang Variable"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Variable:"
@@ -12609,7 +12779,7 @@ msgstr "Magdagdag ng mga Node..."
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function..."
-msgstr ""
+msgstr "Magdagdag ng punsyon..."
#: modules/visual_script/visual_script_editor.cpp
msgid "function_name"
@@ -12673,7 +12843,7 @@ msgstr ""
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr ""
+msgstr "Di-wastong index ng pangalan ng katangian na '%s' sa node %s."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
@@ -12711,7 +12881,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Package name is missing."
-msgstr ""
+msgstr "Nawawala ang pangalan ng pakete."
#: platform/android/export/export_plugin.cpp
msgid "Package segments must be of non-zero length."
@@ -12829,7 +12999,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Invalid package name:"
-msgstr ""
+msgstr "Di-wastong pangalan para sa pakete:"
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -12892,7 +13062,7 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "'apksigner' returned with error #%d"
-msgstr ""
+msgstr "nagbalik ng may pagkakabigong #%d ang 'apksigner'"
#: platform/android/export/export_plugin.cpp
msgid "Verifying %s..."
@@ -12904,11 +13074,13 @@ msgstr ""
#: platform/android/export/export_plugin.cpp
msgid "Exporting for Android"
-msgstr ""
+msgstr "Niluluwas para sa Android"
#: platform/android/export/export_plugin.cpp
msgid "Invalid filename! Android App Bundle requires the *.aab extension."
msgstr ""
+"Di-wastong pangalan ng file! Kinikailangan ng Android App Bundle ang *.aab "
+"extension."
#: platform/android/export/export_plugin.cpp
msgid "APK Expansion not compatible with Android App Bundle."
@@ -13237,6 +13409,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13443,16 +13625,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13587,6 +13775,8 @@ msgstr ""
#: scene/3d/room_manager.cpp
msgid "Misnamed nodes detected, check output log for details. Aborting."
msgstr ""
+"May nasagap na mga nodes na mali ang pagpapangalan, tignan ang output log "
+"para sa karagdagang mga detalye. Tinitigil."
#: scene/3d/room_manager.cpp
msgid "Portal link room not found, check output log for details."
@@ -13656,7 +13846,7 @@ msgstr ""
#: scene/animation/animation_blend_tree.cpp
msgid "Animation not found: '%s'"
-msgstr ""
+msgstr "Di-mahanap ang animation: '%s'"
#: scene/animation/animation_player.cpp
msgid "Anim Apply Reset"
@@ -13668,7 +13858,7 @@ msgstr ""
#: scene/animation/animation_tree.cpp
msgid "Invalid animation: '%s'."
-msgstr ""
+msgstr "Di-tugmang animasyon: '%s'."
#: scene/animation/animation_tree.cpp
msgid "Nothing connected to input '%s' of node '%s'."
@@ -13700,6 +13890,9 @@ msgid ""
"LMB: Set color\n"
"RMB: Remove preset"
msgstr ""
+"Kulay: #%s\n"
+"LMB: Magtakda ng kulay\n"
+"RMB: Magalis ng preset"
#: scene/gui/color_picker.cpp
msgid "Pick a color from the editor window."
@@ -13807,6 +14000,8 @@ msgid ""
"The Viewport size must be greater than or equal to 2 pixels on both "
"dimensions to render anything."
msgstr ""
+"Dapat mas malaki o magkatumbas ng 2 pixel ang Tinginan bago maka-render ng "
+"alinman."
#: scene/resources/occluder_shape.cpp
msgid "OccluderShapeSphere Set Spheres"
@@ -13847,10 +14042,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index 71856baa70..221e209621 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -1,6 +1,6 @@
# Turkish translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Aprın Çor Tigin <kabusturk38@gmail.com>, 2016-2017.
# Aykut YILDIRIM <aykutyildirim@windowslive.com>, 2018.
@@ -65,13 +65,14 @@
# Kadir Berk YaÄŸar <ykadirberk2@gmail.com>, 2021.
# Aysu Toprak <moonwater99@hotmail.com>, 2021.
# Yusuf Yavuzyigit <yusufyavuzyigit25@gmail.com>, 2021.
+# seckiyn <kyofl6@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-11-18 13:37+0000\n"
-"Last-Translator: Yusuf Yavuzyigit <yusufyavuzyigit25@gmail.com>\n"
+"PO-Revision-Date: 2022-01-03 03:55+0000\n"
+"Last-Translator: seckiyn <kyofl6@gmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/"
"godot/tr/>\n"
"Language: tr\n"
@@ -79,7 +80,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 4.9.1-dev\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -381,6 +382,11 @@ msgid "Duplicate Key(s)"
msgstr "Yinelenen Anahtar(lar)"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "%d Çerçeve[ler]'i ekle"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Anahtar(lar)ı Sil"
@@ -549,6 +555,11 @@ msgstr ""
"Bu seçenek yalnızca tek izli olduğundan, Bezier düzenlemede işe yaramaz."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Animasyon Anahtarı Ölçekle"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1531,6 +1542,10 @@ msgid "Invalid name."
msgstr "Geçersiz ad."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Geçerli karakterler:"
@@ -1635,7 +1650,9 @@ msgstr "Sahne güncelleniyor..."
msgid "[empty]"
msgstr "(boÅŸ)"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[kaydedilmemiÅŸ]"
@@ -1656,6 +1673,7 @@ msgstr "Klasör Oluştur"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "İsim:"
@@ -2154,7 +2172,8 @@ msgid "Properties"
msgstr "Özellikler"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "üzerine yaz:"
#: editor/editor_help.cpp
@@ -2295,6 +2314,20 @@ msgstr "Tema Özelliği"
msgid "Property:"
msgstr "Özellik:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(deÄŸer)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2304,6 +2337,29 @@ msgstr "Ayarla %s"
msgid "Set Multiple:"
msgstr "Çoklu Ayarla:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Özellikleri Kopyala"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Özellikleri Yapıştır"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Betik Yolunu Kopyala"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Çıktı:"
@@ -3118,6 +3174,20 @@ msgstr ""
"çalışan projede görünür olacaktır."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Sahne DeÄŸiÅŸikliklerini Senkronize Et"
@@ -4241,6 +4311,10 @@ msgstr "Dosyalarda bul"
msgid "Find:"
msgstr "Bul:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "DeÄŸiÅŸtir:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Dosya:"
@@ -4266,6 +4340,11 @@ msgstr "Bul..."
msgid "Replace..."
msgstr "DeÄŸiÅŸtir..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Tümünü Değiştir"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Bul: "
@@ -4275,8 +4354,9 @@ msgid "Replace: "
msgstr "DeÄŸiÅŸtir: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Tümünü Değiştir (geri alma yok)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Tümünü Değiştir"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4499,6 +4579,12 @@ msgstr ""
"UYARI: Bu kaynağı kullanan varlıklar mevcut, düzgün yüklenmeyi "
"durdurabilirler."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Kaynak yükleme başarısız oldu."
@@ -5958,6 +6044,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+Sürükle: Seçili düğümü taşıyın."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Sürükle: Seçili düğümü taşıyın."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: Seçili düğümün pivot konumunu ayarlayın."
@@ -5988,6 +6079,10 @@ msgid "Scale Mode"
msgstr "Esnetme Åžekli"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6084,20 +6179,44 @@ msgstr "Seçilen nesneyi yerine kilitleyin (taşınamaz)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Seçimi Kilitle"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Seçilen nesnenin kilidini açın (taşınabilir)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Seçim Kilidini Aç"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Nesnenin çocuğunun seçilemez olduğundan kuşkusuz olur."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Seçilenleri Grupla"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Nesnenin çocuğunun seçilebilme yeteneğini geri kazandırır."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Seçilen Grubu Dağıt"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "İskelet Ayarları"
@@ -7734,6 +7853,11 @@ msgid "Find in Files..."
msgstr "Dosyalarda Bul..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "DeÄŸiÅŸtir..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "Bağlamsal Yardım"
@@ -8257,6 +8381,19 @@ msgid "Toggle Freelook"
msgstr "Serbest Bakış Aç / Kapat"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Varsayılanlara dön"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Dönüşüm"
@@ -8979,6 +9116,29 @@ msgid "Another Theme"
msgstr "BaÅŸka Bir Tema"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Tür Ekle"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Kullanılabilir Profiller:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Dosya ismi boÅŸ."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Birden fazla proje açmakta kararlı mısınız?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Öğeyi Yeniden Adlandırmayı Onayla"
@@ -9003,18 +9163,6 @@ msgstr ""
"tipteki diğer tüm StyleBox'larda aynı özellikleri güncelleyecektir."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Tür Ekle"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Öğe Türü Ekle"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Düğüm Türleri:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Varsayılanı Göster"
@@ -9031,6 +9179,10 @@ msgid "Override all default type items."
msgstr "Tüm varsayılan tür öğelerini geçersiz kıl."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Öğe Türü Ekle"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Tema:"
@@ -11529,10 +11681,6 @@ msgid "Batch Rename"
msgstr "Tümden Yeniden Adlandır"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "DeÄŸiÅŸtir:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Ön Ek:"
@@ -11826,6 +11974,20 @@ msgstr ""
"devralınan bir sahne oluşturabilirsiniz."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Yeni Sahneyi Farklı Kaydet ..."
@@ -12783,63 +12945,70 @@ msgstr "Solüsyonu İnşa Et"
msgid "End of inner exception stack trace"
msgstr "İç özel durum yığını izlemesinin sonu"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.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."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "NavMesh'i Sabitle"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Yönlendirici örüntüsünü temizle."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Konfigürasyon Ayarlanıyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Izgara boyutu hesaplanıyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Yükseklik-alanı Oluşturuluyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Yürünebilir üçgenler işaretleniyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Aralıksız yükseklialanı inşa ediliyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Yürünebilir alan aşındırılıyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Bölümleniyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Konturlar oluÅŸturuluyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Çoklu-örüntü oluşturuluyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "Yerli yönlendirici örüntüsüne dönüştürülüyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Navigasyon Örüntüsü Üreteci Kurulumu:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Geometri Ayrıştırılıyor..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Oldu!"
@@ -13415,11 +13584,8 @@ msgstr ""
"olduğunda geçerlidir."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid "\"Passthrough\" is only valid when \"Xr Mode\" is \"OpenXR\"."
-msgstr ""
-"\"El Takibi(Hand Tracking)\" sadece \"Xr Modu\" \"Oculus Mobile VR\" "
-"olduğunda geçerlidir."
+msgstr "\"İçinden Geçme\" sadece \"Xr Mod\" \"OpenXR\" ise geçerlidir."
#: platform/android/export/export_plugin.cpp
msgid "\"Export AAB\" is only valid when \"Use Custom Build\" is enabled."
@@ -13428,25 +13594,24 @@ msgstr ""
"geçerlidir."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Min Sdk\" is only valid when \"Use Custom Build\" is enabled."
msgstr ""
-"\"AAB Dışa Aktar\" yalnızca \"Özel Yapı Kullan\" etkinleştirildiğinde "
+"\"Min Sdk\" değiştirilmesi sadece \"Özel Yapı\" etkinleştirildiğinde "
"geçerlidir."
#: platform/android/export/export_plugin.cpp
-#, fuzzy
msgid ""
"Changing the \"Target Sdk\" is only valid when \"Use Custom Build\" is "
"enabled."
msgstr ""
-"\"AAB Dışa Aktar\" yalnızca \"Özel Yapı Kullan\" etkinleştirildiğinde "
+"\"Target Sdk\" değiştirilmesi sadece \"Özel Yapı\" etkinleştirildiğinde "
"geçerlidir."
#: platform/android/export/export_plugin.cpp
msgid "\"Target Sdk\" version must be greater or equal to \"Min Sdk\" version."
msgstr ""
+"\"Target Sdk\" sürümü \"Min Sdk\" sürümünden daha büyük veya eşit olmalıdır."
#: platform/android/export/export_plugin.cpp
msgid ""
@@ -13864,6 +14029,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "Bu engelleyici için engelleyici çokgeni boş. Lütfen bir çokgen çizin."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14125,13 +14300,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "90 dereceden geniş açılı SpotIşık gölge oluşturamaz."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Bu düğümün çalışması için bir NavigationMesh kaynağı ayarlanmış veya "
-"oluşturulmuş olmalıdır."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14139,6 +14312,12 @@ 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/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Hiçbir şekil ayarlanmadı."
@@ -14616,10 +14795,6 @@ msgstr ""
"'Parça' işlevinde atanan varyasyonlar, 'köşe' veya 'ışık'ta yeniden atanamaz."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "Özel işlevde parça aşaması değişikliğine erişilemedi!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "İşleve atama."
diff --git a/editor/translations/tt.po b/editor/translations/tt.po
index 22226ebf60..5032eb753a 100644
--- a/editor/translations/tt.po
+++ b/editor/translations/tt.po
@@ -1,6 +1,6 @@
# Tatar translation of the Godot Engine editor.
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Bualma Show <appleaidar6@gmail.com>, 2021.
@@ -320,6 +320,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -482,6 +486,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1434,6 +1442,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1538,7 +1550,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1559,6 +1573,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2030,7 +2045,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2166,6 +2181,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2175,6 +2203,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2913,6 +2961,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3970,6 +4032,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3993,6 +4059,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4002,7 +4072,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4216,6 +4286,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5637,6 +5713,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5665,6 +5745,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5759,20 +5843,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7372,6 +7476,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7884,6 +7992,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8595,37 +8715,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8645,6 +8773,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10985,10 +11117,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11261,6 +11389,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12190,63 +12332,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13180,6 +13327,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13386,16 +13543,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13790,10 +13953,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/tzm.po b/editor/translations/tzm.po
index 30dd0ab7d0..77ca1dae62 100644
--- a/editor/translations/tzm.po
+++ b/editor/translations/tzm.po
@@ -1,6 +1,6 @@
# Central Atlas Tamazight translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Hakim Oubouali <hakim.oubouali.skr@gmail.com>, 2020.
@@ -318,6 +318,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr ""
@@ -480,6 +484,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1432,6 +1440,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1536,7 +1548,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1557,6 +1571,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2028,7 +2043,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2164,6 +2179,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2173,6 +2201,26 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Paste Property"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Copy Property Path"
+msgstr ""
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2911,6 +2959,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -3968,6 +4030,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -3991,6 +4057,10 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Replace in Files"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4000,7 +4070,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4214,6 +4284,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5635,6 +5711,10 @@ msgid "Alt+Drag: Move selected node."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Scale selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr ""
@@ -5663,6 +5743,10 @@ msgid "Scale Mode"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5757,20 +5841,40 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Group Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Ungroup Selected Node(s)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr ""
@@ -7370,6 +7474,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -7882,6 +7990,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8593,37 +8713,45 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+msgid "Available Node-based types:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Override Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8643,6 +8771,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr ""
@@ -10983,10 +11115,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11259,6 +11387,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12188,63 +12330,68 @@ msgstr ""
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13178,6 +13325,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13384,16 +13541,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -13788,10 +13951,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index fb2623f957..9ded993590 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -1,6 +1,6 @@
# Ukrainian translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Aleksandr <XpycT.TOP@gmail.com>, 2017.
# Yuri Chornoivan <yurchor@ukr.net>, 2018, 2019, 2020, 2021.
@@ -338,6 +338,11 @@ msgid "Duplicate Key(s)"
msgstr "Дублювати ключі"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Додати %d кадри"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Вилучити ключі"
@@ -508,6 +513,11 @@ msgstr ""
"одинарна доріжка."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "МаÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ñ–Ð² анімації"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1492,6 +1502,10 @@ msgid "Invalid name."
msgstr "Ðекоректна назва."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "ПрипуÑтимі Ñимволи:"
@@ -1596,7 +1610,9 @@ msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñцени..."
msgid "[empty]"
msgstr "[порожньо]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[не збережено]"
@@ -1617,6 +1633,7 @@ msgstr "Створити Теку"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Ім'Ñ:"
@@ -2120,7 +2137,8 @@ msgid "Properties"
msgstr "ВлаÑтивоÑті"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "перевизначеннÑ:"
#: editor/editor_help.cpp
@@ -2260,6 +2278,20 @@ msgstr "ВлаÑтивіÑть теми"
msgid "Property:"
msgstr "ВлаÑтивіÑть:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(значеннÑ)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2269,6 +2301,29 @@ msgstr "Ð’Ñтановити %s"
msgid "Set Multiple:"
msgstr "Ð’Ñтановити кратніÑть:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Копіювати влаÑтивоÑті"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Ð’Ñтавити влаÑтивоÑті"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Копіювати шлÑÑ… до Ñкрипту"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Вивід:"
@@ -3086,6 +3141,20 @@ msgstr ""
"Ñітки та полігони."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Синхронізувати зміни Ñцени"
@@ -4210,6 +4279,10 @@ msgstr "Знайти у файлах"
msgid "Find:"
msgstr "Знайти:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Заміна:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Тека:"
@@ -4235,6 +4308,11 @@ msgstr "Знайти..."
msgid "Replace..."
msgstr "Замінити..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Замінити вÑÑ–"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Знайти: "
@@ -4244,8 +4322,9 @@ msgid "Replace: "
msgstr "Замінити: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Замінити вÑе (без ÑкаÑовуваннÑ)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Замінити вÑÑ–"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4465,6 +4544,12 @@ msgstr ""
"УВÐГÐ: Ñ–Ñнують об'єкти, що викориÑтовують цей реÑÑƒÑ€Ñ Ñ‚Ð° можуть припинити "
"завантажуватиÑÑ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ чином."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ реÑурÑ."
@@ -5933,6 +6018,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+ПеретÑгнути: переміÑтити позначений вузол."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+ПеретÑгнути: переміÑтити позначений вузол."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V: вÑтановити позицію опорної точки позначеного вузла."
@@ -5963,6 +6053,10 @@ msgid "Scale Mode"
msgstr "Режим маÑштабуваннÑ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6059,20 +6153,44 @@ msgstr "Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ об'єкта на міÑці (нÐ
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Заблокувати позначене"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Розблокувати вибраний об'єкт (можна переміÑтити)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Розблокувати позначене"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Гарантує нащадки об'єкта не можуть бути обрані."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Згрупувати позначені"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Відновлює можливіÑть вибору нащадків об'єкта."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Розгрупувати позначені"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Параметри каркаÑа"
@@ -7717,6 +7835,11 @@ msgid "Find in Files..."
msgstr "Знайти у файлах…"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Замінити..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "КонтекÑтна довідка"
@@ -8241,6 +8364,19 @@ msgid "Toggle Freelook"
msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¾Ð³Ð»Ñду"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "ПовернутиÑÑ Ð´Ð¾ типового"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "ПеретвореннÑ"
@@ -8964,6 +9100,29 @@ msgid "Another Theme"
msgstr "Інша тема"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "Додати тип"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "ДоÑтупні профілі:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ð½Ð°Ð·Ð²Ð° файла."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Ви Ñправді хочете відкрити декілька проєктів одразу?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "Підтвердити Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу"
@@ -8989,18 +9148,6 @@ msgstr ""
"цього типу."
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "Додати тип"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "Додати тип запиÑу"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "Типи вузлів:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "Показати типовий"
@@ -9018,6 +9165,10 @@ msgid "Override all default type items."
msgstr "Перевизначити уÑÑ– запиÑи Ñтандартних типів."
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "Додати тип запиÑу"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "Тема:"
@@ -11528,10 +11679,6 @@ msgid "Batch Rename"
msgstr "Пакетне перейменуваннÑ"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Заміна:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "ПрефікÑ:"
@@ -11826,6 +11973,20 @@ msgstr ""
"Ñцену...»."
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Зберегти нову Ñцену Ñк..."
@@ -12789,63 +12950,70 @@ msgstr "Зібрати рішеннÑ"
msgid "End of inner exception stack trace"
msgstr "Кінець траÑÑƒÐ²Ð°Ð½Ð½Ñ Ñтека Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ виключеннÑ"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+"Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ цього вузла Ñлід вÑтановити або Ñтворити реÑÑƒÑ€Ñ Â«Ðавігаційна "
+"Ñітка»."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "Запекти NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "ОчиÑтити навігаційну Ñітку."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ—..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Розрахунок розміру Ñітки..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ñ€Ñ‚Ð¸ виÑот..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ…Ñ–Ð´Ð½Ð¸Ñ… трикутників..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ‚Ð½Ð¾Ñ— карти виÑот..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Ð Ð¾Ð·Ð¼Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾Ñ…Ñ–Ð´Ð½Ð¾Ñ— ділÑнки..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "РозбиттÑ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñ–Ð²..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñітки..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð° влаÑну навігаційну Ñітку..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° навігаційної Ñітки:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "Ðналіз геометрії..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Зроблено!"
@@ -13891,6 +14059,16 @@ msgstr ""
"Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ затулÑÐ½Ð½Ñ Ð±Ð°Ð³Ð°Ñ‚Ð¾ÐºÑƒÑ‚Ð½Ð¸Ðº Ñ” порожнім. Будь лаÑка, намалюйте "
"багатокутник."
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14152,13 +14330,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "SpotLight з кутом, Ñкий Ñ” більшим за 90 градуÑів, не може давати тіні."
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-"Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ цього вузла Ñлід вÑтановити або Ñтворити реÑÑƒÑ€Ñ Â«Ðавігаційна "
-"Ñітка»."
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14166,6 +14342,12 @@ msgstr ""
"NavigationMeshInstance має бути дочірнім елементом вузла Navigation або "
"елементом ще нижчої підпорÑдкованоÑті. Він надає лише навігаційні дані."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "Форму не вÑтановлено."
@@ -14655,12 +14837,6 @@ msgstr ""
"надавати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ «vertex» або «light»."
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-"ДоÑтуп до змінного Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð° кроці фрагментації у нетиповій функції "
-"неможливий!"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹Ð½Ð¾Ð³Ð¾."
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index 5154813e2c..c84931094f 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -1,6 +1,6 @@
# Urdu (Pakistan) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Muhammad Ali <ali@codeonion.com>, 2016.
@@ -325,6 +325,10 @@ msgid "Duplicate Key(s)"
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr ".اینیمیشن کی کیز کو ڈیلیٹ کرو"
@@ -489,6 +493,10 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+msgid "Anim Add RESET Keys"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1459,6 +1467,10 @@ msgid "Invalid name."
msgstr ""
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr ""
@@ -1563,7 +1575,9 @@ msgstr ""
msgid "[empty]"
msgstr ""
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr ""
@@ -1584,6 +1598,7 @@ msgstr ""
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr ""
@@ -2073,7 +2088,7 @@ msgid "Properties"
msgstr ""
#: editor/editor_help.cpp
-msgid "override:"
+msgid "overrides %s:"
msgstr ""
#: editor/editor_help.cpp
@@ -2214,6 +2229,19 @@ msgstr ".تمام کا انتخاب"
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2223,6 +2251,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr ".تمام کا انتخاب"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr ".تمام کا انتخاب"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr ".تمام کا انتخاب"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -2970,6 +3021,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr ""
@@ -4054,6 +4119,10 @@ msgstr ""
msgid "Find:"
msgstr ""
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr ""
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr ""
@@ -4077,6 +4146,11 @@ msgstr ""
msgid "Replace..."
msgstr ""
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "سب سکریپشن بنائیں"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr ""
@@ -4086,7 +4160,7 @@ msgid "Replace: "
msgstr ""
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
+msgid "Replace All (NO UNDO)"
msgstr ""
#: editor/find_in_files.cpp
@@ -4306,6 +4380,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr ""
@@ -5776,6 +5856,11 @@ msgstr ".تمام کا انتخاب"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr ".تمام کا انتخاب"
@@ -5806,6 +5891,10 @@ msgid "Scale Mode"
msgstr "ایکشن منتقل کریں"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5901,20 +5990,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr ".تمام کا انتخاب"
@@ -7557,6 +7670,10 @@ msgid "Find in Files..."
msgstr ""
#: editor/plugins/script_text_editor.cpp
+msgid "Replace in Files..."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8081,6 +8198,18 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Reset Field of View to Default"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -8833,37 +8962,46 @@ msgid "Another Theme"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Confirm Item Rename"
+msgid "Add Type"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Cancel Item Rename"
+msgid "Filter the list of types or create a new custom type:"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Override Item"
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr ".تمام کا انتخاب"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Type name is empty!"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Unpin this StyleBox as a main style."
+msgid "Are you sure you want to create an empty type?"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid ""
-"Pin this StyleBox as a main style. Editing its properties will update the "
-"same properties in all other StyleBoxes of this type."
+msgid "Confirm Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
+msgid "Cancel Item Rename"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
+msgid "Override Item"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
+msgid "Unpin this StyleBox as a main style."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid ""
+"Pin this StyleBox as a main style. Editing its properties will update the "
+"same properties in all other StyleBoxes of this type."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
@@ -8883,6 +9021,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "سب سکریپشن بنائیں"
@@ -11303,10 +11445,6 @@ msgid "Batch Rename"
msgstr ""
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr ""
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -11581,6 +11719,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -12547,63 +12699,68 @@ msgstr ".تمام کا انتخاب"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -13567,6 +13724,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13773,16 +13940,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14177,10 +14350,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index 84c6ae0829..1a7c450e3d 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -1,6 +1,6 @@
# Vietnamese translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# 01lifeleft <01lifeleft@gmail.com>, 2018.
# Dlean Jeans <dleanjeans@gmail.com>, 2018.
@@ -337,6 +337,11 @@ msgid "Duplicate Key(s)"
msgstr "Nhân bản các khoá hoạt ảnh"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "Thêm %d Khung hình"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "Xoá khoá hoạt ảnh"
@@ -505,6 +510,11 @@ msgid ""
msgstr "Tùy chá»n này không áp lên Bezier được, vì nó chỉ là má»™t track."
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "Key để scale hoạt ảnh"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1489,6 +1499,10 @@ msgid "Invalid name."
msgstr "Tên không hợp lệ."
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "Ký tự hợp lệ:"
@@ -1594,7 +1608,9 @@ msgstr "Äang cập nhật cảnh ..."
msgid "[empty]"
msgstr "[rá»—ng]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[chưa lưu]"
@@ -1615,6 +1631,7 @@ msgstr "Tạo thư mục"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "Tên:"
@@ -2104,7 +2121,8 @@ msgid "Properties"
msgstr "Thuộc tính"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "Ghi đè:"
#: editor/editor_help.cpp
@@ -2248,6 +2266,20 @@ msgstr "Cài đặt Tông màu"
msgid "Property:"
msgstr "Thuộc tính:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(giá trị)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2257,6 +2289,29 @@ msgstr "Gán %s"
msgid "Set Multiple:"
msgstr "Gán nhiá»u:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "Thuộc tính"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "Thuộc tính"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "Sao chép đưá»ng dẫn tệp lệnh"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "Äầu ra:"
@@ -3052,6 +3107,20 @@ msgstr ""
"đang chạy."
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "Äồng bá»™ hóa các thay đổi lên Cảnh"
@@ -4179,6 +4248,10 @@ msgstr "Tìm trong các Tệp tin"
msgid "Find:"
msgstr "Tìm:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "Thay thế:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "Thư mục:"
@@ -4204,6 +4277,11 @@ msgstr "Tìm..."
msgid "Replace..."
msgstr "Thay thế ..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "Thay thế tất cả"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "Tìm: "
@@ -4213,8 +4291,9 @@ msgid "Replace: "
msgstr "Thay thế: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "Thay thế tất cả (không hoàn tác)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "Thay thế tất cả"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4430,6 +4509,12 @@ msgstr ""
"CẢNH BÃO: Có tài nguyên khác sá»­ dụng tài nguyên này, chúng có thể gặp trục "
"trặc khi nạp đấy."
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "Nạp tài nguyên thất bại."
@@ -5881,6 +5966,11 @@ msgstr "Alt+Kéo: Di chuyển"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+Kéo: Di chuyển"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "Xoá nút và chuyển tiếp đã chá»n."
@@ -5912,6 +6002,10 @@ msgid "Scale Mode"
msgstr "Chế độ căn Tỉ lệ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6008,20 +6102,44 @@ msgstr "Khóa vị trí vật (không cho dịch chuyển)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "Khoá lá»±a chá»n"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "Thôi khóa vị trí vật (cho phép di chuyển)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "Mở khoá Lá»±a chá»n"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "Hãy chắc rằng nút con cá»§a vật ở trạng thái Không thể chá»n."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "Nhóm Lá»±a chá»n"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "Khôi phục khả năng được chá»n nút con cá»§a vật."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "Bá» nhóm đã chá»n"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "Cài đặt Khung xương"
@@ -7675,6 +7793,11 @@ msgid "Find in Files..."
msgstr "Tìm trong Tệp..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "Thay thế ..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8220,6 +8343,19 @@ msgid "Toggle Freelook"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "Äặt lại thành mặc định"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "Biến đổi"
@@ -8992,6 +9128,30 @@ msgstr "Nhập Tông màu"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "Kiểu"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "Hồ sơ khả dụng:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "Tên tệp trống."
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "Bạn chắc chắn mở nhiá»u hÆ¡n má»™t dá»± án?"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "Äổi tên Anim Track"
@@ -9017,21 +9177,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "Kiểu"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Add Item Type"
-msgstr "Thêm mục"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Loại nút"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "Nạp mặc định"
@@ -9050,6 +9195,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Item Type"
+msgstr "Thêm mục"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Theme:"
msgstr "Tông màu"
@@ -11516,10 +11666,6 @@ msgid "Batch Rename"
msgstr "Äổi tên"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "Thay thế:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "Tiá»n tố:"
@@ -11805,6 +11951,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "Lưu Cảnh Mới Thành..."
@@ -12796,63 +12956,68 @@ msgstr "Chá»n tất cả"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "Phải tạo hoặc đặt một NavigationMesh cho nút này thì nó mới hoạt động."
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "Xóa lưới Ä‘iá»u hướng."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "Thiết lập cấu hình ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "Tính kích thước lưới ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "Äánh dấu tam giác có thể Ä‘i được..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "Làm xói mòn vùng đi được..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "Phân vùng ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "Tạo đưá»ng viá»n ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "Thiết lập trình tạo lưới Ä‘iá»u hướng:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "Xong!"
@@ -13869,6 +14034,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14108,11 +14283,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "Phải tạo hoặc đặt một NavigationMesh cho nút này thì nó mới hoạt động."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -14120,6 +14295,12 @@ msgstr ""
"NavigationMeshInstance phải là nút con hoặc cháu một nút Navigation. Nó chỉ "
"cung cấp dữ liệu Ä‘iá»u hướng."
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14528,10 +14709,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index 30e61af318..06fe826028 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -1,6 +1,6 @@
# Chinese (Simplified) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# 360119124 <360119124@qq.com>, 2018.
# æŸ æª¬æ€æ‰‹ <lemonkiller@gmail.com>, 2018, 2020.
@@ -88,8 +88,8 @@ msgstr ""
"Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2021-12-20 18:53+0000\n"
-"Last-Translator: jker <cxgmfy@163.com>\n"
+"PO-Revision-Date: 2021-12-31 08:52+0000\n"
+"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hans/>\n"
"Language: zh_CN\n"
@@ -97,7 +97,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 4.10\n"
+"X-Generator: Weblate 4.10.1\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -399,6 +399,11 @@ msgid "Duplicate Key(s)"
msgstr "å¤åˆ¶å…³é”®å¸§"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "添加 %d 帧"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "删除关键帧"
@@ -565,6 +570,11 @@ msgid ""
msgstr "ç”±äºŽåªæœ‰å•一轨é“,因此该选项ä¸é€‚用于è´å¡žå°”编辑。"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "缩放动画关键帧"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1534,6 +1544,10 @@ msgid "Invalid name."
msgstr "å称无效。"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "有效字符:"
@@ -1638,7 +1652,9 @@ msgstr "更新场景..."
msgid "[empty]"
msgstr "[空]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[未ä¿å­˜]"
@@ -1659,6 +1675,7 @@ msgstr "创建文件夹"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "å称:"
@@ -2138,7 +2155,8 @@ msgid "Properties"
msgstr "属性"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "覆盖:"
#: editor/editor_help.cpp
@@ -2278,6 +2296,20 @@ msgstr "主题属性"
msgid "Property:"
msgstr "属性:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(值)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2287,6 +2319,29 @@ msgstr "设置 %s"
msgid "Set Multiple:"
msgstr "批é‡è®¾ç½®ï¼š"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "å¤åˆ¶å±žæ€§"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "粘贴属性"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "å¤åˆ¶è„šæœ¬è·¯å¾„"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "输出:"
@@ -2402,7 +2457,7 @@ msgstr "请求文件的类型未知:"
#: editor/editor_node.cpp
msgid "Error while saving."
-msgstr "ä¿å­˜å‡ºé”™ã€‚"
+msgstr "ä¿å­˜æ—¶å‡ºé”™ã€‚"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Can't open '%s'. The file could have been moved or deleted."
@@ -2472,7 +2527,7 @@ msgstr "无法加载è¦åˆå¹¶çš„网格库ï¼"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr "ä¿å­˜ç½‘格库出错ï¼"
+msgstr "ä¿å­˜ç½‘格库时出错ï¼"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
@@ -3064,6 +3119,20 @@ msgid ""
msgstr "å¯ç”¨è¯¥é€‰é¡¹æ—¶ï¼Œå¯¼èˆªç½‘格和多边形将在项目è¿è¡Œæ—¶å¯è§ã€‚"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "åŒæ­¥åœºæ™¯ä¿®æ”¹"
@@ -4157,6 +4226,10 @@ msgstr "在文件中查找"
msgid "Find:"
msgstr "查找:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "替æ¢ï¼š"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "文件夹:"
@@ -4180,6 +4253,11 @@ msgstr "查找..."
msgid "Replace..."
msgstr "替æ¢..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "全部替æ¢"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "查找: "
@@ -4189,8 +4267,9 @@ msgid "Replace: "
msgstr "替æ¢ï¼š "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "全部替æ¢ï¼ˆæ— æ³•撤销)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "全部替æ¢"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4406,6 +4485,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr "警告:存在使用本资æºçš„ç´ æï¼Œå°†ä¼šåœæ­¢åŠ è½½ã€‚"
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "加载资æºå¤±è´¥ã€‚"
@@ -5844,6 +5929,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+拖动:移动所选节点。"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+拖动:移动所选节点。"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V:设置所选节点的中心点ä½ç½®ã€‚"
@@ -5872,6 +5962,10 @@ msgid "Scale Mode"
msgstr "缩放模å¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5968,20 +6062,44 @@ msgstr "将所选对象é”定到该ä½ç½®ï¼ˆæ— æ³•移动)。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "é”定所选项"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "è§£é”æ‰€é€‰å¯¹è±¡ï¼ˆå¯ä»¥ç§»åŠ¨ï¼‰ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "è§£é”æ‰€é€‰é¡¹"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "ç¡®ä¿å¯¹è±¡çš„å­é¡¹ä¸å¯é€‰æ‹©ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "编组所选项"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "æ¢å¤é€‰æ‹©å¯¹è±¡çš„å­çº§çš„功能。"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "解组所选项"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "骨架选项"
@@ -6845,7 +6963,7 @@ msgstr "删除顶点"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Close Curve"
-msgstr "关闭曲线"
+msgstr "é—­åˆæ›²çº¿"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -7604,6 +7722,11 @@ msgid "Find in Files..."
msgstr "在文件中查找..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "替æ¢..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "上下文帮助"
@@ -8125,6 +8248,19 @@ msgid "Toggle Freelook"
msgstr "切æ¢è‡ªç”±è§‚看"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "é‡ç½®ä¸ºé»˜è®¤å€¼"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "å˜æ¢"
@@ -8842,6 +8978,29 @@ msgid "Another Theme"
msgstr "其他主题"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "添加类型"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "å¯ç”¨é…置文件:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "文件å为空。"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "æ‚¨ç¡®å®šè¦æ‰“开多个项目å—?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "确认项目é‡å‘½å"
@@ -8865,18 +9024,6 @@ msgstr ""
"将此样å¼ç›’置顶为主样å¼ã€‚编辑其属性会更新该类型下其他所有样å¼ç›’的相åŒå±žæ€§ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "添加类型"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "添加项目类型"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "节点类型:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "显示默认"
@@ -8893,6 +9040,10 @@ msgid "Override all default type items."
msgstr "覆盖所有默认类型项目。"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "添加项目类型"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "主题:"
@@ -10459,15 +10610,15 @@ msgstr "导出选中的场景(包括ä¾èµ–项)"
#: editor/project_export.cpp
msgid "Export selected resources (and dependencies)"
-msgstr "导出选中的资æºï¼ˆåŒ…括ä¾èµ–资æºï¼‰"
+msgstr "导出选中的资æºï¼ˆåŒ…括ä¾èµ–项)"
#: editor/project_export.cpp
msgid "Export Mode:"
-msgstr "导出模å¼:"
+msgstr "导出模å¼ï¼š"
#: editor/project_export.cpp
msgid "Resources to export:"
-msgstr "导出的资æº:"
+msgstr "导出的资æºï¼š"
#: editor/project_export.cpp
msgid ""
@@ -11328,10 +11479,6 @@ msgid "Batch Rename"
msgstr "批é‡é‡å‘½å"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "替æ¢ï¼š"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "å‰ç¼€ï¼š"
@@ -11614,6 +11761,20 @@ msgstr ""
"场景。"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "将新场景å¦å­˜ä¸º..."
@@ -12561,63 +12722,68 @@ msgstr "构建解决方案"
msgid "End of inner exception stack trace"
msgstr "内部异常堆栈追朔结æŸ"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "此节点需è¦è®¾ç½® NavigationMesh èµ„æºæ‰èƒ½æ­£å¸¸å·¥ä½œã€‚"
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "烘焙导航网格"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "清除导航网格。"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "正在设置é…ç½®..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "正在计算网格大å°..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "正在创建高度图..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "标记å¯ç§»åŠ¨ä¸‰è§’å½¢..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "构建紧凑高度图..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "正在计算å¯è¡ŒåŒºåŸŸ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "分区中..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "正在创建轮廓..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "创建多边形网格..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "转æ¢ä¸ºå¯¼èˆªç½‘æ ¼..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "导航网格生æˆå™¨è®¾ç½®ï¼š"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "è§£æžå¤šè¾¹å½¢ä¸­..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "完æˆï¼"
@@ -13588,6 +13754,16 @@ msgstr "æ­¤é®å…‰ä½“必须设置é®å…‰å½¢çжæ‰èƒ½èµ·åˆ°é®å…‰ä½œç”¨ã€‚"
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "æ­¤é®å…‰ä½“çš„é®å…‰å¤šè¾¹å½¢ä¸ºç©ºã€‚请绘制一个多边形。"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13821,11 +13997,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "角度宽于 90 度的 SpotLight 无法投射出阴影。"
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "此节点需è¦è®¾ç½® NavigationMesh èµ„æºæ‰èƒ½æ­£å¸¸å·¥ä½œã€‚"
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -13833,6 +14009,12 @@ msgstr ""
"NavigationMeshInstance 类型节点必须作为 Navigation 节点的å­èŠ‚ç‚¹æˆ–å­å­™èŠ‚ç‚¹æ‰èƒ½"
"æä¾›å¯¼èˆªæ•°æ®ã€‚"
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "未设置形状。"
@@ -14281,10 +14463,6 @@ msgid ""
msgstr "已在“fragmentâ€å‡½æ•°ä¸­èµ‹å€¼çš„ varying ä¸èƒ½åœ¨â€œvertexâ€æˆ–“lightâ€ä¸­é‡æ–°èµ‹å€¼ã€‚"
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "ä¸èƒ½åœ¨è‡ªå®šä¹‰å‡½æ•°ä¸­è®¿é—®ç‰‡æ®µ varyingï¼"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "对函数的赋值。"
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 4d0e898171..e9cd6f0e5f 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -1,6 +1,6 @@
# Chinese (Hong Kong) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Wesley (zx-wt) <ZX_WT@ymail.com>, 2016-2017, 2020.
# cnieFIT <dtotncq@gmail.com>, 2019.
@@ -339,6 +339,10 @@ msgid "Duplicate Key(s)"
msgstr "複製動畫幀"
#: editor/animation_track_editor.cpp
+msgid "Add RESET Value(s)"
+msgstr ""
+
+#: editor/animation_track_editor.cpp
#, fuzzy
msgid "Delete Key(s)"
msgstr "移除動畫幀"
@@ -522,6 +526,11 @@ msgid ""
msgstr ""
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "移動動畫幀"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1532,6 +1541,10 @@ msgid "Invalid name."
msgstr "無效å稱。"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
#, fuzzy
msgid "Valid characters:"
msgstr "有效字符:"
@@ -1646,7 +1659,9 @@ msgstr "正在更新場景..."
msgid "[empty]"
msgstr "[空]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[未儲存]"
@@ -1667,6 +1682,7 @@ msgstr "新增資料夾"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "å稱:"
@@ -2176,8 +2192,9 @@ msgid "Properties"
msgstr "內客"
#: editor/editor_help.cpp
-msgid "override:"
-msgstr ""
+#, fuzzy
+msgid "overrides %s:"
+msgstr "覆蓋"
#: editor/editor_help.cpp
#, fuzzy
@@ -2324,6 +2341,19 @@ msgstr ""
msgid "Property:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pin value"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2333,6 +2363,29 @@ msgstr ""
msgid "Set Multiple:"
msgstr ""
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "內客"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "內客"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "複製路徑"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr ""
@@ -3123,6 +3176,20 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
#, fuzzy
msgid "Synchronize Scene Changes"
msgstr "åŒæ­¥å ´æ™¯çš„變動"
@@ -4282,6 +4349,11 @@ msgstr "在檔案中本尋找"
msgid "Find:"
msgstr "尋找:"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+#, fuzzy
+msgid "Replace:"
+msgstr "å–代: "
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "資料夾:"
@@ -4308,6 +4380,11 @@ msgstr "尋找..."
msgid "Replace..."
msgstr "替æ›â€¦"
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "全部å–代"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "尋找: "
@@ -4317,8 +4394,9 @@ msgid "Replace: "
msgstr "å–代: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "全部å–代(ä¸å¯é‚„原)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "全部å–代"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4548,6 +4626,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr ""
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "資æºåŠ è¼‰å¤±æ•—ã€‚"
@@ -6086,6 +6170,11 @@ msgstr "è¦åˆªé™¤é¸ä¸­æª”案?"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "è¦åˆªé™¤é¸ä¸­æª”案?"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "V: Set selected node's pivot position."
msgstr "移除被é¸å–的軌迹。"
@@ -6115,6 +6204,10 @@ msgid "Scale Mode"
msgstr "鏿“‡æ¨¡å¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -6214,20 +6307,44 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "所有é¸é …"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "刪除é¸ä¸­æª”案"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "移除é¸é …"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "移除é¸é …"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Skeleton Options"
msgstr "åªé™é¸ä¸­"
@@ -7925,6 +8042,11 @@ msgid "Find in Files..."
msgstr "ç¯©é¸æª”案..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "替æ›â€¦"
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr ""
@@ -8470,6 +8592,19 @@ msgid "Toggle Freelook"
msgstr "全螢幕"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "é è¨­"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr ""
@@ -9251,6 +9386,29 @@ msgstr "檔案"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
+msgid "Add Type"
+msgstr "新增節點"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "篩é¸:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "路徑為空"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Are you sure you want to create an empty type?"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Confirm Item Rename"
msgstr "å‹•ç•«è»Œè·¡é‡æ–°å‘½å"
@@ -9276,20 +9434,6 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
-msgid "Add Type"
-msgstr "新增節點"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr ""
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
-msgid "Node Types:"
-msgstr "Nodeå稱"
-
-#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Show Default"
msgstr "é è¨­"
@@ -9307,6 +9451,10 @@ msgid "Override all default type items."
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
msgid "Theme:"
msgstr "檔案"
@@ -11808,11 +11956,6 @@ msgid "Batch Rename"
msgstr "釿–°å‘½å..."
#: editor/rename_dialog.cpp
-#, fuzzy
-msgid "Replace:"
-msgstr "å–代: "
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr ""
@@ -12102,6 +12245,20 @@ msgid ""
msgstr ""
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr ""
@@ -13107,64 +13264,69 @@ msgstr "所有é¸é …"
msgid "End of inner exception stack trace"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr ""
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
#, fuzzy
msgid "Marking walkable triangles..."
msgstr "儲存本地更改..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr ""
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr ""
@@ -14166,6 +14328,16 @@ msgstr ""
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr ""
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -14374,16 +14546,22 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr ""
@@ -14784,10 +14962,6 @@ msgid ""
msgstr ""
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr ""
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr ""
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 1163c3d559..c75612316a 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -1,6 +1,6 @@
# Chinese (Taiwan) translation of the Godot Engine editor
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
# Allen H <w84miracle@gmail.com>, 2017.
# Billy SU <g4691821@gmail.com>, 2018.
@@ -344,6 +344,11 @@ msgid "Duplicate Key(s)"
msgstr "é‡è¤‡é—œéµç•«æ ¼"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Add RESET Value(s)"
+msgstr "新增 %d 個影格"
+
+#: editor/animation_track_editor.cpp
msgid "Delete Key(s)"
msgstr "刪除關éµç•«æ ¼"
@@ -510,6 +515,11 @@ msgid ""
msgstr "該é¸é …ä¸é©ç”¨è²èŒ²æ›²ç·šç·¨è¼¯ï¼Œå› æ›²ç·šåƒ…有單一軌é“。"
#: editor/animation_track_editor.cpp
+#, fuzzy
+msgid "Anim Add RESET Keys"
+msgstr "動畫縮放關éµå½±æ ¼"
+
+#: editor/animation_track_editor.cpp
msgid ""
"This animation belongs to an imported scene, so changes to imported tracks "
"will not be saved.\n"
@@ -1479,6 +1489,10 @@ msgid "Invalid name."
msgstr "無效的å稱。"
#: editor/editor_autoload_settings.cpp
+msgid "Cannot begin with a digit."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
msgstr "å¯ä½¿ç”¨çš„字元:"
@@ -1583,7 +1597,9 @@ msgstr "正在更新場景…"
msgid "[empty]"
msgstr "[空]"
-#: editor/editor_data.cpp
+#: editor/editor_data.cpp editor/plugins/script_text_editor.cpp
+#: editor/plugins/text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
msgid "[unsaved]"
msgstr "[未ä¿å­˜]"
@@ -1604,6 +1620,7 @@ msgstr "建立資料夾"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: editor/script_create_dialog.cpp
#: modules/visual_script/visual_script_editor.cpp scene/gui/file_dialog.cpp
msgid "Name:"
msgstr "å稱:"
@@ -2087,7 +2104,8 @@ msgid "Properties"
msgstr "屬性"
#: editor/editor_help.cpp
-msgid "override:"
+#, fuzzy
+msgid "overrides %s:"
msgstr "複寫:"
#: editor/editor_help.cpp
@@ -2225,6 +2243,20 @@ msgstr "主題屬性"
msgid "Property:"
msgstr "屬性:"
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Pin value"
+msgstr "(數值)"
+
+#: editor/editor_inspector.cpp
+msgid ""
+"Pinning a value forces it to be saved even if it's equal to the default."
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Pin value [Disabled because '%s' is editor-only]"
+msgstr ""
+
#: editor/editor_inspector.cpp editor/scene_tree_dock.cpp
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
@@ -2234,6 +2266,29 @@ msgstr "設定 %s"
msgid "Set Multiple:"
msgstr "設定多個:"
+#: editor/editor_inspector.cpp
+msgid "Pinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+msgid "Unpinned %s"
+msgstr ""
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property"
+msgstr "複製屬性"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Paste Property"
+msgstr "貼上屬性"
+
+#: editor/editor_inspector.cpp
+#, fuzzy
+msgid "Copy Property Path"
+msgstr "複製腳本路徑"
+
#: editor/editor_log.cpp
msgid "Output:"
msgstr "輸出:"
@@ -3011,6 +3066,20 @@ msgid ""
msgstr "開啟該é¸é …後,導航網格與多邊形將在專案執行時å¯è¦‹ã€‚"
#: editor/editor_node.cpp
+msgid "Force Shader Fallbacks"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, shaders will be used in their fallback form "
+"(either visible via an ubershader or hidden) during all the run time.\n"
+"This is useful for verifying the look and performance of fallbacks, which "
+"are normally displayed briefly.\n"
+"Asynchronous shader compilation must be enabled in the project settings for "
+"this option to make a difference."
+msgstr ""
+
+#: editor/editor_node.cpp
msgid "Synchronize Scene Changes"
msgstr "åŒæ­¥å¸¸è¦‹æ›´æ”¹"
@@ -4104,6 +4173,10 @@ msgstr "在檔案中æœå°‹"
msgid "Find:"
msgstr "æœå°‹ï¼š"
+#: editor/find_in_files.cpp editor/rename_dialog.cpp
+msgid "Replace:"
+msgstr "å–代:"
+
#: editor/find_in_files.cpp
msgid "Folder:"
msgstr "資料夾:"
@@ -4127,6 +4200,11 @@ msgstr "æœå°‹..."
msgid "Replace..."
msgstr "å–代..."
+#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Replace in Files"
+msgstr "å–代全部"
+
#: editor/find_in_files.cpp
msgid "Find: "
msgstr "æœå°‹ï¼š "
@@ -4136,8 +4214,9 @@ msgid "Replace: "
msgstr "å–代: "
#: editor/find_in_files.cpp
-msgid "Replace all (no undo)"
-msgstr "全部å–代(無法復原)"
+#, fuzzy
+msgid "Replace All (NO UNDO)"
+msgstr "å–代全部"
#: editor/find_in_files.cpp
msgid "Searching..."
@@ -4353,6 +4432,12 @@ msgid ""
"WARNING: Assets exist that use this resource, they may stop loading properly."
msgstr "警告:有素æä½¿ç”¨è©²è³‡æºï¼Œå°‡ç„¡æ³•正確加載。"
+#: editor/import_dock.cpp
+msgid ""
+"Select a resource file in the filesystem or in the inspector to adjust "
+"import settings."
+msgstr ""
+
#: editor/inspector_dock.cpp
msgid "Failed to load resource."
msgstr "加載資æºå¤±æ•—。"
@@ -5790,6 +5875,11 @@ msgid "Alt+Drag: Move selected node."
msgstr "Alt+拖移:移動所é¸çš„節點。"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Alt+Drag: Scale selected node."
+msgstr "Alt+拖移:移動所é¸çš„節點。"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "V: Set selected node's pivot position."
msgstr "V:設定所é¸ç¯€é»žä¹‹æ”¯é»žä½ç½®ã€‚"
@@ -5818,6 +5908,10 @@ msgid "Scale Mode"
msgstr "縮放模å¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Shift: Scale proportionally."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
"Show a list of all objects at the position clicked\n"
@@ -5914,20 +6008,44 @@ msgstr "在其ä½ç½®ä¸ŠéŽ–å®šæ‰€é¸ç‰©ä»¶ï¼ˆç„¡æ³•移動)。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Lock Selected Node(s)"
+msgstr "鎖定所é¸"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
msgstr "解鎖所é¸ç‰©ä»¶ï¼ˆå¯ç§»å‹•)。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Unlock Selected Node(s)"
+msgstr "å–æ¶ˆéŽ–å®šæ‰€é¸"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
msgstr "確ä¿ç‰©ä»¶çš„å­ç´šé …ç›®ç„¡æ³•è¢«é¸æ“‡ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Group Selected Node(s)"
+msgstr "為所é¸çš„項目建立群組"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
msgstr "æ¢å¾©è®“物件的å­ç´šé …ç›®å¯é¸æ“‡ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Ungroup Selected Node(s)"
+msgstr "移除所é¸é …目的群組"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton Options"
msgstr "骨架é¸é …"
@@ -7550,6 +7668,11 @@ msgid "Find in Files..."
msgstr "在檔案中æœå°‹..."
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
+msgid "Replace in Files..."
+msgstr "å–代..."
+
+#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
msgstr "上下文說明"
@@ -8071,6 +8194,19 @@ msgid "Toggle Freelook"
msgstr "開啟ï¼é—œé–‰è‡ªç”±è¦–圖"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Decrease Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Increase Field of View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Reset Field of View to Default"
+msgstr "é‡è¨­ç‚ºé è¨­å€¼"
+
+#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
msgstr "變æ›"
@@ -8788,6 +8924,29 @@ msgid "Another Theme"
msgstr "其他主題"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Type"
+msgstr "新增類別"
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Filter the list of types or create a new custom type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Available Node-based types:"
+msgstr "å¯ç”¨è¨­å®šæª”:"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Type name is empty!"
+msgstr "檔案å稱為空。"
+
+#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
+msgid "Are you sure you want to create an empty type?"
+msgstr "ç¢ºå®šè¦æ‰“開多個專案嗎?"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Confirm Item Rename"
msgstr "確èªé …ç›®é‡æ–°å‘½å"
@@ -8811,18 +8970,6 @@ msgstr ""
"釘é¸è©²æ¨£å¼ç›’ç‚ºä¸»è¦æ¨£å¼ã€‚編輯其屬性將更新所有其他åŒé¡žåˆ¥çš„æ¨£å¼ç›’之相åŒå±¬æ€§ã€‚"
#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Type"
-msgstr "新增類別"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Add Item Type"
-msgstr "新增項目類型"
-
-#: editor/plugins/theme_editor_plugin.cpp
-msgid "Node Types:"
-msgstr "節點類別:"
-
-#: editor/plugins/theme_editor_plugin.cpp
msgid "Show Default"
msgstr "顯示é è¨­"
@@ -8839,6 +8986,10 @@ msgid "Override all default type items."
msgstr "複寫所有é è¨­é¡žåˆ¥é …目。"
#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Item Type"
+msgstr "新增項目類型"
+
+#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme:"
msgstr "主題:"
@@ -11275,10 +11426,6 @@ msgid "Batch Rename"
msgstr "æ‰¹æ¬¡é‡æ–°å‘½å"
#: editor/rename_dialog.cpp
-msgid "Replace:"
-msgstr "å–代:"
-
-#: editor/rename_dialog.cpp
msgid "Prefix:"
msgstr "å‰ç½®ï¼š"
@@ -11561,6 +11708,20 @@ msgstr ""
"場景。"
#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is a child of an already instantiated scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Can't save a branch which is part of an inherited scene.\n"
+"To save this branch into its own scene, open the original scene, right click "
+"on this branch, and select \"Save Branch as Scene\"."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
msgid "Save New Scene As..."
msgstr "å¦å­˜æ–°å ´æ™¯ç‚º..."
@@ -12508,63 +12669,68 @@ msgstr "建構解決方案"
msgid "End of inner exception stack trace"
msgstr "å…§éƒ¨ç•°å¸¸å †ç–Šå›žæº¯çµæŸ"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
+#: scene/3d/navigation_mesh_instance.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr "必須先為該節點建立 NavigationMesh è³‡æºæ‰å¯é‹ä½œã€‚"
+
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Bake NavMesh"
msgstr "製作 NavMesh"
-#: modules/recast/navigation_mesh_editor_plugin.cpp
+#: modules/navigation/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
msgstr "清除導航網格。"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
msgstr "正在設定組態..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
msgstr "正在計算網格大å°..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
msgstr "正在建立 Heightfield..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
msgstr "正在標記å¯ç§»å‹•的三角形..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
msgstr "正在建置緊湊 Heightfield..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
msgstr "正在建立å¯ç§»å‹•å€åŸŸ..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Partitioning..."
msgstr "正在分割..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating contours..."
msgstr "正在建立輪廓..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
msgstr "正在建立多邊形網格..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
msgstr "正在轉æ›ç‚ºåŽŸç”Ÿå°Žèˆªç¶²æ ¼..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
msgstr "導航網格產生器設定:"
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
msgstr "正在解æžå¤šé‚Šå½¢..."
-#: modules/recast/navigation_mesh_generator.cpp
+#: modules/navigation/navigation_mesh_generator.cpp
msgid "Done!"
msgstr "完æˆï¼"
@@ -13536,6 +13702,16 @@ msgstr "該é®å…‰é«”å¿…é ˆè¦æœ‰è¨­å®šï¼ˆæˆ–繪製)é®å…‰é«”å½¢ç‹€æ‰æœƒæœ‰ä½œ
msgid "The occluder polygon for this occluder is empty. Please draw a polygon."
msgstr "é®å…‰é«”ç„¡é®å…‰é«”多邊形。請先繪製一個多邊形。"
+#: scene/2d/navigation_agent_2d.cpp
+msgid "The NavigationAgent2D can be used only under a Node2D node."
+msgstr ""
+
+#: scene/2d/navigation_obstacle_2d.cpp
+msgid ""
+"The NavigationObstacle2D only serves to provide collision avoidance to a "
+"Node2D object."
+msgstr ""
+
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
@@ -13767,11 +13943,11 @@ msgstr ""
msgid "A SpotLight with an angle wider than 90 degrees cannot cast shadows."
msgstr "角度大於 90 度的 SpotLight 無法投射出陰影。"
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr "必須先為該節點建立 NavigationMesh è³‡æºæ‰å¯é‹ä½œã€‚"
+#: scene/3d/navigation_agent.cpp
+msgid "The NavigationAgent can be used only under a spatial node."
+msgstr ""
-#: scene/3d/navigation_mesh.cpp
+#: scene/3d/navigation_mesh_instance.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
@@ -13779,6 +13955,12 @@ msgstr ""
"NavigationMeshInstance 必須為 Navigation 節點的å­ç¯€é»žæˆ–次級å­ç¯€é»žã€‚其僅æä¾›å°Ž"
"航資料。"
+#: scene/3d/navigation_obstacle.cpp
+msgid ""
+"The NavigationObstacle only serves to provide collision avoidance to a "
+"spatial object."
+msgstr ""
+
#: scene/3d/occluder.cpp
msgid "No shape is set."
msgstr "未設定任何的形狀。"
@@ -14233,10 +14415,6 @@ msgstr ""
"指派。"
#: servers/visual/shader_language.cpp
-msgid "Fragment-stage varying could not been accessed in custom function!"
-msgstr "無法在自定義函å¼ä¸­å­˜å–片段階段(Fragment-stage)中的Varying變數ï¼"
-
-#: servers/visual/shader_language.cpp
msgid "Assignment to function."
msgstr "指派至函å¼ã€‚"
diff --git a/main/main.cpp b/main/main.cpp
index 9b7f960660..9767d4f5fb 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -271,8 +271,8 @@ void finalize_navigation_server() {
void Main::print_help(const char *p_binary) {
print_line(String(VERSION_NAME) + " v" + get_full_version_string() + " - " + String(VERSION_WEBSITE));
OS::get_singleton()->print("Free and open source software under the terms of the MIT license.\n");
- OS::get_singleton()->print("(c) 2007-2021 Juan Linietsky, Ariel Manzur.\n");
- OS::get_singleton()->print("(c) 2014-2021 Godot Engine contributors.\n");
+ OS::get_singleton()->print("(c) 2007-2022 Juan Linietsky, Ariel Manzur.\n");
+ OS::get_singleton()->print("(c) 2014-2022 Godot Engine contributors.\n");
OS::get_singleton()->print("\n");
OS::get_singleton()->print("Usage: %s [options] [path to scene or 'project.godot' file]\n", p_binary);
OS::get_singleton()->print("\n");
@@ -350,7 +350,7 @@ void Main::print_help(const char *p_binary) {
OS::get_singleton()->print(" -b, --breakpoints Breakpoint list as source::line comma-separated pairs, no spaces (use %%20 instead).\n");
OS::get_singleton()->print(" --profiling Enable profiling in the script debugger.\n");
OS::get_singleton()->print(" --vk-layers Enable Vulkan Validation layers for debugging.\n");
-#if DEBUG_ENABLED
+#ifdef DEBUG_ENABLED
OS::get_singleton()->print(" --gpu-abort Abort on GPU errors (usually validation layer errors), may help see the problem if your system freezes.\n");
#endif
OS::get_singleton()->print(" --remote-debug <uri> Remote debug (<protocol>://<host/IP>[:<port>], e.g. tcp://127.0.0.1:6007).\n");
diff --git a/main/main.h b/main/main.h
index 4911ff42b4..9728d8a5aa 100644
--- a/main/main.h
+++ b/main/main.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/main/main_timer_sync.cpp b/main/main_timer_sync.cpp
index 42023e5a2f..6c0afcad3a 100644
--- a/main/main_timer_sync.cpp
+++ b/main/main_timer_sync.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/main/main_timer_sync.h b/main/main_timer_sync.h
index d0ebcb8f96..05c77fb2f5 100644
--- a/main/main_timer_sync.h
+++ b/main/main_timer_sync.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/main/performance.cpp b/main/performance.cpp
index f9ff34c05d..e80906b4a7 100644
--- a/main/performance.cpp
+++ b/main/performance.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/main/performance.h b/main/performance.h
index 4653051ebb..927b5b0389 100644
--- a/main/performance.h
+++ b/main/performance.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/misc/dist/ios_xcode/godot_ios/dummy.cpp b/misc/dist/ios_xcode/godot_ios/dummy.cpp
index acbf7f03d1..de5b02dc99 100644
--- a/misc/dist/ios_xcode/godot_ios/dummy.cpp
+++ b/misc/dist/ios_xcode/godot_ios/dummy.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/misc/dist/linux/org.godotengine.Godot.appdata.xml b/misc/dist/linux/org.godotengine.Godot.appdata.xml
index d0fb17433a..af647bc866 100644
--- a/misc/dist/linux/org.godotengine.Godot.appdata.xml
+++ b/misc/dist/linux/org.godotengine.Godot.appdata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright 2017-2021 Rémi Verschelde <remi@godotengine.org> -->
+<!-- Copyright 2017-2022 Rémi Verschelde <remi@godotengine.org> -->
<component type="desktop">
<id>org.godotengine.Godot</id>
<metadata_license>CC0-1.0</metadata_license>
diff --git a/misc/dist/osx_tools.app/Contents/Info.plist b/misc/dist/osx_tools.app/Contents/Info.plist
index 923bc7312a..221c4b7a81 100644
--- a/misc/dist/osx_tools.app/Contents/Info.plist
+++ b/misc/dist/osx_tools.app/Contents/Info.plist
@@ -9,7 +9,7 @@
<key>CFBundleName</key>
<string>Godot</string>
<key>CFBundleGetInfoString</key>
- <string>(c) 2007-2021 Juan Linietsky, Ariel Manzur &amp; Godot Engine contributors</string>
+ <string>(c) 2007-2022 Juan Linietsky, Ariel Manzur &amp; Godot Engine contributors</string>
<key>CFBundleIconFile</key>
<string>Godot.icns</string>
<key>CFBundleIdentifier</key>
@@ -31,7 +31,7 @@
<key>NSRequiresAquaSystemAppearance</key>
<false/>
<key>NSHumanReadableCopyright</key>
- <string>© 2007-2021 Juan Linietsky, Ariel Manzur &amp; Godot Engine contributors</string>
+ <string>© 2007-2022 Juan Linietsky, Ariel Manzur &amp; Godot Engine contributors</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
diff --git a/misc/dist/shell/_godot.zsh-completion b/misc/dist/shell/_godot.zsh-completion
index 8f42c3a1a2..ba386b55cc 100644
--- a/misc/dist/shell/_godot.zsh-completion
+++ b/misc/dist/shell/_godot.zsh-completion
@@ -4,8 +4,8 @@
# To use it, install this file as `_godot` in a directory specified in your
# `fpath` environment variable then restart your shell.
#
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
diff --git a/misc/dist/shell/godot.bash-completion b/misc/dist/shell/godot.bash-completion
index 0a31c545e1..218fbd81b1 100644
--- a/misc/dist/shell/godot.bash-completion
+++ b/misc/dist/shell/godot.bash-completion
@@ -4,8 +4,8 @@
# To use it, install this file in `/etc/bash_completion.d` then restart your shell.
# You can also `source` this file directly in your shell startup file.
#
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
diff --git a/misc/dist/shell/godot.fish b/misc/dist/shell/godot.fish
index b44762c4ab..2a6b18ed8f 100644
--- a/misc/dist/shell/godot.fish
+++ b/misc/dist/shell/godot.fish
@@ -2,8 +2,8 @@
# To use it, install this file in `~/.config/fish/completions` then restart your shell.
# You can also `source` this file directly in your shell startup file.
#
-# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
-# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
+# Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
diff --git a/misc/scripts/copyright_headers.py b/misc/scripts/copyright_headers.py
index 2f3e4a1b6a..cf3adbfbfa 100755
--- a/misc/scripts/copyright_headers.py
+++ b/misc/scripts/copyright_headers.py
@@ -11,8 +11,8 @@ header = """\
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/misc/scripts/file_format.sh b/misc/scripts/file_format.sh
index b241f3da70..e66bc88bc0 100755
--- a/misc/scripts/file_format.sh
+++ b/misc/scripts/file_format.sh
@@ -20,6 +20,8 @@ while IFS= read -rd '' f; do
continue
elif [[ "$f" == *"sln" ]]; then
continue
+ elif [[ "$f" == *".bat" ]]; then
+ continue
elif [[ "$f" == *".out" ]]; then
# GDScript integration testing files.
continue
diff --git a/modules/basis_universal/register_types.cpp b/modules/basis_universal/register_types.cpp
index d2105d7c5d..12f9c6fc00 100644
--- a/modules/basis_universal/register_types.cpp
+++ b/modules/basis_universal/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/basis_universal/register_types.h b/modules/basis_universal/register_types.h
index 30b465e344..7275c2ebb7 100644
--- a/modules/basis_universal/register_types.h
+++ b/modules/basis_universal/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/basis_universal/texture_basisu.cpp b/modules/basis_universal/texture_basisu.cpp
index 9e917420ce..1ac4df8d19 100644
--- a/modules/basis_universal/texture_basisu.cpp
+++ b/modules/basis_universal/texture_basisu.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/basis_universal/texture_basisu.h b/modules/basis_universal/texture_basisu.h
index 3316035404..8c8be68254 100644
--- a/modules/basis_universal/texture_basisu.h
+++ b/modules/basis_universal/texture_basisu.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bmp/image_loader_bmp.cpp b/modules/bmp/image_loader_bmp.cpp
index 3d47055247..ad2c7d6a3e 100644
--- a/modules/bmp/image_loader_bmp.cpp
+++ b/modules/bmp/image_loader_bmp.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bmp/image_loader_bmp.h b/modules/bmp/image_loader_bmp.h
index 379e971458..9c9a16a9f5 100644
--- a/modules/bmp/image_loader_bmp.h
+++ b/modules/bmp/image_loader_bmp.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bmp/register_types.cpp b/modules/bmp/register_types.cpp
index d36ce9cdaf..13e44099e5 100644
--- a/modules/bmp/register_types.cpp
+++ b/modules/bmp/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bmp/register_types.h b/modules/bmp/register_types.h
index 3ce81eba1b..1e53f4c2f7 100644
--- a/modules/bmp/register_types.h
+++ b/modules/bmp/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/area_bullet.cpp b/modules/bullet/area_bullet.cpp
index 10a71d65df..d17e880fc0 100644
--- a/modules/bullet/area_bullet.cpp
+++ b/modules/bullet/area_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/area_bullet.h b/modules/bullet/area_bullet.h
index 3bff364cc1..caf81ef1be 100644
--- a/modules/bullet/area_bullet.h
+++ b/modules/bullet/area_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/btRayShape.cpp b/modules/bullet/btRayShape.cpp
index 109854c9dd..e67c9baacd 100644
--- a/modules/bullet/btRayShape.cpp
+++ b/modules/bullet/btRayShape.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/btRayShape.h b/modules/bullet/btRayShape.h
index 330755aa31..5d0a05b369 100644
--- a/modules/bullet/btRayShape.h
+++ b/modules/bullet/btRayShape.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/bullet_physics_server.cpp b/modules/bullet/bullet_physics_server.cpp
index 684a20cf4d..9bf3e186ee 100644
--- a/modules/bullet/bullet_physics_server.cpp
+++ b/modules/bullet/bullet_physics_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/bullet_physics_server.h b/modules/bullet/bullet_physics_server.h
index 94635b5bfc..5840eff815 100644
--- a/modules/bullet/bullet_physics_server.h
+++ b/modules/bullet/bullet_physics_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/bullet_types_converter.cpp b/modules/bullet/bullet_types_converter.cpp
index 01461767bd..571457f48f 100644
--- a/modules/bullet/bullet_types_converter.cpp
+++ b/modules/bullet/bullet_types_converter.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/bullet_types_converter.h b/modules/bullet/bullet_types_converter.h
index e184fe1769..b4d6dccc05 100644
--- a/modules/bullet/bullet_types_converter.h
+++ b/modules/bullet/bullet_types_converter.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/bullet_utilities.h b/modules/bullet/bullet_utilities.h
index a7c0fafbea..b832d3fc61 100644
--- a/modules/bullet/bullet_utilities.h
+++ b/modules/bullet/bullet_utilities.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/collision_object_bullet.cpp b/modules/bullet/collision_object_bullet.cpp
index cbb746800d..6bf01a63df 100644
--- a/modules/bullet/collision_object_bullet.cpp
+++ b/modules/bullet/collision_object_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/collision_object_bullet.h b/modules/bullet/collision_object_bullet.h
index 6d2c564e44..09be2d99d2 100644
--- a/modules/bullet/collision_object_bullet.h
+++ b/modules/bullet/collision_object_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/cone_twist_joint_bullet.cpp b/modules/bullet/cone_twist_joint_bullet.cpp
index 34516d8b3b..544d711259 100644
--- a/modules/bullet/cone_twist_joint_bullet.cpp
+++ b/modules/bullet/cone_twist_joint_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/cone_twist_joint_bullet.h b/modules/bullet/cone_twist_joint_bullet.h
index 7e51f7d644..ebb51868f4 100644
--- a/modules/bullet/cone_twist_joint_bullet.h
+++ b/modules/bullet/cone_twist_joint_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/constraint_bullet.cpp b/modules/bullet/constraint_bullet.cpp
index e610727685..5b4b0e75bc 100644
--- a/modules/bullet/constraint_bullet.cpp
+++ b/modules/bullet/constraint_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/constraint_bullet.h b/modules/bullet/constraint_bullet.h
index 6afd8c9b52..5e63d7a1b5 100644
--- a/modules/bullet/constraint_bullet.h
+++ b/modules/bullet/constraint_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/generic_6dof_joint_bullet.cpp b/modules/bullet/generic_6dof_joint_bullet.cpp
index 7e04d57b9d..01e1ecbdf6 100644
--- a/modules/bullet/generic_6dof_joint_bullet.cpp
+++ b/modules/bullet/generic_6dof_joint_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/generic_6dof_joint_bullet.h b/modules/bullet/generic_6dof_joint_bullet.h
index 00567e3085..b5d1db8fd6 100644
--- a/modules/bullet/generic_6dof_joint_bullet.h
+++ b/modules/bullet/generic_6dof_joint_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/godot_collision_configuration.cpp b/modules/bullet/godot_collision_configuration.cpp
index 94f150b712..0e872fa1c1 100644
--- a/modules/bullet/godot_collision_configuration.cpp
+++ b/modules/bullet/godot_collision_configuration.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/godot_collision_configuration.h b/modules/bullet/godot_collision_configuration.h
index 8ed55cb1da..3b1bc3a97d 100644
--- a/modules/bullet/godot_collision_configuration.h
+++ b/modules/bullet/godot_collision_configuration.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/godot_collision_dispatcher.cpp b/modules/bullet/godot_collision_dispatcher.cpp
index 423166c408..c926462eda 100644
--- a/modules/bullet/godot_collision_dispatcher.cpp
+++ b/modules/bullet/godot_collision_dispatcher.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/godot_collision_dispatcher.h b/modules/bullet/godot_collision_dispatcher.h
index 77472a9432..77b8cee0a6 100644
--- a/modules/bullet/godot_collision_dispatcher.h
+++ b/modules/bullet/godot_collision_dispatcher.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/godot_motion_state.h b/modules/bullet/godot_motion_state.h
index ca17349130..a37fef9d90 100644
--- a/modules/bullet/godot_motion_state.h
+++ b/modules/bullet/godot_motion_state.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/godot_ray_world_algorithm.cpp b/modules/bullet/godot_ray_world_algorithm.cpp
index a8291d4ab4..3b7513916d 100644
--- a/modules/bullet/godot_ray_world_algorithm.cpp
+++ b/modules/bullet/godot_ray_world_algorithm.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/godot_ray_world_algorithm.h b/modules/bullet/godot_ray_world_algorithm.h
index 25798aecb4..f554108a75 100644
--- a/modules/bullet/godot_ray_world_algorithm.h
+++ b/modules/bullet/godot_ray_world_algorithm.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/godot_result_callbacks.cpp b/modules/bullet/godot_result_callbacks.cpp
index edb2bcb4c7..d4b6e90117 100644
--- a/modules/bullet/godot_result_callbacks.cpp
+++ b/modules/bullet/godot_result_callbacks.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/godot_result_callbacks.h b/modules/bullet/godot_result_callbacks.h
index 3dfa21aec8..94be993212 100644
--- a/modules/bullet/godot_result_callbacks.h
+++ b/modules/bullet/godot_result_callbacks.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/hinge_joint_bullet.cpp b/modules/bullet/hinge_joint_bullet.cpp
index b5fe50cf5f..116d8caba7 100644
--- a/modules/bullet/hinge_joint_bullet.cpp
+++ b/modules/bullet/hinge_joint_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/hinge_joint_bullet.h b/modules/bullet/hinge_joint_bullet.h
index dd0f69ba68..7b87576442 100644
--- a/modules/bullet/hinge_joint_bullet.h
+++ b/modules/bullet/hinge_joint_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/joint_bullet.cpp b/modules/bullet/joint_bullet.cpp
index ac371658f5..65a891e890 100644
--- a/modules/bullet/joint_bullet.cpp
+++ b/modules/bullet/joint_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/joint_bullet.h b/modules/bullet/joint_bullet.h
index 5bb8b50961..75f6055b2f 100644
--- a/modules/bullet/joint_bullet.h
+++ b/modules/bullet/joint_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/pin_joint_bullet.cpp b/modules/bullet/pin_joint_bullet.cpp
index 8e8ff57f11..03853cc830 100644
--- a/modules/bullet/pin_joint_bullet.cpp
+++ b/modules/bullet/pin_joint_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/pin_joint_bullet.h b/modules/bullet/pin_joint_bullet.h
index 6fbb6f7e02..0510cf99ad 100644
--- a/modules/bullet/pin_joint_bullet.h
+++ b/modules/bullet/pin_joint_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/register_types.cpp b/modules/bullet/register_types.cpp
index b5ad5749a6..675a5c8491 100644
--- a/modules/bullet/register_types.cpp
+++ b/modules/bullet/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/register_types.h b/modules/bullet/register_types.h
index e405996705..739614dc52 100644
--- a/modules/bullet/register_types.h
+++ b/modules/bullet/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/rid_bullet.h b/modules/bullet/rid_bullet.h
index face6b4861..982654441e 100644
--- a/modules/bullet/rid_bullet.h
+++ b/modules/bullet/rid_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/rigid_body_bullet.cpp b/modules/bullet/rigid_body_bullet.cpp
index 4faab19539..0112712736 100644
--- a/modules/bullet/rigid_body_bullet.cpp
+++ b/modules/bullet/rigid_body_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/rigid_body_bullet.h b/modules/bullet/rigid_body_bullet.h
index 01ac1e4836..f41c5ca1c9 100644
--- a/modules/bullet/rigid_body_bullet.h
+++ b/modules/bullet/rigid_body_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/shape_bullet.cpp b/modules/bullet/shape_bullet.cpp
index ec039ba842..2b2a7dd8f1 100644
--- a/modules/bullet/shape_bullet.cpp
+++ b/modules/bullet/shape_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/shape_bullet.h b/modules/bullet/shape_bullet.h
index 0822399b5e..93e9bed201 100644
--- a/modules/bullet/shape_bullet.h
+++ b/modules/bullet/shape_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/shape_owner_bullet.cpp b/modules/bullet/shape_owner_bullet.cpp
index ea8821eaec..7f516e83c0 100644
--- a/modules/bullet/shape_owner_bullet.cpp
+++ b/modules/bullet/shape_owner_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/shape_owner_bullet.h b/modules/bullet/shape_owner_bullet.h
index 4bd583e096..5f8bb61503 100644
--- a/modules/bullet/shape_owner_bullet.h
+++ b/modules/bullet/shape_owner_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/slider_joint_bullet.cpp b/modules/bullet/slider_joint_bullet.cpp
index 1d83118468..a3190609a1 100644
--- a/modules/bullet/slider_joint_bullet.cpp
+++ b/modules/bullet/slider_joint_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/slider_joint_bullet.h b/modules/bullet/slider_joint_bullet.h
index 0c93558449..556f4e9e64 100644
--- a/modules/bullet/slider_joint_bullet.h
+++ b/modules/bullet/slider_joint_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/soft_body_bullet.cpp b/modules/bullet/soft_body_bullet.cpp
index c0ffffa364..ea5a059b9e 100644
--- a/modules/bullet/soft_body_bullet.cpp
+++ b/modules/bullet/soft_body_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/soft_body_bullet.h b/modules/bullet/soft_body_bullet.h
index 84da56ae69..fea26e9449 100644
--- a/modules/bullet/soft_body_bullet.h
+++ b/modules/bullet/soft_body_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/space_bullet.cpp b/modules/bullet/space_bullet.cpp
index 0c7e5eccf0..55e822ba5a 100644
--- a/modules/bullet/space_bullet.cpp
+++ b/modules/bullet/space_bullet.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/bullet/space_bullet.h b/modules/bullet/space_bullet.h
index cf8549030d..154bb6f01b 100644
--- a/modules/bullet/space_bullet.h
+++ b/modules/bullet/space_bullet.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/camera/camera_osx.h b/modules/camera/camera_osx.h
index 84274f0bf6..9d67235839 100644
--- a/modules/camera/camera_osx.h
+++ b/modules/camera/camera_osx.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/camera/camera_osx.mm b/modules/camera/camera_osx.mm
index 6def813e5c..391006bfc2 100644
--- a/modules/camera/camera_osx.mm
+++ b/modules/camera/camera_osx.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -231,7 +231,7 @@ void CameraFeedOSX::set_device(AVCaptureDevice *p_device) {
// get some info
NSString *device_name = p_device.localizedName;
- name = device_name.UTF8String;
+ name = String::utf8(device_name.UTF8String);
position = CameraFeed::FEED_UNSPECIFIED;
if ([p_device position] == AVCaptureDevicePositionBack) {
position = CameraFeed::FEED_BACK;
diff --git a/modules/camera/camera_win.cpp b/modules/camera/camera_win.cpp
index 226a642dcf..ab7cfec01a 100644
--- a/modules/camera/camera_win.cpp
+++ b/modules/camera/camera_win.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/camera/camera_win.h b/modules/camera/camera_win.h
index 671e7d5beb..9563326acb 100644
--- a/modules/camera/camera_win.h
+++ b/modules/camera/camera_win.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/camera/register_types.cpp b/modules/camera/register_types.cpp
index 0d33ff9ddc..b0b1276436 100644
--- a/modules/camera/register_types.cpp
+++ b/modules/camera/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/camera/register_types.h b/modules/camera/register_types.h
index 0ae9aa2c0b..5ee7aec886 100644
--- a/modules/camera/register_types.h
+++ b/modules/camera/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/csg/csg.cpp b/modules/csg/csg.cpp
index a70e153abd..82dc4a4175 100644
--- a/modules/csg/csg.cpp
+++ b/modules/csg/csg.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/csg/csg.h b/modules/csg/csg.h
index b1fe933268..9ff7b13a44 100644
--- a/modules/csg/csg.h
+++ b/modules/csg/csg.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/csg/csg_gizmos.cpp b/modules/csg/csg_gizmos.cpp
index 2f8b354bb7..f6e09067d2 100644
--- a/modules/csg/csg_gizmos.cpp
+++ b/modules/csg/csg_gizmos.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -343,6 +343,16 @@ void CSGShape3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
p_gizmo->add_lines(lines, material);
p_gizmo->add_collision_segments(lines);
+ Array csg_meshes = cs->get_meshes();
+ if (csg_meshes.size() != 2) {
+ return;
+ }
+
+ Ref<Mesh> csg_mesh = csg_meshes[1];
+ if (csg_mesh.is_valid()) {
+ p_gizmo->add_collision_triangles(csg_mesh->generate_triangle_mesh());
+ }
+
if (p_gizmo->is_selected()) {
// Draw a translucent representation of the CSG node
Ref<ArrayMesh> mesh = memnew(ArrayMesh);
diff --git a/modules/csg/csg_gizmos.h b/modules/csg/csg_gizmos.h
index 2a6ab91102..1dcee642c7 100644
--- a/modules/csg/csg_gizmos.h
+++ b/modules/csg/csg_gizmos.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/csg/csg_shape.cpp b/modules/csg/csg_shape.cpp
index b9be7535dc..41b4682c84 100644
--- a/modules/csg/csg_shape.cpp
+++ b/modules/csg/csg_shape.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1760,7 +1760,7 @@ CSGBrush *CSGPolygon3D::_build_brush() {
}
int face_count = extrusions * extrusion_face_count + end_count * shape_face_count;
- // Intialize variables used to create the mesh.
+ // Initialize variables used to create the mesh.
Ref<Material> material = get_material();
Vector<Vector3> faces;
diff --git a/modules/csg/csg_shape.h b/modules/csg/csg_shape.h
index c85cce776b..eed995a40e 100644
--- a/modules/csg/csg_shape.h
+++ b/modules/csg/csg_shape.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/csg/register_types.cpp b/modules/csg/register_types.cpp
index a47390c2b2..f01907bef3 100644
--- a/modules/csg/register_types.cpp
+++ b/modules/csg/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/csg/register_types.h b/modules/csg/register_types.h
index 8747b3fade..59d84dd52a 100644
--- a/modules/csg/register_types.h
+++ b/modules/csg/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/cvtt/image_compress_cvtt.cpp b/modules/cvtt/image_compress_cvtt.cpp
index 3beca3d12a..9e0579740b 100644
--- a/modules/cvtt/image_compress_cvtt.cpp
+++ b/modules/cvtt/image_compress_cvtt.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/cvtt/image_compress_cvtt.h b/modules/cvtt/image_compress_cvtt.h
index bef5653fa9..a8dbe1d929 100644
--- a/modules/cvtt/image_compress_cvtt.h
+++ b/modules/cvtt/image_compress_cvtt.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/cvtt/register_types.cpp b/modules/cvtt/register_types.cpp
index 055b5dc6e3..13903f700b 100644
--- a/modules/cvtt/register_types.cpp
+++ b/modules/cvtt/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/cvtt/register_types.h b/modules/cvtt/register_types.h
index e62e8c0e9a..9cbca75c7b 100644
--- a/modules/cvtt/register_types.h
+++ b/modules/cvtt/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/dds/register_types.cpp b/modules/dds/register_types.cpp
index 60282c3f36..15a93050ee 100644
--- a/modules/dds/register_types.cpp
+++ b/modules/dds/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/dds/register_types.h b/modules/dds/register_types.h
index b84bcd06c8..d676346e02 100644
--- a/modules/dds/register_types.h
+++ b/modules/dds/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/dds/texture_loader_dds.cpp b/modules/dds/texture_loader_dds.cpp
index fced61a600..c422c3bd6b 100644
--- a/modules/dds/texture_loader_dds.cpp
+++ b/modules/dds/texture_loader_dds.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/dds/texture_loader_dds.h b/modules/dds/texture_loader_dds.h
index cf93156423..25ded4e168 100644
--- a/modules/dds/texture_loader_dds.h
+++ b/modules/dds/texture_loader_dds.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/denoise/denoise_wrapper.cpp b/modules/denoise/denoise_wrapper.cpp
index e71fce5958..ef97c1a184 100644
--- a/modules/denoise/denoise_wrapper.cpp
+++ b/modules/denoise/denoise_wrapper.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/denoise/denoise_wrapper.h b/modules/denoise/denoise_wrapper.h
index 25e342bc93..44e61ce31d 100644
--- a/modules/denoise/denoise_wrapper.h
+++ b/modules/denoise/denoise_wrapper.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/denoise/lightmap_denoiser.cpp b/modules/denoise/lightmap_denoiser.cpp
index 71dcc1d75f..a0dbd07b10 100644
--- a/modules/denoise/lightmap_denoiser.cpp
+++ b/modules/denoise/lightmap_denoiser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/denoise/lightmap_denoiser.h b/modules/denoise/lightmap_denoiser.h
index f1992a1733..452a7cae85 100644
--- a/modules/denoise/lightmap_denoiser.h
+++ b/modules/denoise/lightmap_denoiser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/denoise/register_types.cpp b/modules/denoise/register_types.cpp
index 936e5f604d..07393d0f5c 100644
--- a/modules/denoise/register_types.cpp
+++ b/modules/denoise/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/denoise/register_types.h b/modules/denoise/register_types.h
index 516a91b134..6ce386dc5d 100644
--- a/modules/denoise/register_types.h
+++ b/modules/denoise/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/enet/doc_classes/ENetConnection.xml b/modules/enet/doc_classes/ENetConnection.xml
index fcdf282a7d..d6b0553eba 100644
--- a/modules/enet/doc_classes/ENetConnection.xml
+++ b/modules/enet/doc_classes/ENetConnection.xml
@@ -50,7 +50,7 @@
<argument index="2" name="channels" type="int" default="0" />
<argument index="3" name="data" type="int" default="0" />
<description>
- Initiates a connection to a foreign [code]address[/code] using the specified [code]port[/code] and allocting the requested [code]channels[/code]. Optional [code]data[/code] can be passed during connection in the form of a 32 bit integer.
+ Initiates a connection to a foreign [code]address[/code] using the specified [code]port[/code] and allocating the requested [code]channels[/code]. Optional [code]data[/code] can be passed during connection in the form of a 32 bit integer.
[b]Note:[/b] You must call either [method create_host] or [method create_host_bound] before calling this method.
</description>
</method>
@@ -61,7 +61,7 @@
<argument index="2" name="in_bandwidth" type="int" default="0" />
<argument index="3" name="out_bandwidth" type="int" default="0" />
<description>
- Create an ENetHost that will allow up to [code]max_peers[/code] connected peers, each allocating up to [code]max_channels[/code] channels, optionally limiting bandwith to [code]in_bandwidth[/code] and [code]out_bandwidth[/code].
+ Create an ENetHost that will allow up to [code]max_peers[/code] connected peers, each allocating up to [code]max_channels[/code] channels, optionally limiting bandwidth to [code]in_bandwidth[/code] and [code]out_bandwidth[/code].
</description>
</method>
<method name="create_host_bound">
@@ -174,7 +174,7 @@
A connection request initiated by enet_host_connect has completed. The array will contain the peer which successfully connected.
</constant>
<constant name="EVENT_DISCONNECT" value="2" enum="EventType">
- A peer has disconnected. This event is generated on a successful completion of a disconnect initiated by [method ENetPacketPeer.peer_disconnect], if a peer has timed out, or if a connection request intialized by [method connect_to_host] has timed out. The array will contain the peer which disconnected. The data field contains user supplied data describing the disconnection, or 0, if none is available.
+ A peer has disconnected. This event is generated on a successful completion of a disconnect initiated by [method ENetPacketPeer.peer_disconnect], if a peer has timed out, or if a connection request initialized by [method connect_to_host] has timed out. The array will contain the peer which disconnected. The data field contains user supplied data describing the disconnection, or 0, if none is available.
</constant>
<constant name="EVENT_RECEIVE" value="3" enum="EventType">
A packet has been received from a peer. The array will contain the peer which sent the packet, the channel number upon which the packet was received, and the received packet.
diff --git a/modules/enet/doc_classes/ENetMultiplayerPeer.xml b/modules/enet/doc_classes/ENetMultiplayerPeer.xml
index d2456d3360..723149843a 100644
--- a/modules/enet/doc_classes/ENetMultiplayerPeer.xml
+++ b/modules/enet/doc_classes/ENetMultiplayerPeer.xml
@@ -62,7 +62,7 @@
<return type="ENetPacketPeer" />
<argument index="0" name="id" type="int" />
<description>
- Return the [ENetPacketPeer] associated to the given [code]id[/code].
+ Returns the [ENetPacketPeer] associated to the given [code]id[/code].
</description>
</method>
<method name="set_bind_ip">
diff --git a/modules/enet/enet_connection.cpp b/modules/enet/enet_connection.cpp
index 62f03b444b..629974d7c7 100644
--- a/modules/enet/enet_connection.cpp
+++ b/modules/enet/enet_connection.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/enet/enet_connection.h b/modules/enet/enet_connection.h
index bffda81906..0c873b6c55 100644
--- a/modules/enet/enet_connection.h
+++ b/modules/enet/enet_connection.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/enet/enet_multiplayer_peer.cpp b/modules/enet/enet_multiplayer_peer.cpp
index cb22d349f8..cd94cc9425 100644
--- a/modules/enet/enet_multiplayer_peer.cpp
+++ b/modules/enet/enet_multiplayer_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -107,7 +107,7 @@ Error ENetMultiplayerPeer::add_mesh_peer(int p_id, Ref<ENetConnection> p_host) {
ERR_FAIL_COND_V_MSG(active_mode != MODE_MESH, ERR_UNCONFIGURED, "The multiplayer instance is not configured as a mesh. Call 'create_mesh' first.");
List<Ref<ENetPacketPeer>> host_peers;
p_host->get_peers(host_peers);
- ERR_FAIL_COND_V_MSG(host_peers.size() != 1 || host_peers[0]->get_state() != ENetPacketPeer::STATE_CONNECTED, ERR_INVALID_PARAMETER, "The provided host must have excatly one peer in the connected state.");
+ ERR_FAIL_COND_V_MSG(host_peers.size() != 1 || host_peers[0]->get_state() != ENetPacketPeer::STATE_CONNECTED, ERR_INVALID_PARAMETER, "The provided host must have exactly one peer in the connected state.");
hosts[p_id] = p_host;
peers[p_id] = host_peers[0];
emit_signal(SNAME("peer_connected"), p_id);
diff --git a/modules/enet/enet_multiplayer_peer.h b/modules/enet/enet_multiplayer_peer.h
index abec1e432e..e7b61169fb 100644
--- a/modules/enet/enet_multiplayer_peer.h
+++ b/modules/enet/enet_multiplayer_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -103,7 +103,7 @@ public:
virtual void poll() override;
virtual bool is_server() const override;
- // Overriden so we can instrument the DTLSServer when needed.
+ // Overridden so we can instrument the DTLSServer when needed.
virtual void set_refuse_new_connections(bool p_enabled) override;
virtual ConnectionStatus get_connection_status() const override;
diff --git a/modules/enet/enet_packet_peer.cpp b/modules/enet/enet_packet_peer.cpp
index d7d2ec9ebe..62c0550edb 100644
--- a/modules/enet/enet_packet_peer.cpp
+++ b/modules/enet/enet_packet_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/enet/enet_packet_peer.h b/modules/enet/enet_packet_peer.h
index 9af004de2f..eaf70a276a 100644
--- a/modules/enet/enet_packet_peer.h
+++ b/modules/enet/enet_packet_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/enet/register_types.cpp b/modules/enet/register_types.cpp
index 7570f5b643..36a4e6e6e7 100644
--- a/modules/enet/register_types.cpp
+++ b/modules/enet/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/enet/register_types.h b/modules/enet/register_types.h
index 75f4cba61b..a94ecccc61 100644
--- a/modules/enet/register_types.h
+++ b/modules/enet/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/etcpak/image_compress_etcpak.cpp b/modules/etcpak/image_compress_etcpak.cpp
index aff7538fb6..c79d449d41 100644
--- a/modules/etcpak/image_compress_etcpak.cpp
+++ b/modules/etcpak/image_compress_etcpak.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/etcpak/image_compress_etcpak.h b/modules/etcpak/image_compress_etcpak.h
index ccf157fada..691528c235 100644
--- a/modules/etcpak/image_compress_etcpak.h
+++ b/modules/etcpak/image_compress_etcpak.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/etcpak/register_types.cpp b/modules/etcpak/register_types.cpp
index d57d2f747a..e835004406 100644
--- a/modules/etcpak/register_types.cpp
+++ b/modules/etcpak/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/etcpak/register_types.h b/modules/etcpak/register_types.h
index a9e10a4aae..30ce974d08 100644
--- a/modules/etcpak/register_types.h
+++ b/modules/etcpak/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/fbx_anim_container.h b/modules/fbx/data/fbx_anim_container.h
index 8c25d65871..6559add858 100644
--- a/modules/fbx/data/fbx_anim_container.h
+++ b/modules/fbx/data/fbx_anim_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/fbx_bone.cpp b/modules/fbx/data/fbx_bone.cpp
index 38dada33af..72aba20fd4 100644
--- a/modules/fbx/data/fbx_bone.cpp
+++ b/modules/fbx/data/fbx_bone.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/fbx_bone.h b/modules/fbx/data/fbx_bone.h
index 83918ad1e2..6c8f7f7cae 100644
--- a/modules/fbx/data/fbx_bone.h
+++ b/modules/fbx/data/fbx_bone.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/fbx_material.cpp b/modules/fbx/data/fbx_material.cpp
index 26c9ef8d54..bc638244d8 100644
--- a/modules/fbx/data/fbx_material.cpp
+++ b/modules/fbx/data/fbx_material.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/fbx_material.h b/modules/fbx/data/fbx_material.h
index 5fd4d9212b..e20b43561b 100644
--- a/modules/fbx/data/fbx_material.h
+++ b/modules/fbx/data/fbx_material.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/fbx_mesh_data.cpp b/modules/fbx/data/fbx_mesh_data.cpp
index e1eacc68b3..643a74f83e 100644
--- a/modules/fbx/data/fbx_mesh_data.cpp
+++ b/modules/fbx/data/fbx_mesh_data.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -167,7 +167,7 @@ ImporterMeshInstance3D *FBXMeshData::create_fbx_mesh(const ImportState &state, c
sanitize_vertex_weights(state);
- // Re organize polygon vertices to to correctly take into account strange
+ // Reorganize polygon vertices to correctly take into account strange
// UVs.
reorganize_vertices(
polygon_indices,
@@ -1092,7 +1092,7 @@ HashMap<int, R> FBXMeshData::extract_per_vertex_data(
const int vertex_index = get_vertex_from_polygon_vertex(p_mesh_indices, polygon_vertex_index);
ERR_FAIL_COND_V_MSG(vertex_index < 0, (HashMap<int, R>()), "FBX file corrupted: #ERR05");
ERR_FAIL_COND_V_MSG(vertex_index >= p_vertex_count, (HashMap<int, R>()), "FBX file corrupted: #ERR06");
- const int index_to_direct = p_mapping_data.index[polygon_vertex_index];
+ const int index_to_direct = get_vertex_from_polygon_vertex(p_mapping_data.index, polygon_vertex_index);
T value = p_mapping_data.data[index_to_direct];
aggregate_vertex_data[vertex_index].push_back({ polygon_id, value });
}
@@ -1297,7 +1297,7 @@ HashMap<int, T> FBXMeshData::extract_per_polygon(
} else {
ERR_FAIL_INDEX_V_MSG(polygon_index, (int)p_fbx_data.index.size(), (HashMap<int, T>()), "FBX file is corrupted: #ERR62");
- const int index_to_direct = p_fbx_data.index[polygon_index];
+ const int index_to_direct = get_vertex_from_polygon_vertex(p_fbx_data.index, polygon_index);
T value = p_fbx_data.data[index_to_direct];
aggregate_polygon_data[polygon_index].push_back(value);
}
diff --git a/modules/fbx/data/fbx_mesh_data.h b/modules/fbx/data/fbx_mesh_data.h
index eec7f38cd6..358d0c2cb6 100644
--- a/modules/fbx/data/fbx_mesh_data.h
+++ b/modules/fbx/data/fbx_mesh_data.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/fbx_node.h b/modules/fbx/data/fbx_node.h
index 75461e397d..7a4139dcdf 100644
--- a/modules/fbx/data/fbx_node.h
+++ b/modules/fbx/data/fbx_node.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/fbx_skeleton.cpp b/modules/fbx/data/fbx_skeleton.cpp
index 11eed2576f..0225df16af 100644
--- a/modules/fbx/data/fbx_skeleton.cpp
+++ b/modules/fbx/data/fbx_skeleton.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/fbx_skeleton.h b/modules/fbx/data/fbx_skeleton.h
index b6103df949..e615d0f5e3 100644
--- a/modules/fbx/data/fbx_skeleton.h
+++ b/modules/fbx/data/fbx_skeleton.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/import_state.h b/modules/fbx/data/import_state.h
index 9ba60eaacf..eff11e3bb8 100644
--- a/modules/fbx/data/import_state.h
+++ b/modules/fbx/data/import_state.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/model_abstraction.h b/modules/fbx/data/model_abstraction.h
index 528960ab49..4c3f81b163 100644
--- a/modules/fbx/data/model_abstraction.h
+++ b/modules/fbx/data/model_abstraction.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/pivot_transform.cpp b/modules/fbx/data/pivot_transform.cpp
index 4cf42257a4..9457b19a7f 100644
--- a/modules/fbx/data/pivot_transform.cpp
+++ b/modules/fbx/data/pivot_transform.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/data/pivot_transform.h b/modules/fbx/data/pivot_transform.h
index 099b268075..df97c8db57 100644
--- a/modules/fbx/data/pivot_transform.h
+++ b/modules/fbx/data/pivot_transform.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/editor_scene_importer_fbx.cpp b/modules/fbx/editor_scene_importer_fbx.cpp
index b11c145599..4cca907bf2 100644
--- a/modules/fbx/editor_scene_importer_fbx.cpp
+++ b/modules/fbx/editor_scene_importer_fbx.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -83,7 +83,7 @@ uint32_t EditorSceneFormatImporterFBX::get_import_flags() const {
return IMPORT_SCENE;
}
-Node3D *EditorSceneFormatImporterFBX::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps,
+Node3D *EditorSceneFormatImporterFBX::import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps,
List<String> *r_missing_deps, Error *r_err) {
// done for performance when re-importing lots of files when testing importer in verbose only!
if (OS::get_singleton()->is_stdout_verbose()) {
@@ -1468,3 +1468,8 @@ void EditorSceneFormatImporterFBX::BuildDocumentNodes(
}
}
}
+Ref<Animation> EditorSceneFormatImporterFBX::import_animation(const String &p_path,
+ uint32_t p_flags, const Map<StringName, Variant> &p_options,
+ int p_bake_fps) {
+ return Ref<Animation>();
+}
diff --git a/modules/fbx/editor_scene_importer_fbx.h b/modules/fbx/editor_scene_importer_fbx.h
index 7845e079c2..eebcb86409 100644
--- a/modules/fbx/editor_scene_importer_fbx.h
+++ b/modules/fbx/editor_scene_importer_fbx.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -127,7 +127,10 @@ public:
virtual void get_extensions(List<String> *r_extensions) const override;
virtual uint32_t get_import_flags() const override;
- virtual Node3D *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
+ virtual Node3D *import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
+ virtual Ref<Animation> import_animation(const String &p_path,
+ uint32_t p_flags, const Map<StringName, Variant> &p_options,
+ int p_bake_fps) override;
};
#endif // TOOLS_ENABLED
diff --git a/modules/fbx/fbx_parser/ByteSwapper.h b/modules/fbx/fbx_parser/ByteSwapper.h
index 08d38147d5..21c5557001 100644
--- a/modules/fbx/fbx_parser/ByteSwapper.h
+++ b/modules/fbx/fbx_parser/ByteSwapper.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXAnimation.cpp b/modules/fbx/fbx_parser/FBXAnimation.cpp
index 0fbff035fd..8c43aac8f6 100644
--- a/modules/fbx/fbx_parser/FBXAnimation.cpp
+++ b/modules/fbx/fbx_parser/FBXAnimation.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXBinaryTokenizer.cpp b/modules/fbx/fbx_parser/FBXBinaryTokenizer.cpp
index d6abcbb00a..f982e0ca4d 100644
--- a/modules/fbx/fbx_parser/FBXBinaryTokenizer.cpp
+++ b/modules/fbx/fbx_parser/FBXBinaryTokenizer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXCommon.h b/modules/fbx/fbx_parser/FBXCommon.h
index 611bf22d3b..d0d4790ba8 100644
--- a/modules/fbx/fbx_parser/FBXCommon.h
+++ b/modules/fbx/fbx_parser/FBXCommon.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXDeformer.cpp b/modules/fbx/fbx_parser/FBXDeformer.cpp
index 4220ba62a7..b888afd90e 100644
--- a/modules/fbx/fbx_parser/FBXDeformer.cpp
+++ b/modules/fbx/fbx_parser/FBXDeformer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXDocument.cpp b/modules/fbx/fbx_parser/FBXDocument.cpp
index 92c62e68b5..929272c972 100644
--- a/modules/fbx/fbx_parser/FBXDocument.cpp
+++ b/modules/fbx/fbx_parser/FBXDocument.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXDocument.h b/modules/fbx/fbx_parser/FBXDocument.h
index 539d633331..5bf280a1dc 100644
--- a/modules/fbx/fbx_parser/FBXDocument.h
+++ b/modules/fbx/fbx_parser/FBXDocument.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXDocumentUtil.cpp b/modules/fbx/fbx_parser/FBXDocumentUtil.cpp
index 4a33024969..4ee8a42b33 100644
--- a/modules/fbx/fbx_parser/FBXDocumentUtil.cpp
+++ b/modules/fbx/fbx_parser/FBXDocumentUtil.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXDocumentUtil.h b/modules/fbx/fbx_parser/FBXDocumentUtil.h
index 0489ce10ce..61c92dbc83 100644
--- a/modules/fbx/fbx_parser/FBXDocumentUtil.h
+++ b/modules/fbx/fbx_parser/FBXDocumentUtil.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXImportSettings.h b/modules/fbx/fbx_parser/FBXImportSettings.h
index bc22386957..fa93f275c2 100644
--- a/modules/fbx/fbx_parser/FBXImportSettings.h
+++ b/modules/fbx/fbx_parser/FBXImportSettings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXMaterial.cpp b/modules/fbx/fbx_parser/FBXMaterial.cpp
index bf8922267e..e4ee77e850 100644
--- a/modules/fbx/fbx_parser/FBXMaterial.cpp
+++ b/modules/fbx/fbx_parser/FBXMaterial.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXMeshGeometry.cpp b/modules/fbx/fbx_parser/FBXMeshGeometry.cpp
index 2bb634ea56..b3956af762 100644
--- a/modules/fbx/fbx_parser/FBXMeshGeometry.cpp
+++ b/modules/fbx/fbx_parser/FBXMeshGeometry.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXMeshGeometry.h b/modules/fbx/fbx_parser/FBXMeshGeometry.h
index 26fc1914d1..9f0242d233 100644
--- a/modules/fbx/fbx_parser/FBXMeshGeometry.h
+++ b/modules/fbx/fbx_parser/FBXMeshGeometry.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXModel.cpp b/modules/fbx/fbx_parser/FBXModel.cpp
index 03c9de0c35..625ee6237b 100644
--- a/modules/fbx/fbx_parser/FBXModel.cpp
+++ b/modules/fbx/fbx_parser/FBXModel.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXNodeAttribute.cpp b/modules/fbx/fbx_parser/FBXNodeAttribute.cpp
index 15184a0f5d..c8ea03adec 100644
--- a/modules/fbx/fbx_parser/FBXNodeAttribute.cpp
+++ b/modules/fbx/fbx_parser/FBXNodeAttribute.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXParseTools.h b/modules/fbx/fbx_parser/FBXParseTools.h
index b4003bbec5..37a7ccad2a 100644
--- a/modules/fbx/fbx_parser/FBXParseTools.h
+++ b/modules/fbx/fbx_parser/FBXParseTools.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXParser.cpp b/modules/fbx/fbx_parser/FBXParser.cpp
index dbc9a0e46d..d8ccb4179c 100644
--- a/modules/fbx/fbx_parser/FBXParser.cpp
+++ b/modules/fbx/fbx_parser/FBXParser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXParser.h b/modules/fbx/fbx_parser/FBXParser.h
index 27db18bf8a..c5e3f5bf6b 100644
--- a/modules/fbx/fbx_parser/FBXParser.h
+++ b/modules/fbx/fbx_parser/FBXParser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXPose.cpp b/modules/fbx/fbx_parser/FBXPose.cpp
index 6d80b85e38..738b9131b6 100644
--- a/modules/fbx/fbx_parser/FBXPose.cpp
+++ b/modules/fbx/fbx_parser/FBXPose.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXProperties.cpp b/modules/fbx/fbx_parser/FBXProperties.cpp
index b8c0f685ac..531f0743d6 100644
--- a/modules/fbx/fbx_parser/FBXProperties.cpp
+++ b/modules/fbx/fbx_parser/FBXProperties.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXProperties.h b/modules/fbx/fbx_parser/FBXProperties.h
index bfd27ac94e..4d74a1db17 100644
--- a/modules/fbx/fbx_parser/FBXProperties.h
+++ b/modules/fbx/fbx_parser/FBXProperties.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXTokenizer.cpp b/modules/fbx/fbx_parser/FBXTokenizer.cpp
index 81c5b128e8..bac3e6d5c4 100644
--- a/modules/fbx/fbx_parser/FBXTokenizer.cpp
+++ b/modules/fbx/fbx_parser/FBXTokenizer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXTokenizer.h b/modules/fbx/fbx_parser/FBXTokenizer.h
index 184d0fd894..789f8b5d9d 100644
--- a/modules/fbx/fbx_parser/FBXTokenizer.h
+++ b/modules/fbx/fbx_parser/FBXTokenizer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXUtil.cpp b/modules/fbx/fbx_parser/FBXUtil.cpp
index df46bd85c7..e4958547d4 100644
--- a/modules/fbx/fbx_parser/FBXUtil.cpp
+++ b/modules/fbx/fbx_parser/FBXUtil.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/fbx_parser/FBXUtil.h b/modules/fbx/fbx_parser/FBXUtil.h
index dab2a4201e..8022233029 100644
--- a/modules/fbx/fbx_parser/FBXUtil.h
+++ b/modules/fbx/fbx_parser/FBXUtil.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/register_types.cpp b/modules/fbx/register_types.cpp
index d5e520a060..3eafb4af45 100644
--- a/modules/fbx/register_types.cpp
+++ b/modules/fbx/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/register_types.h b/modules/fbx/register_types.h
index e5741afd72..6e3cc0dc46 100644
--- a/modules/fbx/register_types.h
+++ b/modules/fbx/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/tools/import_utils.cpp b/modules/fbx/tools/import_utils.cpp
index bb95d120af..5a49f24c00 100644
--- a/modules/fbx/tools/import_utils.cpp
+++ b/modules/fbx/tools/import_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/tools/import_utils.h b/modules/fbx/tools/import_utils.h
index 88c71fb87e..b52263c2ac 100644
--- a/modules/fbx/tools/import_utils.h
+++ b/modules/fbx/tools/import_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/tools/validation_tools.cpp b/modules/fbx/tools/validation_tools.cpp
index 9dbd8bf544..f775480e69 100644
--- a/modules/fbx/tools/validation_tools.cpp
+++ b/modules/fbx/tools/validation_tools.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/fbx/tools/validation_tools.h b/modules/fbx/tools/validation_tools.h
index 12d644ee94..69a2673197 100644
--- a/modules/fbx/tools/validation_tools.h
+++ b/modules/fbx/tools/validation_tools.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/freetype/register_types.cpp b/modules/freetype/register_types.cpp
index e4e6a4c146..28fd1a57c9 100644
--- a/modules/freetype/register_types.cpp
+++ b/modules/freetype/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/freetype/register_types.h b/modules/freetype/register_types.h
index 7a4f64b54b..c4eb241636 100644
--- a/modules/freetype/register_types.h
+++ b/modules/freetype/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/freetype/uwpdef.h b/modules/freetype/uwpdef.h
index f829edea67..05aaae61b5 100644
--- a/modules/freetype/uwpdef.h
+++ b/modules/freetype/uwpdef.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/android/android_gdn.cpp b/modules/gdnative/android/android_gdn.cpp
index fe3b3e7e12..7411fc4031 100644
--- a/modules/gdnative/android/android_gdn.cpp
+++ b/modules/gdnative/android/android_gdn.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative.cpp b/modules/gdnative/gdnative.cpp
index 9445fac1c6..3950ce1ade 100644
--- a/modules/gdnative/gdnative.cpp
+++ b/modules/gdnative/gdnative.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative.h b/modules/gdnative/gdnative.h
index 0cc6487ea4..8facd43743 100644
--- a/modules/gdnative/gdnative.h
+++ b/modules/gdnative/gdnative.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/aabb.cpp b/modules/gdnative/gdnative/aabb.cpp
index c42b874b4b..82aa7215b2 100644
--- a/modules/gdnative/gdnative/aabb.cpp
+++ b/modules/gdnative/gdnative/aabb.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/array.cpp b/modules/gdnative/gdnative/array.cpp
index 76e131dc06..31063e43c1 100644
--- a/modules/gdnative/gdnative/array.cpp
+++ b/modules/gdnative/gdnative/array.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/basis.cpp b/modules/gdnative/gdnative/basis.cpp
index 4641f0bacc..af7f9a2399 100644
--- a/modules/gdnative/gdnative/basis.cpp
+++ b/modules/gdnative/gdnative/basis.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/callable.cpp b/modules/gdnative/gdnative/callable.cpp
index 85274e5e22..7ae1038a13 100644
--- a/modules/gdnative/gdnative/callable.cpp
+++ b/modules/gdnative/gdnative/callable.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/color.cpp b/modules/gdnative/gdnative/color.cpp
index 502f89c027..8f13610b2c 100644
--- a/modules/gdnative/gdnative/color.cpp
+++ b/modules/gdnative/gdnative/color.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/dictionary.cpp b/modules/gdnative/gdnative/dictionary.cpp
index 2bfad6e695..dea01dad43 100644
--- a/modules/gdnative/gdnative/dictionary.cpp
+++ b/modules/gdnative/gdnative/dictionary.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/gdnative.cpp b/modules/gdnative/gdnative/gdnative.cpp
index e0de1a0505..8ba41b3224 100644
--- a/modules/gdnative/gdnative/gdnative.cpp
+++ b/modules/gdnative/gdnative/gdnative.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/node_path.cpp b/modules/gdnative/gdnative/node_path.cpp
index 57d67b9abb..3db705f550 100644
--- a/modules/gdnative/gdnative/node_path.cpp
+++ b/modules/gdnative/gdnative/node_path.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/packed_arrays.cpp b/modules/gdnative/gdnative/packed_arrays.cpp
index f03c94aeb8..bb6f0324a8 100644
--- a/modules/gdnative/gdnative/packed_arrays.cpp
+++ b/modules/gdnative/gdnative/packed_arrays.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/plane.cpp b/modules/gdnative/gdnative/plane.cpp
index 8b8e84e3c1..9ac5cfb3b7 100644
--- a/modules/gdnative/gdnative/plane.cpp
+++ b/modules/gdnative/gdnative/plane.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/quaternion.cpp b/modules/gdnative/gdnative/quaternion.cpp
index 62bcbbd382..b91e47e77e 100644
--- a/modules/gdnative/gdnative/quaternion.cpp
+++ b/modules/gdnative/gdnative/quaternion.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/rect2.cpp b/modules/gdnative/gdnative/rect2.cpp
index a196a63188..f4674850e3 100644
--- a/modules/gdnative/gdnative/rect2.cpp
+++ b/modules/gdnative/gdnative/rect2.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/rid.cpp b/modules/gdnative/gdnative/rid.cpp
index f8599afcf9..b40fa7c2c6 100644
--- a/modules/gdnative/gdnative/rid.cpp
+++ b/modules/gdnative/gdnative/rid.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/signal.cpp b/modules/gdnative/gdnative/signal.cpp
index 5963c0e6c6..8293aed439 100644
--- a/modules/gdnative/gdnative/signal.cpp
+++ b/modules/gdnative/gdnative/signal.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/string.cpp b/modules/gdnative/gdnative/string.cpp
index 1ad1ea8bdf..7a5d8c6703 100644
--- a/modules/gdnative/gdnative/string.cpp
+++ b/modules/gdnative/gdnative/string.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/string_name.cpp b/modules/gdnative/gdnative/string_name.cpp
index bd8f69674e..0bdacd2e5d 100644
--- a/modules/gdnative/gdnative/string_name.cpp
+++ b/modules/gdnative/gdnative/string_name.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/transform2d.cpp b/modules/gdnative/gdnative/transform2d.cpp
index 2864818831..45ba790dc1 100644
--- a/modules/gdnative/gdnative/transform2d.cpp
+++ b/modules/gdnative/gdnative/transform2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/transform_3d.cpp b/modules/gdnative/gdnative/transform_3d.cpp
index 8bd2a68d63..b47e8e69de 100644
--- a/modules/gdnative/gdnative/transform_3d.cpp
+++ b/modules/gdnative/gdnative/transform_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/variant.cpp b/modules/gdnative/gdnative/variant.cpp
index ec9aaa0a55..42fa77a174 100644
--- a/modules/gdnative/gdnative/variant.cpp
+++ b/modules/gdnative/gdnative/variant.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/vector2.cpp b/modules/gdnative/gdnative/vector2.cpp
index 6a01a7ad59..eb8ffd74cd 100644
--- a/modules/gdnative/gdnative/vector2.cpp
+++ b/modules/gdnative/gdnative/vector2.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative/vector3.cpp b/modules/gdnative/gdnative/vector3.cpp
index fb426c8ac4..26e94d7e5c 100644
--- a/modules/gdnative/gdnative/vector3.cpp
+++ b/modules/gdnative/gdnative/vector3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative_library_editor_plugin.cpp b/modules/gdnative/gdnative_library_editor_plugin.cpp
index df3c37f730..f94464826e 100644
--- a/modules/gdnative/gdnative_library_editor_plugin.cpp
+++ b/modules/gdnative/gdnative_library_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative_library_editor_plugin.h b/modules/gdnative/gdnative_library_editor_plugin.h
index 61afb1aaaa..27848893fa 100644
--- a/modules/gdnative/gdnative_library_editor_plugin.h
+++ b/modules/gdnative/gdnative_library_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative_library_singleton_editor.cpp b/modules/gdnative/gdnative_library_singleton_editor.cpp
index f1b4a9a81b..6eb412eccb 100644
--- a/modules/gdnative/gdnative_library_singleton_editor.cpp
+++ b/modules/gdnative/gdnative_library_singleton_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/gdnative_library_singleton_editor.h b/modules/gdnative/gdnative_library_singleton_editor.h
index 5bb823d920..16155723bc 100644
--- a/modules/gdnative/gdnative_library_singleton_editor.h
+++ b/modules/gdnative/gdnative_library_singleton_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/android/godot_android.h b/modules/gdnative/include/android/godot_android.h
index 867ef9e03a..859a85ae1e 100644
--- a/modules/gdnative/include/android/godot_android.h
+++ b/modules/gdnative/include/android/godot_android.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/aabb.h b/modules/gdnative/include/gdnative/aabb.h
index 860675065d..67818f61c8 100644
--- a/modules/gdnative/include/gdnative/aabb.h
+++ b/modules/gdnative/include/gdnative/aabb.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/array.h b/modules/gdnative/include/gdnative/array.h
index bf4b852449..cee641a7c5 100644
--- a/modules/gdnative/include/gdnative/array.h
+++ b/modules/gdnative/include/gdnative/array.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/basis.h b/modules/gdnative/include/gdnative/basis.h
index 5477dbf811..50c9aa6408 100644
--- a/modules/gdnative/include/gdnative/basis.h
+++ b/modules/gdnative/include/gdnative/basis.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/callable.h b/modules/gdnative/include/gdnative/callable.h
index 1d52ca7a68..db068d2ac7 100644
--- a/modules/gdnative/include/gdnative/callable.h
+++ b/modules/gdnative/include/gdnative/callable.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/color.h b/modules/gdnative/include/gdnative/color.h
index 3334013147..2d64a323f9 100644
--- a/modules/gdnative/include/gdnative/color.h
+++ b/modules/gdnative/include/gdnative/color.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/dictionary.h b/modules/gdnative/include/gdnative/dictionary.h
index b9525fb5e6..4219753f71 100644
--- a/modules/gdnative/include/gdnative/dictionary.h
+++ b/modules/gdnative/include/gdnative/dictionary.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/gdnative.h b/modules/gdnative/include/gdnative/gdnative.h
index d8c290f6bd..b46a00c185 100644
--- a/modules/gdnative/include/gdnative/gdnative.h
+++ b/modules/gdnative/include/gdnative/gdnative.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/math_defs.h b/modules/gdnative/include/gdnative/math_defs.h
index b5cf389506..dee027527e 100644
--- a/modules/gdnative/include/gdnative/math_defs.h
+++ b/modules/gdnative/include/gdnative/math_defs.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/node_path.h b/modules/gdnative/include/gdnative/node_path.h
index a4607c0152..46b693dcf6 100644
--- a/modules/gdnative/include/gdnative/node_path.h
+++ b/modules/gdnative/include/gdnative/node_path.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/packed_arrays.h b/modules/gdnative/include/gdnative/packed_arrays.h
index f9e4ba3a8d..f4935ee0dc 100644
--- a/modules/gdnative/include/gdnative/packed_arrays.h
+++ b/modules/gdnative/include/gdnative/packed_arrays.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/plane.h b/modules/gdnative/include/gdnative/plane.h
index 6cd0ed6307..e8f4f13b99 100644
--- a/modules/gdnative/include/gdnative/plane.h
+++ b/modules/gdnative/include/gdnative/plane.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/quaternion.h b/modules/gdnative/include/gdnative/quaternion.h
index 75754e6ab5..80e99c3a7c 100644
--- a/modules/gdnative/include/gdnative/quaternion.h
+++ b/modules/gdnative/include/gdnative/quaternion.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/rect2.h b/modules/gdnative/include/gdnative/rect2.h
index 326462be43..a901537fc4 100644
--- a/modules/gdnative/include/gdnative/rect2.h
+++ b/modules/gdnative/include/gdnative/rect2.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/rid.h b/modules/gdnative/include/gdnative/rid.h
index bc832fbeb9..f3013f36f0 100644
--- a/modules/gdnative/include/gdnative/rid.h
+++ b/modules/gdnative/include/gdnative/rid.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/signal.h b/modules/gdnative/include/gdnative/signal.h
index 41a76d0510..64aef1c918 100644
--- a/modules/gdnative/include/gdnative/signal.h
+++ b/modules/gdnative/include/gdnative/signal.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/string.h b/modules/gdnative/include/gdnative/string.h
index 79de52c80f..375e8f94c3 100644
--- a/modules/gdnative/include/gdnative/string.h
+++ b/modules/gdnative/include/gdnative/string.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/string_name.h b/modules/gdnative/include/gdnative/string_name.h
index 346f626e81..6f4d9c64fe 100644
--- a/modules/gdnative/include/gdnative/string_name.h
+++ b/modules/gdnative/include/gdnative/string_name.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/transform2d.h b/modules/gdnative/include/gdnative/transform2d.h
index 5acb172081..a083e61a2c 100644
--- a/modules/gdnative/include/gdnative/transform2d.h
+++ b/modules/gdnative/include/gdnative/transform2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/transform_3d.h b/modules/gdnative/include/gdnative/transform_3d.h
index 97ad451e9b..abd64a4d1d 100644
--- a/modules/gdnative/include/gdnative/transform_3d.h
+++ b/modules/gdnative/include/gdnative/transform_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/variant.h b/modules/gdnative/include/gdnative/variant.h
index a88bd2878a..b716fdaca1 100644
--- a/modules/gdnative/include/gdnative/variant.h
+++ b/modules/gdnative/include/gdnative/variant.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/variant_struct.h b/modules/gdnative/include/gdnative/variant_struct.h
index 321c76c206..cc75a8c498 100644
--- a/modules/gdnative/include/gdnative/variant_struct.h
+++ b/modules/gdnative/include/gdnative/variant_struct.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/vector2.h b/modules/gdnative/include/gdnative/vector2.h
index 00faffbad7..f5b55fd4ce 100644
--- a/modules/gdnative/include/gdnative/vector2.h
+++ b/modules/gdnative/include/gdnative/vector2.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/gdnative/vector3.h b/modules/gdnative/include/gdnative/vector3.h
index 7db093ce52..d52cd38a72 100644
--- a/modules/gdnative/include/gdnative/vector3.h
+++ b/modules/gdnative/include/gdnative/vector3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/nativescript/godot_nativescript.h b/modules/gdnative/include/nativescript/godot_nativescript.h
index bc53a4001d..eea898475b 100644
--- a/modules/gdnative/include/nativescript/godot_nativescript.h
+++ b/modules/gdnative/include/nativescript/godot_nativescript.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -146,7 +146,7 @@ typedef struct {
} godot_nativescript_method_argument;
typedef struct {
- // instance pointer, method data, user data, num args, args - return result as varaint
+ // instance pointer, method data, user data, num args, args - return result as variant
GDCALLINGCONV godot_variant (*method)(godot_object *, void *, void *, int, godot_variant **);
void *method_data;
GDCALLINGCONV void (*free_func)(void *);
diff --git a/modules/gdnative/include/pluginscript/godot_pluginscript.h b/modules/gdnative/include/pluginscript/godot_pluginscript.h
index 02ee4066d0..0042d79966 100644
--- a/modules/gdnative/include/pluginscript/godot_pluginscript.h
+++ b/modules/gdnative/include/pluginscript/godot_pluginscript.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/include/videodecoder/godot_videodecoder.h b/modules/gdnative/include/videodecoder/godot_videodecoder.h
index dc2cf5ec07..16daba0a67 100644
--- a/modules/gdnative/include/videodecoder/godot_videodecoder.h
+++ b/modules/gdnative/include/videodecoder/godot_videodecoder.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/nativescript/api_generator.cpp b/modules/gdnative/nativescript/api_generator.cpp
index ae16c22849..ddde28811c 100644
--- a/modules/gdnative/nativescript/api_generator.cpp
+++ b/modules/gdnative/nativescript/api_generator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/nativescript/api_generator.h b/modules/gdnative/nativescript/api_generator.h
index 611abb2a2d..58e141f07e 100644
--- a/modules/gdnative/nativescript/api_generator.h
+++ b/modules/gdnative/nativescript/api_generator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/nativescript/godot_nativescript.cpp b/modules/gdnative/nativescript/godot_nativescript.cpp
index dadd1a9d10..992eeba8f4 100644
--- a/modules/gdnative/nativescript/godot_nativescript.cpp
+++ b/modules/gdnative/nativescript/godot_nativescript.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/nativescript/nativescript.cpp b/modules/gdnative/nativescript/nativescript.cpp
index 075977b60f..be304a43f0 100644
--- a/modules/gdnative/nativescript/nativescript.cpp
+++ b/modules/gdnative/nativescript/nativescript.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/nativescript/nativescript.h b/modules/gdnative/nativescript/nativescript.h
index 2364c6c0f6..6c47d35abc 100644
--- a/modules/gdnative/nativescript/nativescript.h
+++ b/modules/gdnative/nativescript/nativescript.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/nativescript/register_types.cpp b/modules/gdnative/nativescript/register_types.cpp
index 82a3459517..ee63dca9a3 100644
--- a/modules/gdnative/nativescript/register_types.cpp
+++ b/modules/gdnative/nativescript/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/nativescript/register_types.h b/modules/gdnative/nativescript/register_types.h
index d12ac9eda3..ce6085f62a 100644
--- a/modules/gdnative/nativescript/register_types.h
+++ b/modules/gdnative/nativescript/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/pluginscript/pluginscript_instance.cpp b/modules/gdnative/pluginscript/pluginscript_instance.cpp
index feae81397e..9236aceb3e 100644
--- a/modules/gdnative/pluginscript/pluginscript_instance.cpp
+++ b/modules/gdnative/pluginscript/pluginscript_instance.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/pluginscript/pluginscript_instance.h b/modules/gdnative/pluginscript/pluginscript_instance.h
index 81e711bafc..09b051c008 100644
--- a/modules/gdnative/pluginscript/pluginscript_instance.h
+++ b/modules/gdnative/pluginscript/pluginscript_instance.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/pluginscript/pluginscript_language.cpp b/modules/gdnative/pluginscript/pluginscript_language.cpp
index 79aba342c9..0e068dec3a 100644
--- a/modules/gdnative/pluginscript/pluginscript_language.cpp
+++ b/modules/gdnative/pluginscript/pluginscript_language.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/pluginscript/pluginscript_language.h b/modules/gdnative/pluginscript/pluginscript_language.h
index 26ab4a95e3..6039f807a8 100644
--- a/modules/gdnative/pluginscript/pluginscript_language.h
+++ b/modules/gdnative/pluginscript/pluginscript_language.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/pluginscript/pluginscript_loader.cpp b/modules/gdnative/pluginscript/pluginscript_loader.cpp
index 462452a897..a151d551dc 100644
--- a/modules/gdnative/pluginscript/pluginscript_loader.cpp
+++ b/modules/gdnative/pluginscript/pluginscript_loader.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/pluginscript/pluginscript_loader.h b/modules/gdnative/pluginscript/pluginscript_loader.h
index e5d665c186..bcce742aea 100644
--- a/modules/gdnative/pluginscript/pluginscript_loader.h
+++ b/modules/gdnative/pluginscript/pluginscript_loader.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/pluginscript/pluginscript_script.cpp b/modules/gdnative/pluginscript/pluginscript_script.cpp
index 5bda9e1d53..71ab8ef0a2 100644
--- a/modules/gdnative/pluginscript/pluginscript_script.cpp
+++ b/modules/gdnative/pluginscript/pluginscript_script.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/pluginscript/pluginscript_script.h b/modules/gdnative/pluginscript/pluginscript_script.h
index 1a12a130d1..73c486f6d9 100644
--- a/modules/gdnative/pluginscript/pluginscript_script.h
+++ b/modules/gdnative/pluginscript/pluginscript_script.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/pluginscript/register_types.cpp b/modules/gdnative/pluginscript/register_types.cpp
index c4fbff69f0..39c8124c17 100644
--- a/modules/gdnative/pluginscript/register_types.cpp
+++ b/modules/gdnative/pluginscript/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/pluginscript/register_types.h b/modules/gdnative/pluginscript/register_types.h
index 2118f668e9..49e7357a98 100644
--- a/modules/gdnative/pluginscript/register_types.h
+++ b/modules/gdnative/pluginscript/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/register_types.cpp b/modules/gdnative/register_types.cpp
index a4ab5663ef..fb682beccc 100644
--- a/modules/gdnative/register_types.cpp
+++ b/modules/gdnative/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/register_types.h b/modules/gdnative/register_types.h
index 662c638442..0e1cb46a55 100644
--- a/modules/gdnative/register_types.h
+++ b/modules/gdnative/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/tests/test_variant.h b/modules/gdnative/tests/test_variant.h
index c506882283..fb6537cf42 100644
--- a/modules/gdnative/tests/test_variant.h
+++ b/modules/gdnative/tests/test_variant.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/videodecoder/register_types.cpp b/modules/gdnative/videodecoder/register_types.cpp
index 54a577a2b6..b28ff99bb8 100644
--- a/modules/gdnative/videodecoder/register_types.cpp
+++ b/modules/gdnative/videodecoder/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/videodecoder/register_types.h b/modules/gdnative/videodecoder/register_types.h
index 809225c925..b261c36503 100644
--- a/modules/gdnative/videodecoder/register_types.h
+++ b/modules/gdnative/videodecoder/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/videodecoder/video_stream_gdnative.cpp b/modules/gdnative/videodecoder/video_stream_gdnative.cpp
index e249363016..d3d295c494 100644
--- a/modules/gdnative/videodecoder/video_stream_gdnative.cpp
+++ b/modules/gdnative/videodecoder/video_stream_gdnative.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdnative/videodecoder/video_stream_gdnative.h b/modules/gdnative/videodecoder/video_stream_gdnative.h
index c605dbb433..b0a10242be 100644
--- a/modules/gdnative/videodecoder/video_stream_gdnative.h
+++ b/modules/gdnative/videodecoder/video_stream_gdnative.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/SCsub b/modules/gdscript/SCsub
index 5c8cbdf869..c6121ec7fe 100644
--- a/modules/gdscript/SCsub
+++ b/modules/gdscript/SCsub
@@ -21,3 +21,5 @@ if env["tools"]:
if env["tests"]:
env_gdscript.Append(CPPDEFINES=["TESTS_ENABLED"])
env_gdscript.add_source_files(env.modules_sources, "./tests/*.cpp")
+
+SConscript("editor_templates/SCsub")
diff --git a/modules/gdscript/editor/gdscript_highlighter.cpp b/modules/gdscript/editor/gdscript_highlighter.cpp
index 4f711dfd1e..6425123e63 100644
--- a/modules/gdscript/editor/gdscript_highlighter.cpp
+++ b/modules/gdscript/editor/gdscript_highlighter.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/editor/gdscript_highlighter.h b/modules/gdscript/editor/gdscript_highlighter.h
index 07f21b34ae..ac4995bee7 100644
--- a/modules/gdscript/editor/gdscript_highlighter.h
+++ b/modules/gdscript/editor/gdscript_highlighter.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/editor/gdscript_translation_parser_plugin.cpp b/modules/gdscript/editor/gdscript_translation_parser_plugin.cpp
index 9d0d91162c..a8f4483cf4 100644
--- a/modules/gdscript/editor/gdscript_translation_parser_plugin.cpp
+++ b/modules/gdscript/editor/gdscript_translation_parser_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/editor/gdscript_translation_parser_plugin.h b/modules/gdscript/editor/gdscript_translation_parser_plugin.h
index caa80fc24c..e7b40aa367 100644
--- a/modules/gdscript/editor/gdscript_translation_parser_plugin.h
+++ b/modules/gdscript/editor/gdscript_translation_parser_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/editor_templates/CharacterBody2D/basic_movement.gd b/modules/gdscript/editor_templates/CharacterBody2D/basic_movement.gd
new file mode 100644
index 0000000000..0824d894c5
--- /dev/null
+++ b/modules/gdscript/editor_templates/CharacterBody2D/basic_movement.gd
@@ -0,0 +1,29 @@
+# meta-description: Classic movement for gravity games (platformer, ...)
+
+extends _BASE_
+
+const SPEED: float = 300.0
+const JUMP_FORCE: float = -400.0
+
+# Get the gravity from the project settings to be synced with RigidDynamicBody nodes.
+var gravity: int = ProjectSettings.get_setting("physics/2d/default_gravity")
+
+
+func _physics_process(delta: float) -> void:
+ # Add the gravity.
+ if not is_on_floor():
+ motion_velocity.y += gravity * delta
+
+ # Handle Jump.
+ if Input.is_action_just_pressed("ui_accept") and is_on_floor():
+ motion_velocity.y = JUMP_FORCE
+
+ # Get the input direction and handle the movement/deceleration.
+ # As good practice, you should replace UI actions with custom gameplay actions.
+ var direction := Input.get_axis("ui_left", "ui_right")
+ if direction:
+ motion_velocity.x = direction * SPEED
+ else:
+ motion_velocity.x = move_toward(motion_velocity.x, 0, SPEED)
+
+ move_and_slide()
diff --git a/modules/gdscript/editor_templates/CharacterBody3D/basic_movement.gd b/modules/gdscript/editor_templates/CharacterBody3D/basic_movement.gd
new file mode 100644
index 0000000000..ce6d67ae84
--- /dev/null
+++ b/modules/gdscript/editor_templates/CharacterBody3D/basic_movement.gd
@@ -0,0 +1,32 @@
+# meta-description: Classic movement for gravity games (FPS, TPS, ...)
+
+extends _BASE_
+
+const SPEED: float = 5.0
+const JUMP_FORCE: float = 4.5
+
+# Get the gravity from the project settings to be synced with RigidDynamicBody nodes.
+var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
+
+
+func _physics_process(delta: float) -> void:
+ # Add the gravity.
+ if not is_on_floor():
+ motion_velocity.y -= gravity * delta
+
+ # Handle Jump.
+ if Input.is_action_just_pressed("ui_accept") and is_on_floor():
+ motion_velocity.y = JUMP_FORCE
+
+ # Get the input direction and handle the movement/deceleration.
+ # As good practice, you should replace UI actions with custom gameplay actions.
+ var input_dir := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
+ var direction := (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
+ if direction:
+ motion_velocity.x = direction.x * SPEED
+ motion_velocity.z = direction.z * SPEED
+ else:
+ motion_velocity.x = move_toward(motion_velocity.x, 0, SPEED)
+ motion_velocity.z = move_toward(motion_velocity.z, 0, SPEED)
+
+ move_and_slide()
diff --git a/modules/gdscript/editor_templates/EditorPlugin/plugin.gd b/modules/gdscript/editor_templates/EditorPlugin/plugin.gd
new file mode 100644
index 0000000000..8614bb8b17
--- /dev/null
+++ b/modules/gdscript/editor_templates/EditorPlugin/plugin.gd
@@ -0,0 +1,11 @@
+# meta-description: Basic plugin template
+@tool
+extends EditorPlugin
+
+func _enter_tree() -> void:
+ # Initialization of the plugin goes here.
+ pass
+
+func _exit_tree() -> void:
+ # Clean-up of the plugin goes here.
+ pass
diff --git a/modules/gdscript/editor_templates/EditorScript/basic_editor_script.gd b/modules/gdscript/editor_templates/EditorScript/basic_editor_script.gd
new file mode 100644
index 0000000000..fdb174c7ed
--- /dev/null
+++ b/modules/gdscript/editor_templates/EditorScript/basic_editor_script.gd
@@ -0,0 +1,7 @@
+# meta-description: Basic editor script template
+@tool
+extends EditorScript
+
+func _run() -> void:
+ # Called when the script is executed (using File -> Run in Script Editor).
+ pass
diff --git a/modules/gdscript/editor_templates/Node/default.gd b/modules/gdscript/editor_templates/Node/default.gd
new file mode 100644
index 0000000000..ee5c0b99cc
--- /dev/null
+++ b/modules/gdscript/editor_templates/Node/default.gd
@@ -0,0 +1,11 @@
+# meta-description: Base template for Node with default Godot cycle methods
+
+extends _BASE_
+
+# Called when the node enters the scene tree for the first time.
+func _ready() -> void:
+ pass # Replace with function body.
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+func _process(delta: float) -> void:
+ pass
diff --git a/modules/gdscript/editor_templates/Object/empty.gd b/modules/gdscript/editor_templates/Object/empty.gd
new file mode 100644
index 0000000000..387786b0a4
--- /dev/null
+++ b/modules/gdscript/editor_templates/Object/empty.gd
@@ -0,0 +1,3 @@
+# meta-description: Empty template suitable for all Objects
+
+extends _BASE_
diff --git a/modules/gdscript/editor_templates/SCsub b/modules/gdscript/editor_templates/SCsub
new file mode 100644
index 0000000000..2266ef2d01
--- /dev/null
+++ b/modules/gdscript/editor_templates/SCsub
@@ -0,0 +1,16 @@
+#!/usr/bin/env python
+
+Import("env")
+
+import editor.template_builders as build_template_gd
+
+env["BUILDERS"]["MakeGDTemplateBuilder"] = Builder(
+ action=env.Run(build_template_gd.make_templates, "Generating GDScript templates header."),
+ suffix=".h",
+ src_suffix=".gd",
+)
+
+# Template files
+templates_sources = Glob("*/*.gd")
+
+env.Alias("editor_template_gd", [env.MakeGDTemplateBuilder("templates.gen.h", templates_sources)])
diff --git a/modules/gdscript/editor_templates/VisualShaderNodeCustom/basic.gd b/modules/gdscript/editor_templates/VisualShaderNodeCustom/basic.gd
new file mode 100644
index 0000000000..27383b878d
--- /dev/null
+++ b/modules/gdscript/editor_templates/VisualShaderNodeCustom/basic.gd
@@ -0,0 +1,41 @@
+# meta-description: Visual shader's node plugin template
+
+@tool
+extends _BASE_
+class_name VisualShaderNode_CLASS_
+
+func _get_name() -> String:
+ return "_CLASS_"
+
+func _get_category() -> String:
+ return ""
+
+func _get_description() -> String:
+ return ""
+
+func _get_return_icon_type() -> int:
+ return PORT_TYPE_SCALAR
+
+func _get_input_port_count() -> int:
+ return 0
+
+func _get_input_port_name(port: int) -> String:
+ return ""
+
+func _get_input_port_type(port: int) -> int:
+ return PORT_TYPE_SCALAR
+
+func _get_output_port_count() -> int:
+ return 1
+
+func _get_output_port_name(port: int) -> String:
+ return "result"
+
+func _get_output_port_type(port: int) -> int:
+ return PORT_TYPE_SCALAR
+
+func _get_global_code(mode: Shader.Mode) -> String:
+ return ""
+
+func _get_code(input_vars: Array[String], output_vars: Array[String], mode: Shader.Mode, type: VisualShader.Type) -> String:
+ return output_vars[0] + " = 0.0;"
diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp
index 4822e411ce..6f7e913864 100644
--- a/modules/gdscript/gdscript.cpp
+++ b/modules/gdscript/gdscript.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -49,6 +49,10 @@
#include "tests/gdscript_test_runner.h"
#endif
+#ifdef TOOLS_ENABLED
+#include "editor/editor_settings.h"
+#endif
+
///////////////////////////
GDScriptNativeClass::GDScriptNativeClass(const StringName &p_name) {
@@ -817,10 +821,16 @@ Error GDScript::reload(bool p_keep_state) {
basedir = basedir.get_base_dir();
}
- if (source.find("%BASE%") != -1) {
- //loading a template, don't parse
+// Loading a template, don't parse.
+#ifdef TOOLS_ENABLED
+ if (basedir.begins_with(EditorSettings::get_singleton()->get_project_script_templates_dir())) {
return OK;
}
+#else
+ if (source.find("_BASE_") != -1) {
+ return OK;
+ }
+#endif
{
String source_path = path;
diff --git a/modules/gdscript/gdscript.h b/modules/gdscript/gdscript.h
index ade4f247c9..2b43e6d21b 100644
--- a/modules/gdscript/gdscript.h
+++ b/modules/gdscript/gdscript.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -396,7 +396,7 @@ public:
_debug_call_stack_pos--;
}
- virtual Vector<StackInfo> debug_get_current_stack_info() {
+ virtual Vector<StackInfo> debug_get_current_stack_info() override {
if (Thread::get_main_id() != Thread::get_caller_id()) {
return Vector<StackInfo>();
}
@@ -430,77 +430,76 @@ public:
_FORCE_INLINE_ static GDScriptLanguage *get_singleton() { return singleton; }
- virtual String get_name() const;
+ virtual String get_name() const override;
/* LANGUAGE FUNCTIONS */
- virtual void init();
- virtual String get_type() const;
- virtual String get_extension() const;
- virtual Error execute_file(const String &p_path);
- virtual void finish();
+ virtual void init() override;
+ virtual String get_type() const override;
+ virtual String get_extension() const override;
+ virtual Error execute_file(const String &p_path) override;
+ virtual void finish() override;
/* EDITOR FUNCTIONS */
- virtual void get_reserved_words(List<String> *p_words) const;
- virtual bool is_control_flow_keyword(String p_keywords) const;
- virtual void get_comment_delimiters(List<String> *p_delimiters) const;
- virtual void get_string_delimiters(List<String> *p_delimiters) const;
- virtual String _get_processed_template(const String &p_template, const String &p_base_class_name) const;
- virtual Ref<Script> get_template(const String &p_class_name, const String &p_base_class_name) const;
- virtual bool is_using_templates();
- virtual void make_template(const String &p_class_name, const String &p_base_class_name, Ref<Script> &p_script);
- virtual bool validate(const String &p_script, const String &p_path = "", List<String> *r_functions = nullptr, List<ScriptLanguage::ScriptError> *r_errors = nullptr, List<ScriptLanguage::Warning> *r_warnings = nullptr, Set<int> *r_safe_lines = nullptr) const;
- virtual Script *create_script() const;
- virtual bool has_named_classes() const;
- virtual bool supports_builtin_mode() const;
- virtual bool supports_documentation() const;
- virtual bool can_inherit_from_file() const { return true; }
- virtual int find_function(const String &p_function, const String &p_code) const;
- virtual String make_function(const String &p_class, const String &p_name, const PackedStringArray &p_args) const;
- virtual Error complete_code(const String &p_code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_forced, String &r_call_hint);
+ virtual void get_reserved_words(List<String> *p_words) const override;
+ virtual bool is_control_flow_keyword(String p_keywords) const override;
+ virtual void get_comment_delimiters(List<String> *p_delimiters) const override;
+ virtual void get_string_delimiters(List<String> *p_delimiters) const override;
+ virtual bool is_using_templates() override;
+ virtual Ref<Script> make_template(const String &p_template, const String &p_class_name, const String &p_base_class_name) const override;
+ virtual Vector<ScriptTemplate> get_built_in_templates(StringName p_object) override;
+ virtual bool validate(const String &p_script, const String &p_path = "", List<String> *r_functions = nullptr, List<ScriptLanguage::ScriptError> *r_errors = nullptr, List<ScriptLanguage::Warning> *r_warnings = nullptr, Set<int> *r_safe_lines = nullptr) const override;
+ virtual Script *create_script() const override;
+ virtual bool has_named_classes() const override;
+ virtual bool supports_builtin_mode() const override;
+ virtual bool supports_documentation() const override;
+ virtual bool can_inherit_from_file() const override { return true; }
+ virtual int find_function(const String &p_function, const String &p_code) const override;
+ virtual String make_function(const String &p_class, const String &p_name, const PackedStringArray &p_args) const override;
+ virtual Error complete_code(const String &p_code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_forced, String &r_call_hint) override;
#ifdef TOOLS_ENABLED
- virtual Error lookup_code(const String &p_code, const String &p_symbol, const String &p_path, Object *p_owner, LookupResult &r_result);
+ virtual Error lookup_code(const String &p_code, const String &p_symbol, const String &p_path, Object *p_owner, LookupResult &r_result) override;
#endif
virtual String _get_indentation() const;
- virtual void auto_indent_code(String &p_code, int p_from_line, int p_to_line) const;
- virtual void add_global_constant(const StringName &p_variable, const Variant &p_value);
- virtual void add_named_global_constant(const StringName &p_name, const Variant &p_value);
- virtual void remove_named_global_constant(const StringName &p_name);
+ virtual void auto_indent_code(String &p_code, int p_from_line, int p_to_line) const override;
+ virtual void add_global_constant(const StringName &p_variable, const Variant &p_value) override;
+ virtual void add_named_global_constant(const StringName &p_name, const Variant &p_value) override;
+ virtual void remove_named_global_constant(const StringName &p_name) override;
/* DEBUGGER FUNCTIONS */
- virtual String debug_get_error() const;
- virtual int debug_get_stack_level_count() const;
- virtual int debug_get_stack_level_line(int p_level) const;
- virtual String debug_get_stack_level_function(int p_level) const;
- virtual String debug_get_stack_level_source(int p_level) const;
- virtual void debug_get_stack_level_locals(int p_level, List<String> *p_locals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1);
- virtual void debug_get_stack_level_members(int p_level, List<String> *p_members, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1);
- virtual ScriptInstance *debug_get_stack_level_instance(int p_level);
- virtual void debug_get_globals(List<String> *p_globals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1);
- virtual String debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems = -1, int p_max_depth = -1);
+ virtual String debug_get_error() const override;
+ virtual int debug_get_stack_level_count() const override;
+ virtual int debug_get_stack_level_line(int p_level) const override;
+ virtual String debug_get_stack_level_function(int p_level) const override;
+ virtual String debug_get_stack_level_source(int p_level) const override;
+ virtual void debug_get_stack_level_locals(int p_level, List<String> *p_locals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1) override;
+ virtual void debug_get_stack_level_members(int p_level, List<String> *p_members, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1) override;
+ virtual ScriptInstance *debug_get_stack_level_instance(int p_level) override;
+ virtual void debug_get_globals(List<String> *p_globals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1) override;
+ virtual String debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems = -1, int p_max_depth = -1) override;
- virtual void reload_all_scripts();
- virtual void reload_tool_script(const Ref<Script> &p_script, bool p_soft_reload);
+ virtual void reload_all_scripts() override;
+ virtual void reload_tool_script(const Ref<Script> &p_script, bool p_soft_reload) override;
- virtual void frame();
+ virtual void frame() override;
- virtual void get_public_functions(List<MethodInfo> *p_functions) const;
- virtual void get_public_constants(List<Pair<String, Variant>> *p_constants) const;
+ virtual void get_public_functions(List<MethodInfo> *p_functions) const override;
+ virtual void get_public_constants(List<Pair<String, Variant>> *p_constants) const override;
- virtual void profiling_start();
- virtual void profiling_stop();
+ virtual void profiling_start() override;
+ virtual void profiling_stop() override;
- virtual int profiling_get_accumulated_data(ProfilingInfo *p_info_arr, int p_info_max);
- virtual int profiling_get_frame_data(ProfilingInfo *p_info_arr, int p_info_max);
+ virtual int profiling_get_accumulated_data(ProfilingInfo *p_info_arr, int p_info_max) override;
+ virtual int profiling_get_frame_data(ProfilingInfo *p_info_arr, int p_info_max) override;
/* LOADER FUNCTIONS */
- virtual void get_recognized_extensions(List<String> *p_extensions) const;
+ virtual void get_recognized_extensions(List<String> *p_extensions) const override;
/* GLOBAL CLASSES */
- virtual bool handles_global_class_type(const String &p_type) const;
- virtual String get_global_class_name(const String &p_path, String *r_base_type = nullptr, String *r_icon_path = nullptr) const;
+ virtual bool handles_global_class_type(const String &p_type) const override;
+ virtual String get_global_class_name(const String &p_path, String *r_base_type = nullptr, String *r_icon_path = nullptr) const override;
void add_orphan_subclass(const String &p_qualified_name, const ObjectID &p_subclass);
Ref<GDScript> get_orphan_subclass(const String &p_qualified_name);
diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp
index 7b64c0564e..0bf4f5e1f1 100644
--- a/modules/gdscript/gdscript_analyzer.cpp
+++ b/modules/gdscript/gdscript_analyzer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -881,12 +881,23 @@ void GDScriptAnalyzer::resolve_class_body(GDScriptParser::ClassNode *p_class) {
for (int i = 0; i < p_class->members.size(); i++) {
GDScriptParser::ClassNode::Member member = p_class->members[i];
if (member.type == GDScriptParser::ClassNode::Member::FUNCTION) {
- resolve_function_body(member.function);
-
// Apply annotations.
for (GDScriptParser::AnnotationNode *&E : member.function->annotations) {
E->apply(parser, member.function);
}
+
+#ifdef DEBUG_ENABLED
+ Set<uint32_t> previously_ignored = parser->ignored_warning_codes;
+ for (uint32_t ignored_warning : member.function->ignored_warnings) {
+ parser->ignored_warning_codes.insert(ignored_warning);
+ }
+#endif // DEBUG_ENABLED
+
+ resolve_function_body(member.function);
+
+#ifdef DEBUG_ENABLED
+ parser->ignored_warning_codes = previously_ignored;
+#endif // DEBUG_ENABLED
} else if (member.type == GDScriptParser::ClassNode::Member::VARIABLE && member.variable->property != GDScriptParser::VariableNode::PROP_NONE) {
if (member.variable->property == GDScriptParser::VariableNode::PROP_INLINE) {
if (member.variable->getter != nullptr) {
@@ -925,6 +936,10 @@ void GDScriptAnalyzer::resolve_class_body(GDScriptParser::ClassNode *p_class) {
GDScriptParser::ClassNode::Member member = p_class->members[i];
if (member.type == GDScriptParser::ClassNode::Member::VARIABLE) {
#ifdef DEBUG_ENABLED
+ Set<uint32_t> previously_ignored = parser->ignored_warning_codes;
+ for (uint32_t ignored_warning : member.function->ignored_warnings) {
+ parser->ignored_warning_codes.insert(ignored_warning);
+ }
if (member.variable->usages == 0 && String(member.variable->identifier->name).begins_with("_")) {
parser->push_warning(member.variable->identifier, GDScriptWarning::UNUSED_PRIVATE_CLASS_VARIABLE, member.variable->identifier->name);
}
@@ -992,6 +1007,9 @@ void GDScriptAnalyzer::resolve_class_body(GDScriptParser::ClassNode *p_class) {
push_error(vformat(R"(Getter with type "%s" cannot be used along with setter of type "%s".)", getter_function->datatype.to_string(), setter_function->parameters[0]->datatype.to_string()), member.variable);
}
}
+#ifdef DEBUG_ENABLED
+ parser->ignored_warning_codes = previously_ignored;
+#endif // DEBUG_ENABLED
}
}
}
@@ -1186,7 +1204,23 @@ void GDScriptAnalyzer::decide_suite_type(GDScriptParser::Node *p_suite, GDScript
void GDScriptAnalyzer::resolve_suite(GDScriptParser::SuiteNode *p_suite) {
for (int i = 0; i < p_suite->statements.size(); i++) {
GDScriptParser::Node *stmt = p_suite->statements[i];
+ for (GDScriptParser::AnnotationNode *&annotation : stmt->annotations) {
+ annotation->apply(parser, stmt);
+ }
+
+#ifdef DEBUG_ENABLED
+ Set<uint32_t> previously_ignored = parser->ignored_warning_codes;
+ for (uint32_t ignored_warning : stmt->ignored_warnings) {
+ parser->ignored_warning_codes.insert(ignored_warning);
+ }
+#endif // DEBUG_ENABLED
+
resolve_node(stmt);
+
+#ifdef DEBUG_ENABLED
+ parser->ignored_warning_codes = previously_ignored;
+#endif // DEBUG_ENABLED
+
decide_suite_type(p_suite, stmt);
}
}
diff --git a/modules/gdscript/gdscript_analyzer.h b/modules/gdscript/gdscript_analyzer.h
index ce4525190b..4cee5cb44a 100644
--- a/modules/gdscript/gdscript_analyzer.h
+++ b/modules/gdscript/gdscript_analyzer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_byte_codegen.cpp b/modules/gdscript/gdscript_byte_codegen.cpp
index 6a7e4278d2..8623122edc 100644
--- a/modules/gdscript/gdscript_byte_codegen.cpp
+++ b/modules/gdscript/gdscript_byte_codegen.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_byte_codegen.h b/modules/gdscript/gdscript_byte_codegen.h
index fbbf5802fd..db15dc55ef 100644
--- a/modules/gdscript/gdscript_byte_codegen.h
+++ b/modules/gdscript/gdscript_byte_codegen.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_cache.cpp b/modules/gdscript/gdscript_cache.cpp
index b91677d25c..4ac5a4a60e 100644
--- a/modules/gdscript/gdscript_cache.cpp
+++ b/modules/gdscript/gdscript_cache.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_cache.h b/modules/gdscript/gdscript_cache.h
index 9fb661d031..3ce976ee14 100644
--- a/modules/gdscript/gdscript_cache.h
+++ b/modules/gdscript/gdscript_cache.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_codegen.h b/modules/gdscript/gdscript_codegen.h
index e6ecc92d55..4542dd94ae 100644
--- a/modules/gdscript/gdscript_codegen.h
+++ b/modules/gdscript/gdscript_codegen.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_compiler.cpp b/modules/gdscript/gdscript_compiler.cpp
index ceb3555310..514721978b 100644
--- a/modules/gdscript/gdscript_compiler.cpp
+++ b/modules/gdscript/gdscript_compiler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2094,7 +2094,7 @@ GDScriptFunction *GDScriptCompiler::_parse_function(Error &r_error, GDScript *p_
if (p_func) {
// if no return statement -> return type is void not unresolved Variant
if (p_func->body->has_return) {
- gd_function->return_type = _gdtype_from_datatype(p_func->get_datatype());
+ gd_function->return_type = _gdtype_from_datatype(p_func->get_datatype(), p_script);
} else {
gd_function->return_type = GDScriptDataType();
gd_function->return_type.has_type = true;
diff --git a/modules/gdscript/gdscript_compiler.h b/modules/gdscript/gdscript_compiler.h
index 7d5bee93ac..8d71437344 100644
--- a/modules/gdscript/gdscript_compiler.h
+++ b/modules/gdscript/gdscript_compiler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_disassembler.cpp b/modules/gdscript/gdscript_disassembler.cpp
index 9287df2ea0..cc0be94a9e 100644
--- a/modules/gdscript/gdscript_disassembler.cpp
+++ b/modules/gdscript/gdscript_disassembler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp
index ec01c19295..9db76861ff 100644
--- a/modules/gdscript/gdscript_editor.cpp
+++ b/modules/gdscript/gdscript_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,6 +33,7 @@
#include "core/config/engine.h"
#include "core/core_constants.h"
#include "core/io/file_access.h"
+#include "editor_templates/templates.gen.h"
#include "gdscript_analyzer.h"
#include "gdscript_compiler.h"
#include "gdscript_parser.h"
@@ -55,68 +56,44 @@ void GDScriptLanguage::get_string_delimiters(List<String> *p_delimiters) const {
p_delimiters->push_back("\"\"\" \"\"\"");
}
-String GDScriptLanguage::_get_processed_template(const String &p_template, const String &p_base_class_name) const {
- String processed_template = p_template;
+bool GDScriptLanguage::is_using_templates() {
+ return true;
+}
+Ref<Script> GDScriptLanguage::make_template(const String &p_template, const String &p_class_name, const String &p_base_class_name) const {
+ Ref<GDScript> script;
+ script.instantiate();
+ String processed_template = p_template;
#ifdef TOOLS_ENABLED
- if (EDITOR_DEF("text_editor/completion/add_type_hints", false)) {
- processed_template = processed_template.replace("%INT_TYPE%", ": int");
- processed_template = processed_template.replace("%STRING_TYPE%", ": String");
- processed_template = processed_template.replace("%FLOAT_TYPE%", ": float");
- processed_template = processed_template.replace("%VOID_RETURN%", " -> void");
- } else {
- processed_template = processed_template.replace("%INT_TYPE%", "");
- processed_template = processed_template.replace("%STRING_TYPE%", "");
- processed_template = processed_template.replace("%FLOAT_TYPE%", "");
- processed_template = processed_template.replace("%VOID_RETURN%", "");
+ if (!EDITOR_DEF("text_editor/completion/add_type_hints", false)) {
+ processed_template = processed_template.replace(": int", "")
+ .replace(": String", "")
+ .replace(": float", "")
+ .replace(":=", "=")
+ .replace(" -> void", "");
}
#else
- processed_template = processed_template.replace("%INT_TYPE%", "");
- processed_template = processed_template.replace("%STRING_TYPE%", "");
- processed_template = processed_template.replace("%FLOAT_TYPE%", "");
- processed_template = processed_template.replace("%VOID_RETURN%", "");
+ processed_template = processed_template.replace(": int", "")
+ .replace(": String", "")
+ .replace(": float", "")
+ .replace(" -> void", "");
#endif
- processed_template = processed_template.replace("%BASE%", p_base_class_name);
- processed_template = processed_template.replace("%TS%", _get_indentation());
-
- return processed_template;
-}
-
-Ref<Script> GDScriptLanguage::get_template(const String &p_class_name, const String &p_base_class_name) const {
- String _template = "extends %BASE%\n"
- "\n"
- "\n"
- "# Declare member variables here. Examples:\n"
- "# var a%INT_TYPE% = 2\n"
- "# var b%STRING_TYPE% = \"text\"\n"
- "\n"
- "\n"
- "# Called when the node enters the scene tree for the first time.\n"
- "func _ready()%VOID_RETURN%:\n"
- "%TS%pass # Replace with function body.\n"
- "\n"
- "\n"
- "# Called every frame. 'delta' is the elapsed time since the previous frame.\n"
- "#func _process(delta%FLOAT_TYPE%)%VOID_RETURN%:\n"
- "#%TS%pass\n";
-
- _template = _get_processed_template(_template, p_base_class_name);
-
- Ref<GDScript> script;
- script.instantiate();
- script->set_source_code(_template);
-
+ processed_template = processed_template.replace("_BASE_", p_base_class_name)
+ .replace("_CLASS_", p_class_name)
+ .replace("_TS_", _get_indentation());
+ script->set_source_code(processed_template);
return script;
}
-bool GDScriptLanguage::is_using_templates() {
- return true;
-}
-
-void GDScriptLanguage::make_template(const String &p_class_name, const String &p_base_class_name, Ref<Script> &p_script) {
- String _template = _get_processed_template(p_script->get_source_code(), p_base_class_name);
- p_script->set_source_code(_template);
+Vector<ScriptLanguage::ScriptTemplate> GDScriptLanguage::get_built_in_templates(StringName p_object) {
+ Vector<ScriptLanguage::ScriptTemplate> templates;
+ for (int i = 0; i < TEMPLATES_ARRAY_SIZE; i++) {
+ if (TEMPLATES[i].inherit == p_object) {
+ templates.append(TEMPLATES[i]);
+ }
+ }
+ return templates;
}
static void get_function_names_recursively(const GDScriptParser::ClassNode *p_class, const String &p_prefix, Map<int, String> &r_funcs) {
@@ -236,7 +213,7 @@ Script *GDScriptLanguage::create_script() const {
/* DEBUGGER FUNCTIONS */
bool GDScriptLanguage::debug_break_parse(const String &p_file, int p_line, const String &p_error) {
- //break because of parse error
+ // break because of parse error
if (EngineDebugger::is_active() && Thread::get_caller_id() == Thread::get_main_id()) {
_debug_parse_err_line = p_line;
@@ -669,6 +646,11 @@ static void _find_annotation_arguments(const GDScriptParser::AnnotationNode *p_a
ScriptCodeCompletionOption option(E, ScriptCodeCompletionOption::KIND_CLASS);
r_result.insert(option.display, option);
}
+ } else if (p_annotation->name == "@warning_ignore") {
+ for (int warning_code = 0; warning_code < GDScriptWarning::WARNING_MAX; warning_code++) {
+ ScriptCodeCompletionOption warning(GDScriptWarning::get_name_from_code((GDScriptWarning::Code)warning_code).to_lower(), ScriptCodeCompletionOption::KIND_PLAIN_TEXT);
+ r_result.insert(warning.display, warning);
+ }
}
}
@@ -1182,6 +1164,10 @@ static bool _guess_method_return_type_from_base(GDScriptParser::CompletionContex
static bool _guess_expression_type(GDScriptParser::CompletionContext &p_context, const GDScriptParser::ExpressionNode *p_expression, GDScriptCompletionIdentifier &r_type) {
bool found = false;
+ if (p_expression == nullptr) {
+ return false;
+ }
+
if (p_expression->is_constant) {
// Already has a value, so just use that.
r_type = _type_from_variant(p_expression->reduced_value);
@@ -1383,8 +1369,8 @@ static bool _guess_expression_type(GDScriptParser::CompletionContext &p_context,
}
if (!script.ends_with(".gd")) {
- //not a script, try find the script anyway,
- //may have some success
+ // not a script, try find the script anyway,
+ // may have some success
script = script.get_basename() + ".gd";
}
@@ -2770,7 +2756,7 @@ void GDScriptLanguage::auto_indent_code(String &p_code, int p_from_line, int p_t
}
if (indent_stack.size() && indent_stack.back()->get() != tc) {
- indent_stack.push_back(tc); //this is not right but gets the job done
+ indent_stack.push_back(tc); // this is not right but gets the job done
}
}
diff --git a/modules/gdscript/gdscript_function.cpp b/modules/gdscript/gdscript_function.cpp
index a3f0c7dfef..f1877df326 100644
--- a/modules/gdscript/gdscript_function.cpp
+++ b/modules/gdscript/gdscript_function.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_function.h b/modules/gdscript/gdscript_function.h
index e1ed71a268..db663ca48f 100644
--- a/modules/gdscript/gdscript_function.h
+++ b/modules/gdscript/gdscript_function.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_lambda_callable.cpp b/modules/gdscript/gdscript_lambda_callable.cpp
index 0bc109b6e1..baf93e1098 100644
--- a/modules/gdscript/gdscript_lambda_callable.cpp
+++ b/modules/gdscript/gdscript_lambda_callable.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_lambda_callable.h b/modules/gdscript/gdscript_lambda_callable.h
index 336778d549..f6a54a1a2f 100644
--- a/modules/gdscript/gdscript_lambda_callable.h
+++ b/modules/gdscript/gdscript_lambda_callable.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp
index 48f58e51fe..4fda1e5391 100644
--- a/modules/gdscript/gdscript_parser.cpp
+++ b/modules/gdscript/gdscript_parser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -39,6 +39,7 @@
#ifdef DEBUG_ENABLED
#include "core/os/os.h"
#include "core/string/string_builder.h"
+#include "gdscript_warning.h"
#endif // DEBUG_ENABLED
#ifdef TOOLS_ENABLED
@@ -132,9 +133,9 @@ GDScriptParser::GDScriptParser() {
register_annotation(MethodInfo("@export_flags_3d_render"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_LAYERS_3D_RENDER, Variant::INT>);
register_annotation(MethodInfo("@export_flags_3d_physics"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_LAYERS_3D_PHYSICS, Variant::INT>);
register_annotation(MethodInfo("@export_flags_3d_navigation"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_LAYERS_3D_NAVIGATION, Variant::INT>);
+ register_annotation(MethodInfo("@warning_ignore", { Variant::STRING, "warning" }), AnnotationInfo::CLASS | AnnotationInfo::VARIABLE | AnnotationInfo::SIGNAL | AnnotationInfo::CONSTANT | AnnotationInfo::FUNCTION | AnnotationInfo::STATEMENT, &GDScriptParser::warning_annotations, 0, true);
// Networking.
register_annotation(MethodInfo("@rpc", { Variant::STRING, "mode" }, { Variant::STRING, "sync" }, { Variant::STRING, "transfer_mode" }, { Variant::INT, "transfer_channel" }), AnnotationInfo::FUNCTION, &GDScriptParser::network_annotations<Multiplayer::RPC_MODE_AUTHORITY>, 4, true);
- // TODO: Warning annotations.
}
GDScriptParser::~GDScriptParser() {
@@ -196,6 +197,10 @@ void GDScriptParser::push_warning(const Node *p_source, GDScriptWarning::Code p_
return;
}
+ if (ignored_warning_codes.has(p_code)) {
+ return;
+ }
+
String warn_name = GDScriptWarning::get_name_from_code((GDScriptWarning::Code)p_code).to_lower();
if (ignored_warnings.has(warn_name)) {
return;
@@ -701,24 +706,21 @@ void GDScriptParser::parse_extends() {
template <class T>
void GDScriptParser::parse_class_member(T *(GDScriptParser::*p_parse_function)(), AnnotationInfo::TargetKind p_target, const String &p_member_kind) {
advance();
- T *member = (this->*p_parse_function)();
- if (member == nullptr) {
- return;
- }
+
#ifdef TOOLS_ENABLED
- int doc_comment_line = member->start_line - 1;
+ int doc_comment_line = previous.start_line - 1;
#endif // TOOLS_ENABLED
// Consume annotations.
+ List<AnnotationNode *> annotations;
while (!annotation_stack.is_empty()) {
AnnotationNode *last_annotation = annotation_stack.back()->get();
if (last_annotation->applies_to(p_target)) {
- member->annotations.push_front(last_annotation);
+ annotations.push_front(last_annotation);
annotation_stack.pop_back();
} else {
push_error(vformat(R"(Annotation "%s" cannot be applied to a %s.)", last_annotation->name, p_member_kind));
clear_unused_annotations();
- return;
}
#ifdef TOOLS_ENABLED
if (last_annotation->start_line == doc_comment_line) {
@@ -727,6 +729,16 @@ void GDScriptParser::parse_class_member(T *(GDScriptParser::*p_parse_function)()
#endif // TOOLS_ENABLED
}
+ T *member = (this->*p_parse_function)();
+ if (member == nullptr) {
+ return;
+ }
+
+ // Apply annotations.
+ for (AnnotationNode *&annotation : annotations) {
+ member->annotations.push_back(annotation);
+ }
+
#ifdef TOOLS_ENABLED
// Consume doc comments.
class_doc_line = MIN(class_doc_line, doc_comment_line - 1);
@@ -805,6 +817,8 @@ void GDScriptParser::parse_class_body(bool p_is_multiline) {
class_end = true;
break;
default:
+ // Display a completion with identifiers.
+ make_completion_context(COMPLETION_IDENTIFIER, nullptr);
push_error(vformat(R"(Unexpected "%s" in class body.)", current.get_name()));
advance();
break;
@@ -1507,6 +1521,8 @@ GDScriptParser::Node *GDScriptParser::parse_statement() {
bool unreachable = current_suite->has_return && !current_suite->has_unreachable_code;
#endif
+ bool is_annotation = false;
+
switch (current.type) {
case GDScriptTokenizer::Token::PASS:
advance();
@@ -1576,6 +1592,7 @@ GDScriptParser::Node *GDScriptParser::parse_statement() {
break;
case GDScriptTokenizer::Token::ANNOTATION: {
advance();
+ is_annotation = true;
AnnotationNode *annotation = parse_annotation(AnnotationInfo::STATEMENT);
if (annotation != nullptr) {
annotation_stack.push_back(annotation);
@@ -1616,6 +1633,18 @@ GDScriptParser::Node *GDScriptParser::parse_statement() {
}
}
+ // Apply annotations to statement.
+ while (!is_annotation && result != nullptr && !annotation_stack.is_empty()) {
+ AnnotationNode *last_annotation = annotation_stack.back()->get();
+ if (last_annotation->applies_to(AnnotationInfo::STATEMENT)) {
+ result->annotations.push_front(last_annotation);
+ annotation_stack.pop_back();
+ } else {
+ push_error(vformat(R"(Annotation "%s" cannot be applied to a statement.)", last_annotation->name));
+ clear_unused_annotations();
+ }
+ }
+
#ifdef DEBUG_ENABLED
if (unreachable && result != nullptr) {
current_suite->has_unreachable_code = true;
@@ -3552,7 +3581,24 @@ bool GDScriptParser::export_annotations(const AnnotationNode *p_annotation, Node
}
bool GDScriptParser::warning_annotations(const AnnotationNode *p_annotation, Node *p_node) {
- ERR_FAIL_V_MSG(false, "Not implemented.");
+#ifdef DEBUG_ENABLED
+ bool has_error = false;
+ for (const Variant &warning_name : p_annotation->resolved_arguments) {
+ GDScriptWarning::Code warning = GDScriptWarning::get_code_from_name(String(warning_name).to_upper());
+ if (warning == GDScriptWarning::WARNING_MAX) {
+ push_error(vformat(R"(Invalid warning name: "%s".)", warning_name), p_annotation);
+ has_error = true;
+ } else {
+ p_node->ignored_warnings.push_back(warning);
+ }
+ }
+
+ return !has_error;
+
+#else // ! DEBUG_ENABLED
+ // Only available in debug builds.
+ return true;
+#endif // DEBUG_ENABLED
}
template <Multiplayer::RPCMode t_mode>
diff --git a/modules/gdscript/gdscript_parser.h b/modules/gdscript/gdscript_parser.h
index 2f05b4b948..bf0f670905 100644
--- a/modules/gdscript/gdscript_parser.h
+++ b/modules/gdscript/gdscript_parser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -297,6 +297,7 @@ public:
int leftmost_column = 0, rightmost_column = 0;
Node *next = nullptr;
List<AnnotationNode *> annotations;
+ Vector<uint32_t> ignored_warnings;
DataType datatype;
@@ -1204,6 +1205,7 @@ private:
#ifdef DEBUG_ENABLED
List<GDScriptWarning> warnings;
Set<String> ignored_warnings;
+ Set<uint32_t> ignored_warning_codes;
Set<int> unsafe_lines;
#endif
diff --git a/modules/gdscript/gdscript_tokenizer.cpp b/modules/gdscript/gdscript_tokenizer.cpp
index 3725fb58f5..05ea061798 100644
--- a/modules/gdscript/gdscript_tokenizer.cpp
+++ b/modules/gdscript/gdscript_tokenizer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_tokenizer.h b/modules/gdscript/gdscript_tokenizer.h
index b4ee11fd9a..abd090e381 100644
--- a/modules/gdscript/gdscript_tokenizer.h
+++ b/modules/gdscript/gdscript_tokenizer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_utility_functions.cpp b/modules/gdscript/gdscript_utility_functions.cpp
index e997d3a51e..16b2dac343 100644
--- a/modules/gdscript/gdscript_utility_functions.cpp
+++ b/modules/gdscript/gdscript_utility_functions.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_utility_functions.h b/modules/gdscript/gdscript_utility_functions.h
index c6d3718844..9ca7cf33d8 100644
--- a/modules/gdscript/gdscript_utility_functions.h
+++ b/modules/gdscript/gdscript_utility_functions.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/gdscript_vm.cpp b/modules/gdscript/gdscript_vm.cpp
index be9e5df2b0..e0facaf61d 100644
--- a/modules/gdscript/gdscript_vm.cpp
+++ b/modules/gdscript/gdscript_vm.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -488,7 +488,12 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
memnew_placement(&stack[i + 3], Variant(*p_args[i]));
continue;
}
-
+ // If types already match, don't call Variant::construct(). Constructors of some types
+ // (e.g. packed arrays) do copies, whereas they pass by reference when inside a Variant.
+ if (argument_types[i].is_type(*p_args[i], false)) {
+ memnew_placement(&stack[i + 3], Variant(*p_args[i]));
+ continue;
+ }
if (!argument_types[i].is_type(*p_args[i], true)) {
r_err.error = Callable::CallError::CALL_ERROR_INVALID_ARGUMENT;
r_err.argument = i;
diff --git a/modules/gdscript/gdscript_warning.cpp b/modules/gdscript/gdscript_warning.cpp
index a351bd6dad..73536f5f8e 100644
--- a/modules/gdscript/gdscript_warning.cpp
+++ b/modules/gdscript/gdscript_warning.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -213,7 +213,7 @@ GDScriptWarning::Code GDScriptWarning::get_code_from_name(const String &p_name)
}
}
- ERR_FAIL_V_MSG(WARNING_MAX, "Invalid GDScript warning name: " + p_name);
+ return WARNING_MAX;
}
#endif // DEBUG_ENABLED
diff --git a/modules/gdscript/gdscript_warning.h b/modules/gdscript/gdscript_warning.h
index d05f47efe7..112b40781a 100644
--- a/modules/gdscript/gdscript_warning.h
+++ b/modules/gdscript/gdscript_warning.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/gdscript_extend_parser.cpp b/modules/gdscript/language_server/gdscript_extend_parser.cpp
index 80f4721e2d..49f5303ae6 100644
--- a/modules/gdscript/language_server/gdscript_extend_parser.cpp
+++ b/modules/gdscript/language_server/gdscript_extend_parser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/gdscript_extend_parser.h b/modules/gdscript/language_server/gdscript_extend_parser.h
index 5d7b16765b..99b0bf45d0 100644
--- a/modules/gdscript/language_server/gdscript_extend_parser.h
+++ b/modules/gdscript/language_server/gdscript_extend_parser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/gdscript_language_protocol.cpp b/modules/gdscript/language_server/gdscript_language_protocol.cpp
index 578943696e..cdddab319d 100644
--- a/modules/gdscript/language_server/gdscript_language_protocol.cpp
+++ b/modules/gdscript/language_server/gdscript_language_protocol.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/gdscript_language_protocol.h b/modules/gdscript/language_server/gdscript_language_protocol.h
index a4a63a23a8..0fed8597f9 100644
--- a/modules/gdscript/language_server/gdscript_language_protocol.h
+++ b/modules/gdscript/language_server/gdscript_language_protocol.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/gdscript_language_server.cpp b/modules/gdscript/language_server/gdscript_language_server.cpp
index 41a2f9e4ad..33c1c834f1 100644
--- a/modules/gdscript/language_server/gdscript_language_server.cpp
+++ b/modules/gdscript/language_server/gdscript_language_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/gdscript_language_server.h b/modules/gdscript/language_server/gdscript_language_server.h
index feee23dd13..8de72fc9c9 100644
--- a/modules/gdscript/language_server/gdscript_language_server.h
+++ b/modules/gdscript/language_server/gdscript_language_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/gdscript_text_document.cpp b/modules/gdscript/language_server/gdscript_text_document.cpp
index d2e033d7de..961295b076 100644
--- a/modules/gdscript/language_server/gdscript_text_document.cpp
+++ b/modules/gdscript/language_server/gdscript_text_document.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/gdscript_text_document.h b/modules/gdscript/language_server/gdscript_text_document.h
index 9021c84a3f..eb7b2c0240 100644
--- a/modules/gdscript/language_server/gdscript_text_document.h
+++ b/modules/gdscript/language_server/gdscript_text_document.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/gdscript_workspace.cpp b/modules/gdscript/language_server/gdscript_workspace.cpp
index 9be9cbc749..a944844226 100644
--- a/modules/gdscript/language_server/gdscript_workspace.cpp
+++ b/modules/gdscript/language_server/gdscript_workspace.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/gdscript_workspace.h b/modules/gdscript/language_server/gdscript_workspace.h
index 6f5600b5cf..ce5bba5f00 100644
--- a/modules/gdscript/language_server/gdscript_workspace.h
+++ b/modules/gdscript/language_server/gdscript_workspace.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/language_server/lsp.hpp b/modules/gdscript/language_server/lsp.hpp
index b12d1f5f3b..8e503a9df9 100644
--- a/modules/gdscript/language_server/lsp.hpp
+++ b/modules/gdscript/language_server/lsp.hpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/register_types.cpp b/modules/gdscript/register_types.cpp
index c2b1981f31..fcf122f567 100644
--- a/modules/gdscript/register_types.cpp
+++ b/modules/gdscript/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/register_types.h b/modules/gdscript/register_types.h
index ce1c03d1d0..baa7dcbbd1 100644
--- a/modules/gdscript/register_types.h
+++ b/modules/gdscript/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/tests/gdscript_test_runner.cpp b/modules/gdscript/tests/gdscript_test_runner.cpp
index 21883b3c6e..47772b8039 100644
--- a/modules/gdscript/tests/gdscript_test_runner.cpp
+++ b/modules/gdscript/tests/gdscript_test_runner.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -362,16 +362,16 @@ void GDScriptTest::error_handler(void *p_this, const char *p_function, const cha
}
builder.append("\n>> on function: ");
- builder.append(p_function);
+ builder.append(String::utf8(p_function));
builder.append("()\n>> ");
- builder.append(String(p_file).trim_prefix(self->base_dir));
+ builder.append(String::utf8(p_file).trim_prefix(self->base_dir));
builder.append("\n>> ");
builder.append(itos(p_line));
builder.append("\n>> ");
- builder.append(p_error);
+ builder.append(String::utf8(p_error));
if (strlen(p_explanation) > 0) {
builder.append("\n>> ");
- builder.append(p_explanation);
+ builder.append(String::utf8(p_explanation));
}
builder.append("\n");
diff --git a/modules/gdscript/tests/gdscript_test_runner.h b/modules/gdscript/tests/gdscript_test_runner.h
index 98c57dc97c..1a950c6898 100644
--- a/modules/gdscript/tests/gdscript_test_runner.h
+++ b/modules/gdscript/tests/gdscript_test_runner.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/tests/gdscript_test_runner_suite.h b/modules/gdscript/tests/gdscript_test_runner_suite.h
index cf4e61f07d..0722fb800e 100644
--- a/modules/gdscript/tests/gdscript_test_runner_suite.h
+++ b/modules/gdscript/tests/gdscript_test_runner_suite.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/tests/scripts/analyzer/features/warning_ignore_annotation.gd b/modules/gdscript/tests/scripts/analyzer/features/warning_ignore_annotation.gd
new file mode 100644
index 0000000000..877a4ea221
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/features/warning_ignore_annotation.gd
@@ -0,0 +1,15 @@
+@warning_ignore(unused_private_class_variable)
+var _unused = 2
+
+@warning_ignore(unused_variable)
+func test():
+ print("test")
+ var unused = 3
+
+ @warning_ignore(redundant_await)
+ print(await regular_func())
+
+ print("done")
+
+func regular_func():
+ return 0
diff --git a/modules/gdscript/tests/scripts/analyzer/features/warning_ignore_annotation.out b/modules/gdscript/tests/scripts/analyzer/features/warning_ignore_annotation.out
new file mode 100644
index 0000000000..42292774a0
--- /dev/null
+++ b/modules/gdscript/tests/scripts/analyzer/features/warning_ignore_annotation.out
@@ -0,0 +1,4 @@
+GDTEST_OK
+test
+0
+done
diff --git a/modules/gdscript/tests/scripts/parser/features/signal_declaration.gd b/modules/gdscript/tests/scripts/parser/features/signal_declaration.gd
index 9ad98b78a8..e4d6a72f90 100644
--- a/modules/gdscript/tests/scripts/parser/features/signal_declaration.gd
+++ b/modules/gdscript/tests/scripts/parser/features/signal_declaration.gd
@@ -6,7 +6,7 @@ signal a
# No parameters.
signal b()
-# With paramters.
+# With parameters.
signal c(a, b, c)
# With parameters multiline.
diff --git a/modules/gdscript/tests/test_gdscript.cpp b/modules/gdscript/tests/test_gdscript.cpp
index 80eabc1596..4255030b4e 100644
--- a/modules/gdscript/tests/test_gdscript.cpp
+++ b/modules/gdscript/tests/test_gdscript.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gdscript/tests/test_gdscript.h b/modules/gdscript/tests/test_gdscript.h
index c7ee5a2208..b6b1f26203 100644
--- a/modules/gdscript/tests/test_gdscript.h
+++ b/modules/gdscript/tests/test_gdscript.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/glslang/register_types.cpp b/modules/glslang/register_types.cpp
index 69bf59f848..c67d5ff5ab 100644
--- a/modules/glslang/register_types.cpp
+++ b/modules/glslang/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/glslang/register_types.h b/modules/glslang/register_types.h
index a1264b77c9..9d8dc9dc2a 100644
--- a/modules/glslang/register_types.h
+++ b/modules/glslang/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/doc_classes/GLTFDocument.xml b/modules/gltf/doc_classes/GLTFDocument.xml
index 8d8e25e8b3..ed7c018cb9 100644
--- a/modules/gltf/doc_classes/GLTFDocument.xml
+++ b/modules/gltf/doc_classes/GLTFDocument.xml
@@ -3,30 +3,57 @@
<brief_description>
</brief_description>
<description>
+ Append a glTF2 3d format from a file, buffer or scene and then write to the filesystem, buffer or scene.
</description>
<tutorials>
</tutorials>
<methods>
- <method name="import_scene">
- <return type="Node" />
+ <method name="append_from_buffer">
+ <return type="int" enum="Error" />
+ <argument index="0" name="bytes" type="PackedByteArray" />
+ <argument index="1" name="base_path" type="String" />
+ <argument index="2" name="state" type="GLTFState" />
+ <argument index="3" name="flags" type="int" default="0" />
+ <argument index="4" name="bake_fps" type="int" default="30" />
+ <description>
+ </description>
+ </method>
+ <method name="append_from_file">
+ <return type="int" enum="Error" />
<argument index="0" name="path" type="String" />
- <argument index="1" name="flags" type="int" default="0" />
- <argument index="2" name="bake_fps" type="int" default="30" />
- <argument index="3" name="state" type="GLTFState" default="null" />
+ <argument index="1" name="state" type="GLTFState" />
+ <argument index="2" name="flags" type="int" default="0" />
+ <argument index="3" name="bake_fps" type="int" default="30" />
<description>
- Import a scene from glTF2 ".gltf" or ".glb" file.
</description>
</method>
- <method name="save_scene">
+ <method name="append_from_scene">
<return type="int" enum="Error" />
<argument index="0" name="node" type="Node" />
+ <argument index="1" name="state" type="GLTFState" />
+ <argument index="2" name="flags" type="int" default="0" />
+ <argument index="3" name="bake_fps" type="int" default="30" />
+ <description>
+ </description>
+ </method>
+ <method name="generate_buffer">
+ <return type="PackedByteArray" />
+ <argument index="0" name="state" type="GLTFState" />
+ <description>
+ </description>
+ </method>
+ <method name="generate_scene">
+ <return type="Node" />
+ <argument index="0" name="state" type="GLTFState" />
+ <argument index="1" name="bake_fps" type="int" default="30" />
+ <description>
+ </description>
+ </method>
+ <method name="write_to_filesystem">
+ <return type="int" enum="Error" />
+ <argument index="0" name="state" type="GLTFState" />
<argument index="1" name="path" type="String" />
- <argument index="2" name="src_path" type="String" />
- <argument index="3" name="flags" type="int" default="0" />
- <argument index="4" name="bake_fps" type="float" default="30" />
- <argument index="5" name="state" type="GLTFState" default="null" />
<description>
- Save a scene as a glTF2 ".glb" or ".gltf" file.
</description>
</method>
</methods>
diff --git a/modules/gltf/editor_scene_exporter_gltf_plugin.cpp b/modules/gltf/editor_scene_exporter_gltf_plugin.cpp
index 25fda7ef3b..fd5741605c 100644
--- a/modules/gltf/editor_scene_exporter_gltf_plugin.cpp
+++ b/modules/gltf/editor_scene_exporter_gltf_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,6 +36,7 @@
#include "core/templates/vector.h"
#include "editor/editor_file_system.h"
#include "gltf_document.h"
+#include "gltf_state.h"
#include "scene/3d/mesh_instance_3d.h"
#include "scene/gui/check_box.h"
#include "scene/main/node.h"
@@ -75,7 +76,15 @@ void SceneExporterGLTFPlugin::_gltf2_dialog_action(String p_file) {
List<String> deps;
Ref<GLTFDocument> doc;
doc.instantiate();
- Error err = doc->save_scene(root, p_file, p_file, 0, 30.0f, Ref<GLTFState>());
+ Ref<GLTFState> state;
+ state.instantiate();
+ int32_t flags = 0;
+ flags |= EditorSceneFormatImporter::IMPORT_USE_NAMED_SKIN_BINDS;
+ Error err = doc->append_from_scene(root, state, flags, 30.0f);
+ if (err != OK) {
+ ERR_PRINT(vformat("glTF2 save scene error %s.", itos(err)));
+ }
+ err = doc->write_to_filesystem(state, p_file);
if (err != OK) {
ERR_PRINT(vformat("glTF2 save scene error %s.", itos(err)));
}
diff --git a/modules/gltf/editor_scene_exporter_gltf_plugin.h b/modules/gltf/editor_scene_exporter_gltf_plugin.h
index 89a8e27053..e6b15e73c4 100644
--- a/modules/gltf/editor_scene_exporter_gltf_plugin.h
+++ b/modules/gltf/editor_scene_exporter_gltf_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/editor_scene_importer_gltf.cpp b/modules/gltf/editor_scene_importer_gltf.cpp
index 1a172877a0..f063cc1e2b 100644
--- a/modules/gltf/editor_scene_importer_gltf.cpp
+++ b/modules/gltf/editor_scene_importer_gltf.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -48,16 +48,24 @@ void EditorSceneFormatImporterGLTF::get_extensions(List<String> *r_extensions) c
}
Node *EditorSceneFormatImporterGLTF::import_scene(const String &p_path,
- uint32_t p_flags, int p_bake_fps,
+ uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps,
List<String> *r_missing_deps,
Error *r_err) {
Ref<GLTFDocument> doc;
doc.instantiate();
- return doc->import_scene_gltf(p_path, p_flags, p_bake_fps, Ref<GLTFState>(), r_missing_deps, r_err);
+ Ref<GLTFState> state;
+ state.instantiate();
+ Error err = doc->append_from_file(p_path, state, p_flags, p_bake_fps);
+ if (err != OK) {
+ *r_err = err;
+ return nullptr;
+ }
+ Node *root = doc->generate_scene(state, p_bake_fps);
+ return root;
}
Ref<Animation> EditorSceneFormatImporterGLTF::import_animation(const String &p_path,
- uint32_t p_flags,
+ uint32_t p_flags, const Map<StringName, Variant> &p_options,
int p_bake_fps) {
return Ref<Animation>();
}
diff --git a/modules/gltf/editor_scene_importer_gltf.h b/modules/gltf/editor_scene_importer_gltf.h
index 28963adc28..4410559b3d 100644
--- a/modules/gltf/editor_scene_importer_gltf.h
+++ b/modules/gltf/editor_scene_importer_gltf.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -47,9 +47,9 @@ class EditorSceneFormatImporterGLTF : public EditorSceneFormatImporter {
public:
virtual uint32_t get_import_flags() const override;
virtual void get_extensions(List<String> *r_extensions) const override;
- virtual Node *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
+ virtual Node *import_scene(const String &p_path, uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = nullptr) override;
virtual Ref<Animation> import_animation(const String &p_path,
- uint32_t p_flags, int p_bake_fps) override;
+ uint32_t p_flags, const Map<StringName, Variant> &p_options, int p_bake_fps) override;
};
#endif // TOOLS_ENABLED
#endif // EDITOR_SCENE_IMPORTER_GLTF_H
diff --git a/modules/gltf/gltf_accessor.cpp b/modules/gltf/gltf_accessor.cpp
index 85cec3fec4..1daf2f90a7 100644
--- a/modules/gltf/gltf_accessor.cpp
+++ b/modules/gltf/gltf_accessor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_accessor.h b/modules/gltf/gltf_accessor.h
index bec511f974..6bf1bf543a 100644
--- a/modules/gltf/gltf_accessor.h
+++ b/modules/gltf/gltf_accessor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_animation.cpp b/modules/gltf/gltf_animation.cpp
index 889a8e8870..c857be4b2c 100644
--- a/modules/gltf/gltf_animation.cpp
+++ b/modules/gltf/gltf_animation.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_animation.h b/modules/gltf/gltf_animation.h
index 763494cb8d..ba8ae8a273 100644
--- a/modules/gltf/gltf_animation.h
+++ b/modules/gltf/gltf_animation.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_buffer_view.cpp b/modules/gltf/gltf_buffer_view.cpp
index d00e0f040f..fc467367c6 100644
--- a/modules/gltf/gltf_buffer_view.cpp
+++ b/modules/gltf/gltf_buffer_view.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_buffer_view.h b/modules/gltf/gltf_buffer_view.h
index 63af5e7c0d..560d56f35c 100644
--- a/modules/gltf/gltf_buffer_view.h
+++ b/modules/gltf/gltf_buffer_view.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_camera.cpp b/modules/gltf/gltf_camera.cpp
index 0f895fb989..f3ea6a1c4c 100644
--- a/modules/gltf/gltf_camera.cpp
+++ b/modules/gltf/gltf_camera.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_camera.h b/modules/gltf/gltf_camera.h
index 843ff417a4..c696d4cc6b 100644
--- a/modules/gltf/gltf_camera.h
+++ b/modules/gltf/gltf_camera.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_document.cpp b/modules/gltf/gltf_document.cpp
index 1c1ee5cd10..5a931ed839 100644
--- a/modules/gltf/gltf_document.cpp
+++ b/modules/gltf/gltf_document.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -48,6 +48,7 @@
#include "core/error/error_macros.h"
#include "core/io/dir_access.h"
#include "core/io/file_access.h"
+#include "core/io/file_access_memory.h"
#include "core/io/json.h"
#include "core/math/disjoint_set.h"
#include "core/math/vector2.h"
@@ -62,6 +63,7 @@
#include "scene/3d/camera_3d.h"
#include "scene/3d/mesh_instance_3d.h"
#include "scene/3d/multimesh_instance_3d.h"
+#include "scene/3d/node_3d.h"
#include "scene/animation/animation_player.h"
#include "scene/resources/importer_mesh.h"
#include "scene/resources/mesh.h"
@@ -82,13 +84,7 @@
#include <cstdint>
#include <limits>
-Error GLTFDocument::serialize(Ref<GLTFState> state, Node *p_root, const String &p_path) {
- uint64_t begin_time = OS::get_singleton()->get_ticks_usec();
-
- state->skeleton3d_to_gltf_skeleton.clear();
- state->skin_and_skeleton3d_to_gltf_skin.clear();
-
- _convert_scene_node(state, p_root, -1, -1);
+Error GLTFDocument::_serialize(Ref<GLTFState> state, const String &p_path) {
if (!state->buffers.size()) {
state->buffers.push_back(Vector<uint8_t>());
}
@@ -184,16 +180,6 @@ Error GLTFDocument::serialize(Ref<GLTFState> state, Node *p_root, const String &
return Error::FAILED;
}
- /* STEP 17 SERIALIZE FILE */
- err = _serialize_file(state, p_path);
- if (err != OK) {
- return Error::FAILED;
- }
- uint64_t elapsed = OS::get_singleton()->get_ticks_usec() - begin_time;
- float elapsed_sec = double(elapsed) / 1000000.0;
- elapsed_sec = Math::snapped(elapsed_sec, 0.01f);
- print_verbose("glTF: Export time elapsed seconds " + rtos(elapsed_sec).pad_decimals(2));
-
return OK;
}
@@ -255,18 +241,14 @@ Error GLTFDocument::_parse_json(const String &p_path, Ref<GLTFState> state) {
return OK;
}
-Error GLTFDocument::_parse_glb(const String &p_path, Ref<GLTFState> state) {
- Error err;
- FileAccessRef f = FileAccess::open(p_path, FileAccess::READ, &err);
- if (!f) {
- return err;
- }
-
+Error GLTFDocument::_parse_glb(FileAccess *f, Ref<GLTFState> state) {
+ ERR_FAIL_NULL_V(f, ERR_INVALID_PARAMETER);
+ ERR_FAIL_NULL_V(state, ERR_INVALID_PARAMETER);
+ ERR_FAIL_COND_V(f->get_position() != 0, ERR_FILE_CANT_READ);
uint32_t magic = f->get_32();
ERR_FAIL_COND_V(magic != 0x46546C67, ERR_FILE_UNRECOGNIZED); //glTF
f->get_32(); // version
f->get_32(); // length
-
uint32_t chunk_length = f->get_32();
uint32_t chunk_type = f->get_32();
@@ -280,9 +262,9 @@ Error GLTFDocument::_parse_glb(const String &p_path, Ref<GLTFState> state) {
text.parse_utf8((const char *)json_data.ptr(), json_data.size());
JSON json;
- err = json.parse(text);
+ Error err = json.parse(text);
if (err != OK) {
- _err_print_error("", p_path.utf8().get_data(), json.get_error_line(), json.get_error_message().utf8().get_data(), false, ERR_HANDLER_SCRIPT);
+ _err_print_error("", "", json.get_error_line(), json.get_error_message().utf8().get_data(), false, ERR_HANDLER_SCRIPT);
return err;
}
@@ -753,6 +735,8 @@ Error GLTFDocument::_parse_buffers(Ref<GLTFState> state, const String &p_base_pa
}
buffer_data = _parse_base64_uri(uri);
} else { // Relative path to an external image file.
+ ERR_FAIL_COND_V(p_base_path.is_empty(), ERR_INVALID_PARAMETER);
+ uri = uri.uri_decode();
uri = p_base_path.plus_file(uri).replace("\\", "/"); // Fix for Windows.
buffer_data = FileAccess::get_file_as_array(uri);
ERR_FAIL_COND_V_MSG(buffer.size() == 0, ERR_PARSE_ERROR, "glTF: Couldn't load binary file as an array: " + uri);
@@ -2539,14 +2523,16 @@ Error GLTFDocument::_parse_meshes(Ref<GLTFState> state) {
if (p.has("mode")) {
const int mode = p["mode"];
ERR_FAIL_INDEX_V(mode, 7, ERR_FILE_CORRUPT);
+ // Convert mesh.primitive.mode to Godot Mesh enum. See:
+ // https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode
static const Mesh::PrimitiveType primitives2[7] = {
- Mesh::PRIMITIVE_POINTS,
- Mesh::PRIMITIVE_LINES,
- Mesh::PRIMITIVE_LINES, //loop not supported, should ce converted
- Mesh::PRIMITIVE_LINES,
- Mesh::PRIMITIVE_TRIANGLES,
- Mesh::PRIMITIVE_TRIANGLE_STRIP,
- Mesh::PRIMITIVE_TRIANGLES, //fan not supported, should be converted
+ Mesh::PRIMITIVE_POINTS, // 0 POINTS
+ Mesh::PRIMITIVE_LINES, // 1 LINES
+ Mesh::PRIMITIVE_LINES, // 2 LINE_LOOP; loop not supported, should be converted
+ Mesh::PRIMITIVE_LINE_STRIP, // 3 LINE_STRIP
+ Mesh::PRIMITIVE_TRIANGLES, // 4 TRIANGLES
+ Mesh::PRIMITIVE_TRIANGLE_STRIP, // 5 TRIANGLE_STRIP
+ Mesh::PRIMITIVE_TRIANGLES, // 6 TRIANGLE_FAN fan not supported, should be converted
#ifndef _MSC_VER
#warning line loop and triangle fan are not supported and need to be converted to lines and triangles
#endif
@@ -2952,7 +2938,7 @@ Error GLTFDocument::_serialize_images(Ref<GLTFState> state, const String &p_path
Ref<Image> image = state->images[i]->get_image();
ERR_CONTINUE(image.is_null());
- if (p_path.to_lower().ends_with("glb")) {
+ if (p_path.to_lower().ends_with("glb") || p_path.is_empty()) {
GLTFBufferViewIndex bvi;
Ref<GLTFBufferView> bv;
@@ -2981,6 +2967,7 @@ Error GLTFDocument::_serialize_images(Ref<GLTFState> state, const String &p_path
d["bufferView"] = bvi;
d["mimeType"] = "image/png";
} else {
+ ERR_FAIL_COND_V(p_path.is_empty(), ERR_INVALID_PARAMETER);
String name = state->images[i]->get_name();
if (name.is_empty()) {
name = itos(i);
@@ -2988,13 +2975,14 @@ Error GLTFDocument::_serialize_images(Ref<GLTFState> state, const String &p_path
name = _gen_unique_name(state, name);
name = name.pad_zeros(3) + ".png";
String texture_dir = "textures";
- String new_texture_dir = p_path.get_base_dir() + "/" + texture_dir;
- DirAccessRef da = DirAccess::open(p_path.get_base_dir());
+ String path = p_path.get_base_dir();
+ String new_texture_dir = path + "/" + texture_dir;
+ DirAccessRef da = DirAccess::open(path);
if (!da->dir_exists(new_texture_dir)) {
da->make_dir(new_texture_dir);
}
image->save_png(new_texture_dir.plus_file(name));
- d["uri"] = texture_dir.plus_file(name);
+ d["uri"] = texture_dir.plus_file(name).uri_encode();
}
images.push_back(d);
}
@@ -3010,6 +2998,7 @@ Error GLTFDocument::_serialize_images(Ref<GLTFState> state, const String &p_path
}
Error GLTFDocument::_parse_images(Ref<GLTFState> state, const String &p_base_path) {
+ ERR_FAIL_NULL_V(state, ERR_INVALID_PARAMETER);
if (!state->json.has("images")) {
return OK;
}
@@ -3069,6 +3058,7 @@ Error GLTFDocument::_parse_images(Ref<GLTFState> state, const String &p_base_pat
}
}
} else { // Relative path to an external image file.
+ ERR_FAIL_COND_V(p_base_path.is_empty(), ERR_INVALID_PARAMETER);
uri = uri.uri_decode();
uri = p_base_path.plus_file(uri).replace("\\", "/"); // Fix for Windows.
// ResourceLoader will rely on the file extension to use the relevant loader.
@@ -3402,29 +3392,32 @@ Error GLTFDocument::_serialize_materials(Ref<GLTFState> state) {
tex.instantiate();
{
Ref<Texture2D> normal_texture = material->get_texture(BaseMaterial3D::TEXTURE_NORMAL);
- // Code for uncompressing RG normal maps
- Ref<Image> img = normal_texture->get_image();
- Ref<ImageTexture> img_tex = img;
- if (img_tex.is_valid()) {
- img = img_tex->get_image();
- }
- img->decompress();
- img->convert(Image::FORMAT_RGBA8);
- img->convert_ra_rgba8_to_rg();
- for (int32_t y = 0; y < img->get_height(); y++) {
- for (int32_t x = 0; x < img->get_width(); x++) {
- Color c = img->get_pixel(x, y);
- Vector2 red_green = Vector2(c.r, c.g);
- red_green = red_green * Vector2(2.0f, 2.0f) - Vector2(1.0f, 1.0f);
- float blue = 1.0f - red_green.dot(red_green);
- blue = MAX(0.0f, blue);
- c.b = Math::sqrt(blue);
- img->set_pixel(x, y, c);
+ if (normal_texture.is_valid()) {
+ // Code for uncompressing RG normal maps
+ Ref<Image> img = normal_texture->get_image();
+ if (img.is_valid()) {
+ Ref<ImageTexture> img_tex = img;
+ if (img_tex.is_valid()) {
+ img = img_tex->get_image();
+ }
+ img->decompress();
+ img->convert(Image::FORMAT_RGBA8);
+ img->convert_ra_rgba8_to_rg();
+ for (int32_t y = 0; y < img->get_height(); y++) {
+ for (int32_t x = 0; x < img->get_width(); x++) {
+ Color c = img->get_pixel(x, y);
+ Vector2 red_green = Vector2(c.r, c.g);
+ red_green = red_green * Vector2(2.0f, 2.0f) - Vector2(1.0f, 1.0f);
+ float blue = 1.0f - red_green.dot(red_green);
+ blue = MAX(0.0f, blue);
+ c.b = Math::sqrt(blue);
+ img->set_pixel(x, y, c);
+ }
+ }
+ tex->create_from_image(img);
}
}
- tex->create_from_image(img);
}
- Ref<Texture2D> normal_texture = material->get_texture(BaseMaterial3D::TEXTURE_NORMAL);
GLTFTextureIndex gltf_texture_index = -1;
if (tex.is_valid() && tex->get_image().is_valid()) {
tex->set_name(material->get_name() + "_normal");
@@ -5099,7 +5092,7 @@ GLTFMeshIndex GLTFDocument::_convert_mesh_to_gltf(Ref<GLTFState> state, MeshInst
return mesh_i;
}
-ImporterMeshInstance3D *GLTFDocument::_generate_mesh_instance(Ref<GLTFState> state, Node *parent_node, const GLTFNodeIndex node_index) {
+ImporterMeshInstance3D *GLTFDocument::_generate_mesh_instance(Ref<GLTFState> state, const GLTFNodeIndex node_index) {
Ref<GLTFNode> gltf_node = state->nodes[node_index];
ERR_FAIL_INDEX_V(gltf_node->mesh, state->meshes.size(), nullptr);
@@ -5119,7 +5112,7 @@ ImporterMeshInstance3D *GLTFDocument::_generate_mesh_instance(Ref<GLTFState> sta
return mi;
}
-Node3D *GLTFDocument::_generate_light(Ref<GLTFState> state, Node *scene_parent, const GLTFNodeIndex node_index) {
+Node3D *GLTFDocument::_generate_light(Ref<GLTFState> state, const GLTFNodeIndex node_index) {
Ref<GLTFNode> gltf_node = state->nodes[node_index];
ERR_FAIL_INDEX_V(gltf_node->light, state->lights.size(), nullptr);
@@ -5171,7 +5164,7 @@ Node3D *GLTFDocument::_generate_light(Ref<GLTFState> state, Node *scene_parent,
return memnew(Node3D);
}
-Camera3D *GLTFDocument::_generate_camera(Ref<GLTFState> state, Node *scene_parent, const GLTFNodeIndex node_index) {
+Camera3D *GLTFDocument::_generate_camera(Ref<GLTFState> state, const GLTFNodeIndex node_index) {
Ref<GLTFNode> gltf_node = state->nodes[node_index];
ERR_FAIL_INDEX_V(gltf_node->camera, state->cameras.size(), nullptr);
@@ -5249,7 +5242,7 @@ void GLTFDocument::_convert_spatial(Ref<GLTFState> state, Node3D *p_spatial, Ref
p_node->position = xform.origin;
}
-Node3D *GLTFDocument::_generate_spatial(Ref<GLTFState> state, Node *scene_parent, const GLTFNodeIndex node_index) {
+Node3D *GLTFDocument::_generate_spatial(Ref<GLTFState> state, const GLTFNodeIndex node_index) {
Ref<GLTFNode> gltf_node = state->nodes[node_index];
Node3D *spatial = memnew(Node3D);
@@ -5616,19 +5609,18 @@ void GLTFDocument::_generate_scene_node(Ref<GLTFState> state, Node *scene_parent
scene_parent = bone_attachment;
}
if (gltf_node->mesh >= 0) {
- current_node = _generate_mesh_instance(state, scene_parent, node_index);
+ current_node = _generate_mesh_instance(state, node_index);
} else if (gltf_node->camera >= 0) {
- current_node = _generate_camera(state, scene_parent, node_index);
+ current_node = _generate_camera(state, node_index);
} else if (gltf_node->light >= 0) {
- current_node = _generate_light(state, scene_parent, node_index);
+ current_node = _generate_light(state, node_index);
}
// We still have not managed to make a node.
if (!current_node) {
- current_node = _generate_spatial(state, scene_parent, node_index);
+ current_node = _generate_spatial(state, node_index);
}
-
- scene_parent->add_child(current_node, true);
+ scene_parent->add_child(current_node);
if (current_node != scene_root) {
current_node->set_owner(scene_root);
}
@@ -5699,11 +5691,11 @@ void GLTFDocument::_generate_skeleton_bone_node(Ref<GLTFState> state, Node *scen
// We still have not managed to make a node
if (gltf_node->mesh >= 0) {
- current_node = _generate_mesh_instance(state, scene_parent, node_index);
+ current_node = _generate_mesh_instance(state, node_index);
} else if (gltf_node->camera >= 0) {
- current_node = _generate_camera(state, scene_parent, node_index);
+ current_node = _generate_camera(state, node_index);
} else if (gltf_node->light >= 0) {
- current_node = _generate_light(state, scene_parent, node_index);
+ current_node = _generate_light(state, node_index);
}
scene_parent->add_child(current_node, true);
@@ -6084,7 +6076,9 @@ void GLTFDocument::_convert_mesh_instances(Ref<GLTFState> state) {
continue;
}
MeshInstance3D *mi = Object::cast_to<MeshInstance3D>(mi_element->get());
- ERR_CONTINUE(!mi);
+ if (!mi) {
+ continue;
+ }
Transform3D mi_xform = mi->get_transform();
node->scale = mi_xform.basis.get_scale();
node->rotation = mi_xform.basis.get_rotation_quaternion();
@@ -6282,39 +6276,8 @@ GLTFAnimation::Track GLTFDocument::_convert_animation_track(Ref<GLTFState> state
ERR_CONTINUE(err != OK);
p_track.rotation_track.values.write[key_i] = rotation;
}
- } else if (path.find(":transform") != -1) {
- p_track.position_track.times = times;
- p_track.position_track.interpolation = gltf_interpolation;
- p_track.rotation_track.times = times;
- p_track.rotation_track.interpolation = gltf_interpolation;
- p_track.scale_track.times = times;
- p_track.scale_track.interpolation = gltf_interpolation;
-
- p_track.scale_track.values.resize(key_count);
- p_track.scale_track.interpolation = gltf_interpolation;
- p_track.position_track.values.resize(key_count);
- p_track.position_track.interpolation = gltf_interpolation;
- p_track.rotation_track.values.resize(key_count);
- p_track.rotation_track.interpolation = gltf_interpolation;
- for (int32_t key_i = 0; key_i < key_count; key_i++) {
- Transform3D xform = p_animation->track_get_key_value(p_track_i, key_i);
- p_track.position_track.values.write[key_i] = xform.get_origin();
- p_track.rotation_track.values.write[key_i] = xform.basis.get_rotation_quaternion();
- p_track.scale_track.values.write[key_i] = xform.basis.get_scale();
- }
} else if (track_type == Animation::TYPE_VALUE) {
- if (path.find("/rotation_quat") != -1) {
- p_track.rotation_track.times = times;
- p_track.rotation_track.interpolation = gltf_interpolation;
-
- p_track.rotation_track.values.resize(key_count);
- p_track.rotation_track.interpolation = gltf_interpolation;
-
- for (int32_t key_i = 0; key_i < key_count; key_i++) {
- Quaternion rotation_track = p_animation->track_get_key_value(p_track_i, key_i);
- p_track.rotation_track.values.write[key_i] = rotation_track;
- }
- } else if (path.find(":position") != -1) {
+ if (path.find(":position") != -1) {
p_track.position_track.times = times;
p_track.position_track.interpolation = gltf_interpolation;
@@ -6589,142 +6552,57 @@ void GLTFDocument::_convert_animation(Ref<GLTFState> state, AnimationPlayer *ap,
}
}
-Error GLTFDocument::parse(Ref<GLTFState> state, String p_path, bool p_read_binary) {
+Error GLTFDocument::_parse(Ref<GLTFState> state, String p_path, FileAccess *f, int p_bake_fps) {
Error err;
- FileAccessRef f = FileAccess::open(p_path, FileAccess::READ, &err);
if (!f) {
- return err;
+ return FAILED;
}
+ f->seek(0);
uint32_t magic = f->get_32();
if (magic == 0x46546C67) {
//binary file
//text file
- err = _parse_glb(p_path, state);
- if (err) {
- return FAILED;
+ f->seek(0);
+ err = _parse_glb(f, state);
+ if (err != OK) {
+ return err;
}
} else {
- //text file
- err = _parse_json(p_path, state);
- if (err) {
- return FAILED;
+ f->seek(0);
+ String text = f->get_as_utf8_string();
+ JSON json;
+ err = json.parse(text);
+ if (err != OK) {
+ _err_print_error("", "", json.get_error_line(), json.get_error_message().utf8().get_data(), false, ERR_HANDLER_SCRIPT);
}
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+ state->json = json.get_data();
}
f->close();
- // get file's name, use for scene name if none
- state->filename = p_path.get_file().get_slice(".", 0);
-
- ERR_FAIL_COND_V(!state->json.has("asset"), Error::FAILED);
+ if (!state->json.has("asset")) {
+ return ERR_PARSE_ERROR;
+ }
Dictionary asset = state->json["asset"];
- ERR_FAIL_COND_V(!asset.has("version"), Error::FAILED);
+ if (!asset.has("version")) {
+ return ERR_PARSE_ERROR;
+ }
String version = asset["version"];
state->major_version = version.get_slice(".", 0).to_int();
state->minor_version = version.get_slice(".", 1).to_int();
- /* STEP 0 PARSE SCENE */
- err = _parse_scenes(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 1 PARSE NODES */
- err = _parse_nodes(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 2 PARSE BUFFERS */
- err = _parse_buffers(state, p_path.get_base_dir());
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 3 PARSE BUFFER VIEWS */
- err = _parse_buffer_views(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 4 PARSE ACCESSORS */
- err = _parse_accessors(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 5 PARSE IMAGES */
- err = _parse_images(state, p_path.get_base_dir());
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 6 PARSE TEXTURES */
- err = _parse_textures(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 7 PARSE TEXTURES */
- err = _parse_materials(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 9 PARSE SKINS */
- err = _parse_skins(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 10 DETERMINE SKELETONS */
- err = _determine_skeletons(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 11 CREATE SKELETONS */
- err = _create_skeletons(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 12 CREATE SKINS */
- err = _create_skins(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 13 PARSE MESHES (we have enough info now) */
- err = _parse_meshes(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 14 PARSE LIGHTS */
- err = _parse_lights(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 15 PARSE CAMERAS */
- err = _parse_cameras(state);
- if (err != OK) {
- return Error::FAILED;
- }
-
- /* STEP 16 PARSE ANIMATIONS */
- err = _parse_animations(state);
- if (err != OK) {
- return Error::FAILED;
+ for (int32_t ext_i = 0; ext_i < document_extensions.size(); ext_i++) {
+ Ref<GLTFDocumentExtension> ext = document_extensions[ext_i];
+ ERR_CONTINUE(ext.is_null());
+ err = ext->import_preflight(this);
+ ERR_FAIL_COND_V(err != OK, FAILED);
}
-
- /* STEP 17 ASSIGN SCENE NAMES */
- _assign_scene_names(state);
-
+ err = _parse_gltf_state(state, p_path, p_bake_fps);
+ ERR_FAIL_COND_V(err != OK, err);
return OK;
}
@@ -6843,89 +6721,20 @@ Error GLTFDocument::_serialize_file(Ref<GLTFState> state, const String p_path) {
return err;
}
-Error GLTFDocument::save_scene(Node *p_node, const String &p_path,
- const String &p_src_path, uint32_t p_flags,
- float p_bake_fps, Ref<GLTFState> r_state) {
- ERR_FAIL_NULL_V(p_node, ERR_INVALID_PARAMETER);
-
- Ref<GLTFDocument> gltf_document;
- gltf_document.instantiate();
- for (int32_t ext_i = 0; ext_i < document_extensions.size(); ext_i++) {
- Ref<GLTFDocumentExtension> ext = document_extensions[ext_i];
- ERR_CONTINUE(ext.is_null());
- Error err = ext->export_preflight(this, p_node);
- ERR_FAIL_COND_V(err != OK, err);
- }
-
- if (r_state == Ref<GLTFState>()) {
- r_state.instantiate();
- }
- Error err = gltf_document->serialize(r_state, p_node, p_path);
- ERR_FAIL_COND_V(err != OK, err);
- for (int32_t ext_i = 0; ext_i < document_extensions.size(); ext_i++) {
- Ref<GLTFDocumentExtension> ext = document_extensions[ext_i];
- ERR_CONTINUE(ext.is_null());
- err = ext->export_post(this);
- ERR_FAIL_COND_V(err != OK, err);
- }
- return OK;
-}
-
-Node *GLTFDocument::import_scene_gltf(const String &p_path, uint32_t p_flags, int32_t p_bake_fps, Ref<GLTFState> r_state, List<String> *r_missing_deps, Error *r_err) {
- // TODO Add missing texture and missing .bin file paths to r_missing_deps 2021-09-10 fire
- if (r_state == Ref<GLTFState>()) {
- r_state.instantiate();
- }
- r_state->use_named_skin_binds =
- p_flags & EditorSceneFormatImporter::IMPORT_USE_NAMED_SKIN_BINDS;
-
- Ref<GLTFDocument> gltf_document;
- gltf_document.instantiate();
- for (int32_t ext_i = 0; ext_i < document_extensions.size(); ext_i++) {
- Ref<GLTFDocumentExtension> ext = document_extensions[ext_i];
- ERR_CONTINUE(ext.is_null());
- Error err = ext->import_preflight(this);
- if (r_err) {
- *r_err = err;
- }
- ERR_FAIL_COND_V(err != OK, nullptr);
- }
- Error err = gltf_document->parse(r_state, p_path);
- if (r_err) {
- *r_err = err;
- }
- ERR_FAIL_COND_V(err != Error::OK, nullptr);
-
- Node3D *root = memnew(Node3D);
- for (int32_t root_i = 0; root_i < r_state->root_nodes.size(); root_i++) {
- gltf_document->_generate_scene_node(r_state, root, root, r_state->root_nodes[root_i]);
- }
- gltf_document->_process_mesh_instances(r_state, root);
- if (r_state->animations.size()) {
- AnimationPlayer *ap = memnew(AnimationPlayer);
- root->add_child(ap, true);
- ap->set_owner(root);
- for (int i = 0; i < r_state->animations.size(); i++) {
- gltf_document->_import_animation(r_state, ap, i, p_bake_fps);
- }
- }
- for (int32_t ext_i = 0; ext_i < document_extensions.size(); ext_i++) {
- Ref<GLTFDocumentExtension> ext = document_extensions[ext_i];
- ERR_CONTINUE(ext.is_null());
- err = ext->import_post(this, root);
- if (r_err) {
- *r_err = err;
- }
- ERR_FAIL_COND_V(err != OK, nullptr);
- }
- return root;
-}
-
void GLTFDocument::_bind_methods() {
- ClassDB::bind_method(D_METHOD("save_scene", "node", "path", "src_path", "flags", "bake_fps", "state"),
- &GLTFDocument::save_scene, DEFVAL(0), DEFVAL(30), DEFVAL(Ref<GLTFState>()));
- ClassDB::bind_method(D_METHOD("import_scene", "path", "flags", "bake_fps", "state"),
- &GLTFDocument::import_scene, DEFVAL(0), DEFVAL(30), DEFVAL(Ref<GLTFState>()));
+ ClassDB::bind_method(D_METHOD("append_from_file", "path", "state", "flags", "bake_fps"),
+ &GLTFDocument::append_from_file, DEFVAL(0), DEFVAL(30));
+ ClassDB::bind_method(D_METHOD("append_from_buffer", "bytes", "base_path", "state", "flags", "bake_fps"),
+ &GLTFDocument::append_from_buffer, DEFVAL(0), DEFVAL(30));
+ ClassDB::bind_method(D_METHOD("append_from_scene", "node", "state", "flags", "bake_fps"),
+ &GLTFDocument::append_from_scene, DEFVAL(0), DEFVAL(30));
+ ClassDB::bind_method(D_METHOD("generate_scene", "state", "bake_fps"),
+ &GLTFDocument::generate_scene, DEFVAL(30));
+ ClassDB::bind_method(D_METHOD("generate_buffer", "state"),
+ &GLTFDocument::generate_buffer);
+ ClassDB::bind_method(D_METHOD("write_to_filesystem", "state", "path"),
+ &GLTFDocument::write_to_filesystem);
+
ClassDB::bind_method(D_METHOD("set_extensions", "extensions"),
&GLTFDocument::set_extensions);
ClassDB::bind_method(D_METHOD("get_extensions"),
@@ -6950,16 +6759,6 @@ void GLTFDocument::_build_parent_hierachy(Ref<GLTFState> state) {
}
}
-Node *GLTFDocument::import_scene(const String &p_path, uint32_t p_flags, int32_t p_bake_fps, Ref<GLTFState> r_state) {
- Error err = FAILED;
- List<String> deps;
- Node *node = import_scene_gltf(p_path, p_flags, p_bake_fps, r_state, &deps, &err);
- if (err != OK) {
- return nullptr;
- }
- return node;
-}
-
void GLTFDocument::set_extensions(TypedArray<GLTFDocumentExtension> p_extensions) {
document_extensions = p_extensions;
}
@@ -6977,3 +6776,243 @@ GLTFDocument::GLTFDocument() {
extension_editor.instantiate();
document_extensions.push_back(extension_editor);
}
+
+PackedByteArray GLTFDocument::_serialize_glb_buffer(Ref<GLTFState> state, Error *r_err) {
+ Error err = _encode_buffer_glb(state, "");
+ if (r_err) {
+ *r_err = err;
+ }
+ ERR_FAIL_COND_V(err != OK, PackedByteArray());
+ String json = Variant(state->json).to_json_string();
+
+ const uint32_t magic = 0x46546C67; // GLTF
+ const int32_t header_size = 12;
+ const int32_t chunk_header_size = 8;
+
+ for (int32_t pad_i = 0; pad_i < (chunk_header_size + json.utf8().length()) % 4; pad_i++) {
+ json += " ";
+ }
+ CharString cs = json.utf8();
+ const uint32_t text_chunk_length = cs.length();
+
+ const uint32_t text_chunk_type = 0x4E4F534A; //JSON
+ int32_t binary_data_length = 0;
+ if (state->buffers.size()) {
+ binary_data_length = state->buffers[0].size();
+ }
+ const int32_t binary_chunk_length = binary_data_length;
+ const int32_t binary_chunk_type = 0x004E4942; //BIN
+
+ Ref<StreamPeerBuffer> buffer;
+ buffer.instantiate();
+ buffer->put_32(magic);
+ buffer->put_32(state->major_version); // version
+ buffer->put_32(header_size + chunk_header_size + text_chunk_length + chunk_header_size + binary_data_length); // length
+ buffer->put_32(text_chunk_length);
+ buffer->put_32(text_chunk_type);
+ buffer->put_data((uint8_t *)&cs[0], cs.length());
+ if (binary_chunk_length) {
+ buffer->put_32(binary_chunk_length);
+ buffer->put_32(binary_chunk_type);
+ buffer->put_data(state->buffers[0].ptr(), binary_data_length);
+ }
+ return buffer->get_data_array();
+}
+
+PackedByteArray GLTFDocument::generate_buffer(Ref<GLTFState> state) {
+ ERR_FAIL_NULL_V(state, PackedByteArray());
+ Error err = _serialize(state, "");
+ ERR_FAIL_COND_V(err != OK, PackedByteArray());
+ PackedByteArray bytes = _serialize_glb_buffer(state, &err);
+ return bytes;
+}
+
+Error GLTFDocument::write_to_filesystem(Ref<GLTFState> state, const String &p_path) {
+ ERR_FAIL_NULL_V(state, ERR_INVALID_PARAMETER);
+
+ Error err = _serialize(state, p_path);
+ if (err != OK) {
+ return err;
+ }
+
+ err = _serialize_file(state, p_path);
+ if (err != OK) {
+ return Error::FAILED;
+ }
+ return OK;
+}
+
+Node *GLTFDocument::generate_scene(Ref<GLTFState> state, int32_t p_bake_fps) {
+ ERR_FAIL_INDEX_V(0, state->root_nodes.size(), nullptr);
+ GLTFNodeIndex gltf_root = state->root_nodes.write[0];
+ Node *gltf_root_node = state->get_scene_node(gltf_root);
+ Node *root = gltf_root_node->get_parent();
+ ERR_FAIL_NULL_V(root, nullptr);
+ _process_mesh_instances(state, root);
+ if (state->animations.size()) {
+ AnimationPlayer *ap = memnew(AnimationPlayer);
+ root->add_child(ap, true);
+ ap->set_owner(root);
+ for (int i = 0; i < state->animations.size(); i++) {
+ _import_animation(state, ap, i, p_bake_fps);
+ }
+ }
+
+ for (int32_t ext_i = 0; ext_i < document_extensions.size(); ext_i++) {
+ Ref<GLTFDocumentExtension> ext = document_extensions[ext_i];
+ ERR_CONTINUE(ext.is_null());
+ Error err = ext->import_post(this, root);
+ ERR_FAIL_COND_V(err != OK, nullptr);
+ }
+ ERR_FAIL_NULL_V(root, nullptr);
+ return root;
+}
+
+Error GLTFDocument::append_from_scene(Node *p_node, Ref<GLTFState> state, uint32_t p_flags, int32_t p_bake_fps) {
+ ERR_FAIL_COND_V(state.is_null(), FAILED);
+ state->use_named_skin_binds =
+ p_flags & EditorSceneFormatImporter::IMPORT_USE_NAMED_SKIN_BINDS;
+
+ _convert_scene_node(state, p_node, -1, -1);
+ if (!state->buffers.size()) {
+ state->buffers.push_back(Vector<uint8_t>());
+ }
+
+ /* STEP 1 CONVERT MESH INSTANCES */
+ _convert_mesh_instances(state);
+
+ /* STEP 2 CREATE SKINS */
+ Error err = _serialize_skins(state);
+ return err;
+}
+
+Error GLTFDocument::append_from_buffer(PackedByteArray p_bytes, String p_base_path, Ref<GLTFState> state, uint32_t p_flags, int32_t p_bake_fps) {
+ ERR_FAIL_COND_V(state.is_null(), FAILED);
+ // TODO Add missing texture and missing .bin file paths to r_missing_deps 2021-09-10 fire
+ Error err = FAILED;
+ state->use_named_skin_binds =
+ p_flags & EditorSceneFormatImporter::IMPORT_USE_NAMED_SKIN_BINDS;
+ FileAccessMemory *file_access = memnew(FileAccessMemory);
+ file_access->open_custom(p_bytes.ptr(), p_bytes.size());
+ err = _parse(state, p_base_path.get_base_dir(), file_access, p_bake_fps);
+ ERR_FAIL_COND_V(err != OK, FAILED);
+ return OK;
+}
+
+Error GLTFDocument::_parse_gltf_state(Ref<GLTFState> state, const String &p_search_path, float p_bake_fps) {
+ Error err;
+
+ /* PARSE EXTENSIONS */
+ err = _parse_gltf_extensions(state);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE SCENE */
+ err = _parse_scenes(state);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE NODES */
+ err = _parse_nodes(state);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE BUFFERS */
+ err = _parse_buffers(state, p_search_path);
+
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE BUFFER VIEWS */
+ err = _parse_buffer_views(state);
+
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE ACCESSORS */
+ err = _parse_accessors(state);
+
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE IMAGES */
+ err = _parse_images(state, p_search_path);
+
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE TEXTURES */
+ err = _parse_textures(state);
+
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE TEXTURES */
+ err = _parse_materials(state);
+
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE SKINS */
+ err = _parse_skins(state);
+
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* DETERMINE SKELETONS */
+ err = _determine_skeletons(state);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* CREATE SKELETONS */
+ err = _create_skeletons(state);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* CREATE SKINS */
+ err = _create_skins(state);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE MESHES (we have enough info now) */
+ err = _parse_meshes(state);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE LIGHTS */
+ err = _parse_lights(state);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE CAMERAS */
+ err = _parse_cameras(state);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* PARSE ANIMATIONS */
+ err = _parse_animations(state);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+
+ /* ASSIGN SCENE NAMES */
+ _assign_scene_names(state);
+
+ Node3D *root = memnew(Node3D);
+ for (int32_t root_i = 0; root_i < state->root_nodes.size(); root_i++) {
+ _generate_scene_node(state, root, root, state->root_nodes[root_i]);
+ }
+ return OK;
+}
+
+Error GLTFDocument::append_from_file(String p_path, Ref<GLTFState> r_state, uint32_t p_flags, int32_t p_bake_fps) {
+ // TODO Add missing texture and missing .bin file paths to r_missing_deps 2021-09-10 fire
+ if (r_state == Ref<GLTFState>()) {
+ r_state.instantiate();
+ }
+ r_state->filename = p_path.get_file().get_basename();
+ r_state->use_named_skin_binds =
+ p_flags & EditorSceneFormatImporter::IMPORT_USE_NAMED_SKIN_BINDS;
+ Error err;
+ FileAccess *f = FileAccess::open(p_path, FileAccess::READ, &err);
+ ERR_FAIL_COND_V(err != OK, ERR_FILE_CANT_OPEN);
+ ERR_FAIL_NULL_V(f, ERR_FILE_CANT_OPEN);
+
+ err = _parse(r_state, p_path.get_base_dir(), f, p_bake_fps);
+ ERR_FAIL_COND_V(err != OK, ERR_PARSE_ERROR);
+ return err;
+}
+
+Error GLTFDocument::_parse_gltf_extensions(Ref<GLTFState> state) {
+ ERR_FAIL_NULL_V(state, ERR_PARSE_ERROR);
+ if (state->json.has("extensionsRequired") && state->json["extensionsRequired"].get_type() == Variant::ARRAY) {
+ Array extensions_required = state->json["extensionsRequired"];
+ if (extensions_required.find("KHR_draco_mesh_compression") != -1) {
+ ERR_PRINT("glTF2 extension KHR_draco_mesh_compression is not supported.");
+ return ERR_UNAVAILABLE;
+ }
+ }
+ return OK;
+}
diff --git a/modules/gltf/gltf_document.h b/modules/gltf/gltf_document.h
index f8d9521733..c0649e0129 100644
--- a/modules/gltf/gltf_document.h
+++ b/modules/gltf/gltf_document.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,6 +33,7 @@
#include "gltf_animation.h"
+#include "core/error/error_list.h"
#include "core/variant/dictionary.h"
#include "core/variant/variant.h"
#include "gltf_document_extension_convert_importer_mesh.h"
@@ -120,11 +121,6 @@ protected:
static void _bind_methods();
public:
- Node *import_scene(const String &p_path, uint32_t p_flags, int32_t p_bake_fps, Ref<GLTFState> r_state);
- Node *import_scene_gltf(const String &p_path, uint32_t p_flags, int32_t p_bake_fps, Ref<GLTFState> r_state, List<String> *r_missing_deps, Error *r_err = nullptr);
- Error save_scene(Node *p_node, const String &p_path,
- const String &p_src_path, uint32_t p_flags,
- float p_bake_fps, Ref<GLTFState> r_state);
void set_extensions(TypedArray<GLTFDocumentExtension> p_extensions);
TypedArray<GLTFDocumentExtension> get_extensions() const;
@@ -200,7 +196,7 @@ private:
Ref<Texture2D> _get_texture(Ref<GLTFState> state,
const GLTFTextureIndex p_texture);
Error _parse_json(const String &p_path, Ref<GLTFState> state);
- Error _parse_glb(const String &p_path, Ref<GLTFState> state);
+ Error _parse_glb(FileAccess *f, Ref<GLTFState> state);
void _compute_node_heights(Ref<GLTFState> state);
Error _parse_buffers(Ref<GLTFState> state, const String &p_base_path);
Error _parse_buffer_views(Ref<GLTFState> state);
@@ -287,10 +283,10 @@ private:
Skeleton3D *skeleton,
const GLTFNodeIndex node_index,
const GLTFNodeIndex bone_index);
- ImporterMeshInstance3D *_generate_mesh_instance(Ref<GLTFState> state, Node *parent_node, const GLTFNodeIndex node_index);
- Camera3D *_generate_camera(Ref<GLTFState> state, Node *parent_node, const GLTFNodeIndex node_index);
- Node3D *_generate_light(Ref<GLTFState> state, Node *parent_node, const GLTFNodeIndex node_index);
- Node3D *_generate_spatial(Ref<GLTFState> state, Node *parent_node, const GLTFNodeIndex node_index);
+ ImporterMeshInstance3D *_generate_mesh_instance(Ref<GLTFState> state, const GLTFNodeIndex node_index);
+ Camera3D *_generate_camera(Ref<GLTFState> state, const GLTFNodeIndex node_index);
+ Node3D *_generate_light(Ref<GLTFState> state, const GLTFNodeIndex node_index);
+ Node3D *_generate_spatial(Ref<GLTFState> state, const GLTFNodeIndex node_index);
void _assign_scene_names(Ref<GLTFState> state);
template <class T>
T _interpolate_track(const Vector<real_t> &p_times, const Vector<T> &p_values,
@@ -361,6 +357,7 @@ private:
GLTFNodeIndex p_node_i);
Error _encode_buffer_bins(Ref<GLTFState> state, const String &p_path);
Error _encode_buffer_glb(Ref<GLTFState> state, const String &p_path);
+ PackedByteArray _serialize_glb_buffer(Ref<GLTFState> state, Error *r_err);
Dictionary _serialize_texture_transform_uv1(Ref<BaseMaterial3D> p_material);
Dictionary _serialize_texture_transform_uv2(Ref<BaseMaterial3D> p_material);
Error _serialize_version(Ref<GLTFState> state);
@@ -384,6 +381,18 @@ private:
static float get_max_component(const Color &p_color);
public:
+ Error append_from_file(String p_path, Ref<GLTFState> r_state, uint32_t p_flags = 0, int32_t p_bake_fps = 30);
+ Error append_from_buffer(PackedByteArray p_bytes, String p_base_path, Ref<GLTFState> r_state, uint32_t p_flags = 0, int32_t p_bake_fps = 30);
+ Error append_from_scene(Node *p_node, Ref<GLTFState> r_state, uint32_t p_flags = 0, int32_t p_bake_fps = 30);
+
+public:
+ Node *generate_scene(Ref<GLTFState> state, int32_t p_bake_fps = 30.0f);
+ PackedByteArray generate_buffer(Ref<GLTFState> state);
+ Error write_to_filesystem(Ref<GLTFState> state, const String &p_path);
+
+public:
+ Error _parse_gltf_state(Ref<GLTFState> state, const String &p_search_path, float p_bake_fps);
+ Error _parse_gltf_extensions(Ref<GLTFState> state);
void _process_mesh_instances(Ref<GLTFState> state, Node *scene_root);
void _generate_scene_node(Ref<GLTFState> state, Node *scene_parent,
Node3D *scene_root,
@@ -447,8 +456,8 @@ public:
MeshInstance3D *p_mesh_instance);
void _convert_animation(Ref<GLTFState> state, AnimationPlayer *ap,
String p_animation_track_name);
- Error serialize(Ref<GLTFState> state, Node *p_root, const String &p_path);
- Error parse(Ref<GLTFState> state, String p_paths, bool p_read_binary = false);
+ Error _serialize(Ref<GLTFState> state, const String &p_path);
+ Error _parse(Ref<GLTFState> state, String p_path, FileAccess *f, int p_bake_fps);
};
#endif // GLTF_DOCUMENT_H
diff --git a/modules/gltf/gltf_document_extension.cpp b/modules/gltf/gltf_document_extension.cpp
index a423059a9c..192a1d347c 100644
--- a/modules/gltf/gltf_document_extension.cpp
+++ b/modules/gltf/gltf_document_extension.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_document_extension.h b/modules/gltf/gltf_document_extension.h
index 622a65708c..f7a3531282 100644
--- a/modules/gltf/gltf_document_extension.h
+++ b/modules/gltf/gltf_document_extension.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_document_extension_convert_importer_mesh.cpp b/modules/gltf/gltf_document_extension_convert_importer_mesh.cpp
index 56c8f5ca27..47a3e5598f 100644
--- a/modules/gltf/gltf_document_extension_convert_importer_mesh.cpp
+++ b/modules/gltf/gltf_document_extension_convert_importer_mesh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_document_extension_convert_importer_mesh.h b/modules/gltf/gltf_document_extension_convert_importer_mesh.h
index 85ddb4d250..2d51143140 100644
--- a/modules/gltf/gltf_document_extension_convert_importer_mesh.h
+++ b/modules/gltf/gltf_document_extension_convert_importer_mesh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_light.cpp b/modules/gltf/gltf_light.cpp
index c5aa8d5724..af21a4e804 100644
--- a/modules/gltf/gltf_light.cpp
+++ b/modules/gltf/gltf_light.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_light.h b/modules/gltf/gltf_light.h
index 62a20d2f16..25e0835a33 100644
--- a/modules/gltf/gltf_light.h
+++ b/modules/gltf/gltf_light.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_mesh.cpp b/modules/gltf/gltf_mesh.cpp
index 7134345b30..1251622642 100644
--- a/modules/gltf/gltf_mesh.cpp
+++ b/modules/gltf/gltf_mesh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_mesh.h b/modules/gltf/gltf_mesh.h
index cc2be93c09..aeab1ad68f 100644
--- a/modules/gltf/gltf_mesh.h
+++ b/modules/gltf/gltf_mesh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_node.cpp b/modules/gltf/gltf_node.cpp
index 9f925c7bbc..86280603fa 100644
--- a/modules/gltf/gltf_node.cpp
+++ b/modules/gltf/gltf_node.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_node.h b/modules/gltf/gltf_node.h
index 3b6e061449..929ad3eca0 100644
--- a/modules/gltf/gltf_node.h
+++ b/modules/gltf/gltf_node.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_skeleton.cpp b/modules/gltf/gltf_skeleton.cpp
index d6c7a25eaf..e80376f130 100644
--- a/modules/gltf/gltf_skeleton.cpp
+++ b/modules/gltf/gltf_skeleton.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_skeleton.h b/modules/gltf/gltf_skeleton.h
index d6986eb35a..7d07d528cb 100644
--- a/modules/gltf/gltf_skeleton.h
+++ b/modules/gltf/gltf_skeleton.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_skin.cpp b/modules/gltf/gltf_skin.cpp
index 5cf17135ac..283fc34ff5 100644
--- a/modules/gltf/gltf_skin.cpp
+++ b/modules/gltf/gltf_skin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_skin.h b/modules/gltf/gltf_skin.h
index e32e2d397c..31cb892f19 100644
--- a/modules/gltf/gltf_skin.h
+++ b/modules/gltf/gltf_skin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_spec_gloss.cpp b/modules/gltf/gltf_spec_gloss.cpp
index 70b182da52..83af91bfcc 100644
--- a/modules/gltf/gltf_spec_gloss.cpp
+++ b/modules/gltf/gltf_spec_gloss.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_spec_gloss.h b/modules/gltf/gltf_spec_gloss.h
index 3cc6fb09ed..f8a431bdce 100644
--- a/modules/gltf/gltf_spec_gloss.h
+++ b/modules/gltf/gltf_spec_gloss.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_state.cpp b/modules/gltf/gltf_state.cpp
index ff9778e7d8..3f638bbca5 100644
--- a/modules/gltf/gltf_state.cpp
+++ b/modules/gltf/gltf_state.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_state.h b/modules/gltf/gltf_state.h
index 61faba0dc5..d03434d2f1 100644
--- a/modules/gltf/gltf_state.h
+++ b/modules/gltf/gltf_state.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_texture.cpp b/modules/gltf/gltf_texture.cpp
index 0482c1064e..2a21cb3df8 100644
--- a/modules/gltf/gltf_texture.cpp
+++ b/modules/gltf/gltf_texture.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/gltf_texture.h b/modules/gltf/gltf_texture.h
index 4659725502..54dd61f9a5 100644
--- a/modules/gltf/gltf_texture.h
+++ b/modules/gltf/gltf_texture.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/register_types.cpp b/modules/gltf/register_types.cpp
index 5a60c2d328..6ab202096d 100644
--- a/modules/gltf/register_types.cpp
+++ b/modules/gltf/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gltf/register_types.h b/modules/gltf/register_types.h
index fefacb1106..4a9c31241c 100644
--- a/modules/gltf/register_types.h
+++ b/modules/gltf/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gridmap/doc_classes/GridMap.xml b/modules/gridmap/doc_classes/GridMap.xml
index 73315350ff..885817caf1 100644
--- a/modules/gridmap/doc_classes/GridMap.xml
+++ b/modules/gridmap/doc_classes/GridMap.xml
@@ -181,6 +181,9 @@
<member name="navigation_layers" type="int" setter="set_navigation_layers" getter="get_navigation_layers" default="1">
The navigation layers the GridMap generates its navigable regions in.
</member>
+ <member name="physics_material" type="PhysicsMaterial" setter="set_physics_material" getter="get_physics_material">
+ Overrides the default friction and bounce physics properties for the whole [GridMap].
+ </member>
</members>
<signals>
<signal name="cell_size_changed">
diff --git a/modules/gridmap/grid_map.cpp b/modules/gridmap/grid_map.cpp
index c9d8f2b42b..a861efcbf4 100644
--- a/modules/gridmap/grid_map.cpp
+++ b/modules/gridmap/grid_map.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -34,6 +34,7 @@
#include "core/object/message_queue.h"
#include "scene/3d/light_3d.h"
#include "scene/resources/mesh_library.h"
+#include "scene/resources/physics_material.h"
#include "scene/resources/surface_tool.h"
#include "scene/scene_string_names.h"
#include "servers/navigation_server_3d.h"
@@ -181,6 +182,15 @@ void GridMap::set_collision_mask_value(int p_layer_number, bool p_value) {
set_collision_mask(mask);
}
+void GridMap::set_physics_material(Ref<PhysicsMaterial> p_material) {
+ physics_material = p_material;
+ _recreate_octant_data();
+}
+
+Ref<PhysicsMaterial> GridMap::get_physics_material() const {
+ return physics_material;
+}
+
bool GridMap::get_collision_mask_value(int p_layer_number) const {
ERR_FAIL_COND_V_MSG(p_layer_number < 1, false, "Collision layer number must be between 1 and 32 inclusive.");
ERR_FAIL_COND_V_MSG(p_layer_number > 32, false, "Collision layer number must be between 1 and 32 inclusive.");
@@ -316,6 +326,10 @@ void GridMap::set_cell_item(const Vector3i &p_position, int p_item, int p_rot) {
PhysicsServer3D::get_singleton()->body_attach_object_instance_id(g->static_body, get_instance_id());
PhysicsServer3D::get_singleton()->body_set_collision_layer(g->static_body, collision_layer);
PhysicsServer3D::get_singleton()->body_set_collision_mask(g->static_body, collision_mask);
+ if (physics_material.is_valid()) {
+ PhysicsServer3D::get_singleton()->body_set_param(g->static_body, PhysicsServer3D::BODY_PARAM_FRICTION, physics_material->get_friction());
+ PhysicsServer3D::get_singleton()->body_set_param(g->static_body, PhysicsServer3D::BODY_PARAM_BOUNCE, physics_material->get_bounce());
+ }
SceneTree *st = SceneTree::get_singleton();
if (st && st->is_debugging_collisions_hint()) {
@@ -801,6 +815,9 @@ void GridMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_collision_layer_value", "layer_number", "value"), &GridMap::set_collision_layer_value);
ClassDB::bind_method(D_METHOD("get_collision_layer_value", "layer_number"), &GridMap::get_collision_layer_value);
+ ClassDB::bind_method(D_METHOD("set_physics_material", "material"), &GridMap::set_physics_material);
+ ClassDB::bind_method(D_METHOD("get_physics_material"), &GridMap::get_physics_material);
+
ClassDB::bind_method(D_METHOD("set_bake_navigation", "bake_navigation"), &GridMap::set_bake_navigation);
ClassDB::bind_method(D_METHOD("is_baking_navigation"), &GridMap::is_baking_navigation);
@@ -850,6 +867,7 @@ void GridMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("make_baked_meshes", "gen_lightmap_uv", "lightmap_uv_texel_size"), &GridMap::make_baked_meshes, DEFVAL(false), DEFVAL(0.1));
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "mesh_library", PROPERTY_HINT_RESOURCE_TYPE, "MeshLibrary"), "set_mesh_library", "get_mesh_library");
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "physics_material", PROPERTY_HINT_RESOURCE_TYPE, "PhysicsMaterial"), "set_physics_material", "get_physics_material");
ADD_GROUP("Cell", "cell_");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "cell_size"), "set_cell_size", "get_cell_size");
ADD_PROPERTY(PropertyInfo(Variant::INT, "cell_octant_size", PROPERTY_HINT_RANGE, "1,1024,1"), "set_octant_size", "get_octant_size");
diff --git a/modules/gridmap/grid_map.h b/modules/gridmap/grid_map.h
index 879489fc70..546b530148 100644
--- a/modules/gridmap/grid_map.h
+++ b/modules/gridmap/grid_map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -38,6 +38,8 @@
//heh heh, godotsphir!! this shares no code and the design is completely different with previous projects i've done..
//should scale better with hardware that supports instancing
+class PhysicsMaterial;
+
class GridMap : public Node3D {
GDCLASS(GridMap, Node3D);
@@ -134,6 +136,7 @@ class GridMap : public Node3D {
uint32_t collision_layer = 1;
uint32_t collision_mask = 1;
+ Ref<PhysicsMaterial> physics_material;
bool bake_navigation = false;
uint32_t navigation_layers = 1;
@@ -223,6 +226,9 @@ public:
void set_collision_mask_value(int p_layer_number, bool p_value);
bool get_collision_mask_value(int p_layer_number) const;
+ void set_physics_material(Ref<PhysicsMaterial> p_material);
+ Ref<PhysicsMaterial> get_physics_material() const;
+
void set_bake_navigation(bool p_bake_navigation);
bool is_baking_navigation();
diff --git a/modules/gridmap/grid_map_editor_plugin.cpp b/modules/gridmap/grid_map_editor_plugin.cpp
index c2169c6335..7abc8f7d7a 100644
--- a/modules/gridmap/grid_map_editor_plugin.cpp
+++ b/modules/gridmap/grid_map_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gridmap/grid_map_editor_plugin.h b/modules/gridmap/grid_map_editor_plugin.h
index 1a6b1310d8..7e9510e227 100644
--- a/modules/gridmap/grid_map_editor_plugin.h
+++ b/modules/gridmap/grid_map_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gridmap/register_types.cpp b/modules/gridmap/register_types.cpp
index 85739d202e..f05c5de18b 100644
--- a/modules/gridmap/register_types.cpp
+++ b/modules/gridmap/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/gridmap/register_types.h b/modules/gridmap/register_types.h
index b977f4c5da..fa3511c5d1 100644
--- a/modules/gridmap/register_types.h
+++ b/modules/gridmap/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/hdr/image_loader_hdr.cpp b/modules/hdr/image_loader_hdr.cpp
index ea28d0c0c8..996bbfadd1 100644
--- a/modules/hdr/image_loader_hdr.cpp
+++ b/modules/hdr/image_loader_hdr.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/hdr/image_loader_hdr.h b/modules/hdr/image_loader_hdr.h
index 33fcdd1245..0213fdbcb2 100644
--- a/modules/hdr/image_loader_hdr.h
+++ b/modules/hdr/image_loader_hdr.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/hdr/register_types.cpp b/modules/hdr/register_types.cpp
index 5a4a1993e0..6bfeecc927 100644
--- a/modules/hdr/register_types.cpp
+++ b/modules/hdr/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/hdr/register_types.h b/modules/hdr/register_types.h
index c85bc84dce..4224aa2ce2 100644
--- a/modules/hdr/register_types.h
+++ b/modules/hdr/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/jpg/image_loader_jpegd.cpp b/modules/jpg/image_loader_jpegd.cpp
index b5e4753e8d..e8c66ab9da 100644
--- a/modules/jpg/image_loader_jpegd.cpp
+++ b/modules/jpg/image_loader_jpegd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/jpg/image_loader_jpegd.h b/modules/jpg/image_loader_jpegd.h
index be265b280c..8e64f6fba7 100644
--- a/modules/jpg/image_loader_jpegd.h
+++ b/modules/jpg/image_loader_jpegd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/jpg/register_types.cpp b/modules/jpg/register_types.cpp
index a6ae96635f..63203274f4 100644
--- a/modules/jpg/register_types.cpp
+++ b/modules/jpg/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/jpg/register_types.h b/modules/jpg/register_types.h
index 577e9b06f7..97223cefda 100644
--- a/modules/jpg/register_types.h
+++ b/modules/jpg/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/jsonrpc/jsonrpc.cpp b/modules/jsonrpc/jsonrpc.cpp
index 3d0759d83e..91774fe1f6 100644
--- a/modules/jsonrpc/jsonrpc.cpp
+++ b/modules/jsonrpc/jsonrpc.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/jsonrpc/jsonrpc.h b/modules/jsonrpc/jsonrpc.h
index 9fd016602d..3144746f6d 100644
--- a/modules/jsonrpc/jsonrpc.h
+++ b/modules/jsonrpc/jsonrpc.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/jsonrpc/register_types.cpp b/modules/jsonrpc/register_types.cpp
index 8fdf6fe1aa..d89b7e9353 100644
--- a/modules/jsonrpc/register_types.cpp
+++ b/modules/jsonrpc/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/jsonrpc/register_types.h b/modules/jsonrpc/register_types.h
index 6a21a12444..57744e6c07 100644
--- a/modules/jsonrpc/register_types.h
+++ b/modules/jsonrpc/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/lightmapper_rd/lightmapper_rd.cpp b/modules/lightmapper_rd/lightmapper_rd.cpp
index 37e969db4d..11715040c2 100644
--- a/modules/lightmapper_rd/lightmapper_rd.cpp
+++ b/modules/lightmapper_rd/lightmapper_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -775,11 +775,7 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
} else {
panorama_tex.instantiate();
panorama_tex->create(8, 8, false, Image::FORMAT_RGBAF);
- for (int i = 0; i < 8; i++) {
- for (int j = 0; j < 8; j++) {
- panorama_tex->set_pixel(i, j, Color(0, 0, 0, 1));
- }
- }
+ panorama_tex->fill(Color(0, 0, 0, 1));
}
RD::TextureFormat tfp;
diff --git a/modules/lightmapper_rd/lightmapper_rd.h b/modules/lightmapper_rd/lightmapper_rd.h
index 51ab60fc29..503f5f7009 100644
--- a/modules/lightmapper_rd/lightmapper_rd.h
+++ b/modules/lightmapper_rd/lightmapper_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/lightmapper_rd/register_types.cpp b/modules/lightmapper_rd/register_types.cpp
index ae9c5fc390..0a96a86076 100644
--- a/modules/lightmapper_rd/register_types.cpp
+++ b/modules/lightmapper_rd/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/lightmapper_rd/register_types.h b/modules/lightmapper_rd/register_types.h
index 622d6e37a7..35a701ce01 100644
--- a/modules/lightmapper_rd/register_types.h
+++ b/modules/lightmapper_rd/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/crypto_mbedtls.cpp b/modules/mbedtls/crypto_mbedtls.cpp
index 9d985e16d4..ea6b6d8233 100644
--- a/modules/mbedtls/crypto_mbedtls.cpp
+++ b/modules/mbedtls/crypto_mbedtls.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/crypto_mbedtls.h b/modules/mbedtls/crypto_mbedtls.h
index afa1ea7a64..5ba7e9cbf6 100644
--- a/modules/mbedtls/crypto_mbedtls.h
+++ b/modules/mbedtls/crypto_mbedtls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/dtls_server_mbedtls.cpp b/modules/mbedtls/dtls_server_mbedtls.cpp
index b1b6b3844b..dedf0651a0 100644
--- a/modules/mbedtls/dtls_server_mbedtls.cpp
+++ b/modules/mbedtls/dtls_server_mbedtls.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/dtls_server_mbedtls.h b/modules/mbedtls/dtls_server_mbedtls.h
index 9f0c9670e7..29370062c4 100644
--- a/modules/mbedtls/dtls_server_mbedtls.h
+++ b/modules/mbedtls/dtls_server_mbedtls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/packet_peer_mbed_dtls.cpp b/modules/mbedtls/packet_peer_mbed_dtls.cpp
index 114bf49e9e..2a5eaa0109 100644
--- a/modules/mbedtls/packet_peer_mbed_dtls.cpp
+++ b/modules/mbedtls/packet_peer_mbed_dtls.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/packet_peer_mbed_dtls.h b/modules/mbedtls/packet_peer_mbed_dtls.h
index 92e6ab88c4..5f2f42cd30 100644
--- a/modules/mbedtls/packet_peer_mbed_dtls.h
+++ b/modules/mbedtls/packet_peer_mbed_dtls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/register_types.cpp b/modules/mbedtls/register_types.cpp
index e483030b94..1af978e70a 100644
--- a/modules/mbedtls/register_types.cpp
+++ b/modules/mbedtls/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/register_types.h b/modules/mbedtls/register_types.h
index 46ffb8522b..4bc2cca118 100644
--- a/modules/mbedtls/register_types.h
+++ b/modules/mbedtls/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/ssl_context_mbedtls.cpp b/modules/mbedtls/ssl_context_mbedtls.cpp
index cbb532587f..e2dad074cc 100644
--- a/modules/mbedtls/ssl_context_mbedtls.cpp
+++ b/modules/mbedtls/ssl_context_mbedtls.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/ssl_context_mbedtls.h b/modules/mbedtls/ssl_context_mbedtls.h
index 5692dec1b6..dd49792abd 100644
--- a/modules/mbedtls/ssl_context_mbedtls.h
+++ b/modules/mbedtls/ssl_context_mbedtls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/stream_peer_mbedtls.cpp b/modules/mbedtls/stream_peer_mbedtls.cpp
index 5727f5f82f..05a57607cd 100644
--- a/modules/mbedtls/stream_peer_mbedtls.cpp
+++ b/modules/mbedtls/stream_peer_mbedtls.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/stream_peer_mbedtls.h b/modules/mbedtls/stream_peer_mbedtls.h
index 407479e3cc..98b91e65ab 100644
--- a/modules/mbedtls/stream_peer_mbedtls.h
+++ b/modules/mbedtls/stream_peer_mbedtls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/tests/test_crypto_mbedtls.cpp b/modules/mbedtls/tests/test_crypto_mbedtls.cpp
index 8762838883..f88012c6cd 100644
--- a/modules/mbedtls/tests/test_crypto_mbedtls.cpp
+++ b/modules/mbedtls/tests/test_crypto_mbedtls.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mbedtls/tests/test_crypto_mbedtls.h b/modules/mbedtls/tests/test_crypto_mbedtls.h
index b798717e52..6f920e5b34 100644
--- a/modules/mbedtls/tests/test_crypto_mbedtls.h
+++ b/modules/mbedtls/tests/test_crypto_mbedtls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/meshoptimizer/register_types.cpp b/modules/meshoptimizer/register_types.cpp
index 77cc82a4e2..57a1b697be 100644
--- a/modules/meshoptimizer/register_types.cpp
+++ b/modules/meshoptimizer/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/meshoptimizer/register_types.h b/modules/meshoptimizer/register_types.h
index 5b15503acd..fdd8bed657 100644
--- a/modules/meshoptimizer/register_types.h
+++ b/modules/meshoptimizer/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/minimp3/audio_stream_mp3.cpp b/modules/minimp3/audio_stream_mp3.cpp
index 17406b7263..63fec6db8c 100644
--- a/modules/minimp3/audio_stream_mp3.cpp
+++ b/modules/minimp3/audio_stream_mp3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/minimp3/audio_stream_mp3.h b/modules/minimp3/audio_stream_mp3.h
index e3adfe683b..c1a60ddccb 100644
--- a/modules/minimp3/audio_stream_mp3.h
+++ b/modules/minimp3/audio_stream_mp3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/minimp3/register_types.cpp b/modules/minimp3/register_types.cpp
index 63f2589f42..4d32ebf8ea 100644
--- a/modules/minimp3/register_types.cpp
+++ b/modules/minimp3/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/minimp3/register_types.h b/modules/minimp3/register_types.h
index 96227c272e..fa7f67eefc 100644
--- a/modules/minimp3/register_types.h
+++ b/modules/minimp3/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/minimp3/resource_importer_mp3.cpp b/modules/minimp3/resource_importer_mp3.cpp
index b2a755e23b..0e0da806bf 100644
--- a/modules/minimp3/resource_importer_mp3.cpp
+++ b/modules/minimp3/resource_importer_mp3.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/minimp3/resource_importer_mp3.h b/modules/minimp3/resource_importer_mp3.h
index 356ec77d22..75890228b9 100644
--- a/modules/minimp3/resource_importer_mp3.h
+++ b/modules/minimp3/resource_importer_mp3.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mobile_vr/mobile_vr_interface.cpp b/modules/mobile_vr/mobile_vr_interface.cpp
index ba7353ace2..59854ad527 100644
--- a/modules/mobile_vr/mobile_vr_interface.cpp
+++ b/modules/mobile_vr/mobile_vr_interface.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mobile_vr/mobile_vr_interface.h b/modules/mobile_vr/mobile_vr_interface.h
index b5bf966247..9fcac3afe2 100644
--- a/modules/mobile_vr/mobile_vr_interface.h
+++ b/modules/mobile_vr/mobile_vr_interface.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mobile_vr/register_types.cpp b/modules/mobile_vr/register_types.cpp
index 233c16531a..682d8bf59a 100644
--- a/modules/mobile_vr/register_types.cpp
+++ b/modules/mobile_vr/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mobile_vr/register_types.h b/modules/mobile_vr/register_types.h
index 9f20f252a4..8db96ac2fa 100644
--- a/modules/mobile_vr/register_types.h
+++ b/modules/mobile_vr/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/SCsub b/modules/mono/SCsub
index 95c959235c..db35e804aa 100644
--- a/modules/mono/SCsub
+++ b/modules/mono/SCsub
@@ -63,3 +63,5 @@ elif env["platform"] == "android":
if env["tools"]:
env_mono.add_source_files(env.modules_sources, "editor/*.cpp")
+
+SConscript("editor_templates/SCsub")
diff --git a/modules/mono/class_db_api_json.cpp b/modules/mono/class_db_api_json.cpp
index 0da06131af..5884a24454 100644
--- a/modules/mono/class_db_api_json.cpp
+++ b/modules/mono/class_db_api_json.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/class_db_api_json.h b/modules/mono/class_db_api_json.h
index 6698a6260f..1d2000b033 100644
--- a/modules/mono/class_db_api_json.h
+++ b/modules/mono/class_db_api_json.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp
index 0ceb45d425..3d02f638ec 100644
--- a/modules/mono/csharp_script.cpp
+++ b/modules/mono/csharp_script.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -55,6 +55,7 @@
#endif
#include "editor/editor_internal_calls.h"
+#include "editor_templates/templates.gen.h"
#include "godotsharp_dirs.h"
#include "mono_gd/gd_mono_cache.h"
#include "mono_gd/gd_mono_class.h"
@@ -351,57 +352,33 @@ static String get_base_class_name(const String &p_base_class_name, const String
return base_class;
}
-Ref<Script> CSharpLanguage::get_template(const String &p_class_name, const String &p_base_class_name) const {
- String script_template = "using " BINDINGS_NAMESPACE ";\n"
- "using System;\n"
- "\n"
- "public partial class %CLASS% : %BASE%\n"
- "{\n"
- " // Declare member variables here. Examples:\n"
- " // private int a = 2;\n"
- " // private string b = \"text\";\n"
- "\n"
- " // Called when the node enters the scene tree for the first time.\n"
- " public override void _Ready()\n"
- " {\n"
- " \n"
- " }\n"
- "\n"
- "// // Called every frame. 'delta' is the elapsed time since the previous frame.\n"
- "// public override void _Process(float delta)\n"
- "// {\n"
- "// \n"
- "// }\n"
- "}\n";
-
- // Replaces all spaces in p_class_name with underscores to prevent
- // invalid C# Script templates from being generated when the object name
- // has spaces in it.
- String class_name_no_spaces = p_class_name.replace(" ", "_");
- String base_class_name = get_base_class_name(p_base_class_name, class_name_no_spaces);
- script_template = script_template.replace("%BASE%", base_class_name)
- .replace("%CLASS%", class_name_no_spaces);
+bool CSharpLanguage::is_using_templates() {
+ return true;
+}
+Ref<Script> CSharpLanguage::make_template(const String &p_template, const String &p_class_name, const String &p_base_class_name) const {
Ref<CSharpScript> script;
script.instantiate();
- script->set_source_code(script_template);
- script->set_name(class_name_no_spaces);
+ String class_name_no_spaces = p_class_name.replace(" ", "_");
+ String base_class_name = get_base_class_name(p_base_class_name, class_name_no_spaces);
+ String processed_template = p_template;
+ processed_template = processed_template.replace("_BINDINGS_NAMESPACE_", BINDINGS_NAMESPACE)
+ .replace("_BASE_", base_class_name)
+ .replace("_CLASS_", class_name_no_spaces)
+ .replace("_TS_", _get_indentation());
+ script->set_source_code(processed_template);
return script;
}
-bool CSharpLanguage::is_using_templates() {
- return true;
-}
-
-void CSharpLanguage::make_template(const String &p_class_name, const String &p_base_class_name, Ref<Script> &p_script) {
- String src = p_script->get_source_code();
- String class_name_no_spaces = p_class_name.replace(" ", "_");
- String base_class_name = get_base_class_name(p_base_class_name, class_name_no_spaces);
- src = src.replace("%BASE%", base_class_name)
- .replace("%CLASS%", class_name_no_spaces)
- .replace("%TS%", _get_indentation());
- p_script->set_source_code(src);
+Vector<ScriptLanguage::ScriptTemplate> CSharpLanguage::get_built_in_templates(StringName p_object) {
+ Vector<ScriptLanguage::ScriptTemplate> templates;
+ for (int i = 0; i < TEMPLATES_ARRAY_SIZE; i++) {
+ if (TEMPLATES[i].inherit == p_object) {
+ templates.append(TEMPLATES[i]);
+ }
+ }
+ return templates;
}
String CSharpLanguage::validate_path(const String &p_path) const {
@@ -1762,7 +1739,16 @@ void CSharpInstance::get_properties_state_for_reloading(List<Pair<StringName, Va
ManagedType managedType;
- GDMonoField *field = script->script_class->get_field(state_pair.first);
+ GDMonoField *field = nullptr;
+ GDMonoClass *top = script->script_class;
+ while (top && top != script->native) {
+ field = top->get_field(state_pair.first);
+ if (field) {
+ break;
+ }
+
+ top = top->get_parent_class();
+ }
if (!field) {
continue; // Properties ignored. We get the property baking fields instead.
}
diff --git a/modules/mono/csharp_script.h b/modules/mono/csharp_script.h
index c998d9c1e4..221bba3af9 100644
--- a/modules/mono/csharp_script.h
+++ b/modules/mono/csharp_script.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -463,9 +463,9 @@ public:
bool is_control_flow_keyword(String p_keyword) const override;
void get_comment_delimiters(List<String> *p_delimiters) const override;
void get_string_delimiters(List<String> *p_delimiters) const override;
- Ref<Script> get_template(const String &p_class_name, const String &p_base_class_name) const override;
bool is_using_templates() override;
- void make_template(const String &p_class_name, const String &p_base_class_name, Ref<Script> &p_script) override;
+ virtual Ref<Script> make_template(const String &p_template, const String &p_class_name, const String &p_base_class_name) const override;
+ virtual Vector<ScriptTemplate> get_built_in_templates(StringName p_object) override;
/* TODO */ bool validate(const String &p_script, const String &p_path, List<String> *r_functions,
List<ScriptLanguage::ScriptError> *r_errors = nullptr, List<ScriptLanguage::Warning> *r_warnings = nullptr, Set<int> *r_safe_lines = nullptr) const override {
return true;
diff --git a/modules/mono/editor/bindings_generator.cpp b/modules/mono/editor/bindings_generator.cpp
index 148a6796d2..1b4ab0ef4b 100644
--- a/modules/mono/editor/bindings_generator.cpp
+++ b/modules/mono/editor/bindings_generator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/editor/bindings_generator.h b/modules/mono/editor/bindings_generator.h
index a7879e96c8..2e6ce3a952 100644
--- a/modules/mono/editor/bindings_generator.h
+++ b/modules/mono/editor/bindings_generator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/editor/code_completion.cpp b/modules/mono/editor/code_completion.cpp
index 61d0890288..095fd831a3 100644
--- a/modules/mono/editor/code_completion.cpp
+++ b/modules/mono/editor/code_completion.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/editor/code_completion.h b/modules/mono/editor/code_completion.h
index 7f7521672b..82b592003b 100644
--- a/modules/mono/editor/code_completion.h
+++ b/modules/mono/editor/code_completion.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/editor/editor_internal_calls.cpp b/modules/mono/editor/editor_internal_calls.cpp
index 9a61b63c12..3c02ea0e8e 100644
--- a/modules/mono/editor/editor_internal_calls.cpp
+++ b/modules/mono/editor/editor_internal_calls.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/editor/editor_internal_calls.h b/modules/mono/editor/editor_internal_calls.h
index 24080cd867..a899634d57 100644
--- a/modules/mono/editor/editor_internal_calls.h
+++ b/modules/mono/editor/editor_internal_calls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/editor/godotsharp_export.cpp b/modules/mono/editor/godotsharp_export.cpp
index 54dbaebf38..f9ea403334 100644
--- a/modules/mono/editor/godotsharp_export.cpp
+++ b/modules/mono/editor/godotsharp_export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/editor/godotsharp_export.h b/modules/mono/editor/godotsharp_export.h
index 0e9d689618..60620b5f4d 100644
--- a/modules/mono/editor/godotsharp_export.h
+++ b/modules/mono/editor/godotsharp_export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/editor_templates/CharacterBody2D/basic_movement.cs b/modules/mono/editor_templates/CharacterBody2D/basic_movement.cs
new file mode 100644
index 0000000000..6e9547ce9b
--- /dev/null
+++ b/modules/mono/editor_templates/CharacterBody2D/basic_movement.cs
@@ -0,0 +1,41 @@
+// meta-description: Classic movement for gravity games (platformer, ...)
+
+using _BINDINGS_NAMESPACE_;
+using System;
+
+public partial class _CLASS_ : _BASE_
+{
+ public const float Speed = 300.0f;
+ public const float JumpForce = -400.0f;
+
+ // Get the gravity from the project settings to be synced with RigidDynamicBody nodes.
+ public float gravity = (float)ProjectSettings.GetSetting("physics/2d/default_gravity");
+
+ public override void _PhysicsProcess(float delta)
+ {
+ Vector2 motionVelocity = MotionVelocity;
+
+ // Add the gravity.
+ if (!IsOnFloor())
+ motionVelocity.y += gravity * delta;
+
+ // Handle Jump.
+ if (Input.IsActionJustPressed("ui_accept") && IsOnFloor())
+ motionVelocity.y = JumpForce;
+
+ // Get the input direction and handle the movement/deceleration.
+ // As good practice, you should replace UI actions with custom gameplay actions.
+ Vector2 direction = Input.GetVector("ui_left", "ui_right", "ui_up", "ui_down");
+ if (direction != Vector2.Zero)
+ {
+ motionVelocity.x = direction.x * Speed;
+ }
+ else
+ {
+ motionVelocity.x = Mathf.MoveToward(MotionVelocity.x, 0, Speed);
+ }
+
+ MotionVelocity = motionVelocity;
+ MoveAndSlide();
+ }
+}
diff --git a/modules/mono/editor_templates/CharacterBody3D/basic_movement.cs b/modules/mono/editor_templates/CharacterBody3D/basic_movement.cs
new file mode 100644
index 0000000000..13be4bbcb1
--- /dev/null
+++ b/modules/mono/editor_templates/CharacterBody3D/basic_movement.cs
@@ -0,0 +1,44 @@
+// meta-description: Classic movement for gravity games (FPS, TPS, ...)
+
+using _BINDINGS_NAMESPACE_;
+using System;
+
+public partial class _CLASS_ : _BASE_
+{
+ public const float Speed = 5.0f;
+ public const float JumpForce = 4.5f;
+
+ // Get the gravity from the project settings to be synced with RigidDynamicBody nodes.
+ public float gravity = (float)ProjectSettings.GetSetting("physics/3d/default_gravity");
+
+ public override void _PhysicsProcess(float delta)
+ {
+ Vector3 motionVelocity = MotionVelocity;
+
+ // Add the gravity.
+ if (!IsOnFloor())
+ motionVelocity.y -= gravity * delta;
+
+ // Handle Jump.
+ if (Input.IsActionJustPressed("ui_accept") && IsOnFloor())
+ motionVelocity.y = JumpForce;
+
+ // Get the input direction and handle the movement/deceleration.
+ // As good practice, you should replace UI actions with custom gameplay actions.
+ Vector2 inputDir = Input.GetVector("ui_left", "ui_right", "ui_up", "ui_down");
+ Vector3 direction = Transform.basis.Xform(new Vector3(inputDir.x, 0, inputDir.y)).Normalized();
+ if (direction != Vector3.Zero)
+ {
+ motionVelocity.x = direction.x * Speed;
+ motionVelocity.z = direction.z * Speed;
+ }
+ else
+ {
+ motionVelocity.x = Mathf.MoveToward(MotionVelocity.x, 0, Speed);
+ motionVelocity.z = Mathf.MoveToward(MotionVelocity.z, 0, Speed);
+ }
+
+ MotionVelocity = motionVelocity;
+ MoveAndSlide();
+ }
+}
diff --git a/modules/mono/editor_templates/EditorPlugin/plugin.cs b/modules/mono/editor_templates/EditorPlugin/plugin.cs
new file mode 100644
index 0000000000..6e6a799be6
--- /dev/null
+++ b/modules/mono/editor_templates/EditorPlugin/plugin.cs
@@ -0,0 +1,19 @@
+// meta-description: Basic plugin template
+#if TOOLS
+using _BINDINGS_NAMESPACE_;
+using System;
+
+[Tool]
+public partial class _CLASS_ : _BASE_
+{
+ public override void _EnterTree()
+ {
+ // Initialization of the plugin goes here.
+ }
+
+ public override void _ExitTree()
+ {
+ // Clean-up of the plugin goes here.
+ }
+}
+#endif
diff --git a/modules/mono/editor_templates/EditorScript/basic_editor_script.cs b/modules/mono/editor_templates/EditorScript/basic_editor_script.cs
new file mode 100644
index 0000000000..2088822890
--- /dev/null
+++ b/modules/mono/editor_templates/EditorScript/basic_editor_script.cs
@@ -0,0 +1,14 @@
+// meta-description: Basic editor script template
+#if TOOLS
+using _BINDINGS_NAMESPACE_;
+using System;
+
+[Tool]
+public partial class _CLASS_ : _BASE_
+{
+ public override void _Run()
+ {
+ // Called when the script is executed (using File -> Run in Script Editor).
+ }
+}
+#endif
diff --git a/modules/mono/editor_templates/Node/default.cs b/modules/mono/editor_templates/Node/default.cs
new file mode 100644
index 0000000000..73d69dd993
--- /dev/null
+++ b/modules/mono/editor_templates/Node/default.cs
@@ -0,0 +1,19 @@
+// meta-description: Base template for Node with default Godot cycle methods
+
+using _BINDINGS_NAMESPACE_;
+using System;
+
+public partial class _CLASS_ : _BASE_
+{
+ // Called when the node enters the scene tree for the first time.
+ public override void _Ready()
+ {
+
+ }
+
+ // Called every frame. 'delta' is the elapsed time since the previous frame.
+ public override void _Process(float delta)
+ {
+
+ }
+}
diff --git a/modules/mono/editor_templates/Object/empty.cs b/modules/mono/editor_templates/Object/empty.cs
new file mode 100644
index 0000000000..e5bee64fe1
--- /dev/null
+++ b/modules/mono/editor_templates/Object/empty.cs
@@ -0,0 +1,9 @@
+// meta-description: Empty template suitable for all Objects
+
+using _BINDINGS_NAMESPACE_;
+using System;
+
+public partial class _CLASS_ : _BASE_
+{
+
+}
diff --git a/modules/mono/editor_templates/SCsub b/modules/mono/editor_templates/SCsub
new file mode 100644
index 0000000000..39f6cb5c01
--- /dev/null
+++ b/modules/mono/editor_templates/SCsub
@@ -0,0 +1,16 @@
+#!/usr/bin/env python
+
+Import("env")
+
+import editor.template_builders as build_template_cs
+
+env["BUILDERS"]["MakeCSharpTemplateBuilder"] = Builder(
+ action=env.Run(build_template_cs.make_templates, "Generating C# templates header."),
+ suffix=".h",
+ src_suffix=".cs",
+)
+
+# Template files
+templates_sources = Glob("*/*.cs")
+
+env.Alias("editor_template_cs", [env.MakeCSharpTemplateBuilder("templates.gen.h", templates_sources)])
diff --git a/modules/mono/editor_templates/VisualShaderNodeCustom/basic.cs b/modules/mono/editor_templates/VisualShaderNodeCustom/basic.cs
new file mode 100644
index 0000000000..00fdc9968e
--- /dev/null
+++ b/modules/mono/editor_templates/VisualShaderNodeCustom/basic.cs
@@ -0,0 +1,67 @@
+// meta-description: Visual shader's node plugin template
+
+using _BINDINGS_NAMESPACE_;
+using System;
+
+public partial class VisualShaderNode_CLASS_ : _BASE_
+{
+ public override string _GetName()
+ {
+ return "_CLASS_";
+ }
+
+ public override string _GetCategory()
+ {
+ return "";
+ }
+
+ public override string _GetDescription()
+ {
+ return "";
+ }
+
+ public override int _GetReturnIconType()
+ {
+ return 0;
+ }
+
+ public override int _GetInputPortCount()
+ {
+ return 0;
+ }
+
+ public override string _GetInputPortName(int port)
+ {
+ return "";
+ }
+
+ public override int _GetInputPortType(int port)
+ {
+ return 0;
+ }
+
+ public override int _GetOutputPortCount()
+ {
+ return 1;
+ }
+
+ public override string _GetOutputPortName(int port)
+ {
+ return "result";
+ }
+
+ public override int _GetOutputPortType(int port)
+ {
+ return 0;
+ }
+
+ public override string _GetGlobalCode(Shader.Mode mode)
+ {
+ return "";
+ }
+
+ public override string _GetCode(Godot.Collections.Array inputVars, Godot.Collections.Array outputVars, Shader.Mode mode, VisualShader.Type type)
+ {
+ return "";
+ }
+}
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/GD.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/GD.cs
index c664463e86..74aa38386f 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/GD.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/GD.cs
@@ -400,7 +400,7 @@ namespace Godot
/// </summary>
/// <param name="seed">
/// Seed to use to generate the random number.
- /// If a different seed is used, its value will be modfied.
+ /// If a different seed is used, its value will be modified.
/// </param>
/// <returns>A random <see langword="uint"/> number.</returns>
public static uint RandFromSeed(ref ulong seed)
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs
index 68e6422c19..a89dca6c34 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs
@@ -694,7 +694,7 @@ namespace Godot
/// <summary>
/// Returns <see langword="true"/> if the string is a path to a file or
- /// directory and its startign point is explicitly defined. This includes
+ /// directory and its starting point is explicitly defined. This includes
/// <c>res://</c>, <c>user://</c>, <c>C:\</c>, <c>/</c>, etc.
/// </summary>
/// <seealso cref="IsRelativePath(string)"/>
diff --git a/modules/mono/glue/arguments_vector.h b/modules/mono/glue/arguments_vector.h
index 9ba6a05ac6..7c991d87a4 100644
--- a/modules/mono/glue/arguments_vector.h
+++ b/modules/mono/glue/arguments_vector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/glue/base_object_glue.cpp b/modules/mono/glue/base_object_glue.cpp
index 6c5503a3bd..8e7b125ed5 100644
--- a/modules/mono/glue/base_object_glue.cpp
+++ b/modules/mono/glue/base_object_glue.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/glue/callable_glue.cpp b/modules/mono/glue/callable_glue.cpp
index 54b65fdb94..e59b34313c 100644
--- a/modules/mono/glue/callable_glue.cpp
+++ b/modules/mono/glue/callable_glue.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/glue/collections_glue.cpp b/modules/mono/glue/collections_glue.cpp
index cb6680c244..56a08a0dd5 100644
--- a/modules/mono/glue/collections_glue.cpp
+++ b/modules/mono/glue/collections_glue.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/glue/gd_glue.cpp b/modules/mono/glue/gd_glue.cpp
index 07ddf5d945..8aead217cf 100644
--- a/modules/mono/glue/gd_glue.cpp
+++ b/modules/mono/glue/gd_glue.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/glue/glue_header.h b/modules/mono/glue/glue_header.h
index 074220bb9b..9638b23410 100644
--- a/modules/mono/glue/glue_header.h
+++ b/modules/mono/glue/glue_header.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/glue/nodepath_glue.cpp b/modules/mono/glue/nodepath_glue.cpp
index 4ddb94e1a8..0ea9814b1a 100644
--- a/modules/mono/glue/nodepath_glue.cpp
+++ b/modules/mono/glue/nodepath_glue.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/glue/rid_glue.cpp b/modules/mono/glue/rid_glue.cpp
index f464e63a81..3e09564539 100644
--- a/modules/mono/glue/rid_glue.cpp
+++ b/modules/mono/glue/rid_glue.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/glue/scene_tree_glue.cpp b/modules/mono/glue/scene_tree_glue.cpp
index 5a6fd69db8..c60e7c4869 100644
--- a/modules/mono/glue/scene_tree_glue.cpp
+++ b/modules/mono/glue/scene_tree_glue.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/glue/string_glue.cpp b/modules/mono/glue/string_glue.cpp
index bb80a836ad..fc6b13ceb3 100644
--- a/modules/mono/glue/string_glue.cpp
+++ b/modules/mono/glue/string_glue.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/glue/string_name_glue.cpp b/modules/mono/glue/string_name_glue.cpp
index f537896559..46d15316ba 100644
--- a/modules/mono/glue/string_name_glue.cpp
+++ b/modules/mono/glue/string_name_glue.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/godotsharp_defs.h b/modules/mono/godotsharp_defs.h
index 273dba52f9..e5f1abe8d7 100644
--- a/modules/mono/godotsharp_defs.h
+++ b/modules/mono/godotsharp_defs.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/godotsharp_dirs.cpp b/modules/mono/godotsharp_dirs.cpp
index 2b4cc7fcc3..02739f0480 100644
--- a/modules/mono/godotsharp_dirs.cpp
+++ b/modules/mono/godotsharp_dirs.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/godotsharp_dirs.h b/modules/mono/godotsharp_dirs.h
index 3a3c6f980e..da25e0778f 100644
--- a/modules/mono/godotsharp_dirs.h
+++ b/modules/mono/godotsharp_dirs.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/managed_callable.cpp b/modules/mono/managed_callable.cpp
index 6d868b527c..8ed21c323f 100644
--- a/modules/mono/managed_callable.cpp
+++ b/modules/mono/managed_callable.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/managed_callable.h b/modules/mono/managed_callable.h
index c620eee60d..ea7231f43b 100644
--- a/modules/mono/managed_callable.h
+++ b/modules/mono/managed_callable.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gc_handle.cpp b/modules/mono/mono_gc_handle.cpp
index 8583065016..f3dafa6ecf 100644
--- a/modules/mono/mono_gc_handle.cpp
+++ b/modules/mono/mono_gc_handle.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gc_handle.h b/modules/mono/mono_gc_handle.h
index a18a4ce646..ab9e508c99 100644
--- a/modules/mono/mono_gc_handle.h
+++ b/modules/mono/mono_gc_handle.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/android_mono_config.h b/modules/mono/mono_gd/android_mono_config.h
index 9d7cfe1b7c..9ee4bcf590 100644
--- a/modules/mono/mono_gd/android_mono_config.h
+++ b/modules/mono/mono_gd/android_mono_config.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono.cpp b/modules/mono/mono_gd/gd_mono.cpp
index 52447bc59b..6f542a67e7 100644
--- a/modules/mono/mono_gd/gd_mono.cpp
+++ b/modules/mono/mono_gd/gd_mono.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono.h b/modules/mono/mono_gd/gd_mono.h
index a18fa6c6b4..aab0b31c37 100644
--- a/modules/mono/mono_gd/gd_mono.h
+++ b/modules/mono/mono_gd/gd_mono.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_assembly.cpp b/modules/mono/mono_gd/gd_mono_assembly.cpp
index 67f38bf127..3991b14612 100644
--- a/modules/mono/mono_gd/gd_mono_assembly.cpp
+++ b/modules/mono/mono_gd/gd_mono_assembly.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_assembly.h b/modules/mono/mono_gd/gd_mono_assembly.h
index 6191c491f4..b25d773be7 100644
--- a/modules/mono/mono_gd/gd_mono_assembly.h
+++ b/modules/mono/mono_gd/gd_mono_assembly.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_cache.cpp b/modules/mono/mono_gd/gd_mono_cache.cpp
index 60277e0652..d8fd244067 100644
--- a/modules/mono/mono_gd/gd_mono_cache.cpp
+++ b/modules/mono/mono_gd/gd_mono_cache.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_cache.h b/modules/mono/mono_gd/gd_mono_cache.h
index 5101907bd6..49f47b0a15 100644
--- a/modules/mono/mono_gd/gd_mono_cache.h
+++ b/modules/mono/mono_gd/gd_mono_cache.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_class.cpp b/modules/mono/mono_gd/gd_mono_class.cpp
index 520568071e..89c37e087b 100644
--- a/modules/mono/mono_gd/gd_mono_class.cpp
+++ b/modules/mono/mono_gd/gd_mono_class.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_class.h b/modules/mono/mono_gd/gd_mono_class.h
index daea75bae8..bfb5797d4b 100644
--- a/modules/mono/mono_gd/gd_mono_class.h
+++ b/modules/mono/mono_gd/gd_mono_class.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_field.cpp b/modules/mono/mono_gd/gd_mono_field.cpp
index 111eaa0bbf..333a06c94a 100644
--- a/modules/mono/mono_gd/gd_mono_field.cpp
+++ b/modules/mono/mono_gd/gd_mono_field.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_field.h b/modules/mono/mono_gd/gd_mono_field.h
index ed5078c673..abcdef378c 100644
--- a/modules/mono/mono_gd/gd_mono_field.h
+++ b/modules/mono/mono_gd/gd_mono_field.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_header.h b/modules/mono/mono_gd/gd_mono_header.h
index 483030610f..bf21283080 100644
--- a/modules/mono/mono_gd/gd_mono_header.h
+++ b/modules/mono/mono_gd/gd_mono_header.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_internals.cpp b/modules/mono/mono_gd/gd_mono_internals.cpp
index cf76c23926..d206b0dfc3 100644
--- a/modules/mono/mono_gd/gd_mono_internals.cpp
+++ b/modules/mono/mono_gd/gd_mono_internals.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_internals.h b/modules/mono/mono_gd/gd_mono_internals.h
index 26eb270eee..a8f9cfa3ca 100644
--- a/modules/mono/mono_gd/gd_mono_internals.h
+++ b/modules/mono/mono_gd/gd_mono_internals.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_log.cpp b/modules/mono/mono_gd/gd_mono_log.cpp
index bcdcd6623b..01a6521876 100644
--- a/modules/mono/mono_gd/gd_mono_log.cpp
+++ b/modules/mono/mono_gd/gd_mono_log.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_log.h b/modules/mono/mono_gd/gd_mono_log.h
index 9ddbd251ac..9aa67a09e2 100644
--- a/modules/mono/mono_gd/gd_mono_log.h
+++ b/modules/mono/mono_gd/gd_mono_log.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_marshal.cpp b/modules/mono/mono_gd/gd_mono_marshal.cpp
index 6b395303dd..957abca37b 100644
--- a/modules/mono/mono_gd/gd_mono_marshal.cpp
+++ b/modules/mono/mono_gd/gd_mono_marshal.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_marshal.h b/modules/mono/mono_gd/gd_mono_marshal.h
index 2f4b619b61..20d4743e5c 100644
--- a/modules/mono/mono_gd/gd_mono_marshal.h
+++ b/modules/mono/mono_gd/gd_mono_marshal.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_method.cpp b/modules/mono/mono_gd/gd_mono_method.cpp
index 67aabcde10..6734b44783 100644
--- a/modules/mono/mono_gd/gd_mono_method.cpp
+++ b/modules/mono/mono_gd/gd_mono_method.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_method.h b/modules/mono/mono_gd/gd_mono_method.h
index c08ffe904b..6e87a60ee2 100644
--- a/modules/mono/mono_gd/gd_mono_method.h
+++ b/modules/mono/mono_gd/gd_mono_method.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_method_thunk.h b/modules/mono/mono_gd/gd_mono_method_thunk.h
index 091d26df1d..bb163b89bc 100644
--- a/modules/mono/mono_gd/gd_mono_method_thunk.h
+++ b/modules/mono/mono_gd/gd_mono_method_thunk.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_property.cpp b/modules/mono/mono_gd/gd_mono_property.cpp
index 5c7cf29e88..c9775ae9cb 100644
--- a/modules/mono/mono_gd/gd_mono_property.cpp
+++ b/modules/mono/mono_gd/gd_mono_property.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_property.h b/modules/mono/mono_gd/gd_mono_property.h
index 9bb1caa759..003bcf05e1 100644
--- a/modules/mono/mono_gd/gd_mono_property.h
+++ b/modules/mono/mono_gd/gd_mono_property.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_utils.cpp b/modules/mono/mono_gd/gd_mono_utils.cpp
index 505c637af9..a884bf4da0 100644
--- a/modules/mono/mono_gd/gd_mono_utils.cpp
+++ b/modules/mono/mono_gd/gd_mono_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_utils.h b/modules/mono/mono_gd/gd_mono_utils.h
index 3162ef198d..4c2c2c93c2 100644
--- a/modules/mono/mono_gd/gd_mono_utils.h
+++ b/modules/mono/mono_gd/gd_mono_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_wasm_m2n.cpp b/modules/mono/mono_gd/gd_mono_wasm_m2n.cpp
index a477c55456..dbfca2dc0c 100644
--- a/modules/mono/mono_gd/gd_mono_wasm_m2n.cpp
+++ b/modules/mono/mono_gd/gd_mono_wasm_m2n.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/gd_mono_wasm_m2n.h b/modules/mono/mono_gd/gd_mono_wasm_m2n.h
index c49a62a632..68299aa984 100644
--- a/modules/mono/mono_gd/gd_mono_wasm_m2n.h
+++ b/modules/mono/mono_gd/gd_mono_wasm_m2n.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/i_mono_class_member.h b/modules/mono/mono_gd/i_mono_class_member.h
index 36e14ba27c..14e8ca82b9 100644
--- a/modules/mono/mono_gd/i_mono_class_member.h
+++ b/modules/mono/mono_gd/i_mono_class_member.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/managed_type.cpp b/modules/mono/mono_gd/managed_type.cpp
index 0acfafe841..5860d7db1e 100644
--- a/modules/mono/mono_gd/managed_type.cpp
+++ b/modules/mono/mono_gd/managed_type.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/managed_type.h b/modules/mono/mono_gd/managed_type.h
index 0456a9a864..603ff3aca1 100644
--- a/modules/mono/mono_gd/managed_type.h
+++ b/modules/mono/mono_gd/managed_type.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/support/android_support.cpp b/modules/mono/mono_gd/support/android_support.cpp
index c65353dfd1..eb8bbab948 100644
--- a/modules/mono/mono_gd/support/android_support.cpp
+++ b/modules/mono/mono_gd/support/android_support.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/support/android_support.h b/modules/mono/mono_gd/support/android_support.h
index 0c5dd2764c..073cd31c65 100644
--- a/modules/mono/mono_gd/support/android_support.h
+++ b/modules/mono/mono_gd/support/android_support.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/support/ios_support.h b/modules/mono/mono_gd/support/ios_support.h
index 28a8806d0e..2f444d5089 100644
--- a/modules/mono/mono_gd/support/ios_support.h
+++ b/modules/mono/mono_gd/support/ios_support.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/mono_gd/support/ios_support.mm b/modules/mono/mono_gd/support/ios_support.mm
index 23424fbaf9..e66b88db32 100644
--- a/modules/mono/mono_gd/support/ios_support.mm
+++ b/modules/mono/mono_gd/support/ios_support.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/register_types.cpp b/modules/mono/register_types.cpp
index 98e83335e9..531a4bb11f 100644
--- a/modules/mono/register_types.cpp
+++ b/modules/mono/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/register_types.h b/modules/mono/register_types.h
index 1a2ff004b5..12f7e36f02 100644
--- a/modules/mono/register_types.h
+++ b/modules/mono/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/signal_awaiter_utils.cpp b/modules/mono/signal_awaiter_utils.cpp
index 3aaf726fc8..315a9c29f6 100644
--- a/modules/mono/signal_awaiter_utils.cpp
+++ b/modules/mono/signal_awaiter_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/signal_awaiter_utils.h b/modules/mono/signal_awaiter_utils.h
index e12ea45b3f..1a62f36625 100644
--- a/modules/mono/signal_awaiter_utils.h
+++ b/modules/mono/signal_awaiter_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/utils/macros.h b/modules/mono/utils/macros.h
index 4a220d89c8..2ca1a4cbf1 100644
--- a/modules/mono/utils/macros.h
+++ b/modules/mono/utils/macros.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/utils/mono_reg_utils.cpp b/modules/mono/utils/mono_reg_utils.cpp
index d0a27b27c1..f388661207 100644
--- a/modules/mono/utils/mono_reg_utils.cpp
+++ b/modules/mono/utils/mono_reg_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/utils/mono_reg_utils.h b/modules/mono/utils/mono_reg_utils.h
index 0e617761ea..5be60d4930 100644
--- a/modules/mono/utils/mono_reg_utils.h
+++ b/modules/mono/utils/mono_reg_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/utils/osx_utils.cpp b/modules/mono/utils/osx_utils.cpp
index f4216c8129..835c611709 100644
--- a/modules/mono/utils/osx_utils.cpp
+++ b/modules/mono/utils/osx_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/utils/osx_utils.h b/modules/mono/utils/osx_utils.h
index 6704f19077..2f6c6dad51 100644
--- a/modules/mono/utils/osx_utils.h
+++ b/modules/mono/utils/osx_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/utils/path_utils.cpp b/modules/mono/utils/path_utils.cpp
index 64aec5d359..89851fc4d3 100644
--- a/modules/mono/utils/path_utils.cpp
+++ b/modules/mono/utils/path_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/utils/path_utils.h b/modules/mono/utils/path_utils.h
index 82b8f95f49..a8cd8daf04 100644
--- a/modules/mono/utils/path_utils.h
+++ b/modules/mono/utils/path_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/utils/string_utils.cpp b/modules/mono/utils/string_utils.cpp
index 74f5e6d18a..dd29299330 100644
--- a/modules/mono/utils/string_utils.cpp
+++ b/modules/mono/utils/string_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/mono/utils/string_utils.h b/modules/mono/utils/string_utils.h
index 3290cb38b9..d79888716a 100644
--- a/modules/mono/utils/string_utils.h
+++ b/modules/mono/utils/string_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/msdfgen/register_types.cpp b/modules/msdfgen/register_types.cpp
index ad60a66d2d..69855d93fe 100644
--- a/modules/msdfgen/register_types.cpp
+++ b/modules/msdfgen/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/msdfgen/register_types.h b/modules/msdfgen/register_types.h
index fb776c14ed..0e2fed2ce8 100644
--- a/modules/msdfgen/register_types.h
+++ b/modules/msdfgen/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/godot_navigation_server.cpp b/modules/navigation/godot_navigation_server.cpp
index ac3422187f..2b6ae5ef1e 100644
--- a/modules/navigation/godot_navigation_server.cpp
+++ b/modules/navigation/godot_navigation_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/godot_navigation_server.h b/modules/navigation/godot_navigation_server.h
index 65224493fd..6cc226b086 100644
--- a/modules/navigation/godot_navigation_server.h
+++ b/modules/navigation/godot_navigation_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/nav_map.cpp b/modules/navigation/nav_map.cpp
index 0c8f0ed8c9..b33b7933a8 100644
--- a/modules/navigation/nav_map.cpp
+++ b/modules/navigation/nav_map.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/nav_map.h b/modules/navigation/nav_map.h
index 8e013a72eb..cd730fe3ef 100644
--- a/modules/navigation/nav_map.h
+++ b/modules/navigation/nav_map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/nav_region.cpp b/modules/navigation/nav_region.cpp
index 81b15a49f5..7d94e22014 100644
--- a/modules/navigation/nav_region.cpp
+++ b/modules/navigation/nav_region.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/nav_region.h b/modules/navigation/nav_region.h
index f8b067e638..c344414912 100644
--- a/modules/navigation/nav_region.h
+++ b/modules/navigation/nav_region.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/nav_rid.h b/modules/navigation/nav_rid.h
index a0a60a3643..2283973cac 100644
--- a/modules/navigation/nav_rid.h
+++ b/modules/navigation/nav_rid.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/nav_utils.h b/modules/navigation/nav_utils.h
index 35da391eea..2d725f214c 100644
--- a/modules/navigation/nav_utils.h
+++ b/modules/navigation/nav_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/navigation_mesh_editor_plugin.cpp b/modules/navigation/navigation_mesh_editor_plugin.cpp
index 587e56f593..6db3cbc1a3 100644
--- a/modules/navigation/navigation_mesh_editor_plugin.cpp
+++ b/modules/navigation/navigation_mesh_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/navigation_mesh_editor_plugin.h b/modules/navigation/navigation_mesh_editor_plugin.h
index c39269865b..6517a7be5b 100644
--- a/modules/navigation/navigation_mesh_editor_plugin.h
+++ b/modules/navigation/navigation_mesh_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/navigation_mesh_generator.cpp b/modules/navigation/navigation_mesh_generator.cpp
index 0bce0fc9f0..6cbdb645ca 100644
--- a/modules/navigation/navigation_mesh_generator.cpp
+++ b/modules/navigation/navigation_mesh_generator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/navigation_mesh_generator.h b/modules/navigation/navigation_mesh_generator.h
index dac844c68e..1ffdd39aee 100644
--- a/modules/navigation/navigation_mesh_generator.h
+++ b/modules/navigation/navigation_mesh_generator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/register_types.cpp b/modules/navigation/register_types.cpp
index 97c01d42ab..e2264e843c 100644
--- a/modules/navigation/register_types.cpp
+++ b/modules/navigation/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/register_types.h b/modules/navigation/register_types.h
index 4737c818eb..11fa5769d7 100644
--- a/modules/navigation/register_types.h
+++ b/modules/navigation/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/rvo_agent.cpp b/modules/navigation/rvo_agent.cpp
index 21e43d08c1..6c38eaed0f 100644
--- a/modules/navigation/rvo_agent.cpp
+++ b/modules/navigation/rvo_agent.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/navigation/rvo_agent.h b/modules/navigation/rvo_agent.h
index 369cb1f9a3..2bf824186b 100644
--- a/modules/navigation/rvo_agent.h
+++ b/modules/navigation/rvo_agent.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/ogg/ogg_packet_sequence.cpp b/modules/ogg/ogg_packet_sequence.cpp
index abb2b67ab0..65058f088e 100644
--- a/modules/ogg/ogg_packet_sequence.cpp
+++ b/modules/ogg/ogg_packet_sequence.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/ogg/ogg_packet_sequence.h b/modules/ogg/ogg_packet_sequence.h
index b00ada06c1..7e56b14a24 100644
--- a/modules/ogg/ogg_packet_sequence.h
+++ b/modules/ogg/ogg_packet_sequence.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/ogg/register_types.cpp b/modules/ogg/register_types.cpp
index 3448e7063a..3d04351032 100644
--- a/modules/ogg/register_types.cpp
+++ b/modules/ogg/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/ogg/register_types.h b/modules/ogg/register_types.h
index 49d5ed9c80..6ef7dc93ca 100644
--- a/modules/ogg/register_types.h
+++ b/modules/ogg/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/opensimplex/noise_texture.cpp b/modules/opensimplex/noise_texture.cpp
index e36dcfcea5..f3342dfd84 100644
--- a/modules/opensimplex/noise_texture.cpp
+++ b/modules/opensimplex/noise_texture.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/opensimplex/noise_texture.h b/modules/opensimplex/noise_texture.h
index a0b2a86c41..ee8f88aaca 100644
--- a/modules/opensimplex/noise_texture.h
+++ b/modules/opensimplex/noise_texture.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/opensimplex/open_simplex_noise.cpp b/modules/opensimplex/open_simplex_noise.cpp
index f0a8867284..b7c901fd06 100644
--- a/modules/opensimplex/open_simplex_noise.cpp
+++ b/modules/opensimplex/open_simplex_noise.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/opensimplex/open_simplex_noise.h b/modules/opensimplex/open_simplex_noise.h
index dcf922a8bf..c34f998b78 100644
--- a/modules/opensimplex/open_simplex_noise.h
+++ b/modules/opensimplex/open_simplex_noise.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/opensimplex/register_types.cpp b/modules/opensimplex/register_types.cpp
index d6f9f3436d..30dfdc3764 100644
--- a/modules/opensimplex/register_types.cpp
+++ b/modules/opensimplex/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/opensimplex/register_types.h b/modules/opensimplex/register_types.h
index d72e37e3a3..2262ab2f5e 100644
--- a/modules/opensimplex/register_types.h
+++ b/modules/opensimplex/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/pvr/image_compress_pvrtc.cpp b/modules/pvr/image_compress_pvrtc.cpp
index 980cac17d3..b996d910d5 100644
--- a/modules/pvr/image_compress_pvrtc.cpp
+++ b/modules/pvr/image_compress_pvrtc.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/pvr/image_compress_pvrtc.h b/modules/pvr/image_compress_pvrtc.h
index 985076ce4d..80edb81363 100644
--- a/modules/pvr/image_compress_pvrtc.h
+++ b/modules/pvr/image_compress_pvrtc.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/pvr/register_types.cpp b/modules/pvr/register_types.cpp
index ef72087d25..dcc7f505a1 100644
--- a/modules/pvr/register_types.cpp
+++ b/modules/pvr/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/pvr/register_types.h b/modules/pvr/register_types.h
index 74fcfe2ce4..faefb98678 100644
--- a/modules/pvr/register_types.h
+++ b/modules/pvr/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/pvr/texture_loader_pvr.cpp b/modules/pvr/texture_loader_pvr.cpp
index ffa900ef99..ff66a101ab 100644
--- a/modules/pvr/texture_loader_pvr.cpp
+++ b/modules/pvr/texture_loader_pvr.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/pvr/texture_loader_pvr.h b/modules/pvr/texture_loader_pvr.h
index 26071ce30f..06e8e91ba2 100644
--- a/modules/pvr/texture_loader_pvr.h
+++ b/modules/pvr/texture_loader_pvr.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/raycast/lightmap_raycaster.cpp b/modules/raycast/lightmap_raycaster.cpp
index fdcf509da8..ecc256bff9 100644
--- a/modules/raycast/lightmap_raycaster.cpp
+++ b/modules/raycast/lightmap_raycaster.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/raycast/lightmap_raycaster.h b/modules/raycast/lightmap_raycaster.h
index 290b0a1cf3..c420e617e5 100644
--- a/modules/raycast/lightmap_raycaster.h
+++ b/modules/raycast/lightmap_raycaster.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/raycast/raycast_occlusion_cull.cpp b/modules/raycast/raycast_occlusion_cull.cpp
index 75491c98e5..dd5eef8b2b 100644
--- a/modules/raycast/raycast_occlusion_cull.cpp
+++ b/modules/raycast/raycast_occlusion_cull.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/raycast/raycast_occlusion_cull.h b/modules/raycast/raycast_occlusion_cull.h
index ea96df5ff6..a22e52dd17 100644
--- a/modules/raycast/raycast_occlusion_cull.h
+++ b/modules/raycast/raycast_occlusion_cull.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/raycast/register_types.cpp b/modules/raycast/register_types.cpp
index ed99e635e1..053039a85b 100644
--- a/modules/raycast/register_types.cpp
+++ b/modules/raycast/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/raycast/register_types.h b/modules/raycast/register_types.h
index 789604a491..0abc5eb63a 100644
--- a/modules/raycast/register_types.h
+++ b/modules/raycast/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/raycast/static_raycaster.cpp b/modules/raycast/static_raycaster.cpp
index 2ba65eebf8..9df6d5ff43 100644
--- a/modules/raycast/static_raycaster.cpp
+++ b/modules/raycast/static_raycaster.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/raycast/static_raycaster.h b/modules/raycast/static_raycaster.h
index 6b13ecf690..cce19ba60d 100644
--- a/modules/raycast/static_raycaster.h
+++ b/modules/raycast/static_raycaster.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/regex/regex.cpp b/modules/regex/regex.cpp
index 6bae12e7e6..ee1137b71f 100644
--- a/modules/regex/regex.cpp
+++ b/modules/regex/regex.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/regex/regex.h b/modules/regex/regex.h
index 68fe2bc6e0..a745c50a58 100644
--- a/modules/regex/regex.h
+++ b/modules/regex/regex.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/regex/register_types.cpp b/modules/regex/register_types.cpp
index 03957f88cf..9289a724d8 100644
--- a/modules/regex/register_types.cpp
+++ b/modules/regex/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/regex/register_types.h b/modules/regex/register_types.h
index fe94cde954..b2d5009ef4 100644
--- a/modules/regex/register_types.h
+++ b/modules/regex/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/regex/tests/test_regex.h b/modules/regex/tests/test_regex.h
index c2d303b435..3f500e7b2f 100644
--- a/modules/regex/tests/test_regex.h
+++ b/modules/regex/tests/test_regex.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/register_module_types.h b/modules/register_module_types.h
index 2cff8c54c4..bc9aeb31ab 100644
--- a/modules/register_module_types.h
+++ b/modules/register_module_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/squish/image_decompress_squish.cpp b/modules/squish/image_decompress_squish.cpp
index 1450b0fe88..3a810e5259 100644
--- a/modules/squish/image_decompress_squish.cpp
+++ b/modules/squish/image_decompress_squish.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/squish/image_decompress_squish.h b/modules/squish/image_decompress_squish.h
index fff5839ac4..f1382b2610 100644
--- a/modules/squish/image_decompress_squish.h
+++ b/modules/squish/image_decompress_squish.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/squish/register_types.cpp b/modules/squish/register_types.cpp
index 51aab040e7..1dc2e11ab9 100644
--- a/modules/squish/register_types.cpp
+++ b/modules/squish/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/squish/register_types.h b/modules/squish/register_types.h
index 0f87d64333..ed1c6b0716 100644
--- a/modules/squish/register_types.h
+++ b/modules/squish/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/svg/image_loader_svg.cpp b/modules/svg/image_loader_svg.cpp
index 4911346b96..bf43d7a4ad 100644
--- a/modules/svg/image_loader_svg.cpp
+++ b/modules/svg/image_loader_svg.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/svg/image_loader_svg.h b/modules/svg/image_loader_svg.h
index e64175b172..6052bf9831 100644
--- a/modules/svg/image_loader_svg.h
+++ b/modules/svg/image_loader_svg.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/svg/register_types.cpp b/modules/svg/register_types.cpp
index 1a611184d2..1560af95c3 100644
--- a/modules/svg/register_types.cpp
+++ b/modules/svg/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/svg/register_types.h b/modules/svg/register_types.h
index 106ac9056f..11fd9e7007 100644
--- a/modules/svg/register_types.h
+++ b/modules/svg/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/text_server_adv/icu_data/icudata_stub.cpp b/modules/text_server_adv/icu_data/icudata_stub.cpp
index 187001f33a..47dfa5ce26 100644
--- a/modules/text_server_adv/icu_data/icudata_stub.cpp
+++ b/modules/text_server_adv/icu_data/icudata_stub.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/text_server_adv/register_types.cpp b/modules/text_server_adv/register_types.cpp
index b711d1561f..d2dbfa045b 100644
--- a/modules/text_server_adv/register_types.cpp
+++ b/modules/text_server_adv/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/text_server_adv/register_types.h b/modules/text_server_adv/register_types.h
index ddd1190f40..d2b49fce6e 100644
--- a/modules/text_server_adv/register_types.h
+++ b/modules/text_server_adv/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/text_server_adv/script_iterator.cpp b/modules/text_server_adv/script_iterator.cpp
index d1e849def8..9e3d9138d0 100644
--- a/modules/text_server_adv/script_iterator.cpp
+++ b/modules/text_server_adv/script_iterator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/text_server_adv/script_iterator.h b/modules/text_server_adv/script_iterator.h
index 5efd40f7c4..1e11b51521 100644
--- a/modules/text_server_adv/script_iterator.h
+++ b/modules/text_server_adv/script_iterator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/text_server_adv/text_server_adv.cpp b/modules/text_server_adv/text_server_adv.cpp
index cfab021e24..f9997a437f 100644
--- a/modules/text_server_adv/text_server_adv.cpp
+++ b/modules/text_server_adv/text_server_adv.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2573,7 +2573,7 @@ int32_t TextServerAdvanced::font_get_glyph_index(RID p_font_rid, int p_size, cha
return FT_Get_Char_Index(fd->cache[size]->face, p_char);
}
} else {
- return 0;
+ return (int32_t)p_char;
}
#else
return (int32_t)p_char;
@@ -2841,6 +2841,24 @@ Vector<String> TextServerAdvanced::font_get_script_support_overrides(RID p_font_
return out;
}
+void TextServerAdvanced::font_set_opentype_feature_overrides(RID p_font_rid, const Dictionary &p_overrides) {
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
+ ERR_FAIL_COND(!fd);
+
+ MutexLock lock(fd->mutex);
+ Vector2i size = _get_size(fd, 16);
+ ERR_FAIL_COND(!_ensure_cache_for_size(fd, size));
+ fd->feature_overrides = p_overrides;
+}
+
+Dictionary TextServerAdvanced::font_get_opentype_feature_overrides(RID p_font_rid) const {
+ FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
+ ERR_FAIL_COND_V(!fd, Dictionary());
+
+ MutexLock lock(fd->mutex);
+ return fd->feature_overrides;
+}
+
Dictionary TextServerAdvanced::font_supported_feature_list(RID p_font_rid) const {
FontDataAdvanced *fd = font_owner.get_or_null(p_font_rid);
ERR_FAIL_COND_V(!fd, Dictionary());
@@ -3668,6 +3686,12 @@ float TextServerAdvanced::shaped_text_tab_align(RID p_shaped, const PackedFloat3
const_cast<TextServerAdvanced *>(this)->shaped_text_update_breaks(p_shaped);
}
+ for (int i = 0; i < p_tab_stops.size(); i++) {
+ if (p_tab_stops[i] <= 0) {
+ return 0.f;
+ }
+ }
+
int tab_index = 0;
float off = 0.f;
@@ -4231,6 +4255,24 @@ Glyph TextServerAdvanced::_shape_single_glyph(ShapedTextDataAdvanced *p_sd, char
return gl;
}
+_FORCE_INLINE_ void TextServerAdvanced::_add_featuers(const Dictionary &p_source, Vector<hb_feature_t> &r_ftrs) {
+ for (const Variant *ftr = p_source.next(nullptr); ftr != nullptr; ftr = p_source.next(ftr)) {
+ int32_t values = p_source[*ftr];
+ if (values >= 0) {
+ hb_feature_t feature;
+ if (ftr->get_type() == Variant::STRING) {
+ feature.tag = name_to_tag(*ftr);
+ } else {
+ feature.tag = *ftr;
+ }
+ feature.value = values;
+ feature.start = 0;
+ feature.end = -1;
+ r_ftrs.push_back(feature);
+ }
+ }
+}
+
void TextServerAdvanced::_shape_run(ShapedTextDataAdvanced *p_sd, int32_t p_start, int32_t p_end, hb_script_t p_script, hb_direction_t p_direction, Vector<RID> p_fonts, int p_span, int p_fb_index) {
int fs = p_sd->spans[p_span].font_size;
if (p_fb_index >= p_fonts.size()) {
@@ -4287,17 +4329,9 @@ void TextServerAdvanced::_shape_run(ShapedTextDataAdvanced *p_sd, int32_t p_star
hb_buffer_add_utf32(p_sd->hb_buffer, (const uint32_t *)p_sd->text.ptr(), p_sd->text.length(), p_start, p_end - p_start);
Vector<hb_feature_t> ftrs;
- for (const Variant *ftr = p_sd->spans[p_span].features.next(nullptr); ftr != nullptr; ftr = p_sd->spans[p_span].features.next(ftr)) {
- double values = p_sd->spans[p_span].features[*ftr];
- if (values >= 0) {
- hb_feature_t feature;
- feature.tag = *ftr;
- feature.value = values;
- feature.start = 0;
- feature.end = -1;
- ftrs.push_back(feature);
- }
- }
+ _add_featuers(font_get_opentype_feature_overrides(f), ftrs);
+ _add_featuers(p_sd->spans[p_span].features, ftrs);
+
hb_shape(hb_font, p_sd->hb_buffer, ftrs.is_empty() ? nullptr : &ftrs[0], ftrs.size());
unsigned int glyph_count = 0;
diff --git a/modules/text_server_adv/text_server_adv.h b/modules/text_server_adv/text_server_adv.h
index 9a22180f39..6ff9817dcf 100644
--- a/modules/text_server_adv/text_server_adv.h
+++ b/modules/text_server_adv/text_server_adv.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -187,6 +187,7 @@ class TextServerAdvanced : public TextServer {
Set<uint32_t> supported_scripts;
Dictionary supported_features;
Dictionary supported_varaitions;
+ Dictionary feature_overrides;
// Language/script support override.
Map<String, bool> language_support_overrides;
@@ -272,6 +273,7 @@ class TextServerAdvanced : public TextServer {
bool _shape_substr(ShapedTextDataAdvanced *p_new_sd, const ShapedTextDataAdvanced *p_sd, int p_start, int p_length) const;
void _shape_run(ShapedTextDataAdvanced *p_sd, int32_t p_start, int32_t p_end, hb_script_t p_script, hb_direction_t p_direction, Vector<RID> p_fonts, int p_span, int p_fb_index);
Glyph _shape_single_glyph(ShapedTextDataAdvanced *p_sd, char32_t p_char, hb_script_t p_script, hb_direction_t p_direction, RID p_font, int p_font_size);
+ _FORCE_INLINE_ void _add_featuers(const Dictionary &p_source, Vector<hb_feature_t> &r_ftrs);
// HarfBuzz bitmap font interface.
@@ -447,6 +449,9 @@ public:
virtual void font_remove_script_support_override(RID p_font_rid, const String &p_script) override;
virtual Vector<String> font_get_script_support_overrides(RID p_font_rid) override;
+ virtual void font_set_opentype_feature_overrides(RID p_font_rid, const Dictionary &p_overrides) override;
+ virtual Dictionary font_get_opentype_feature_overrides(RID p_font_rid) const override;
+
virtual Dictionary font_supported_feature_list(RID p_font_rid) const override;
virtual Dictionary font_supported_variation_list(RID p_font_rid) const override;
diff --git a/modules/text_server_fb/register_types.cpp b/modules/text_server_fb/register_types.cpp
index 0b59040ce8..a545f84939 100644
--- a/modules/text_server_fb/register_types.cpp
+++ b/modules/text_server_fb/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/text_server_fb/register_types.h b/modules/text_server_fb/register_types.h
index c854db92e5..8652a8e9db 100644
--- a/modules/text_server_fb/register_types.h
+++ b/modules/text_server_fb/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/text_server_fb/text_server_fb.cpp b/modules/text_server_fb/text_server_fb.cpp
index 8979d9ff4c..f28d174c5c 100644
--- a/modules/text_server_fb/text_server_fb.cpp
+++ b/modules/text_server_fb/text_server_fb.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1995,6 +1995,24 @@ Vector<String> TextServerFallback::font_get_script_support_overrides(RID p_font_
return out;
}
+void TextServerFallback::font_set_opentype_feature_overrides(RID p_font_rid, const Dictionary &p_overrides) {
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
+ ERR_FAIL_COND(!fd);
+
+ MutexLock lock(fd->mutex);
+ Vector2i size = _get_size(fd, 16);
+ ERR_FAIL_COND(!_ensure_cache_for_size(fd, size));
+ fd->feature_overrides = p_overrides;
+}
+
+Dictionary TextServerFallback::font_get_opentype_feature_overrides(RID p_font_rid) const {
+ FontDataFallback *fd = font_owner.get_or_null(p_font_rid);
+ ERR_FAIL_COND_V(!fd, Dictionary());
+
+ MutexLock lock(fd->mutex);
+ return fd->feature_overrides;
+}
+
Dictionary TextServerFallback::font_supported_feature_list(RID p_font_rid) const {
return Dictionary();
}
@@ -2665,6 +2683,12 @@ float TextServerFallback::shaped_text_tab_align(RID p_shaped, const PackedFloat3
const_cast<TextServerFallback *>(this)->shaped_text_update_breaks(p_shaped);
}
+ for (int i = 0; i < p_tab_stops.size(); i++) {
+ if (p_tab_stops[i] <= 0) {
+ return 0.f;
+ }
+ }
+
int tab_index = 0;
float off = 0.f;
diff --git a/modules/text_server_fb/text_server_fb.h b/modules/text_server_fb/text_server_fb.h
index f2b33c2afb..9d1be50b04 100644
--- a/modules/text_server_fb/text_server_fb.h
+++ b/modules/text_server_fb/text_server_fb.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -150,6 +150,7 @@ class TextServerFallback : public TextServer {
bool face_init = false;
Dictionary supported_varaitions;
+ Dictionary feature_overrides;
// Language/script support override.
Map<String, bool> language_support_overrides;
@@ -357,6 +358,9 @@ public:
virtual void font_remove_script_support_override(RID p_font_rid, const String &p_script) override;
virtual Vector<String> font_get_script_support_overrides(RID p_font_rid) override;
+ virtual void font_set_opentype_feature_overrides(RID p_font_rid, const Dictionary &p_overrides) override;
+ virtual Dictionary font_get_opentype_feature_overrides(RID p_font_rid) const override;
+
virtual Dictionary font_supported_feature_list(RID p_font_rid) const override;
virtual Dictionary font_supported_variation_list(RID p_font_rid) const override;
diff --git a/modules/tga/image_loader_tga.cpp b/modules/tga/image_loader_tga.cpp
index f0d7c335bd..5060c1ab35 100644
--- a/modules/tga/image_loader_tga.cpp
+++ b/modules/tga/image_loader_tga.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/tga/image_loader_tga.h b/modules/tga/image_loader_tga.h
index e4463a322f..feaff5925f 100644
--- a/modules/tga/image_loader_tga.h
+++ b/modules/tga/image_loader_tga.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/tga/register_types.cpp b/modules/tga/register_types.cpp
index 9e5fe124ef..35f9d10956 100644
--- a/modules/tga/register_types.cpp
+++ b/modules/tga/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/tga/register_types.h b/modules/tga/register_types.h
index 0dcd750250..ae91aa560f 100644
--- a/modules/tga/register_types.h
+++ b/modules/tga/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/theora/register_types.cpp b/modules/theora/register_types.cpp
index 55148a6b87..f658627574 100644
--- a/modules/theora/register_types.cpp
+++ b/modules/theora/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/theora/register_types.h b/modules/theora/register_types.h
index 654d70e417..d0c089ef49 100644
--- a/modules/theora/register_types.h
+++ b/modules/theora/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/theora/video_stream_theora.cpp b/modules/theora/video_stream_theora.cpp
index 4f5ae4afb0..9d297fcb93 100644
--- a/modules/theora/video_stream_theora.cpp
+++ b/modules/theora/video_stream_theora.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/theora/video_stream_theora.h b/modules/theora/video_stream_theora.h
index 760173d0df..3bc96908a2 100644
--- a/modules/theora/video_stream_theora.h
+++ b/modules/theora/video_stream_theora.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/tinyexr/image_loader_tinyexr.cpp b/modules/tinyexr/image_loader_tinyexr.cpp
index 6c4c06aab0..688707a42d 100644
--- a/modules/tinyexr/image_loader_tinyexr.cpp
+++ b/modules/tinyexr/image_loader_tinyexr.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/tinyexr/image_loader_tinyexr.h b/modules/tinyexr/image_loader_tinyexr.h
index 34390fccb0..aba5fdb959 100644
--- a/modules/tinyexr/image_loader_tinyexr.h
+++ b/modules/tinyexr/image_loader_tinyexr.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/tinyexr/image_saver_tinyexr.cpp b/modules/tinyexr/image_saver_tinyexr.cpp
index f64acf8395..3750994663 100644
--- a/modules/tinyexr/image_saver_tinyexr.cpp
+++ b/modules/tinyexr/image_saver_tinyexr.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/tinyexr/image_saver_tinyexr.h b/modules/tinyexr/image_saver_tinyexr.h
index e5060ef11c..5bf95b265e 100644
--- a/modules/tinyexr/image_saver_tinyexr.h
+++ b/modules/tinyexr/image_saver_tinyexr.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/tinyexr/register_types.cpp b/modules/tinyexr/register_types.cpp
index ecbabc4951..0879a55b6e 100644
--- a/modules/tinyexr/register_types.cpp
+++ b/modules/tinyexr/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/tinyexr/register_types.h b/modules/tinyexr/register_types.h
index e401f37066..4c34757d8b 100644
--- a/modules/tinyexr/register_types.h
+++ b/modules/tinyexr/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/upnp/register_types.cpp b/modules/upnp/register_types.cpp
index 1e5edd3602..7345901829 100644
--- a/modules/upnp/register_types.cpp
+++ b/modules/upnp/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/upnp/register_types.h b/modules/upnp/register_types.h
index 768031c4d9..e4482314f8 100644
--- a/modules/upnp/register_types.h
+++ b/modules/upnp/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/upnp/upnp.cpp b/modules/upnp/upnp.cpp
index 64823deaba..d762ca4f09 100644
--- a/modules/upnp/upnp.cpp
+++ b/modules/upnp/upnp.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/upnp/upnp.h b/modules/upnp/upnp.h
index 67df187f8c..6d87b42c56 100644
--- a/modules/upnp/upnp.h
+++ b/modules/upnp/upnp.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/upnp/upnp_device.cpp b/modules/upnp/upnp_device.cpp
index 692a0f3509..4009a399f2 100644
--- a/modules/upnp/upnp_device.cpp
+++ b/modules/upnp/upnp_device.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/upnp/upnp_device.h b/modules/upnp/upnp_device.h
index 0a66c36ab9..18491dce27 100644
--- a/modules/upnp/upnp_device.h
+++ b/modules/upnp/upnp_device.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/vhacd/register_types.cpp b/modules/vhacd/register_types.cpp
index 54240e66fc..6242c8faa3 100644
--- a/modules/vhacd/register_types.cpp
+++ b/modules/vhacd/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/vhacd/register_types.h b/modules/vhacd/register_types.h
index 24ad9378f4..e0e34d494d 100644
--- a/modules/vhacd/register_types.h
+++ b/modules/vhacd/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml b/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
index b3fd678379..1ac5768755 100644
--- a/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+++ b/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
@@ -16,85 +16,85 @@
</members>
<constants>
<constant name="MATH_SIN" value="0" enum="BuiltinFunc">
- Return the sine of the input.
+ Returns the sine of the input.
</constant>
<constant name="MATH_COS" value="1" enum="BuiltinFunc">
- Return the cosine of the input.
+ Returns the cosine of the input.
</constant>
<constant name="MATH_TAN" value="2" enum="BuiltinFunc">
- Return the tangent of the input.
+ Returns the tangent of the input.
</constant>
<constant name="MATH_SINH" value="3" enum="BuiltinFunc">
- Return the hyperbolic sine of the input.
+ Returns the hyperbolic sine of the input.
</constant>
<constant name="MATH_COSH" value="4" enum="BuiltinFunc">
- Return the hyperbolic cosine of the input.
+ Returns the hyperbolic cosine of the input.
</constant>
<constant name="MATH_TANH" value="5" enum="BuiltinFunc">
- Return the hyperbolic tangent of the input.
+ Returns the hyperbolic tangent of the input.
</constant>
<constant name="MATH_ASIN" value="6" enum="BuiltinFunc">
- Return the arc sine of the input.
+ Returns the arc sine of the input.
</constant>
<constant name="MATH_ACOS" value="7" enum="BuiltinFunc">
- Return the arc cosine of the input.
+ Returns the arc cosine of the input.
</constant>
<constant name="MATH_ATAN" value="8" enum="BuiltinFunc">
- Return the arc tangent of the input.
+ Returns the arc tangent of the input.
</constant>
<constant name="MATH_ATAN2" value="9" enum="BuiltinFunc">
- Return the arc tangent of the input, using the signs of both parameters to determine the exact angle.
+ Returns the arc tangent of the input, using the signs of both parameters to determine the exact angle.
</constant>
<constant name="MATH_SQRT" value="10" enum="BuiltinFunc">
- Return the square root of the input.
+ Returns the square root of the input.
</constant>
<constant name="MATH_FMOD" value="11" enum="BuiltinFunc">
- Return the remainder of one input divided by the other, using floating-point numbers.
+ Returns the remainder of one input divided by the other, using floating-point numbers.
</constant>
<constant name="MATH_FPOSMOD" value="12" enum="BuiltinFunc">
- Return the positive remainder of one input divided by the other, using floating-point numbers.
+ Returns the positive remainder of one input divided by the other, using floating-point numbers.
</constant>
<constant name="MATH_FLOOR" value="13" enum="BuiltinFunc">
- Return the input rounded down.
+ Returns the input rounded down.
</constant>
<constant name="MATH_CEIL" value="14" enum="BuiltinFunc">
- Return the input rounded up.
+ Returns the input rounded up.
</constant>
<constant name="MATH_ROUND" value="15" enum="BuiltinFunc">
- Return the input rounded to the nearest integer.
+ Returns the input rounded to the nearest integer.
</constant>
<constant name="MATH_ABS" value="16" enum="BuiltinFunc">
- Return the absolute value of the input.
+ Returns the absolute value of the input.
</constant>
<constant name="MATH_SIGN" value="17" enum="BuiltinFunc">
- Return the sign of the input, turning it into 1, -1, or 0. Useful to determine if the input is positive or negative.
+ Returns the sign of the input, turning it into 1, -1, or 0. Useful to determine if the input is positive or negative.
</constant>
<constant name="MATH_POW" value="18" enum="BuiltinFunc">
- Return the input raised to a given power.
+ Returns the input raised to a given power.
</constant>
<constant name="MATH_LOG" value="19" enum="BuiltinFunc">
- Return the natural logarithm of the input. Note that this is not the typical base-10 logarithm function calculators use.
+ Returns the natural logarithm of the input. Note that this is not the typical base-10 logarithm function calculators use.
</constant>
<constant name="MATH_EXP" value="20" enum="BuiltinFunc">
- Return the mathematical constant [b]e[/b] raised to the specified power of the input. [b]e[/b] has an approximate value of 2.71828.
+ Returns the mathematical constant [b]e[/b] raised to the specified power of the input. [b]e[/b] has an approximate value of 2.71828.
</constant>
<constant name="MATH_ISNAN" value="21" enum="BuiltinFunc">
- Return whether the input is NaN (Not a Number) or not. NaN is usually produced by dividing 0 by 0, though other ways exist.
+ Returns whether the input is NaN (Not a Number) or not. NaN is usually produced by dividing 0 by 0, though other ways exist.
</constant>
<constant name="MATH_ISINF" value="22" enum="BuiltinFunc">
- Return whether the input is an infinite floating-point number or not. Infinity is usually produced by dividing a number by 0, though other ways exist.
+ Returns whether the input is an infinite floating-point number or not. Infinity is usually produced by dividing a number by 0, though other ways exist.
</constant>
<constant name="MATH_EASE" value="23" enum="BuiltinFunc">
Easing function, based on exponent. 0 is constant, 1 is linear, 0 to 1 is ease-in, 1+ is ease out. Negative values are in-out/out in.
</constant>
<constant name="MATH_STEP_DECIMALS" value="24" enum="BuiltinFunc">
- Return the number of digit places after the decimal that the first non-zero digit occurs.
+ Returns the number of digit places after the decimal that the first non-zero digit occurs.
</constant>
<constant name="MATH_SNAPPED" value="25" enum="BuiltinFunc">
- Return the input snapped to a given step.
+ Returns the input snapped to a given step.
</constant>
<constant name="MATH_LERP" value="26" enum="BuiltinFunc">
- Return a number linearly interpolated between the first two inputs, based on the third input. Uses the formula [code]a + (a - b) * t[/code].
+ Returns a number linearly interpolated between the first two inputs, based on the third input. Uses the formula [code]a + (a - b) * t[/code].
</constant>
<constant name="MATH_INVERSE_LERP" value="27" enum="BuiltinFunc">
</constant>
@@ -107,16 +107,16 @@
Randomize the seed (or the internal state) of the random number generator. Current implementation reseeds using a number based on time.
</constant>
<constant name="MATH_RANDI" value="31" enum="BuiltinFunc">
- Return a random 32 bits integer value. To obtain a random value between 0 to N (where N is smaller than 2^32 - 1), you can use it with the remainder function.
+ Returns a random 32 bits integer value. To obtain a random value between 0 to N (where N is smaller than 2^32 - 1), you can use it with the remainder function.
</constant>
<constant name="MATH_RANDF" value="32" enum="BuiltinFunc">
- Return a random floating-point value between 0 and 1. To obtain a random value between 0 to N, you can use it with multiplication.
+ Returns a random floating-point value between 0 and 1. To obtain a random value between 0 to N, you can use it with multiplication.
</constant>
<constant name="MATH_RANDI_RANGE" value="33" enum="BuiltinFunc">
- Return a random 32-bit integer value between the two inputs.
+ Returns a random 32-bit integer value between the two inputs.
</constant>
<constant name="MATH_RANDF_RANGE" value="34" enum="BuiltinFunc">
- Return a random floating-point value between the two inputs.
+ Returns a random floating-point value between the two inputs.
</constant>
<constant name="MATH_RANDFN" value="35" enum="BuiltinFunc">
Returns a normally-distributed pseudo-random number, using Box-Muller transform with the specified mean and a standard deviation. This is also called Gaussian distribution.
@@ -125,7 +125,7 @@
Set the seed for the random number generator.
</constant>
<constant name="MATH_RANDSEED" value="37" enum="BuiltinFunc">
- Return a random value from the given seed, along with the new seed.
+ Returns a random value from the given seed, along with the new seed.
</constant>
<constant name="MATH_DEG2RAD" value="38" enum="BuiltinFunc">
Convert the input from degrees to radians.
@@ -144,19 +144,19 @@
<constant name="MATH_WRAPF" value="43" enum="BuiltinFunc">
</constant>
<constant name="MATH_PINGPONG" value="44" enum="BuiltinFunc">
- Return the [code]value[/code] wrapped between [code]0[/code] and the [code]length[/code]. If the limit is reached, the next value the function returned is decreased to the [code]0[/code] side or increased to the [code]length[/code] side (like a triangle wave). If [code]length[/code] is less than zero, it becomes positive.
+ Returns the [code]value[/code] wrapped between [code]0[/code] and the [code]length[/code]. If the limit is reached, the next value the function returned is decreased to the [code]0[/code] side or increased to the [code]length[/code] side (like a triangle wave). If [code]length[/code] is less than zero, it becomes positive.
</constant>
<constant name="LOGIC_MAX" value="45" enum="BuiltinFunc">
- Return the greater of the two numbers, also known as their maximum.
+ Returns the greater of the two numbers, also known as their maximum.
</constant>
<constant name="LOGIC_MIN" value="46" enum="BuiltinFunc">
- Return the lesser of the two numbers, also known as their minimum.
+ Returns the lesser of the two numbers, also known as their minimum.
</constant>
<constant name="LOGIC_CLAMP" value="47" enum="BuiltinFunc">
- Return the input clamped inside the given range, ensuring the result is never outside it. Equivalent to [code]min(max(input, range_low), range_high)[/code].
+ Returns the input clamped inside the given range, ensuring the result is never outside it. Equivalent to [code]min(max(input, range_low), range_high)[/code].
</constant>
<constant name="LOGIC_NEAREST_PO2" value="48" enum="BuiltinFunc">
- Return the nearest power of 2 to the input.
+ Returns the nearest power of 2 to the input.
</constant>
<constant name="OBJ_WEAKREF" value="49" enum="BuiltinFunc">
Create a [WeakRef] from the input.
@@ -165,13 +165,13 @@
Convert between types.
</constant>
<constant name="TYPE_OF" value="51" enum="BuiltinFunc">
- Return the type of the input as an integer. Check [enum Variant.Type] for the integers that might be returned.
+ Returns the type of the input as an integer. Check [enum Variant.Type] for the integers that might be returned.
</constant>
<constant name="TYPE_EXISTS" value="52" enum="BuiltinFunc">
Checks if a type is registered in the [ClassDB].
</constant>
<constant name="TEXT_CHAR" value="53" enum="BuiltinFunc">
- Return a character with the given ascii value.
+ Returns a character with the given ascii value.
</constant>
<constant name="TEXT_STR" value="54" enum="BuiltinFunc">
Convert the input to a string.
@@ -200,7 +200,7 @@
Deserialize a [Variant] from a [PackedByteArray] serialized using [constant VAR_TO_BYTES].
</constant>
<constant name="MATH_SMOOTHSTEP" value="63" enum="BuiltinFunc">
- Return a number smoothly interpolated between the first two inputs, based on the third input. Similar to [constant MATH_LERP], but interpolates faster at the beginning and slower at the end. Using Hermite interpolation formula:
+ Returns a number smoothly interpolated between the first two inputs, based on the third input. Similar to [constant MATH_LERP], but interpolates faster at the beginning and slower at the end. Using Hermite interpolation formula:
[codeblock]
var t = clamp((weight - from) / (to - from), 0.0, 1.0)
return t * t * (3.0 - 2.0 * t)
diff --git a/modules/visual_script/doc_classes/VisualScriptCustomNode.xml b/modules/visual_script/doc_classes/VisualScriptCustomNode.xml
index 2c6313c80a..486f60400a 100644
--- a/modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+++ b/modules/visual_script/doc_classes/VisualScriptCustomNode.xml
@@ -12,112 +12,112 @@
<method name="_get_caption" qualifiers="virtual const">
<return type="String" />
<description>
- Return the node's title.
+ Returns the node's title.
</description>
</method>
<method name="_get_category" qualifiers="virtual const">
<return type="String" />
<description>
- Return the node's category.
+ Returns the node's category.
</description>
</method>
<method name="_get_input_value_port_count" qualifiers="virtual const">
<return type="int" />
<description>
- Return the count of input value ports.
+ Returns the count of input value ports.
</description>
</method>
<method name="_get_input_value_port_hint" qualifiers="virtual const">
<return type="int" />
<argument index="0" name="input_idx" type="int" />
<description>
- Return the specified input port's hint. See the [enum @GlobalScope.PropertyHint] hints.
+ Returns the specified input port's hint. See the [enum @GlobalScope.PropertyHint] hints.
</description>
</method>
<method name="_get_input_value_port_hint_string" qualifiers="virtual const">
<return type="String" />
<argument index="0" name="input_idx" type="int" />
<description>
- Return the specified input port's hint string.
+ Returns the specified input port's hint string.
</description>
</method>
<method name="_get_input_value_port_name" qualifiers="virtual const">
<return type="String" />
<argument index="0" name="input_idx" type="int" />
<description>
- Return the specified input port's name.
+ Returns the specified input port's name.
</description>
</method>
<method name="_get_input_value_port_type" qualifiers="virtual const">
<return type="int" />
<argument index="0" name="input_idx" type="int" />
<description>
- Return the specified input port's type. See the [enum Variant.Type] values.
+ Returns the specified input port's type. See the [enum Variant.Type] values.
</description>
</method>
<method name="_get_output_sequence_port_count" qualifiers="virtual const">
<return type="int" />
<description>
- Return the amount of output [b]sequence[/b] ports.
+ Returns the amount of output [b]sequence[/b] ports.
</description>
</method>
<method name="_get_output_sequence_port_text" qualifiers="virtual const">
<return type="String" />
<argument index="0" name="seq_idx" type="int" />
<description>
- Return the specified [b]sequence[/b] output's name.
+ Returns the specified [b]sequence[/b] output's name.
</description>
</method>
<method name="_get_output_value_port_count" qualifiers="virtual const">
<return type="int" />
<description>
- Return the amount of output value ports.
+ Returns the amount of output value ports.
</description>
</method>
<method name="_get_output_value_port_hint" qualifiers="virtual const">
<return type="int" />
<argument index="0" name="output_idx" type="int" />
<description>
- Return the specified output port's hint. See the [enum @GlobalScope.PropertyHint] hints.
+ Returns the specified output port's hint. See the [enum @GlobalScope.PropertyHint] hints.
</description>
</method>
<method name="_get_output_value_port_hint_string" qualifiers="virtual const">
<return type="String" />
<argument index="0" name="output_idx" type="int" />
<description>
- Return the specified output port's hint string.
+ Returns the specified output port's hint string.
</description>
</method>
<method name="_get_output_value_port_name" qualifiers="virtual const">
<return type="String" />
<argument index="0" name="output_idx" type="int" />
<description>
- Return the specified output port's name.
+ Returns the specified output port's name.
</description>
</method>
<method name="_get_output_value_port_type" qualifiers="virtual const">
<return type="int" />
<argument index="0" name="output_idx" type="int" />
<description>
- Return the specified output port's type. See the [enum Variant.Type] values.
+ Returns the specified output port's type. See the [enum Variant.Type] values.
</description>
</method>
<method name="_get_text" qualifiers="virtual const">
<return type="String" />
<description>
- Return the custom node's text, which is shown right next to the input [b]sequence[/b] port (if there is none, on the place that is usually taken by it).
+ Returns the custom node's text, which is shown right next to the input [b]sequence[/b] port (if there is none, on the place that is usually taken by it).
</description>
</method>
<method name="_get_working_memory_size" qualifiers="virtual const">
<return type="int" />
<description>
- Return the size of the custom node's working memory. See [method _step] for more details.
+ Returns the size of the custom node's working memory. See [method _step] for more details.
</description>
</method>
<method name="_has_input_sequence_port" qualifiers="virtual const">
<return type="bool" />
<description>
- Return whether the custom node has an input [b]sequence[/b] port.
+ Returns whether the custom node has an input [b]sequence[/b] port.
</description>
</method>
<method name="_step" qualifiers="virtual const">
diff --git a/modules/visual_script/editor/visual_script_editor.cpp b/modules/visual_script/editor/visual_script_editor.cpp
index 991d258054..bc40f4f9b4 100644
--- a/modules/visual_script/editor/visual_script_editor.cpp
+++ b/modules/visual_script/editor/visual_script_editor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/editor/visual_script_editor.h b/modules/visual_script/editor/visual_script_editor.h
index fd1db2bc43..b232b05391 100644
--- a/modules/visual_script/editor/visual_script_editor.h
+++ b/modules/visual_script/editor/visual_script_editor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/editor/visual_script_property_selector.cpp b/modules/visual_script/editor/visual_script_property_selector.cpp
index 9fa35d4453..c88d10dabd 100644
--- a/modules/visual_script/editor/visual_script_property_selector.cpp
+++ b/modules/visual_script/editor/visual_script_property_selector.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/editor/visual_script_property_selector.h b/modules/visual_script/editor/visual_script_property_selector.h
index 7a87f3d3ee..9e065548a0 100644
--- a/modules/visual_script/editor/visual_script_property_selector.h
+++ b/modules/visual_script/editor/visual_script_property_selector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/register_types.cpp b/modules/visual_script/register_types.cpp
index 6f56fbbc70..e7b5f58174 100644
--- a/modules/visual_script/register_types.cpp
+++ b/modules/visual_script/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/register_types.h b/modules/visual_script/register_types.h
index b02a93ebc1..29768da67f 100644
--- a/modules/visual_script/register_types.h
+++ b/modules/visual_script/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script.cpp b/modules/visual_script/visual_script.cpp
index 63bd9bbee4..fbdf3a654b 100644
--- a/modules/visual_script/visual_script.cpp
+++ b/modules/visual_script/visual_script.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2241,20 +2241,15 @@ void VisualScriptLanguage::get_comment_delimiters(List<String> *p_delimiters) co
void VisualScriptLanguage::get_string_delimiters(List<String> *p_delimiters) const {
}
-Ref<Script> VisualScriptLanguage::get_template(const String &p_class_name, const String &p_base_class_name) const {
- Ref<VisualScript> script;
- script.instantiate();
- script->set_instance_base_type(p_base_class_name);
- return script;
-}
-
bool VisualScriptLanguage::is_using_templates() {
- return true;
+ return false;
}
-void VisualScriptLanguage::make_template(const String &p_class_name, const String &p_base_class_name, Ref<Script> &p_script) {
- Ref<VisualScript> script = p_script;
+Ref<Script> VisualScriptLanguage::make_template(const String &p_template, const String &p_class_name, const String &p_base_class_name) const {
+ Ref<VisualScript> script;
+ script.instantiate();
script->set_instance_base_type(p_base_class_name);
+ return script;
}
bool VisualScriptLanguage::validate(const String &p_script, const String &p_path, List<String> *r_functions, List<ScriptLanguage::ScriptError> *r_errors, List<ScriptLanguage::Warning> *r_warnings, Set<int> *r_safe_lines) const {
diff --git a/modules/visual_script/visual_script.h b/modules/visual_script/visual_script.h
index 39cef8f68b..e5c8ab48ee 100644
--- a/modules/visual_script/visual_script.h
+++ b/modules/visual_script/visual_script.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -554,57 +554,56 @@ public:
//////////////////////////////////////
- virtual String get_name() const;
+ virtual String get_name() const override;
/* LANGUAGE FUNCTIONS */
- virtual void init();
- virtual String get_type() const;
- virtual String get_extension() const;
- virtual Error execute_file(const String &p_path);
- virtual void finish();
+ virtual void init() override;
+ virtual String get_type() const override;
+ virtual String get_extension() const override;
+ virtual Error execute_file(const String &p_path) override;
+ virtual void finish() override;
/* EDITOR FUNCTIONS */
- virtual void get_reserved_words(List<String> *p_words) const;
- virtual bool is_control_flow_keyword(String p_keyword) const;
- virtual void get_comment_delimiters(List<String> *p_delimiters) const;
- virtual void get_string_delimiters(List<String> *p_delimiters) const;
- virtual Ref<Script> get_template(const String &p_class_name, const String &p_base_class_name) const;
- virtual bool is_using_templates();
- virtual void make_template(const String &p_class_name, const String &p_base_class_name, Ref<Script> &p_script);
- virtual bool validate(const String &p_script, const String &p_path = "", List<String> *r_functions = nullptr, List<ScriptLanguage::ScriptError> *r_errors = nullptr, List<ScriptLanguage::Warning> *r_warnings = nullptr, Set<int> *r_safe_lines = nullptr) const;
- virtual Script *create_script() const;
- virtual bool has_named_classes() const;
- virtual bool supports_builtin_mode() const;
- virtual int find_function(const String &p_function, const String &p_code) const;
- virtual String make_function(const String &p_class, const String &p_name, const PackedStringArray &p_args) const;
- virtual void auto_indent_code(String &p_code, int p_from_line, int p_to_line) const;
- virtual void add_global_constant(const StringName &p_variable, const Variant &p_value);
+ virtual void get_reserved_words(List<String> *p_words) const override;
+ virtual bool is_control_flow_keyword(String p_keyword) const override;
+ virtual void get_comment_delimiters(List<String> *p_delimiters) const override;
+ virtual void get_string_delimiters(List<String> *p_delimiters) const override;
+ virtual bool is_using_templates() override;
+ virtual Ref<Script> make_template(const String &p_template, const String &p_class_name, const String &p_base_class_name) const override;
+ virtual bool validate(const String &p_script, const String &p_path = "", List<String> *r_functions = nullptr, List<ScriptLanguage::ScriptError> *r_errors = nullptr, List<ScriptLanguage::Warning> *r_warnings = nullptr, Set<int> *r_safe_lines = nullptr) const override;
+ virtual Script *create_script() const override;
+ virtual bool has_named_classes() const override;
+ virtual bool supports_builtin_mode() const override;
+ virtual int find_function(const String &p_function, const String &p_code) const override;
+ virtual String make_function(const String &p_class, const String &p_name, const PackedStringArray &p_args) const override;
+ virtual void auto_indent_code(String &p_code, int p_from_line, int p_to_line) const override;
+ virtual void add_global_constant(const StringName &p_variable, const Variant &p_value) override;
/* DEBUGGER FUNCTIONS */
- virtual String debug_get_error() const;
- virtual int debug_get_stack_level_count() const;
- virtual int debug_get_stack_level_line(int p_level) const;
- virtual String debug_get_stack_level_function(int p_level) const;
- virtual String debug_get_stack_level_source(int p_level) const;
- virtual void debug_get_stack_level_locals(int p_level, List<String> *p_locals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1);
- virtual void debug_get_stack_level_members(int p_level, List<String> *p_members, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1);
- virtual void debug_get_globals(List<String> *p_locals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1);
- virtual String debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems = -1, int p_max_depth = -1);
-
- virtual void reload_all_scripts();
- virtual void reload_tool_script(const Ref<Script> &p_script, bool p_soft_reload);
+ virtual String debug_get_error() const override;
+ virtual int debug_get_stack_level_count() const override;
+ virtual int debug_get_stack_level_line(int p_level) const override;
+ virtual String debug_get_stack_level_function(int p_level) const override;
+ virtual String debug_get_stack_level_source(int p_level) const override;
+ virtual void debug_get_stack_level_locals(int p_level, List<String> *p_locals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1) override;
+ virtual void debug_get_stack_level_members(int p_level, List<String> *p_members, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1) override;
+ virtual void debug_get_globals(List<String> *p_locals, List<Variant> *p_values, int p_max_subitems = -1, int p_max_depth = -1) override;
+ virtual String debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems = -1, int p_max_depth = -1) override;
+
+ virtual void reload_all_scripts() override;
+ virtual void reload_tool_script(const Ref<Script> &p_script, bool p_soft_reload) override;
/* LOADER FUNCTIONS */
- virtual void get_recognized_extensions(List<String> *p_extensions) const;
- virtual void get_public_functions(List<MethodInfo> *p_functions) const;
- virtual void get_public_constants(List<Pair<String, Variant>> *p_constants) const;
+ virtual void get_recognized_extensions(List<String> *p_extensions) const override;
+ virtual void get_public_functions(List<MethodInfo> *p_functions) const override;
+ virtual void get_public_constants(List<Pair<String, Variant>> *p_constants) const override;
- virtual void profiling_start();
- virtual void profiling_stop();
+ virtual void profiling_start() override;
+ virtual void profiling_stop() override;
- virtual int profiling_get_accumulated_data(ProfilingInfo *p_info_arr, int p_info_max);
- virtual int profiling_get_frame_data(ProfilingInfo *p_info_arr, int p_info_max);
+ virtual int profiling_get_accumulated_data(ProfilingInfo *p_info_arr, int p_info_max) override;
+ virtual int profiling_get_frame_data(ProfilingInfo *p_info_arr, int p_info_max) override;
void add_register_func(const String &p_name, VisualScriptNodeRegisterFunc p_func);
void remove_register_func(const String &p_name);
diff --git a/modules/visual_script/visual_script_builtin_funcs.cpp b/modules/visual_script/visual_script_builtin_funcs.cpp
index 7ae85ea415..99e75f9289 100644
--- a/modules/visual_script/visual_script_builtin_funcs.cpp
+++ b/modules/visual_script/visual_script_builtin_funcs.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script_builtin_funcs.h b/modules/visual_script/visual_script_builtin_funcs.h
index f71a053f7d..d689296233 100644
--- a/modules/visual_script/visual_script_builtin_funcs.h
+++ b/modules/visual_script/visual_script_builtin_funcs.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script_expression.cpp b/modules/visual_script/visual_script_expression.cpp
index 699042ffa6..b39f984a80 100644
--- a/modules/visual_script/visual_script_expression.cpp
+++ b/modules/visual_script/visual_script_expression.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script_expression.h b/modules/visual_script/visual_script_expression.h
index ef16222b42..c93eb0686b 100644
--- a/modules/visual_script/visual_script_expression.h
+++ b/modules/visual_script/visual_script_expression.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script_flow_control.cpp b/modules/visual_script/visual_script_flow_control.cpp
index 278d806595..f8b03f2eea 100644
--- a/modules/visual_script/visual_script_flow_control.cpp
+++ b/modules/visual_script/visual_script_flow_control.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script_flow_control.h b/modules/visual_script/visual_script_flow_control.h
index 73822fcc37..7ffdf3df65 100644
--- a/modules/visual_script/visual_script_flow_control.h
+++ b/modules/visual_script/visual_script_flow_control.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script_func_nodes.cpp b/modules/visual_script/visual_script_func_nodes.cpp
index 651464dfdb..056e1eb6a3 100644
--- a/modules/visual_script/visual_script_func_nodes.cpp
+++ b/modules/visual_script/visual_script_func_nodes.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2316,10 +2316,12 @@ void VisualScriptEmitSignal::_validate_property(PropertyInfo &property) const {
property.hint = PROPERTY_HINT_ENUM;
List<StringName> sigs;
+ List<MethodInfo> base_sigs;
Ref<VisualScript> vs = get_visual_script();
if (vs.is_valid()) {
vs->get_custom_signal_list(&sigs);
+ ClassDB::get_signal_list(vs->get_instance_base_type(), &base_sigs);
}
String ml;
@@ -2329,6 +2331,12 @@ void VisualScriptEmitSignal::_validate_property(PropertyInfo &property) const {
}
ml += E;
}
+ for (const MethodInfo &E : base_sigs) {
+ if (!ml.is_empty()) {
+ ml += ",";
+ }
+ ml += E.name;
+ }
property.hint_string = ml;
}
diff --git a/modules/visual_script/visual_script_func_nodes.h b/modules/visual_script/visual_script_func_nodes.h
index cca08455f9..886ed7bc81 100644
--- a/modules/visual_script/visual_script_func_nodes.h
+++ b/modules/visual_script/visual_script_func_nodes.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script_nodes.cpp b/modules/visual_script/visual_script_nodes.cpp
index bb4c83bd24..fccdab1a64 100644
--- a/modules/visual_script/visual_script_nodes.cpp
+++ b/modules/visual_script/visual_script_nodes.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script_nodes.h b/modules/visual_script/visual_script_nodes.h
index 78881f0a53..18573f8682 100644
--- a/modules/visual_script/visual_script_nodes.h
+++ b/modules/visual_script/visual_script_nodes.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script_yield_nodes.cpp b/modules/visual_script/visual_script_yield_nodes.cpp
index c5d17e5a11..d4f3fdd082 100644
--- a/modules/visual_script/visual_script_yield_nodes.cpp
+++ b/modules/visual_script/visual_script_yield_nodes.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/visual_script/visual_script_yield_nodes.h b/modules/visual_script/visual_script_yield_nodes.h
index 6005ff30b0..a7bf4e8a78 100644
--- a/modules/visual_script/visual_script_yield_nodes.h
+++ b/modules/visual_script/visual_script_yield_nodes.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/vorbis/audio_stream_ogg_vorbis.cpp b/modules/vorbis/audio_stream_ogg_vorbis.cpp
index 06ed021a5a..049d816a5a 100644
--- a/modules/vorbis/audio_stream_ogg_vorbis.cpp
+++ b/modules/vorbis/audio_stream_ogg_vorbis.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -110,7 +110,7 @@ int AudioStreamPlaybackOGGVorbis::_mix_frames_vorbis(AudioFrame *p_buffer, int p
if (info.channels > 1) {
for (int frame = 0; frame < frames; frame++) {
p_buffer[frame].l = pcm[0][frame];
- p_buffer[frame].r = pcm[0][frame];
+ p_buffer[frame].r = pcm[1][frame];
}
} else {
for (int frame = 0; frame < frames; frame++) {
diff --git a/modules/vorbis/audio_stream_ogg_vorbis.h b/modules/vorbis/audio_stream_ogg_vorbis.h
index 59a1318a6b..b09ef9ff5d 100644
--- a/modules/vorbis/audio_stream_ogg_vorbis.h
+++ b/modules/vorbis/audio_stream_ogg_vorbis.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/vorbis/register_types.cpp b/modules/vorbis/register_types.cpp
index de3f41afdd..1baf7b2edc 100644
--- a/modules/vorbis/register_types.cpp
+++ b/modules/vorbis/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/vorbis/register_types.h b/modules/vorbis/register_types.h
index 1497e6f5e4..666c7e5b9f 100644
--- a/modules/vorbis/register_types.h
+++ b/modules/vorbis/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/vorbis/resource_importer_ogg_vorbis.cpp b/modules/vorbis/resource_importer_ogg_vorbis.cpp
index be9f880103..ccd463fd52 100644
--- a/modules/vorbis/resource_importer_ogg_vorbis.cpp
+++ b/modules/vorbis/resource_importer_ogg_vorbis.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/vorbis/resource_importer_ogg_vorbis.h b/modules/vorbis/resource_importer_ogg_vorbis.h
index 8565e0deb8..07291803a1 100644
--- a/modules/vorbis/resource_importer_ogg_vorbis.h
+++ b/modules/vorbis/resource_importer_ogg_vorbis.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webp/image_loader_webp.cpp b/modules/webp/image_loader_webp.cpp
index 5bebad2b53..902e182d83 100644
--- a/modules/webp/image_loader_webp.cpp
+++ b/modules/webp/image_loader_webp.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webp/image_loader_webp.h b/modules/webp/image_loader_webp.h
index 9ea3056a19..327582ca55 100644
--- a/modules/webp/image_loader_webp.h
+++ b/modules/webp/image_loader_webp.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webp/register_types.cpp b/modules/webp/register_types.cpp
index ea9af72418..462c0a0b3d 100644
--- a/modules/webp/register_types.cpp
+++ b/modules/webp/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webp/register_types.h b/modules/webp/register_types.h
index 59d6894bf6..828ef07f9a 100644
--- a/modules/webp/register_types.h
+++ b/modules/webp/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/doc_classes/WebRTCMultiplayerPeer.xml b/modules/webrtc/doc_classes/WebRTCMultiplayerPeer.xml
index a8360a4d45..780791c0d9 100644
--- a/modules/webrtc/doc_classes/WebRTCMultiplayerPeer.xml
+++ b/modules/webrtc/doc_classes/WebRTCMultiplayerPeer.xml
@@ -32,7 +32,7 @@
<return type="Dictionary" />
<argument index="0" name="peer_id" type="int" />
<description>
- Return a dictionary representation of the peer with given [code]peer_id[/code] with three keys. [code]connection[/code] containing the [WebRTCPeerConnection] to this peer, [code]channels[/code] an array of three [WebRTCDataChannel], and [code]connected[/code] a boolean representing if the peer connection is currently connected (all three channels are open).
+ Returns a dictionary representation of the peer with given [code]peer_id[/code] with three keys. [code]connection[/code] containing the [WebRTCPeerConnection] to this peer, [code]channels[/code] an array of three [WebRTCDataChannel], and [code]connected[/code] a boolean representing if the peer connection is currently connected (all three channels are open).
</description>
</method>
<method name="get_peers">
diff --git a/modules/webrtc/library_godot_webrtc.js b/modules/webrtc/library_godot_webrtc.js
index a0a6c21be3..e57e4299e0 100644
--- a/modules/webrtc/library_godot_webrtc.js
+++ b/modules/webrtc/library_godot_webrtc.js
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/register_types.cpp b/modules/webrtc/register_types.cpp
index 8110e4a048..54d4f57eef 100644
--- a/modules/webrtc/register_types.cpp
+++ b/modules/webrtc/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/register_types.h b/modules/webrtc/register_types.h
index 710ee88a28..2e4457beaf 100644
--- a/modules/webrtc/register_types.h
+++ b/modules/webrtc/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_data_channel.cpp b/modules/webrtc/webrtc_data_channel.cpp
index ca520a733d..b4af4b8415 100644
--- a/modules/webrtc/webrtc_data_channel.cpp
+++ b/modules/webrtc/webrtc_data_channel.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_data_channel.h b/modules/webrtc/webrtc_data_channel.h
index 809d35c6e3..eac8f85a84 100644
--- a/modules/webrtc/webrtc_data_channel.h
+++ b/modules/webrtc/webrtc_data_channel.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_data_channel_extension.cpp b/modules/webrtc/webrtc_data_channel_extension.cpp
index ae346f6d8e..b7ea8d22bb 100644
--- a/modules/webrtc/webrtc_data_channel_extension.cpp
+++ b/modules/webrtc/webrtc_data_channel_extension.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_data_channel_extension.h b/modules/webrtc/webrtc_data_channel_extension.h
index eec96b4c62..83bb627815 100644
--- a/modules/webrtc/webrtc_data_channel_extension.h
+++ b/modules/webrtc/webrtc_data_channel_extension.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_data_channel_js.cpp b/modules/webrtc/webrtc_data_channel_js.cpp
index 31d6a0568c..4c41a4c7ee 100644
--- a/modules/webrtc/webrtc_data_channel_js.cpp
+++ b/modules/webrtc/webrtc_data_channel_js.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_data_channel_js.h b/modules/webrtc/webrtc_data_channel_js.h
index 5cd6a32ed9..d059ec31ed 100644
--- a/modules/webrtc/webrtc_data_channel_js.h
+++ b/modules/webrtc/webrtc_data_channel_js.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_multiplayer_peer.cpp b/modules/webrtc/webrtc_multiplayer_peer.cpp
index 20fe63bf7d..bc3c0d9265 100644
--- a/modules/webrtc/webrtc_multiplayer_peer.cpp
+++ b/modules/webrtc/webrtc_multiplayer_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_multiplayer_peer.h b/modules/webrtc/webrtc_multiplayer_peer.h
index 4a7e9ad7c8..6675c67867 100644
--- a/modules/webrtc/webrtc_multiplayer_peer.h
+++ b/modules/webrtc/webrtc_multiplayer_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_peer_connection.cpp b/modules/webrtc/webrtc_peer_connection.cpp
index ad28aa76c7..96cf518c06 100644
--- a/modules/webrtc/webrtc_peer_connection.cpp
+++ b/modules/webrtc/webrtc_peer_connection.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_peer_connection.h b/modules/webrtc/webrtc_peer_connection.h
index e2ef3e55ad..8c324d0942 100644
--- a/modules/webrtc/webrtc_peer_connection.h
+++ b/modules/webrtc/webrtc_peer_connection.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_peer_connection_extension.cpp b/modules/webrtc/webrtc_peer_connection_extension.cpp
index 33288e66d6..3bc7de217e 100644
--- a/modules/webrtc/webrtc_peer_connection_extension.cpp
+++ b/modules/webrtc/webrtc_peer_connection_extension.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_peer_connection_extension.h b/modules/webrtc/webrtc_peer_connection_extension.h
index b3c2039fc1..82e32b5602 100644
--- a/modules/webrtc/webrtc_peer_connection_extension.h
+++ b/modules/webrtc/webrtc_peer_connection_extension.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_peer_connection_js.cpp b/modules/webrtc/webrtc_peer_connection_js.cpp
index ed3459d5f8..90e19fe4f1 100644
--- a/modules/webrtc/webrtc_peer_connection_js.cpp
+++ b/modules/webrtc/webrtc_peer_connection_js.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webrtc/webrtc_peer_connection_js.h b/modules/webrtc/webrtc_peer_connection_js.h
index d2beccaf03..3d0b365355 100644
--- a/modules/webrtc/webrtc_peer_connection_js.h
+++ b/modules/webrtc/webrtc_peer_connection_js.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/doc_classes/WebSocketClient.xml b/modules/websocket/doc_classes/WebSocketClient.xml
index 4b515c12a1..5fcf51293d 100644
--- a/modules/websocket/doc_classes/WebSocketClient.xml
+++ b/modules/websocket/doc_classes/WebSocketClient.xml
@@ -39,13 +39,13 @@
<method name="get_connected_host" qualifiers="const">
<return type="String" />
<description>
- Return the IP address of the currently connected host.
+ Returns the IP address of the currently connected host.
</description>
</method>
<method name="get_connected_port" qualifiers="const">
<return type="int" />
<description>
- Return the IP port of the currently connected host.
+ Returns the IP port of the currently connected host.
</description>
</method>
</methods>
diff --git a/modules/websocket/editor_debugger_server_websocket.cpp b/modules/websocket/editor_debugger_server_websocket.cpp
index 78a5fa50d8..4f1a56f00b 100644
--- a/modules/websocket/editor_debugger_server_websocket.cpp
+++ b/modules/websocket/editor_debugger_server_websocket.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/editor_debugger_server_websocket.h b/modules/websocket/editor_debugger_server_websocket.h
index 1e5ea66146..cc14bf62ba 100644
--- a/modules/websocket/editor_debugger_server_websocket.h
+++ b/modules/websocket/editor_debugger_server_websocket.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/emws_client.cpp b/modules/websocket/emws_client.cpp
index 5cd94e978f..2d029dfbbc 100644
--- a/modules/websocket/emws_client.cpp
+++ b/modules/websocket/emws_client.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/emws_client.h b/modules/websocket/emws_client.h
index 3b0b8395b9..61ea0002ea 100644
--- a/modules/websocket/emws_client.h
+++ b/modules/websocket/emws_client.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/emws_peer.cpp b/modules/websocket/emws_peer.cpp
index 035d036b90..77a96c8e4f 100644
--- a/modules/websocket/emws_peer.cpp
+++ b/modules/websocket/emws_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/emws_peer.h b/modules/websocket/emws_peer.h
index 6e93ea31a2..df63d2d801 100644
--- a/modules/websocket/emws_peer.h
+++ b/modules/websocket/emws_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/emws_server.cpp b/modules/websocket/emws_server.cpp
index 4a4f09a943..53b4a0207d 100644
--- a/modules/websocket/emws_server.cpp
+++ b/modules/websocket/emws_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/emws_server.h b/modules/websocket/emws_server.h
index d36e3a3557..f310c17c9d 100644
--- a/modules/websocket/emws_server.h
+++ b/modules/websocket/emws_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/library_godot_websocket.js b/modules/websocket/library_godot_websocket.js
index dd2fd1e94f..c88986fbe3 100644
--- a/modules/websocket/library_godot_websocket.js
+++ b/modules/websocket/library_godot_websocket.js
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/packet_buffer.h b/modules/websocket/packet_buffer.h
index e99a379767..7b4a164576 100644
--- a/modules/websocket/packet_buffer.h
+++ b/modules/websocket/packet_buffer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/register_types.cpp b/modules/websocket/register_types.cpp
index 7c742b1b89..1e9a4c0392 100644
--- a/modules/websocket/register_types.cpp
+++ b/modules/websocket/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/register_types.h b/modules/websocket/register_types.h
index 3884db67b7..4ab6c0cfd3 100644
--- a/modules/websocket/register_types.h
+++ b/modules/websocket/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/remote_debugger_peer_websocket.cpp b/modules/websocket/remote_debugger_peer_websocket.cpp
index c9591cc564..6319c3c664 100644
--- a/modules/websocket/remote_debugger_peer_websocket.cpp
+++ b/modules/websocket/remote_debugger_peer_websocket.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/remote_debugger_peer_websocket.h b/modules/websocket/remote_debugger_peer_websocket.h
index 590d925dcc..ddf5425d81 100644
--- a/modules/websocket/remote_debugger_peer_websocket.h
+++ b/modules/websocket/remote_debugger_peer_websocket.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/websocket_client.cpp b/modules/websocket/websocket_client.cpp
index bf35c91c7f..2734b4b88f 100644
--- a/modules/websocket/websocket_client.cpp
+++ b/modules/websocket/websocket_client.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/websocket_client.h b/modules/websocket/websocket_client.h
index c7f17f1ffb..d6c072ae16 100644
--- a/modules/websocket/websocket_client.h
+++ b/modules/websocket/websocket_client.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/websocket_macros.h b/modules/websocket/websocket_macros.h
index 2ca60a3b61..a01ae65c56 100644
--- a/modules/websocket/websocket_macros.h
+++ b/modules/websocket/websocket_macros.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/websocket_multiplayer_peer.cpp b/modules/websocket/websocket_multiplayer_peer.cpp
index e54bfbca12..7a3bbf1c47 100644
--- a/modules/websocket/websocket_multiplayer_peer.cpp
+++ b/modules/websocket/websocket_multiplayer_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/websocket_multiplayer_peer.h b/modules/websocket/websocket_multiplayer_peer.h
index 380edf67ed..43d9d59f38 100644
--- a/modules/websocket/websocket_multiplayer_peer.h
+++ b/modules/websocket/websocket_multiplayer_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/websocket_peer.cpp b/modules/websocket/websocket_peer.cpp
index ee13040821..a0af9303b8 100644
--- a/modules/websocket/websocket_peer.cpp
+++ b/modules/websocket/websocket_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/websocket_peer.h b/modules/websocket/websocket_peer.h
index 517b8600d6..13fef2424f 100644
--- a/modules/websocket/websocket_peer.h
+++ b/modules/websocket/websocket_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/websocket_server.cpp b/modules/websocket/websocket_server.cpp
index e7f90fdeba..b7249e4243 100644
--- a/modules/websocket/websocket_server.cpp
+++ b/modules/websocket/websocket_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/websocket_server.h b/modules/websocket/websocket_server.h
index c4d651471f..f6f3b80045 100644
--- a/modules/websocket/websocket_server.h
+++ b/modules/websocket/websocket_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/wsl_client.cpp b/modules/websocket/wsl_client.cpp
index 26c0176ea4..bccbf88417 100644
--- a/modules/websocket/wsl_client.cpp
+++ b/modules/websocket/wsl_client.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/wsl_client.h b/modules/websocket/wsl_client.h
index 3972977910..4839d7ab9b 100644
--- a/modules/websocket/wsl_client.h
+++ b/modules/websocket/wsl_client.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/wsl_peer.cpp b/modules/websocket/wsl_peer.cpp
index fc520ec57c..d277eedace 100644
--- a/modules/websocket/wsl_peer.cpp
+++ b/modules/websocket/wsl_peer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/wsl_peer.h b/modules/websocket/wsl_peer.h
index 260d4b183d..555559c6e1 100644
--- a/modules/websocket/wsl_peer.h
+++ b/modules/websocket/wsl_peer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/wsl_server.cpp b/modules/websocket/wsl_server.cpp
index a3d0d3554f..31175c5779 100644
--- a/modules/websocket/wsl_server.cpp
+++ b/modules/websocket/wsl_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/websocket/wsl_server.h b/modules/websocket/wsl_server.h
index 508b5a12a1..221cae4793 100644
--- a/modules/websocket/wsl_server.h
+++ b/modules/websocket/wsl_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webxr/godot_webxr.h b/modules/webxr/godot_webxr.h
index 7aac0a6508..34225df001 100644
--- a/modules/webxr/godot_webxr.h
+++ b/modules/webxr/godot_webxr.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webxr/register_types.cpp b/modules/webxr/register_types.cpp
index 16b483c39e..78fed3fbd6 100644
--- a/modules/webxr/register_types.cpp
+++ b/modules/webxr/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webxr/register_types.h b/modules/webxr/register_types.h
index f0c5a4bd79..5dda728099 100644
--- a/modules/webxr/register_types.h
+++ b/modules/webxr/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webxr/webxr_interface.cpp b/modules/webxr/webxr_interface.cpp
index 3e8e75bf0e..b0ad53523a 100644
--- a/modules/webxr/webxr_interface.cpp
+++ b/modules/webxr/webxr_interface.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webxr/webxr_interface.h b/modules/webxr/webxr_interface.h
index 366235fcd5..291d53044f 100644
--- a/modules/webxr/webxr_interface.h
+++ b/modules/webxr/webxr_interface.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webxr/webxr_interface_js.cpp b/modules/webxr/webxr_interface_js.cpp
index 2676b3cf80..8eb0d8ff90 100644
--- a/modules/webxr/webxr_interface_js.cpp
+++ b/modules/webxr/webxr_interface_js.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/webxr/webxr_interface_js.h b/modules/webxr/webxr_interface_js.h
index 6e6548c946..3eec451d50 100644
--- a/modules/webxr/webxr_interface_js.h
+++ b/modules/webxr/webxr_interface_js.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/xatlas_unwrap/register_types.cpp b/modules/xatlas_unwrap/register_types.cpp
index 58a6216b1e..6f397fe285 100644
--- a/modules/xatlas_unwrap/register_types.cpp
+++ b/modules/xatlas_unwrap/register_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/modules/xatlas_unwrap/register_types.h b/modules/xatlas_unwrap/register_types.h
index 2ad729f172..63a985f8c5 100644
--- a/modules/xatlas_unwrap/register_types.h
+++ b/modules/xatlas_unwrap/register_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/android_input_handler.cpp b/platform/android/android_input_handler.cpp
index 52f80b3080..7efdc620df 100644
--- a/platform/android/android_input_handler.cpp
+++ b/platform/android/android_input_handler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/android_input_handler.h b/platform/android/android_input_handler.h
index e0b4196f14..2b237c4006 100644
--- a/platform/android/android_input_handler.h
+++ b/platform/android/android_input_handler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/android_keys_utils.cpp b/platform/android/android_keys_utils.cpp
index 0cea0589ce..885e4ff145 100644
--- a/platform/android/android_keys_utils.cpp
+++ b/platform/android/android_keys_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/android_keys_utils.h b/platform/android/android_keys_utils.h
index bac9bab6db..24a6589fba 100644
--- a/platform/android/android_keys_utils.h
+++ b/platform/android/android_keys_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/api/api.cpp b/platform/android/api/api.cpp
index 03355e4815..f544f29b10 100644
--- a/platform/android/api/api.cpp
+++ b/platform/android/api/api.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/api/api.h b/platform/android/api/api.h
index fe3a6734ac..a4ee27cf81 100644
--- a/platform/android/api/api.h
+++ b/platform/android/api/api.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/api/java_class_wrapper.h b/platform/android/api/java_class_wrapper.h
index ff7bf43573..d4d1208757 100644
--- a/platform/android/api/java_class_wrapper.h
+++ b/platform/android/api/java_class_wrapper.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/api/jni_singleton.h b/platform/android/api/jni_singleton.h
index 965eaabf81..d8503b6caf 100644
--- a/platform/android/api/jni_singleton.h
+++ b/platform/android/api/jni_singleton.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/audio_driver_opensl.cpp b/platform/android/audio_driver_opensl.cpp
index a1d8fb4810..cd478bb90f 100644
--- a/platform/android/audio_driver_opensl.cpp
+++ b/platform/android/audio_driver_opensl.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/audio_driver_opensl.h b/platform/android/audio_driver_opensl.h
index fcc2513f3f..eea1fc227f 100644
--- a/platform/android/audio_driver_opensl.h
+++ b/platform/android/audio_driver_opensl.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/dir_access_jandroid.cpp b/platform/android/dir_access_jandroid.cpp
index d2726b8652..5461a3aefa 100644
--- a/platform/android/dir_access_jandroid.cpp
+++ b/platform/android/dir_access_jandroid.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/dir_access_jandroid.h b/platform/android/dir_access_jandroid.h
index cdf98187ed..4f4a984b12 100644
--- a/platform/android/dir_access_jandroid.h
+++ b/platform/android/dir_access_jandroid.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/display_server_android.cpp b/platform/android/display_server_android.cpp
index 505e7ac0eb..5b9ca44180 100644
--- a/platform/android/display_server_android.cpp
+++ b/platform/android/display_server_android.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/display_server_android.h b/platform/android/display_server_android.h
index 5b987ad70e..8538b6e660 100644
--- a/platform/android/display_server_android.h
+++ b/platform/android/display_server_android.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp
index 8df61831c2..23b5c5e4e5 100644
--- a/platform/android/export/export.cpp
+++ b/platform/android/export/export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/export/export.h b/platform/android/export/export.h
index 28e09f41db..82ce40f95d 100644
--- a/platform/android/export/export.h
+++ b/platform/android/export/export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/export/export_plugin.cpp b/platform/android/export/export_plugin.cpp
index 70b36f2350..cbecde787f 100644
--- a/platform/android/export/export_plugin.cpp
+++ b/platform/android/export/export_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2794,7 +2794,7 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP
bool skip = false;
- String file = fname;
+ String file = String::utf8(fname);
Vector<uint8_t> data;
data.resize(info.uncompressed_size);
@@ -2976,7 +2976,7 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP
char extra[16384];
ret = unzGetCurrentFileInfo(tmp_unaligned, &info, fname, 16384, extra, 16384 - ZIP_ALIGNMENT, nullptr, 0);
- String file = fname;
+ String file = String::utf8(fname);
Vector<uint8_t> data;
data.resize(info.compressed_size);
diff --git a/platform/android/export/export_plugin.h b/platform/android/export/export_plugin.h
index e0ffaa718b..9e952ecb8f 100644
--- a/platform/android/export/export_plugin.h
+++ b/platform/android/export/export_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/export/godot_plugin_config.cpp b/platform/android/export/godot_plugin_config.cpp
index 205cba3350..1210c09666 100644
--- a/platform/android/export/godot_plugin_config.cpp
+++ b/platform/android/export/godot_plugin_config.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/export/godot_plugin_config.h b/platform/android/export/godot_plugin_config.h
index c016634371..51cb4dea47 100644
--- a/platform/android/export/godot_plugin_config.h
+++ b/platform/android/export/godot_plugin_config.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/export/gradle_export_util.cpp b/platform/android/export/gradle_export_util.cpp
index 27c84baa44..287b669fd1 100644
--- a/platform/android/export/gradle_export_util.cpp
+++ b/platform/android/export/gradle_export_util.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/export/gradle_export_util.h b/platform/android/export/gradle_export_util.h
index 3c440f3e29..30a7f04729 100644
--- a/platform/android/export/gradle_export_util.h
+++ b/platform/android/export/gradle_export_util.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/file_access_android.cpp b/platform/android/file_access_android.cpp
index 90370878b7..26bdcb9520 100644
--- a/platform/android/file_access_android.cpp
+++ b/platform/android/file_access_android.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/file_access_android.h b/platform/android/file_access_android.h
index bb4ce36947..fb612cd008 100644
--- a/platform/android/file_access_android.h
+++ b/platform/android/file_access_android.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/app/src/com/godot/game/GodotApp.java b/platform/android/java/app/src/com/godot/game/GodotApp.java
index 955446b0c2..c9684bce14 100644
--- a/platform/android/java/app/src/com/godot/game/GodotApp.java
+++ b/platform/android/java/app/src/com/godot/game/GodotApp.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/build.gradle b/platform/android/java/build.gradle
index efdcc6c77b..ac008edbed 100644
--- a/platform/android/java/build.gradle
+++ b/platform/android/java/build.gradle
@@ -124,8 +124,11 @@ task zipCustomBuild(type: Zip) {
def templateExcludedBuildTask() {
// We exclude these gradle tasks so we can run the scons command manually.
def excludedTasks = []
- for (String buildType : supportedTargets) {
- excludedTasks += ":lib:" + getSconsTaskName(buildType)
+ if (!isAndroidStudio()) {
+ logger.lifecycle("Excluding Android studio build tasks")
+ for (String buildType : supportedTargets) {
+ excludedTasks += ":lib:" + getSconsTaskName(buildType)
+ }
}
return excludedTasks
}
@@ -155,6 +158,11 @@ def templateBuildTasks() {
return tasks
}
+def isAndroidStudio() {
+ def sysProps = System.getProperties()
+ return sysProps != null && sysProps['idea.platform.prefix'] != null
+}
+
/**
* Master task used to coordinate the tasks defined above to generate the set of Godot templates.
*/
diff --git a/platform/android/java/lib/src/org/godotengine/godot/Dictionary.java b/platform/android/java/lib/src/org/godotengine/godot/Dictionary.java
index b12844702a..afe82cd8f3 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/Dictionary.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/Dictionary.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/FullScreenGodotApp.java b/platform/android/java/lib/src/org/godotengine/godot/FullScreenGodotApp.java
index 3600706c7c..e8ffbb9481 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/FullScreenGodotApp.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/FullScreenGodotApp.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/Godot.java b/platform/android/java/lib/src/org/godotengine/godot/Godot.java
index 2fecf2e6ba..3fbbd8fbcc 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/Godot.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/Godot.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotDownloaderAlarmReceiver.java b/platform/android/java/lib/src/org/godotengine/godot/GodotDownloaderAlarmReceiver.java
index 9784d51182..c6c5b4953d 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotDownloaderAlarmReceiver.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotDownloaderAlarmReceiver.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotDownloaderService.java b/platform/android/java/lib/src/org/godotengine/godot/GodotDownloaderService.java
index 09337ef989..90a046a7a7 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotDownloaderService.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotDownloaderService.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java b/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java
index d5b0b67903..61093d54de 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotHost.java b/platform/android/java/lib/src/org/godotengine/godot/GodotHost.java
index 7b22895994..8e8f993369 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotHost.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotHost.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java b/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java
index 5f354b6b4c..d679fd92c0 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotInstrumentation.java b/platform/android/java/lib/src/org/godotengine/godot/GodotInstrumentation.java
index 7f5fd8627c..44f0a3eb3e 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotInstrumentation.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotInstrumentation.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java b/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java
index a23d030d4c..29e4b4b29e 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotLib.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotRenderView.java b/platform/android/java/lib/src/org/godotengine/godot/GodotRenderView.java
index 79007764a7..cb63fd885f 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotRenderView.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotRenderView.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotRenderer.java b/platform/android/java/lib/src/org/godotengine/godot/GodotRenderer.java
index 12e452fc99..e3956ac459 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotRenderer.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotRenderer.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java b/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java
index 6fca7f2a57..c386a2d2eb 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java b/platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java
index a98ecad594..ecb2af0a7b 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java b/platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java
index 6b248fd034..ac13cad23e 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java b/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java
index fc0b84b392..c06d89b843 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/input/GodotTextInputWrapper.java b/platform/android/java/lib/src/org/godotengine/godot/input/GodotTextInputWrapper.java
index 002a75277d..e940aafa9e 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/input/GodotTextInputWrapper.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/input/GodotTextInputWrapper.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/input/Joystick.java b/platform/android/java/lib/src/org/godotengine/godot/input/Joystick.java
index bff90d7ce9..bace516b33 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/input/Joystick.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/input/Joystick.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPlugin.java b/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPlugin.java
index 4536c21ed3..bb5042fa09 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPlugin.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPlugin.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginInfoProvider.java b/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginInfoProvider.java
index 09366384c2..cfb84c3931 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginInfoProvider.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginInfoProvider.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginRegistry.java b/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginRegistry.java
index 5b41205253..502ea0507d 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginRegistry.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginRegistry.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/plugin/SignalInfo.java b/platform/android/java/lib/src/org/godotengine/godot/plugin/SignalInfo.java
index 6428422641..8c7faaa75e 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/plugin/SignalInfo.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/plugin/SignalInfo.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/plugin/UsedByGodot.java b/platform/android/java/lib/src/org/godotengine/godot/plugin/UsedByGodot.java
index 04c091d944..dc912af63c 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/plugin/UsedByGodot.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/plugin/UsedByGodot.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/utils/Crypt.java b/platform/android/java/lib/src/org/godotengine/godot/utils/Crypt.java
index 2b6e4ad2be..39a57f587a 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/utils/Crypt.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/utils/Crypt.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/utils/GLUtils.java b/platform/android/java/lib/src/org/godotengine/godot/utils/GLUtils.java
index 09820fad5f..8fc16ab7ba 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/utils/GLUtils.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/utils/GLUtils.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/utils/GodotNetUtils.java b/platform/android/java/lib/src/org/godotengine/godot/utils/GodotNetUtils.java
index 721d7c65c6..a17092d3bd 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/utils/GodotNetUtils.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/utils/GodotNetUtils.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java b/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java
index b0ca96271e..9ea787ac86 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkRenderer.kt b/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkRenderer.kt
index b13f9bfeab..07e22bbcd2 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkRenderer.kt
+++ b/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkRenderer.kt
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkSurfaceView.kt b/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkSurfaceView.kt
index b01dc2653a..1581665195 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkSurfaceView.kt
+++ b/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkSurfaceView.kt
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkThread.kt b/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkThread.kt
index 6e59268076..5ab437f364 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkThread.kt
+++ b/platform/android/java/lib/src/org/godotengine/godot/vulkan/VkThread.kt
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/xr/XRMode.java b/platform/android/java/lib/src/org/godotengine/godot/xr/XRMode.java
index 58f02b0396..2cc049de15 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/xr/XRMode.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/xr/XRMode.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrConfigChooser.java b/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrConfigChooser.java
index 245d573bfc..4c1c84affb 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrConfigChooser.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrConfigChooser.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrContextFactory.java b/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrContextFactory.java
index d3aca267ef..2b4369b8a6 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrContextFactory.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrContextFactory.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrWindowSurfaceFactory.java b/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrWindowSurfaceFactory.java
index 83aa458064..fbfe0a3a75 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrWindowSurfaceFactory.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/xr/ovr/OvrWindowSurfaceFactory.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularConfigChooser.java b/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularConfigChooser.java
index 341427209b..9fde1961ea 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularConfigChooser.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularConfigChooser.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularContextFactory.java b/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularContextFactory.java
index c852e8759a..ce1184a75c 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularContextFactory.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularContextFactory.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularFallbackConfigChooser.java b/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularFallbackConfigChooser.java
index 63c5381994..420dda45a0 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularFallbackConfigChooser.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/xr/regular/RegularFallbackConfigChooser.java
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java_class_wrapper.cpp b/platform/android/java_class_wrapper.cpp
index 49891cd739..f823e2c27f 100644
--- a/platform/android/java_class_wrapper.cpp
+++ b/platform/android/java_class_wrapper.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java_godot_io_wrapper.cpp b/platform/android/java_godot_io_wrapper.cpp
index 5cd2c382d2..e0a535f16e 100644
--- a/platform/android/java_godot_io_wrapper.cpp
+++ b/platform/android/java_godot_io_wrapper.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java_godot_io_wrapper.h b/platform/android/java_godot_io_wrapper.h
index 8f6d7f813f..c96abf1101 100644
--- a/platform/android/java_godot_io_wrapper.h
+++ b/platform/android/java_godot_io_wrapper.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java_godot_lib_jni.cpp b/platform/android/java_godot_lib_jni.cpp
index 3236512f5c..e7ab0ef7ed 100644
--- a/platform/android/java_godot_lib_jni.cpp
+++ b/platform/android/java_godot_lib_jni.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java_godot_lib_jni.h b/platform/android/java_godot_lib_jni.h
index 7ea74480cb..927b44ddb6 100644
--- a/platform/android/java_godot_lib_jni.h
+++ b/platform/android/java_godot_lib_jni.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java_godot_view_wrapper.cpp b/platform/android/java_godot_view_wrapper.cpp
index 837d2aeced..5605d834fa 100644
--- a/platform/android/java_godot_view_wrapper.cpp
+++ b/platform/android/java_godot_view_wrapper.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java_godot_view_wrapper.h b/platform/android/java_godot_view_wrapper.h
index da547d8118..6e02c26ae2 100644
--- a/platform/android/java_godot_view_wrapper.h
+++ b/platform/android/java_godot_view_wrapper.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java_godot_wrapper.cpp b/platform/android/java_godot_wrapper.cpp
index bfd93345f3..115264d7ee 100644
--- a/platform/android/java_godot_wrapper.cpp
+++ b/platform/android/java_godot_wrapper.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/java_godot_wrapper.h b/platform/android/java_godot_wrapper.h
index 0e20747a16..4d058ac426 100644
--- a/platform/android/java_godot_wrapper.h
+++ b/platform/android/java_godot_wrapper.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/jni_utils.cpp b/platform/android/jni_utils.cpp
index 94652ab7ac..7e81565d9d 100644
--- a/platform/android/jni_utils.cpp
+++ b/platform/android/jni_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/jni_utils.h b/platform/android/jni_utils.h
index f2b89392b5..7d5da29a65 100644
--- a/platform/android/jni_utils.h
+++ b/platform/android/jni_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/net_socket_android.cpp b/platform/android/net_socket_android.cpp
index dbd1870ee6..620df539e4 100644
--- a/platform/android/net_socket_android.cpp
+++ b/platform/android/net_socket_android.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/net_socket_android.h b/platform/android/net_socket_android.h
index 60090c26bb..3e919497ea 100644
--- a/platform/android/net_socket_android.h
+++ b/platform/android/net_socket_android.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp
index ffd69a56b9..d1672d6ea3 100644
--- a/platform/android/os_android.cpp
+++ b/platform/android/os_android.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/os_android.h b/platform/android/os_android.h
index a62f79952c..f523f172c6 100644
--- a/platform/android/os_android.h
+++ b/platform/android/os_android.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/platform_config.h b/platform/android/platform_config.h
index 601db9951f..40bee40180 100644
--- a/platform/android/platform_config.h
+++ b/platform/android/platform_config.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/plugin/godot_plugin_jni.cpp b/platform/android/plugin/godot_plugin_jni.cpp
index 6a20d5eafc..2207eec18d 100644
--- a/platform/android/plugin/godot_plugin_jni.cpp
+++ b/platform/android/plugin/godot_plugin_jni.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/plugin/godot_plugin_jni.h b/platform/android/plugin/godot_plugin_jni.h
index b87f922e03..35f9d5b513 100644
--- a/platform/android/plugin/godot_plugin_jni.h
+++ b/platform/android/plugin/godot_plugin_jni.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/string_android.h b/platform/android/string_android.h
index 3721315d3f..2afaa86fec 100644
--- a/platform/android/string_android.h
+++ b/platform/android/string_android.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/thread_jandroid.cpp b/platform/android/thread_jandroid.cpp
index ba379c8d43..61b471866f 100644
--- a/platform/android/thread_jandroid.cpp
+++ b/platform/android/thread_jandroid.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/thread_jandroid.h b/platform/android/thread_jandroid.h
index ff13ae911f..2073423f8d 100644
--- a/platform/android/thread_jandroid.h
+++ b/platform/android/thread_jandroid.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/vulkan/vulkan_context_android.cpp b/platform/android/vulkan/vulkan_context_android.cpp
index e24d1a4527..5945421e17 100644
--- a/platform/android/vulkan/vulkan_context_android.cpp
+++ b/platform/android/vulkan/vulkan_context_android.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/android/vulkan/vulkan_context_android.h b/platform/android/vulkan/vulkan_context_android.h
index 182ce33c97..43b5d62598 100644
--- a/platform/android/vulkan/vulkan_context_android.h
+++ b/platform/android/vulkan/vulkan_context_android.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/api/api.cpp b/platform/iphone/api/api.cpp
index a23791fe1c..f2e6fd7a7a 100644
--- a/platform/iphone/api/api.cpp
+++ b/platform/iphone/api/api.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/api/api.h b/platform/iphone/api/api.h
index c6570da7ec..ece91a9f1a 100644
--- a/platform/iphone/api/api.h
+++ b/platform/iphone/api/api.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/app_delegate.h b/platform/iphone/app_delegate.h
index 76c28b2272..0ec1dc071b 100644
--- a/platform/iphone/app_delegate.h
+++ b/platform/iphone/app_delegate.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/app_delegate.mm b/platform/iphone/app_delegate.mm
index c6f91665c5..5130a26f15 100644
--- a/platform/iphone/app_delegate.mm
+++ b/platform/iphone/app_delegate.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/device_metrics.h b/platform/iphone/device_metrics.h
index bc8f761dde..b9fb9b2fd9 100644
--- a/platform/iphone/device_metrics.h
+++ b/platform/iphone/device_metrics.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/device_metrics.m b/platform/iphone/device_metrics.m
index 306ca95d03..ec4dd8130d 100644
--- a/platform/iphone/device_metrics.m
+++ b/platform/iphone/device_metrics.m
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/display_layer.h b/platform/iphone/display_layer.h
index 1b8435d959..a17c75dba1 100644
--- a/platform/iphone/display_layer.h
+++ b/platform/iphone/display_layer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/display_layer.mm b/platform/iphone/display_layer.mm
index afe612e1a5..7448dfed4a 100644
--- a/platform/iphone/display_layer.mm
+++ b/platform/iphone/display_layer.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/display_server_iphone.h b/platform/iphone/display_server_iphone.h
index 5ed03cc06e..de04bc88e3 100644
--- a/platform/iphone/display_server_iphone.h
+++ b/platform/iphone/display_server_iphone.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/display_server_iphone.mm b/platform/iphone/display_server_iphone.mm
index 6a01ca1b13..3047d91a4d 100644
--- a/platform/iphone/display_server_iphone.mm
+++ b/platform/iphone/display_server_iphone.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/export/export.cpp b/platform/iphone/export/export.cpp
index 208626ae36..3b02e661c1 100644
--- a/platform/iphone/export/export.cpp
+++ b/platform/iphone/export/export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/export/export.h b/platform/iphone/export/export.h
index 4a79ca279f..adb3c23957 100644
--- a/platform/iphone/export/export.h
+++ b/platform/iphone/export/export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/export/export_plugin.cpp b/platform/iphone/export/export_plugin.cpp
index 247b456b26..0ad68086a7 100644
--- a/platform/iphone/export/export_plugin.cpp
+++ b/platform/iphone/export/export_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1484,7 +1484,7 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p
char fname[16384];
ret = unzGetCurrentFileInfo(src_pkg_zip, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String file = fname;
+ String file = String::utf8(fname);
print_line("READ: " + file);
Vector<uint8_t> data;
diff --git a/platform/iphone/export/export_plugin.h b/platform/iphone/export/export_plugin.h
index 359f855d86..756bca14dd 100644
--- a/platform/iphone/export/export_plugin.h
+++ b/platform/iphone/export/export_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/export/godot_plugin_config.cpp b/platform/iphone/export/godot_plugin_config.cpp
index 9d0324f41a..9118b95337 100644
--- a/platform/iphone/export/godot_plugin_config.cpp
+++ b/platform/iphone/export/godot_plugin_config.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/export/godot_plugin_config.h b/platform/iphone/export/godot_plugin_config.h
index 1add281627..9ef8aa8c6d 100644
--- a/platform/iphone/export/godot_plugin_config.h
+++ b/platform/iphone/export/godot_plugin_config.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/godot_app_delegate.h b/platform/iphone/godot_app_delegate.h
index 6335ada50e..703a906bda 100644
--- a/platform/iphone/godot_app_delegate.h
+++ b/platform/iphone/godot_app_delegate.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/godot_app_delegate.m b/platform/iphone/godot_app_delegate.m
index 6c433c5c3c..84347f9a30 100644
--- a/platform/iphone/godot_app_delegate.m
+++ b/platform/iphone/godot_app_delegate.m
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/godot_iphone.mm b/platform/iphone/godot_iphone.mm
index 6f6f9d0708..a76276e815 100644
--- a/platform/iphone/godot_iphone.mm
+++ b/platform/iphone/godot_iphone.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/godot_view.h b/platform/iphone/godot_view.h
index 265f826173..1c72a26b4a 100644
--- a/platform/iphone/godot_view.h
+++ b/platform/iphone/godot_view.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/godot_view.mm b/platform/iphone/godot_view.mm
index 00a88d79c5..b90c10fa84 100644
--- a/platform/iphone/godot_view.mm
+++ b/platform/iphone/godot_view.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/godot_view_gesture_recognizer.h b/platform/iphone/godot_view_gesture_recognizer.h
index 61438ef22f..9fd8a6b222 100644
--- a/platform/iphone/godot_view_gesture_recognizer.h
+++ b/platform/iphone/godot_view_gesture_recognizer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/godot_view_gesture_recognizer.mm b/platform/iphone/godot_view_gesture_recognizer.mm
index cf6e5c5883..b50ba5f942 100644
--- a/platform/iphone/godot_view_gesture_recognizer.mm
+++ b/platform/iphone/godot_view_gesture_recognizer.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/godot_view_renderer.h b/platform/iphone/godot_view_renderer.h
index c6b0a05a4e..b3ee23ae4f 100644
--- a/platform/iphone/godot_view_renderer.h
+++ b/platform/iphone/godot_view_renderer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/godot_view_renderer.mm b/platform/iphone/godot_view_renderer.mm
index 07d664715a..e49edf5b74 100644
--- a/platform/iphone/godot_view_renderer.mm
+++ b/platform/iphone/godot_view_renderer.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/ios.h b/platform/iphone/ios.h
index 4bf64d4bc1..03e663b05c 100644
--- a/platform/iphone/ios.h
+++ b/platform/iphone/ios.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/ios.mm b/platform/iphone/ios.mm
index 3430a9cba7..da21ad0ace 100644
--- a/platform/iphone/ios.mm
+++ b/platform/iphone/ios.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -65,7 +65,7 @@ String iOS::get_model() const {
NSString *platform = [NSString stringWithCString:model encoding:NSUTF8StringEncoding];
free(model);
const char *str = [platform UTF8String];
- return String(str != nullptr ? str : "");
+ return String::utf8(str != nullptr ? str : "");
}
String iOS::get_rate_url(int p_app_id) const {
diff --git a/platform/iphone/joypad_iphone.h b/platform/iphone/joypad_iphone.h
index 329cc8207f..37e272a2c9 100644
--- a/platform/iphone/joypad_iphone.h
+++ b/platform/iphone/joypad_iphone.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/joypad_iphone.mm b/platform/iphone/joypad_iphone.mm
index 1bf5462d91..2630b42da0 100644
--- a/platform/iphone/joypad_iphone.mm
+++ b/platform/iphone/joypad_iphone.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -159,7 +159,7 @@ void JoypadIPhone::start_processing() {
};
// tell Godot about our new controller
- Input::get_singleton()->joy_connection_changed(joy_id, true, [controller.vendorName UTF8String]);
+ Input::get_singleton()->joy_connection_changed(joy_id, true, String::utf8([controller.vendorName UTF8String]));
// add it to our dictionary, this will retain our controllers
[self.connectedJoypads setObject:controller forKey:[NSNumber numberWithInt:joy_id]];
diff --git a/platform/iphone/keyboard_input_view.h b/platform/iphone/keyboard_input_view.h
index cfbfc7a120..33fa5d571a 100644
--- a/platform/iphone/keyboard_input_view.h
+++ b/platform/iphone/keyboard_input_view.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/keyboard_input_view.mm b/platform/iphone/keyboard_input_view.mm
index b11d04181e..f2a7b22483 100644
--- a/platform/iphone/keyboard_input_view.mm
+++ b/platform/iphone/keyboard_input_view.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/main.m b/platform/iphone/main.m
index d2c41d4d84..acfa7ab731 100644
--- a/platform/iphone/main.m
+++ b/platform/iphone/main.m
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/os_iphone.h b/platform/iphone/os_iphone.h
index 7a81d8f593..aca6f5fe2b 100644
--- a/platform/iphone/os_iphone.h
+++ b/platform/iphone/os_iphone.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/os_iphone.mm b/platform/iphone/os_iphone.mm
index fc07d321b7..8350365d88 100644
--- a/platform/iphone/os_iphone.mm
+++ b/platform/iphone/os_iphone.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/platform_config.h b/platform/iphone/platform_config.h
index 68ef4e31a7..fed77d8932 100644
--- a/platform/iphone/platform_config.h
+++ b/platform/iphone/platform_config.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/view_controller.h b/platform/iphone/view_controller.h
index 400145b8b7..c8b37a4d11 100644
--- a/platform/iphone/view_controller.h
+++ b/platform/iphone/view_controller.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/view_controller.mm b/platform/iphone/view_controller.mm
index 2723ac4706..e1fc645c13 100644
--- a/platform/iphone/view_controller.mm
+++ b/platform/iphone/view_controller.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/vulkan_context_iphone.h b/platform/iphone/vulkan_context_iphone.h
index ec6aaf46e8..7576525755 100644
--- a/platform/iphone/vulkan_context_iphone.h
+++ b/platform/iphone/vulkan_context_iphone.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/iphone/vulkan_context_iphone.mm b/platform/iphone/vulkan_context_iphone.mm
index 547cee9570..17cb0f6009 100644
--- a/platform/iphone/vulkan_context_iphone.mm
+++ b/platform/iphone/vulkan_context_iphone.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/api/api.cpp b/platform/javascript/api/api.cpp
index e7c018ba9f..0c4accccc3 100644
--- a/platform/javascript/api/api.cpp
+++ b/platform/javascript/api/api.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/api/api.h b/platform/javascript/api/api.h
index 2ac7333cdd..97e06c8577 100644
--- a/platform/javascript/api/api.h
+++ b/platform/javascript/api/api.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/api/javascript_singleton.h b/platform/javascript/api/javascript_singleton.h
index 9d7a392278..63f1aec624 100644
--- a/platform/javascript/api/javascript_singleton.h
+++ b/platform/javascript/api/javascript_singleton.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/api/javascript_tools_editor_plugin.cpp b/platform/javascript/api/javascript_tools_editor_plugin.cpp
index df4c790755..c68ac655a8 100644
--- a/platform/javascript/api/javascript_tools_editor_plugin.cpp
+++ b/platform/javascript/api/javascript_tools_editor_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -67,7 +67,7 @@ void JavaScriptToolsEditorPlugin::_download_zip(Variant p_v) {
FileAccess *src_f;
zlib_filefunc_def io = zipio_create_io_from_file(&src_f);
- // Name the downloded ZIP file to contain the project name and download date for easier organization.
+ // Name the downloaded ZIP file to contain the project name and download date for easier organization.
// Replace characters not allowed (or risky) in Windows file names with safe characters.
// In the project name, all invalid characters become an empty string so that a name
// like "Platformer 2: Godette's Revenge" becomes "platformer_2-_godette-s_revenge".
diff --git a/platform/javascript/api/javascript_tools_editor_plugin.h b/platform/javascript/api/javascript_tools_editor_plugin.h
index 557821d627..08f10b01dc 100644
--- a/platform/javascript/api/javascript_tools_editor_plugin.h
+++ b/platform/javascript/api/javascript_tools_editor_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/audio_driver_javascript.cpp b/platform/javascript/audio_driver_javascript.cpp
index 626aef3c60..d45885b8e8 100644
--- a/platform/javascript/audio_driver_javascript.cpp
+++ b/platform/javascript/audio_driver_javascript.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/audio_driver_javascript.h b/platform/javascript/audio_driver_javascript.h
index 6a0b4bcb0e..b7b0b3ac96 100644
--- a/platform/javascript/audio_driver_javascript.h
+++ b/platform/javascript/audio_driver_javascript.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/display_server_javascript.cpp b/platform/javascript/display_server_javascript.cpp
index 7648ddaf43..5d960ef80c 100644
--- a/platform/javascript/display_server_javascript.cpp
+++ b/platform/javascript/display_server_javascript.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -500,7 +500,7 @@ void DisplayServerJavaScript::vk_input_text_callback(const char *p_text, int p_c
return;
}
// Call input_text
- Variant event = String(p_text);
+ Variant event = String::utf8(p_text);
Variant *eventp = &event;
Variant ret;
Callable::CallError ce;
@@ -590,7 +590,7 @@ Vector<String> DisplayServerJavaScript::get_rendering_drivers_func() {
// Clipboard
void DisplayServerJavaScript::update_clipboard_callback(const char *p_text) {
- get_singleton()->clipboard = p_text;
+ get_singleton()->clipboard = String::utf8(p_text);
}
void DisplayServerJavaScript::clipboard_set(const String &p_text) {
diff --git a/platform/javascript/display_server_javascript.h b/platform/javascript/display_server_javascript.h
index 843bb61984..1ae5d68787 100644
--- a/platform/javascript/display_server_javascript.h
+++ b/platform/javascript/display_server_javascript.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/dom_keys.inc b/platform/javascript/dom_keys.inc
index 31589f3f40..115b5479e4 100644
--- a/platform/javascript/dom_keys.inc
+++ b/platform/javascript/dom_keys.inc
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp
index 889b0bbd02..825c1b6638 100644
--- a/platform/javascript/export/export.cpp
+++ b/platform/javascript/export/export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/export/export.h b/platform/javascript/export/export.h
index 8e8161b547..41cc66cfb8 100644
--- a/platform/javascript/export/export.h
+++ b/platform/javascript/export/export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/export/export_plugin.cpp b/platform/javascript/export/export_plugin.cpp
index 9733435584..81ffae82bf 100644
--- a/platform/javascript/export/export_plugin.cpp
+++ b/platform/javascript/export/export_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -52,7 +52,7 @@ Error EditorExportPlatformJavaScript::_extract_template(const String &p_template
char fname[16384];
unzGetCurrentFileInfo(pkg, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String file = fname;
+ String file = String::utf8(fname);
// Skip service worker and offline page if not exporting pwa.
if (!pwa && (file == "godot.service.worker.js" || file == "godot.offline.html")) {
diff --git a/platform/javascript/export/export_plugin.h b/platform/javascript/export/export_plugin.h
index bdd1235259..c55a881911 100644
--- a/platform/javascript/export/export_plugin.h
+++ b/platform/javascript/export/export_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/export/export_server.h b/platform/javascript/export/export_server.h
index 87cbdcab47..1380f34ad7 100644
--- a/platform/javascript/export/export_server.h
+++ b/platform/javascript/export/export_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/godot_audio.h b/platform/javascript/godot_audio.h
index eba025ab63..012f8daeb7 100644
--- a/platform/javascript/godot_audio.h
+++ b/platform/javascript/godot_audio.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/godot_js.h b/platform/javascript/godot_js.h
index 8051b270e6..15de8b5dc7 100644
--- a/platform/javascript/godot_js.h
+++ b/platform/javascript/godot_js.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/http_client_javascript.cpp b/platform/javascript/http_client_javascript.cpp
index f7d78abcea..57416ebe48 100644
--- a/platform/javascript/http_client_javascript.cpp
+++ b/platform/javascript/http_client_javascript.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/http_client_javascript.h b/platform/javascript/http_client_javascript.h
index 33f91f67b6..d8f23fe694 100644
--- a/platform/javascript/http_client_javascript.h
+++ b/platform/javascript/http_client_javascript.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/javascript_main.cpp b/platform/javascript/javascript_main.cpp
index a3f0dbaa45..5c00476a72 100644
--- a/platform/javascript/javascript_main.cpp
+++ b/platform/javascript/javascript_main.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/javascript_runtime.cpp b/platform/javascript/javascript_runtime.cpp
index 2996e95a95..932d0d5cb6 100644
--- a/platform/javascript/javascript_runtime.cpp
+++ b/platform/javascript/javascript_runtime.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/javascript_singleton.cpp b/platform/javascript/javascript_singleton.cpp
index 1dd73ef8e9..b10e8007c0 100644
--- a/platform/javascript/javascript_singleton.cpp
+++ b/platform/javascript/javascript_singleton.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/js/libs/audio.worklet.js b/platform/javascript/js/libs/audio.worklet.js
index 52b3aedf8c..ea4d8cb221 100644
--- a/platform/javascript/js/libs/audio.worklet.js
+++ b/platform/javascript/js/libs/audio.worklet.js
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/js/libs/library_godot_audio.js b/platform/javascript/js/libs/library_godot_audio.js
index 6cbb0567f4..756c1ac595 100644
--- a/platform/javascript/js/libs/library_godot_audio.js
+++ b/platform/javascript/js/libs/library_godot_audio.js
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/js/libs/library_godot_display.js b/platform/javascript/js/libs/library_godot_display.js
index 2689f1c22c..2bdf4e56ad 100644
--- a/platform/javascript/js/libs/library_godot_display.js
+++ b/platform/javascript/js/libs/library_godot_display.js
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/js/libs/library_godot_fetch.js b/platform/javascript/js/libs/library_godot_fetch.js
index 615f9de8b0..285e50a035 100644
--- a/platform/javascript/js/libs/library_godot_fetch.js
+++ b/platform/javascript/js/libs/library_godot_fetch.js
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/js/libs/library_godot_input.js b/platform/javascript/js/libs/library_godot_input.js
index f403e85a30..7a4d0d8126 100644
--- a/platform/javascript/js/libs/library_godot_input.js
+++ b/platform/javascript/js/libs/library_godot_input.js
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/js/libs/library_godot_javascript_singleton.js b/platform/javascript/js/libs/library_godot_javascript_singleton.js
index 22ce003cd2..692f27676a 100644
--- a/platform/javascript/js/libs/library_godot_javascript_singleton.js
+++ b/platform/javascript/js/libs/library_godot_javascript_singleton.js
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/js/libs/library_godot_os.js b/platform/javascript/js/libs/library_godot_os.js
index c552e99415..662d215443 100644
--- a/platform/javascript/js/libs/library_godot_os.js
+++ b/platform/javascript/js/libs/library_godot_os.js
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/js/libs/library_godot_runtime.js b/platform/javascript/js/libs/library_godot_runtime.js
index 3da1ed8f06..e2f7c8dca6 100644
--- a/platform/javascript/js/libs/library_godot_runtime.js
+++ b/platform/javascript/js/libs/library_godot_runtime.js
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp
index 5da9a96a90..b0eea54aa9 100644
--- a/platform/javascript/os_javascript.cpp
+++ b/platform/javascript/os_javascript.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/os_javascript.h b/platform/javascript/os_javascript.h
index fbab95d33b..c12088bfbe 100644
--- a/platform/javascript/os_javascript.h
+++ b/platform/javascript/os_javascript.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/platform_config.h b/platform/javascript/platform_config.h
index 65df34902e..ba1b0d459e 100644
--- a/platform/javascript/platform_config.h
+++ b/platform/javascript/platform_config.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/crash_handler_linuxbsd.cpp b/platform/linuxbsd/crash_handler_linuxbsd.cpp
index 9b24b24cb4..e9369fefdd 100644
--- a/platform/linuxbsd/crash_handler_linuxbsd.cpp
+++ b/platform/linuxbsd/crash_handler_linuxbsd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/crash_handler_linuxbsd.h b/platform/linuxbsd/crash_handler_linuxbsd.h
index a3dae0cc22..2e44476c3f 100644
--- a/platform/linuxbsd/crash_handler_linuxbsd.h
+++ b/platform/linuxbsd/crash_handler_linuxbsd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/detect_prime_x11.cpp b/platform/linuxbsd/detect_prime_x11.cpp
index 5bcfc44f12..63531d33fa 100644
--- a/platform/linuxbsd/detect_prime_x11.cpp
+++ b/platform/linuxbsd/detect_prime_x11.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/detect_prime_x11.h b/platform/linuxbsd/detect_prime_x11.h
index 88d00b3acd..e60f9ebfdf 100644
--- a/platform/linuxbsd/detect_prime_x11.h
+++ b/platform/linuxbsd/detect_prime_x11.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/display_server_x11.cpp b/platform/linuxbsd/display_server_x11.cpp
index 247665e313..68bd5e8421 100644
--- a/platform/linuxbsd/display_server_x11.cpp
+++ b/platform/linuxbsd/display_server_x11.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -225,7 +225,7 @@ bool DisplayServerX11::_refresh_device_info() {
if (class_info->number == VALUATOR_ABSX && class_info->mode == XIModeAbsolute) {
resolution_x = class_info->resolution;
abs_x_min = class_info->min;
- abs_y_max = class_info->max;
+ abs_x_max = class_info->max;
absolute_mode = true;
} else if (class_info->number == VALUATOR_ABSY && class_info->mode == XIModeAbsolute) {
resolution_y = class_info->resolution;
@@ -239,8 +239,8 @@ bool DisplayServerX11::_refresh_device_info() {
tilt_x_min = class_info->min;
tilt_x_max = class_info->max;
} else if (class_info->number == VALUATOR_TILTY && class_info->mode == XIModeAbsolute) {
- tilt_x_min = class_info->min;
- tilt_x_max = class_info->max;
+ tilt_y_min = class_info->min;
+ tilt_y_max = class_info->max;
}
}
}
@@ -3189,8 +3189,10 @@ void DisplayServerX11::process_events() {
Map<int, Vector2>::Element *pen_tilt_x = xi.pen_tilt_x_range.find(device_id);
if (pen_tilt_x) {
Vector2 pen_tilt_x_range = pen_tilt_x->value();
- if (pen_tilt_x_range != Vector2()) {
- xi.tilt.x = ((*values - pen_tilt_x_range[0]) / (pen_tilt_x_range[1] - pen_tilt_x_range[0])) * 2 - 1;
+ if (pen_tilt_x_range[0] != 0 && *values < 0) {
+ xi.tilt.x = *values / -pen_tilt_x_range[0];
+ } else if (pen_tilt_x_range[1] != 0) {
+ xi.tilt.x = *values / pen_tilt_x_range[1];
}
}
@@ -3201,8 +3203,10 @@ void DisplayServerX11::process_events() {
Map<int, Vector2>::Element *pen_tilt_y = xi.pen_tilt_y_range.find(device_id);
if (pen_tilt_y) {
Vector2 pen_tilt_y_range = pen_tilt_y->value();
- if (pen_tilt_y_range != Vector2()) {
- xi.tilt.y = ((*values - pen_tilt_y_range[0]) / (pen_tilt_y_range[1] - pen_tilt_y_range[0])) * 2 - 1;
+ if (pen_tilt_y_range[0] != 0 && *values < 0) {
+ xi.tilt.y = *values / -pen_tilt_y_range[0];
+ } else if (pen_tilt_y_range[1] != 0) {
+ xi.tilt.y = *values / pen_tilt_y_range[1];
}
}
diff --git a/platform/linuxbsd/display_server_x11.h b/platform/linuxbsd/display_server_x11.h
index 3587d587d6..b5fd3664d3 100644
--- a/platform/linuxbsd/display_server_x11.h
+++ b/platform/linuxbsd/display_server_x11.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/export/export.cpp b/platform/linuxbsd/export/export.cpp
index 965a38ef4e..f05d2faa11 100644
--- a/platform/linuxbsd/export/export.cpp
+++ b/platform/linuxbsd/export/export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/export/export.h b/platform/linuxbsd/export/export.h
index 61e96aa2f6..f06d781da6 100644
--- a/platform/linuxbsd/export/export.h
+++ b/platform/linuxbsd/export/export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/freedesktop_screensaver.cpp b/platform/linuxbsd/freedesktop_screensaver.cpp
index 3973d43d49..1e93334e40 100644
--- a/platform/linuxbsd/freedesktop_screensaver.cpp
+++ b/platform/linuxbsd/freedesktop_screensaver.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/freedesktop_screensaver.h b/platform/linuxbsd/freedesktop_screensaver.h
index f27e60fce4..b2303791bd 100644
--- a/platform/linuxbsd/freedesktop_screensaver.h
+++ b/platform/linuxbsd/freedesktop_screensaver.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/gl_manager_x11.cpp b/platform/linuxbsd/gl_manager_x11.cpp
index e069e92ee6..1721d0e0b3 100644
--- a/platform/linuxbsd/gl_manager_x11.cpp
+++ b/platform/linuxbsd/gl_manager_x11.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/gl_manager_x11.h b/platform/linuxbsd/gl_manager_x11.h
index fa2c8a9c84..c83b96395b 100644
--- a/platform/linuxbsd/gl_manager_x11.h
+++ b/platform/linuxbsd/gl_manager_x11.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/godot_linuxbsd.cpp b/platform/linuxbsd/godot_linuxbsd.cpp
index 6f5c46b59c..7c9f81bd3f 100644
--- a/platform/linuxbsd/godot_linuxbsd.cpp
+++ b/platform/linuxbsd/godot_linuxbsd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/joypad_linux.cpp b/platform/linuxbsd/joypad_linux.cpp
index 55cc21cc6c..37606de3bc 100644
--- a/platform/linuxbsd/joypad_linux.cpp
+++ b/platform/linuxbsd/joypad_linux.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/joypad_linux.h b/platform/linuxbsd/joypad_linux.h
index 12b9046d64..42797afdfa 100644
--- a/platform/linuxbsd/joypad_linux.h
+++ b/platform/linuxbsd/joypad_linux.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/key_mapping_x11.cpp b/platform/linuxbsd/key_mapping_x11.cpp
index 16c2392859..afe965e038 100644
--- a/platform/linuxbsd/key_mapping_x11.cpp
+++ b/platform/linuxbsd/key_mapping_x11.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/key_mapping_x11.h b/platform/linuxbsd/key_mapping_x11.h
index 5f61197abe..b7b8a3b787 100644
--- a/platform/linuxbsd/key_mapping_x11.h
+++ b/platform/linuxbsd/key_mapping_x11.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/os_linuxbsd.cpp b/platform/linuxbsd/os_linuxbsd.cpp
index c39b5cb784..b5f127bb16 100644
--- a/platform/linuxbsd/os_linuxbsd.cpp
+++ b/platform/linuxbsd/os_linuxbsd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -431,7 +431,7 @@ Error OS_LinuxBSD::move_to_trash(const String &p_path) {
if (trash_path.is_empty()) {
char *dhome = getenv("XDG_DATA_HOME");
if (dhome) {
- trash_path = String(dhome) + "/Trash";
+ trash_path = String::utf8(dhome) + "/Trash";
}
}
@@ -439,7 +439,7 @@ Error OS_LinuxBSD::move_to_trash(const String &p_path) {
if (trash_path.is_empty()) {
char *home = getenv("HOME");
if (home) {
- trash_path = String(home) + "/.local/share/Trash";
+ trash_path = String::utf8(home) + "/.local/share/Trash";
}
}
diff --git a/platform/linuxbsd/os_linuxbsd.h b/platform/linuxbsd/os_linuxbsd.h
index 35c80e3f9b..ad6e4cd168 100644
--- a/platform/linuxbsd/os_linuxbsd.h
+++ b/platform/linuxbsd/os_linuxbsd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/platform_config.h b/platform/linuxbsd/platform_config.h
index aa78b48bb0..3c05c67444 100644
--- a/platform/linuxbsd/platform_config.h
+++ b/platform/linuxbsd/platform_config.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/vulkan_context_x11.cpp b/platform/linuxbsd/vulkan_context_x11.cpp
index 4d58e4999b..e2fd8c76d2 100644
--- a/platform/linuxbsd/vulkan_context_x11.cpp
+++ b/platform/linuxbsd/vulkan_context_x11.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/linuxbsd/vulkan_context_x11.h b/platform/linuxbsd/vulkan_context_x11.h
index de4a9c7b90..a89afa2eff 100644
--- a/platform/linuxbsd/vulkan_context_x11.h
+++ b/platform/linuxbsd/vulkan_context_x11.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/crash_handler_osx.h b/platform/osx/crash_handler_osx.h
index 1601bbaab6..72938e5e0a 100644
--- a/platform/osx/crash_handler_osx.h
+++ b/platform/osx/crash_handler_osx.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/crash_handler_osx.mm b/platform/osx/crash_handler_osx.mm
index 57bca7a5b9..16be941308 100644
--- a/platform/osx/crash_handler_osx.mm
+++ b/platform/osx/crash_handler_osx.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/dir_access_osx.h b/platform/osx/dir_access_osx.h
index a894723e64..3c66c81d4f 100644
--- a/platform/osx/dir_access_osx.h
+++ b/platform/osx/dir_access_osx.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/dir_access_osx.mm b/platform/osx/dir_access_osx.mm
index 552c33d018..d26f35e847 100644
--- a/platform/osx/dir_access_osx.mm
+++ b/platform/osx/dir_access_osx.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/display_server_osx.h b/platform/osx/display_server_osx.h
index 3cc0b10c5b..4b558d973d 100644
--- a/platform/osx/display_server_osx.h
+++ b/platform/osx/display_server_osx.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/display_server_osx.mm b/platform/osx/display_server_osx.mm
index 7cd51611b3..e9cc79f149 100644
--- a/platform/osx/display_server_osx.mm
+++ b/platform/osx/display_server_osx.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/export/export.cpp b/platform/osx/export/export.cpp
index 1164d76580..afc0d63338 100644
--- a/platform/osx/export/export.cpp
+++ b/platform/osx/export/export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/export/export.h b/platform/osx/export/export.h
index f8cf41c0e7..b386337a09 100644
--- a/platform/osx/export/export.h
+++ b/platform/osx/export/export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/export/export_plugin.cpp b/platform/osx/export/export_plugin.cpp
index 8126510245..3a731f2172 100644
--- a/platform/osx/export/export_plugin.cpp
+++ b/platform/osx/export/export_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -381,12 +381,22 @@ Error EditorExportPlatformOSX::_code_sign(const Ref<EditorExportPreset> &p_prese
#ifdef OSX_ENABLED
List<String> args;
+ bool ad_hoc = (p_preset->get("codesign/identity") == "" || p_preset->get("codesign/identity") == "-");
+
if (p_preset->get("codesign/timestamp")) {
- args.push_back("--timestamp");
+ if (ad_hoc) {
+ WARN_PRINT("Timestamping is not compatible with ad-hoc signature, and was disabled!");
+ } else {
+ args.push_back("--timestamp");
+ }
}
if (p_preset->get("codesign/hardened_runtime")) {
- args.push_back("--options");
- args.push_back("runtime");
+ if (ad_hoc) {
+ WARN_PRINT("Hardened Runtime is not compatible with ad-hoc signature, and was disabled!");
+ } else {
+ args.push_back("--options");
+ args.push_back("runtime");
+ }
}
if (p_path.get_extension() != "dmg") {
@@ -403,7 +413,7 @@ Error EditorExportPlatformOSX::_code_sign(const Ref<EditorExportPreset> &p_prese
}
args.push_back("-s");
- if (p_preset->get("codesign/identity") == "") {
+ if (ad_hoc) {
args.push_back("-");
} else {
args.push_back(p_preset->get("codesign/identity"));
@@ -435,6 +445,101 @@ Error EditorExportPlatformOSX::_code_sign(const Ref<EditorExportPreset> &p_prese
return OK;
}
+Error EditorExportPlatformOSX::_code_sign_directory(const Ref<EditorExportPreset> &p_preset, const String &p_path,
+ const String &p_ent_path, bool p_should_error_on_non_code) {
+#ifdef OSX_ENABLED
+ static Vector<String> extensions_to_sign;
+
+ if (extensions_to_sign.is_empty()) {
+ extensions_to_sign.push_back("dylib");
+ extensions_to_sign.push_back("framework");
+ }
+
+ Error dir_access_error;
+ DirAccessRef dir_access{ DirAccess::open(p_path, &dir_access_error) };
+
+ if (dir_access_error != OK) {
+ return dir_access_error;
+ }
+
+ dir_access->list_dir_begin();
+ String current_file{ dir_access->get_next() };
+ while (!current_file.is_empty()) {
+ String current_file_path{ p_path.plus_file(current_file) };
+
+ if (current_file == ".." || current_file == ".") {
+ current_file = dir_access->get_next();
+ continue;
+ }
+
+ if (extensions_to_sign.find(current_file.get_extension()) > -1) {
+ Error code_sign_error{ _code_sign(p_preset, current_file_path, p_ent_path) };
+ if (code_sign_error != OK) {
+ return code_sign_error;
+ }
+ } else if (dir_access->current_is_dir()) {
+ Error code_sign_error{ _code_sign_directory(p_preset, current_file_path, p_ent_path, p_should_error_on_non_code) };
+ if (code_sign_error != OK) {
+ return code_sign_error;
+ }
+ } else if (p_should_error_on_non_code) {
+ ERR_PRINT(vformat("Cannot sign file %s.", current_file));
+ return Error::FAILED;
+ }
+
+ current_file = dir_access->get_next();
+ }
+#endif
+
+ return OK;
+}
+
+Error EditorExportPlatformOSX::_copy_and_sign_files(DirAccessRef &dir_access, const String &p_src_path,
+ const String &p_in_app_path, bool p_sign_enabled,
+ const Ref<EditorExportPreset> &p_preset, const String &p_ent_path,
+ bool p_should_error_on_non_code_sign) {
+ Error err{ OK };
+ if (dir_access->dir_exists(p_src_path)) {
+#ifndef UNIX_ENABLED
+ WARN_PRINT("Relative symlinks are not supported, exported " + p_src_path.get_file() + " might be broken!");
+#endif
+ print_verbose("export framework: " + p_src_path + " -> " + p_in_app_path);
+ err = dir_access->make_dir_recursive(p_in_app_path);
+ if (err == OK) {
+ err = dir_access->copy_dir(p_src_path, p_in_app_path, -1, true);
+ }
+ } else {
+ print_verbose("export dylib: " + p_src_path + " -> " + p_in_app_path);
+ err = dir_access->copy(p_src_path, p_in_app_path);
+ }
+ if (err == OK && p_sign_enabled) {
+ if (dir_access->dir_exists(p_src_path) && p_src_path.get_extension().is_empty()) {
+ // If it is a directory, find and sign all dynamic libraries.
+ err = _code_sign_directory(p_preset, p_in_app_path, p_ent_path, p_should_error_on_non_code_sign);
+ } else {
+ err = _code_sign(p_preset, p_in_app_path, p_ent_path);
+ }
+ }
+ return err;
+}
+
+Error EditorExportPlatformOSX::_export_osx_plugins_for(Ref<EditorExportPlugin> p_editor_export_plugin,
+ const String &p_app_path_name, DirAccessRef &dir_access,
+ bool p_sign_enabled, const Ref<EditorExportPreset> &p_preset,
+ const String &p_ent_path) {
+ Error error{ OK };
+ const Vector<String> &osx_plugins{ p_editor_export_plugin->get_osx_plugin_files() };
+ for (int i = 0; i < osx_plugins.size(); ++i) {
+ String src_path{ ProjectSettings::get_singleton()->globalize_path(osx_plugins[i]) };
+ String path_in_app{ p_app_path_name + "/Contents/PlugIns/" + src_path.get_file() };
+ error = _copy_and_sign_files(dir_access, src_path, path_in_app, p_sign_enabled, p_preset, p_ent_path, false);
+ if (error != OK) {
+ break;
+ }
+ }
+ return error;
+}
+
Error EditorExportPlatformOSX::_create_dmg(const String &p_dmg_path, const String &p_pkg_name, const String &p_app_path_name) {
List<String> args;
@@ -571,7 +676,7 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
char fname[16384];
ret = unzGetCurrentFileInfo(src_pkg_zip, &info, fname, 16384, nullptr, 0, nullptr, 0);
- String file = fname;
+ String file = String::utf8(fname);
Vector<uint8_t> data;
data.resize(info.uncompressed_size);
@@ -860,26 +965,22 @@ Error EditorExportPlatformOSX::export_project(const Ref<EditorExportPreset> &p_p
FileAccess::set_unix_permissions(tmp_app_path_name + "/Contents/Helpers/" + hlp_path.get_file(), 0755);
}
}
-
if (err == OK) {
DirAccessRef da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
for (int i = 0; i < shared_objects.size(); i++) {
String src_path = ProjectSettings::get_singleton()->globalize_path(shared_objects[i].path);
- if (da->dir_exists(src_path)) {
-#ifndef UNIX_ENABLED
- WARN_PRINT("Relative symlinks are not supported, exported " + src_path.get_file() + " might be broken!");
-#endif
- print_verbose("export framework: " + src_path + " -> " + tmp_app_path_name + "/Contents/Frameworks/" + src_path.get_file());
- err = da->make_dir_recursive(tmp_app_path_name + "/Contents/Frameworks/" + src_path.get_file());
- if (err == OK) {
- err = da->copy_dir(src_path, tmp_app_path_name + "/Contents/Frameworks/" + src_path.get_file(), -1, true);
- }
- } else {
- print_verbose("export dylib: " + src_path + " -> " + tmp_app_path_name + "/Contents/Frameworks/" + src_path.get_file());
- err = da->copy(src_path, tmp_app_path_name + "/Contents/Frameworks/" + src_path.get_file());
+ String path_in_app{ tmp_app_path_name + "/Contents/Frameworks/" + src_path.get_file() };
+ err = _copy_and_sign_files(da, src_path, path_in_app, sign_enabled, p_preset, ent_path, true);
+ if (err != OK) {
+ break;
}
- if (err == OK && sign_enabled) {
- err = _code_sign(p_preset, tmp_app_path_name + "/Contents/Frameworks/" + src_path.get_file(), ent_path);
+ }
+
+ Vector<Ref<EditorExportPlugin>> export_plugins{ EditorExport::get_singleton()->get_export_plugins() };
+ for (int i = 0; i < export_plugins.size(); ++i) {
+ err = _export_osx_plugins_for(export_plugins[i], tmp_app_path_name, da, sign_enabled, p_preset, ent_path);
+ if (err != OK) {
+ break;
}
}
}
@@ -1075,10 +1176,9 @@ bool EditorExportPlatformOSX::can_export(const Ref<EditorExportPreset> &p_preset
String err;
bool valid = false;
- // Look for export templates (first official, and if defined custom templates).
-
- bool dvalid = exists_export_template("osx.zip", &err);
- bool rvalid = dvalid; // Both in the same ZIP.
+ // Look for export templates (custom templates).
+ bool dvalid = false;
+ bool rvalid = false;
if (p_preset->get("custom_template/debug") != "") {
dvalid = FileAccess::exists(p_preset->get("custom_template/debug"));
@@ -1093,6 +1193,12 @@ bool EditorExportPlatformOSX::can_export(const Ref<EditorExportPreset> &p_preset
}
}
+ // Look for export templates (official templates, check only is custom templates are not set).
+ if (!dvalid || !rvalid) {
+ dvalid = exists_export_template("osx.zip", &err);
+ rvalid = dvalid; // Both in the same ZIP.
+ }
+
valid = dvalid || rvalid;
r_missing_templates = !valid;
@@ -1103,16 +1209,26 @@ bool EditorExportPlatformOSX::can_export(const Ref<EditorExportPreset> &p_preset
valid = false;
}
+#ifdef OSX_ENABLED
bool sign_enabled = p_preset->get("codesign/enable");
bool noto_enabled = p_preset->get("notarization/enable");
+ bool ad_hoc = ((p_preset->get("codesign/identity") == "") || (p_preset->get("codesign/identity") == "-"));
+
if (noto_enabled) {
+ if (ad_hoc) {
+ err += TTR("Notarization: Notarization with the ad-hoc signature is not supported.") + "\n";
+ valid = false;
+ }
if (!sign_enabled) {
- err += TTR("Notarization: code signing required.") + "\n";
+ err += TTR("Notarization: Code signing is required for notarization.") + "\n";
valid = false;
}
- bool hr_enabled = p_preset->get("codesign/hardened_runtime");
- if (!hr_enabled) {
- err += TTR("Notarization: hardened runtime required.") + "\n";
+ if (!(bool)p_preset->get("codesign/hardened_runtime")) {
+ err += TTR("Notarization: Hardened runtime is required for notarization.") + "\n";
+ valid = false;
+ }
+ if (!(bool)p_preset->get("codesign/timestamp")) {
+ err += TTR("Notarization: Timestamping is required for notarization.") + "\n";
valid = false;
}
if (p_preset->get("notarization/apple_id_name") == "") {
@@ -1123,7 +1239,22 @@ bool EditorExportPlatformOSX::can_export(const Ref<EditorExportPreset> &p_preset
err += TTR("Notarization: Apple ID password not specified.") + "\n";
valid = false;
}
+ } else {
+ err += TTR("Notarization is disabled. Exported project will be blocked by Gatekeeper, if it's downloaded from an unknown source.") + "\n";
+ if (!sign_enabled) {
+ err += TTR("Code signing is disabled. Exported project will not run on Macs with enabled Gatekeeper and Apple Silicon powered Macs.") + "\n";
+ } else {
+ if ((bool)p_preset->get("codesign/hardened_runtime") && ad_hoc) {
+ err += TTR("Hardened Runtime is not compatible with ad-hoc signature, and will be disabled!") + "\n";
+ }
+ if ((bool)p_preset->get("codesign/timestamp") && ad_hoc) {
+ err += TTR("Timestamping is not compatible with ad-hoc signature, and will be disabled!") + "\n";
+ }
+ }
}
+#else
+ err += TTR("macOS code signing and Notarization is not supported on the host OS. Exported project will not run on Macs with enabled Gatekeeper and Apple Silicon powered Macs.") + "\n";
+#endif
if (!err.is_empty()) {
r_error = err;
diff --git a/platform/osx/export/export_plugin.h b/platform/osx/export/export_plugin.h
index ca5086622e..aa22ad6384 100644
--- a/platform/osx/export/export_plugin.h
+++ b/platform/osx/export/export_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -58,6 +58,13 @@ class EditorExportPlatformOSX : public EditorExportPlatform {
Error _notarize(const Ref<EditorExportPreset> &p_preset, const String &p_path);
Error _code_sign(const Ref<EditorExportPreset> &p_preset, const String &p_path, const String &p_ent_path);
+ Error _code_sign_directory(const Ref<EditorExportPreset> &p_preset, const String &p_path, const String &p_ent_path, bool p_should_error_on_non_code = true);
+ Error _copy_and_sign_files(DirAccessRef &dir_access, const String &p_src_path, const String &p_in_app_path,
+ bool p_sign_enabled, const Ref<EditorExportPreset> &p_preset, const String &p_ent_path,
+ bool p_should_error_on_non_code_sign);
+ Error _export_osx_plugins_for(Ref<EditorExportPlugin> p_editor_export_plugin, const String &p_app_path_name,
+ DirAccessRef &dir_access, bool p_sign_enabled, const Ref<EditorExportPreset> &p_preset,
+ const String &p_ent_path);
Error _create_dmg(const String &p_dmg_path, const String &p_pkg_name, const String &p_app_path_name);
void _zip_folder_recursive(zipFile &p_zip, const String &p_root_path, const String &p_folder, const String &p_pkg_name);
diff --git a/platform/osx/gl_manager_osx.h b/platform/osx/gl_manager_osx.h
index f86bc805c1..0229b672a2 100644
--- a/platform/osx/gl_manager_osx.h
+++ b/platform/osx/gl_manager_osx.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/gl_manager_osx.mm b/platform/osx/gl_manager_osx.mm
index 60e0706fc0..3e70de8523 100644
--- a/platform/osx/gl_manager_osx.mm
+++ b/platform/osx/gl_manager_osx.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/godot_main_osx.mm b/platform/osx/godot_main_osx.mm
index 7e7dbf6afb..64a93f7292 100644
--- a/platform/osx/godot_main_osx.mm
+++ b/platform/osx/godot_main_osx.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/joypad_osx.cpp b/platform/osx/joypad_osx.cpp
index 48d165d30b..2152b34aff 100644
--- a/platform/osx/joypad_osx.cpp
+++ b/platform/osx/joypad_osx.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/joypad_osx.h b/platform/osx/joypad_osx.h
index 2ba7f0d950..8ea1033a77 100644
--- a/platform/osx/joypad_osx.h
+++ b/platform/osx/joypad_osx.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/os_osx.h b/platform/osx/os_osx.h
index 7e02f4e154..555ce4c75f 100644
--- a/platform/osx/os_osx.h
+++ b/platform/osx/os_osx.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm
index 39608bdea8..7d07b0076b 100644
--- a/platform/osx/os_osx.mm
+++ b/platform/osx/os_osx.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -586,7 +586,7 @@ void OS_OSX::run() {
quit = true;
}
} @catch (NSException *exception) {
- ERR_PRINT("NSException: " + String([exception reason].UTF8String));
+ ERR_PRINT("NSException: " + String::utf8([exception reason].UTF8String));
}
};
@@ -602,7 +602,7 @@ Error OS_OSX::move_to_trash(const String &p_path) {
NSError *err;
if (![fm trashItemAtURL:url resultingItemURL:nil error:&err]) {
- ERR_PRINT("trashItemAtURL error: " + String(err.localizedDescription.UTF8String));
+ ERR_PRINT("trashItemAtURL error: " + String::utf8(err.localizedDescription.UTF8String));
return FAILED;
}
diff --git a/platform/osx/platform_config.h b/platform/osx/platform_config.h
index 7bfa466b97..e114606b82 100644
--- a/platform/osx/platform_config.h
+++ b/platform/osx/platform_config.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/vulkan_context_osx.h b/platform/osx/vulkan_context_osx.h
index 22d43688a3..b78b4eb141 100644
--- a/platform/osx/vulkan_context_osx.h
+++ b/platform/osx/vulkan_context_osx.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/osx/vulkan_context_osx.mm b/platform/osx/vulkan_context_osx.mm
index 36c02c2497..f32fab1eee 100644
--- a/platform/osx/vulkan_context_osx.mm
+++ b/platform/osx/vulkan_context_osx.mm
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/register_platform_apis.h b/platform/register_platform_apis.h
index 4cf84b321f..8b6d23a7a4 100644
--- a/platform/register_platform_apis.h
+++ b/platform/register_platform_apis.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/app_uwp.cpp b/platform/uwp/app_uwp.cpp
index 9e6ad7a63e..6832d71a6f 100644
--- a/platform/uwp/app_uwp.cpp
+++ b/platform/uwp/app_uwp.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/app_uwp.h b/platform/uwp/app_uwp.h
index 8d4a0b90c3..9aadcfac75 100644
--- a/platform/uwp/app_uwp.h
+++ b/platform/uwp/app_uwp.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/context_egl_uwp.cpp b/platform/uwp/context_egl_uwp.cpp
index bb2a14e9fc..a08693c72f 100644
--- a/platform/uwp/context_egl_uwp.cpp
+++ b/platform/uwp/context_egl_uwp.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/context_egl_uwp.h b/platform/uwp/context_egl_uwp.h
index 974faa3ac7..c547f39988 100644
--- a/platform/uwp/context_egl_uwp.h
+++ b/platform/uwp/context_egl_uwp.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/export/app_packager.cpp b/platform/uwp/export/app_packager.cpp
index 39a2693f75..9b586a640e 100644
--- a/platform/uwp/export/app_packager.cpp
+++ b/platform/uwp/export/app_packager.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/export/app_packager.h b/platform/uwp/export/app_packager.h
index 0eb1a78df1..a5f5896592 100644
--- a/platform/uwp/export/app_packager.h
+++ b/platform/uwp/export/app_packager.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/export/export.cpp b/platform/uwp/export/export.cpp
index f5c3db33bb..efba006985 100644
--- a/platform/uwp/export/export.cpp
+++ b/platform/uwp/export/export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/export/export.h b/platform/uwp/export/export.h
index bc23cad38c..c237a75b59 100644
--- a/platform/uwp/export/export.h
+++ b/platform/uwp/export/export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/export/export_plugin.cpp b/platform/uwp/export/export_plugin.cpp
index 31a6889543..594495375a 100644
--- a/platform/uwp/export/export_plugin.cpp
+++ b/platform/uwp/export/export_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -325,7 +325,7 @@ Error EditorExportPlatformUWP::export_project(const Ref<EditorExportPreset> &p_p
char fname[16834];
ret = unzGetCurrentFileInfo(pkg, &info, fname, 16834, nullptr, 0, nullptr, 0);
- String path = fname;
+ String path = String::utf8(fname);
if (path.ends_with("/")) {
// Ignore directories
diff --git a/platform/uwp/export/export_plugin.h b/platform/uwp/export/export_plugin.h
index acdd85e888..eab958534a 100644
--- a/platform/uwp/export/export_plugin.h
+++ b/platform/uwp/export/export_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/joypad_uwp.cpp b/platform/uwp/joypad_uwp.cpp
index f8eb4fc96d..ef44f0b14d 100644
--- a/platform/uwp/joypad_uwp.cpp
+++ b/platform/uwp/joypad_uwp.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/joypad_uwp.h b/platform/uwp/joypad_uwp.h
index d760d9e2fe..1d68996358 100644
--- a/platform/uwp/joypad_uwp.h
+++ b/platform/uwp/joypad_uwp.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/os_uwp.cpp b/platform/uwp/os_uwp.cpp
index 1114f5359a..ca486633bf 100644
--- a/platform/uwp/os_uwp.cpp
+++ b/platform/uwp/os_uwp.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -136,12 +136,8 @@ void OS_UWP::initialize_core() {
NetSocketPosix::make_default();
// We need to know how often the clock is updated
- if (!QueryPerformanceFrequency((LARGE_INTEGER *)&ticks_per_second))
- ticks_per_second = 1000;
- // If timeAtGameStart is 0 then we get the time since
- // the start of the computer when we call GetGameTime()
- ticks_start = 0;
- ticks_start = get_ticks_usec();
+ QueryPerformanceFrequency((LARGE_INTEGER *)&ticks_per_second);
+ QueryPerformanceCounter((LARGE_INTEGER *)&ticks_start);
IPUnix::make_default();
@@ -443,7 +439,7 @@ String OS_UWP::get_name() const {
OS::Date OS_UWP::get_date(bool p_utc) const {
SYSTEMTIME systemtime;
- if (utc) {
+ if (p_utc) {
GetSystemTime(&systemtime);
} else {
GetLocalTime(&systemtime);
@@ -460,10 +456,11 @@ OS::Date OS_UWP::get_date(bool p_utc) const {
OS::Time OS_UWP::get_time(bool p_utc) const {
SYSTEMTIME systemtime;
- if (utc)
+ if (p_utc) {
GetSystemTime(&systemtime);
- else
+ } else {
GetLocalTime(&systemtime);
+ }
Time time;
time.hour = systemtime.wHour;
@@ -524,6 +521,9 @@ uint64_t OS_UWP::get_ticks_usec() const {
// This is the number of clock ticks since start
QueryPerformanceCounter((LARGE_INTEGER *)&ticks);
+ // Subtract the ticks at game start to get
+ // the ticks since the game started
+ ticks -= ticks_start;
// Divide by frequency to get the time in seconds
// original calculation shown below is subject to overflow
@@ -543,9 +543,6 @@ uint64_t OS_UWP::get_ticks_usec() const {
// seconds
time += seconds * 1000000L;
- // Subtract the time at game start to get
- // the time since the game started
- time -= ticks_start;
return time;
}
diff --git a/platform/uwp/os_uwp.h b/platform/uwp/os_uwp.h
index 0b4d6b73b6..5784c11d53 100644
--- a/platform/uwp/os_uwp.h
+++ b/platform/uwp/os_uwp.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/uwp/platform_config.h b/platform/uwp/platform_config.h
index 481f583f6f..dc398cba4c 100644
--- a/platform/uwp/platform_config.h
+++ b/platform/uwp/platform_config.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/crash_handler_windows.cpp b/platform/windows/crash_handler_windows.cpp
index 1b4dae207f..71e9d9acbd 100644
--- a/platform/windows/crash_handler_windows.cpp
+++ b/platform/windows/crash_handler_windows.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/crash_handler_windows.h b/platform/windows/crash_handler_windows.h
index 5cdc6d3e05..ec8de3ffab 100644
--- a/platform/windows/crash_handler_windows.h
+++ b/platform/windows/crash_handler_windows.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp
index 899cf5dfad..ca2b68371c 100644
--- a/platform/windows/display_server_windows.cpp
+++ b/platform/windows/display_server_windows.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -59,6 +59,15 @@ static String format_error_message(DWORD id) {
return msg;
}
+static void track_mouse_leave_event(HWND hWnd) {
+ TRACKMOUSEEVENT tme;
+ tme.cbSize = sizeof(TRACKMOUSEEVENT);
+ tme.dwFlags = TME_LEAVE;
+ tme.hwndTrack = hWnd;
+ tme.dwHoverTime = HOVER_DEFAULT;
+ TrackMouseEvent(&tme);
+}
+
bool DisplayServerWindows::has_feature(Feature p_feature) const {
switch (p_feature) {
case FEATURE_SUBWINDOWS:
@@ -1976,6 +1985,9 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
// Run a timer to prevent event catching warning if the focused window is closing.
windows[window_id].focus_timer_id = SetTimer(windows[window_id].hWnd, 2, USER_TIMER_MINIMUM, (TIMERPROC) nullptr);
}
+ if (wParam != WA_INACTIVE) {
+ track_mouse_leave_event(hWnd);
+ }
return 0; // Return to the message loop.
} break;
case WM_GETMINMAXINFO: {
@@ -2260,12 +2272,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
outside = false;
// Once-off notification, must call again.
- TRACKMOUSEEVENT tme;
- tme.cbSize = sizeof(TRACKMOUSEEVENT);
- tme.dwFlags = TME_LEAVE;
- tme.hwndTrack = hWnd;
- tme.dwHoverTime = HOVER_DEFAULT;
- TrackMouseEvent(&tme);
+ track_mouse_leave_event(hWnd);
}
// Don't calculate relative mouse movement if we don't have focus in CAPTURED mode.
@@ -2366,12 +2373,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
outside = false;
// Once-off notification, must call again.
- TRACKMOUSEEVENT tme;
- tme.cbSize = sizeof(TRACKMOUSEEVENT);
- tme.dwFlags = TME_LEAVE;
- tme.hwndTrack = hWnd;
- tme.dwHoverTime = HOVER_DEFAULT;
- TrackMouseEvent(&tme);
+ track_mouse_leave_event(hWnd);
}
// Don't calculate relative mouse movement if we don't have focus in CAPTURED mode.
@@ -3126,14 +3128,6 @@ DisplayServer::WindowID DisplayServerWindows::_create_window(WindowMode p_mode,
#endif
RegisterTouchWindow(wd.hWnd, 0);
-
- TRACKMOUSEEVENT tme;
- tme.cbSize = sizeof(TRACKMOUSEEVENT);
- tme.dwFlags = TME_LEAVE;
- tme.hwndTrack = wd.hWnd;
- tme.dwHoverTime = HOVER_DEFAULT;
- TrackMouseEvent(&tme);
-
DragAcceptFiles(wd.hWnd, true);
if ((tablet_get_current_driver() == "wintab") && wintab_available) {
diff --git a/platform/windows/display_server_windows.h b/platform/windows/display_server_windows.h
index fec449ebce..409335b41c 100644
--- a/platform/windows/display_server_windows.h
+++ b/platform/windows/display_server_windows.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/export/export.cpp b/platform/windows/export/export.cpp
index 4ff42f3f62..17a24c08bf 100644
--- a/platform/windows/export/export.cpp
+++ b/platform/windows/export/export.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/export/export.h b/platform/windows/export/export.h
index 110e1439e2..09399f2bee 100644
--- a/platform/windows/export/export.h
+++ b/platform/windows/export/export.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/export/export_plugin.cpp b/platform/windows/export/export_plugin.cpp
index 5a1cdb0962..02b2d026b5 100644
--- a/platform/windows/export/export_plugin.cpp
+++ b/platform/windows/export/export_plugin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/export/export_plugin.h b/platform/windows/export/export_plugin.h
index 11d3826410..4ec9342cdf 100644
--- a/platform/windows/export/export_plugin.h
+++ b/platform/windows/export/export_plugin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/gl_manager_windows.cpp b/platform/windows/gl_manager_windows.cpp
index fe98f8b0ba..74b5f48502 100644
--- a/platform/windows/gl_manager_windows.cpp
+++ b/platform/windows/gl_manager_windows.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/gl_manager_windows.h b/platform/windows/gl_manager_windows.h
index 9733a57420..6423c54855 100644
--- a/platform/windows/gl_manager_windows.h
+++ b/platform/windows/gl_manager_windows.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/godot_windows.cpp b/platform/windows/godot_windows.cpp
index 22e2e5f7e5..7819ab9a32 100644
--- a/platform/windows/godot_windows.cpp
+++ b/platform/windows/godot_windows.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/joypad_windows.cpp b/platform/windows/joypad_windows.cpp
index f76749ec54..8b6081d606 100644
--- a/platform/windows/joypad_windows.cpp
+++ b/platform/windows/joypad_windows.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/joypad_windows.h b/platform/windows/joypad_windows.h
index 757fb54fb3..4faefe932f 100644
--- a/platform/windows/joypad_windows.h
+++ b/platform/windows/joypad_windows.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/key_mapping_windows.cpp b/platform/windows/key_mapping_windows.cpp
index 65ee5dd46b..e32dc0d1a6 100644
--- a/platform/windows/key_mapping_windows.cpp
+++ b/platform/windows/key_mapping_windows.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -32,117 +32,134 @@
#include <stdio.h>
+// This provides translation from Windows virtual key codes to Godot and back.
+// See WinUser.h and the below for documentation:
+// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
+
struct _WinTranslatePair {
Key keysym;
unsigned int keycode;
};
static _WinTranslatePair _vk_to_keycode[] = {
- { Key::BACKSPACE, VK_BACK }, // (0x08) // backspace
- { Key::TAB, VK_TAB }, //(0x09)
-
- //VK_CLEAR (0x0C)
-
- { Key::ENTER, VK_RETURN }, //(0x0D)
-
- { Key::SHIFT, VK_SHIFT }, //(0x10)
-
- { Key::CTRL, VK_CONTROL }, //(0x11)
-
- { Key::ALT, VK_MENU }, //(0x12)
-
- { Key::PAUSE, VK_PAUSE }, //(0x13)
+ // VK_LBUTTON (0x01)
+ // VK_RBUTTON (0x02)
+ // VK_CANCEL (0x03)
+ // VK_MBUTTON (0x04)
+ // VK_XBUTTON1 (0x05)
+ // VK_XBUTTON2 (0x06)
+ // We have no mappings for the above, as we only map keyboard buttons here.
- { Key::CAPSLOCK, VK_CAPITAL }, //(0x14)
+ // 0x07 is undefined.
- { Key::ESCAPE, VK_ESCAPE }, //(0x1B)
+ { Key::BACKSPACE, VK_BACK }, // (0x08)
+ { Key::TAB, VK_TAB }, // (0x09)
- { Key::SPACE, VK_SPACE }, //(0x20)
+ // 0x0A-0B are reserved.
- { Key::PAGEUP, VK_PRIOR }, //(0x21)
+ { Key::CLEAR, VK_CLEAR }, // (0x0C)
+ { Key::ENTER, VK_RETURN }, // (0x0D)
- { Key::PAGEDOWN, VK_NEXT }, //(0x22)
+ // 0x0E-0F are undefined.
- { Key::END, VK_END }, //(0x23)
+ { Key::SHIFT, VK_SHIFT }, // (0x10)
+ { Key::CTRL, VK_CONTROL }, // (0x11)
+ { Key::ALT, VK_MENU }, // (0x12)
+ { Key::PAUSE, VK_PAUSE }, // (0x13)
+ { Key::CAPSLOCK, VK_CAPITAL }, // (0x14)
- { Key::HOME, VK_HOME }, //(0x24)
+ // 0x15-1A are IME keys. We have no mapping.
- { Key::LEFT, VK_LEFT }, //(0x25)
+ { Key::ESCAPE, VK_ESCAPE }, // (0x1B)
- { Key::UP, VK_UP }, //(0x26)
-
- { Key::RIGHT, VK_RIGHT }, //(0x27)
+ // 0x1C-1F are IME keys. We have no mapping.
+ { Key::SPACE, VK_SPACE }, // (0x20)
+ { Key::PAGEUP, VK_PRIOR }, // (0x21)
+ { Key::PAGEDOWN, VK_NEXT }, // (0x22)
+ { Key::END, VK_END }, // (0x23)
+ { Key::HOME, VK_HOME }, // (0x24)
+ { Key::LEFT, VK_LEFT }, // (0x25)
+ { Key::UP, VK_UP }, // (0x26)
+ { Key::RIGHT, VK_RIGHT }, // (0x27)
{ Key::DOWN, VK_DOWN }, // (0x28)
- //VK_SELECT (0x29)
+ // VK_SELECT (0x29)
+ // Old select key, e.g. on Digital Equipment Corporation keyboards.
+ // Old and uncommon, we have no mapping.
{ Key::PRINT, VK_PRINT }, // (0x2A)
+ // Old IBM key, modern keyboards use VK_SNAPSHOT. Map to VK_SNAPSHOT.
- //VK_EXECUTE (0x2B)
+ // VK_EXECUTE (0x2B)
+ // Old and uncommon, we have no mapping.
{ Key::PRINT, VK_SNAPSHOT }, // (0x2C)
-
{ Key::INSERT, VK_INSERT }, // (0x2D)
-
{ Key::KEY_DELETE, VK_DELETE }, // (0x2E)
{ Key::HELP, VK_HELP }, // (0x2F)
-
- { Key::KEY_0, (0x30) }, ////0 key
- { Key::KEY_1, (0x31) }, ////1 key
- { Key::KEY_2, (0x32) }, ////2 key
- { Key::KEY_3, (0x33) }, ////3 key
- { Key::KEY_4, (0x34) }, ////4 key
- { Key::KEY_5, (0x35) }, ////5 key
- { Key::KEY_6, (0x36) }, ////6 key
- { Key::KEY_7, (0x37) }, ////7 key
- { Key::KEY_8, (0x38) }, ////8 key
- { Key::KEY_9, (0x39) }, ////9 key
- { Key::A, (0x41) }, ////A key
- { Key::B, (0x42) }, ////B key
- { Key::C, (0x43) }, ////C key
- { Key::D, (0x44) }, ////D key
- { Key::E, (0x45) }, ////E key
- { Key::F, (0x46) }, ////F key
- { Key::G, (0x47) }, ////G key
- { Key::H, (0x48) }, ////H key
- { Key::I, (0x49) }, ////I key
- { Key::J, (0x4A) }, ////J key
- { Key::K, (0x4B) }, ////K key
- { Key::L, (0x4C) }, ////L key
- { Key::M, (0x4D) }, ////M key
- { Key::N, (0x4E) }, ////N key
- { Key::O, (0x4F) }, ////O key
- { Key::P, (0x50) }, ////P key
- { Key::Q, (0x51) }, ////Q key
- { Key::R, (0x52) }, ////R key
- { Key::S, (0x53) }, ////S key
- { Key::T, (0x54) }, ////T key
- { Key::U, (0x55) }, ////U key
- { Key::V, (0x56) }, ////V key
- { Key::W, (0x57) }, ////W key
- { Key::X, (0x58) }, ////X key
- { Key::Y, (0x59) }, ////Y key
- { Key::Z, (0x5A) }, ////Z key
-
- { (Key)KeyModifierMask::META, VK_LWIN }, //(0x5B)
- { (Key)KeyModifierMask::META, VK_RWIN }, //(0x5C)
- { Key::MENU, VK_APPS }, //(0x5D)
- { Key::STANDBY, VK_SLEEP }, //(0x5F)
- { Key::KP_0, VK_NUMPAD0 }, //(0x60)
- { Key::KP_1, VK_NUMPAD1 }, //(0x61)
- { Key::KP_2, VK_NUMPAD2 }, //(0x62)
- { Key::KP_3, VK_NUMPAD3 }, //(0x63)
- { Key::KP_4, VK_NUMPAD4 }, //(0x64)
- { Key::KP_5, VK_NUMPAD5 }, //(0x65)
- { Key::KP_6, VK_NUMPAD6 }, //(0x66)
- { Key::KP_7, VK_NUMPAD7 }, //(0x67)
- { Key::KP_8, VK_NUMPAD8 }, //(0x68)
- { Key::KP_9, VK_NUMPAD9 }, //(0x69)
+ // Old and uncommon, but we have a mapping.
+
+ { Key::KEY_0, (0x30) }, // 0 key.
+ { Key::KEY_1, (0x31) }, // 1 key.
+ { Key::KEY_2, (0x32) }, // 2 key.
+ { Key::KEY_3, (0x33) }, // 3 key.
+ { Key::KEY_4, (0x34) }, // 4 key.
+ { Key::KEY_5, (0x35) }, // 5 key.
+ { Key::KEY_6, (0x36) }, // 6 key.
+ { Key::KEY_7, (0x37) }, // 7 key.
+ { Key::KEY_8, (0x38) }, // 8 key.
+ { Key::KEY_9, (0x39) }, // 9 key.
+ // 0x3A-40 are undefined.
+ { Key::A, (0x41) }, // A key.
+ { Key::B, (0x42) }, // B key.
+ { Key::C, (0x43) }, // C key.
+ { Key::D, (0x44) }, // D key.
+ { Key::E, (0x45) }, // E key.
+ { Key::F, (0x46) }, // F key.
+ { Key::G, (0x47) }, // G key.
+ { Key::H, (0x48) }, // H key.
+ { Key::I, (0x49) }, // I key
+ { Key::J, (0x4A) }, // J key.
+ { Key::K, (0x4B) }, // K key.
+ { Key::L, (0x4C) }, // L key.
+ { Key::M, (0x4D) }, // M key.
+ { Key::N, (0x4E) }, // N key.
+ { Key::O, (0x4F) }, // O key.
+ { Key::P, (0x50) }, // P key.
+ { Key::Q, (0x51) }, // Q key.
+ { Key::R, (0x52) }, // R key.
+ { Key::S, (0x53) }, // S key.
+ { Key::T, (0x54) }, // T key.
+ { Key::U, (0x55) }, // U key.
+ { Key::V, (0x56) }, // V key.
+ { Key::W, (0x57) }, // W key.
+ { Key::X, (0x58) }, // X key.
+ { Key::Y, (0x59) }, // Y key.
+ { Key::Z, (0x5A) }, // Z key.
+
+ { (Key)KeyModifierMask::META, VK_LWIN }, // (0x5B)
+ { (Key)KeyModifierMask::META, VK_RWIN }, // (0x5C)
+ { Key::MENU, VK_APPS }, // (0x5D)
+ // 0x5E is reserved.
+ { Key::STANDBY, VK_SLEEP }, // (0x5F)
+ { Key::KP_0, VK_NUMPAD0 }, // (0x60)
+ { Key::KP_1, VK_NUMPAD1 }, // (0x61)
+ { Key::KP_2, VK_NUMPAD2 }, // (0x62)
+ { Key::KP_3, VK_NUMPAD3 }, // (0x63)
+ { Key::KP_4, VK_NUMPAD4 }, // (0x64)
+ { Key::KP_5, VK_NUMPAD5 }, // (0x65)
+ { Key::KP_6, VK_NUMPAD6 }, // (0x66)
+ { Key::KP_7, VK_NUMPAD7 }, // (0x67)
+ { Key::KP_8, VK_NUMPAD8 }, // (0x68)
+ { Key::KP_9, VK_NUMPAD9 }, // (0x69)
{ Key::KP_MULTIPLY, VK_MULTIPLY }, // (0x6A)
{ Key::KP_ADD, VK_ADD }, // (0x6B)
- //VK_SEPARATOR (0x6C)
+ { Key::KP_PERIOD, VK_SEPARATOR }, // (0x6C)
+ // VK_SEPERATOR (key 0x6C) is not found on US keyboards.
+ // It is used on some Brazilian and Far East keyboards.
+ // We don't have a direct mapping, map to period.
{ Key::KP_SUBTRACT, VK_SUBTRACT }, // (0x6D)
{ Key::KP_PERIOD, VK_DECIMAL }, // (0x6E)
{ Key::KP_DIVIDE, VK_DIVIDE }, // (0x6F)
@@ -162,8 +179,17 @@ static _WinTranslatePair _vk_to_keycode[] = {
{ Key::F14, VK_F14 }, // (0x7D)
{ Key::F15, VK_F15 }, // (0x7E)
{ Key::F16, VK_F16 }, // (0x7F)
+ // We have no mappings for F17-F24. (0x80-87)
+ // 0x88-8F are reserved for UI navigation.
{ Key::NUMLOCK, VK_NUMLOCK }, // (0x90)
{ Key::SCROLLLOCK, VK_SCROLL }, // (0x91)
+
+ { Key::EQUAL, VK_OEM_NEC_EQUAL }, // (0x92)
+ // OEM NEC PC-9800 numpad '=' key.
+
+ // 0x93-96 are OEM specific (e.g. used by Fujitsu/OASYS), we have no mappings.
+ // 0x97-9F are unassigned.
+
{ Key::SHIFT, VK_LSHIFT }, // (0xA0)
{ Key::SHIFT, VK_RSHIFT }, // (0xA1)
{ Key::CTRL, VK_LCONTROL }, // (0xA2)
@@ -172,70 +198,124 @@ static _WinTranslatePair _vk_to_keycode[] = {
{ Key::MENU, VK_RMENU }, // (0xA5)
{ Key::BACK, VK_BROWSER_BACK }, // (0xA6)
-
{ Key::FORWARD, VK_BROWSER_FORWARD }, // (0xA7)
-
{ Key::REFRESH, VK_BROWSER_REFRESH }, // (0xA8)
-
{ Key::STOP, VK_BROWSER_STOP }, // (0xA9)
-
{ Key::SEARCH, VK_BROWSER_SEARCH }, // (0xAA)
-
{ Key::FAVORITES, VK_BROWSER_FAVORITES }, // (0xAB)
-
{ Key::HOMEPAGE, VK_BROWSER_HOME }, // (0xAC)
-
{ Key::VOLUMEMUTE, VK_VOLUME_MUTE }, // (0xAD)
-
{ Key::VOLUMEDOWN, VK_VOLUME_DOWN }, // (0xAE)
-
{ Key::VOLUMEUP, VK_VOLUME_UP }, // (0xAF)
-
{ Key::MEDIANEXT, VK_MEDIA_NEXT_TRACK }, // (0xB0)
-
{ Key::MEDIAPREVIOUS, VK_MEDIA_PREV_TRACK }, // (0xB1)
-
{ Key::MEDIASTOP, VK_MEDIA_STOP }, // (0xB2)
- //VK_MEDIA_PLAY_PAUSE (0xB3)
+ { Key::MEDIAPLAY, VK_MEDIA_PLAY_PAUSE }, // (0xB3)
+ // Media button play/pause toggle.
+ // Map to media play (there is no other 'play' mapping on Windows).
{ Key::LAUNCHMAIL, VK_LAUNCH_MAIL }, // (0xB4)
-
{ Key::LAUNCHMEDIA, VK_LAUNCH_MEDIA_SELECT }, // (0xB5)
-
{ Key::LAUNCH0, VK_LAUNCH_APP1 }, // (0xB6)
-
{ Key::LAUNCH1, VK_LAUNCH_APP2 }, // (0xB7)
+ // 0xB8-B9 are reserved.
+
{ Key::SEMICOLON, VK_OEM_1 }, // (0xBA)
+ // Misc. character, can vary by keyboard/region.
+ // Windows 2000/XP: For US standard keyboards, the ';:' key.
- { Key::EQUAL, VK_OEM_PLUS }, // (0xBB) // Windows 2000/XP: For any country/region, the '+' key
- { Key::COMMA, VK_OEM_COMMA }, // (0xBC) // Windows 2000/XP: For any country/region, the ',' key
- { Key::MINUS, VK_OEM_MINUS }, // (0xBD) // Windows 2000/XP: For any country/region, the '-' key
- { Key::PERIOD, VK_OEM_PERIOD }, // (0xBE) // Windows 2000/XP: For any country/region, the '.' key
- { Key::SLASH, VK_OEM_2 }, // (0xBF) //Windows 2000/XP: For the US standard keyboard, the '/?' key
+ { Key::EQUAL, VK_OEM_PLUS }, // (0xBB)
+ // Windows 2000/XP: For any country/region, the '+' key.
+ { Key::COMMA, VK_OEM_COMMA }, // (0xBC)
+ // Windows 2000/XP: For any country/region, the ',' key.
+ { Key::MINUS, VK_OEM_MINUS }, // (0xBD)
+ // Windows 2000/XP: For any country/region, the '-' key.
+ { Key::PERIOD, VK_OEM_PERIOD }, // (0xBE)
+ // Windows 2000/XP: For any country/region, the '.' key.
+
+ { Key::SLASH, VK_OEM_2 }, // (0xBF)
+ // Windows 2000/XP: For US standard keyboards, the '/?' key.
{ Key::QUOTELEFT, VK_OEM_3 }, // (0xC0)
- { Key::BRACELEFT, VK_OEM_4 }, // (0xDB)
+ // Windows 2000/XP: For US standard keyboards, the '`~' key.
+
+ // 0xC1-D7 are reserved. 0xD8-DA are unassigned.
+ // TODO: 0xC3-DA may be used for old gamepads? Maybe we want to support this? See WinUser.h.
+
+ { Key::BRACKETLEFT, VK_OEM_4 }, // (0xDB)
+ // Misc. character, can vary by keyboard/region.
+ // Windows 2000/XP: For US standard keyboards, the '[{' key.
+
{ Key::BACKSLASH, VK_OEM_5 }, // (0xDC)
- { Key::BRACERIGHT, VK_OEM_6 }, // (0xDD)
+ // Misc. character, can vary by keyboard/region.
+ // Windows 2000/XP: For US standard keyboards, the '\|' key.
+
+ { Key::BRACKETRIGHT, VK_OEM_6 }, // (0xDD)
+ // Misc. character, can vary by keyboard/region.
+ // Windows 2000/XP: For US standard keyboards, the ']}' key.
+
{ Key::APOSTROPHE, VK_OEM_7 }, // (0xDE)
- /*
-{VK_OEM_8 (0xDF)
-{VK_OEM_102 (0xE2) // Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard
-*/
- //{ Key::PLAY, VK_PLAY},// (0xFA)
+ // Misc. character, can vary by keyboard/region.
+ // Windows 2000/XP: For US standard keyboards, single quote/double quote.
+
+ // VK_OEM_8 (0xDF)
+ // Misc. character, can vary by keyboard/region. We have no mapping.
+
+ // 0xE0 is reserved. 0xE1 is OEM specific, we have no mapping.
+
+ // VK_OEM_102 (0xE2)
+ // Either angle bracket or backslash key on the RT 102-key keyboard.
+ // Old and uncommon, we have no mapping.
+
+ { Key::HELP, VK_ICO_HELP }, // (0xE3)
+ // OEM (ICO) help key. Map to help.
+
+ // 0xE4 is OEM (e.g. ICO) specific, we have no mapping.
+
+ // VK_PROCESSKEY (0xE5)
+ // For IME, we have no mapping.
+
+ { Key::CLEAR, VK_ICO_CLEAR }, // (0xE6)
+ // OEM (ICO) clear key. Map to clear.
+
+ // VK_PACKET (0xE7)
+ // Used to pass Unicode characters as if they were keystrokes.
+ // See Win32 API docs. We have no mapping.
+
+ // 0xE8 is unassigned, 0xE9-F5 are OEM (Nokia/Ericsson) specific, we have no mappings.
+
+ { Key::ESCAPE, VK_ATTN }, // (0xF6)
+ // Old IBM 'ATTN' key used on midrange computers, e.g. AS/400, map to Escape.
+
+ { Key::TAB, VK_CRSEL }, // (0xF7)
+ // Old IBM 3270 'CrSel' (cursor select) key, used to select data fields, map to Tab.
+
+ // VK_EXSEL (0xF7)
+ // Old IBM 3270 extended selection key. No mapping.
+
+ // VK_EREOF (0xF8)
+ // Old IBM 3270 erase to end of field key. No mapping.
+
+ { Key::MEDIAPLAY, VK_PLAY }, // (0xFA)
+ // Old IBM 3270 'Play' key. Map to media play.
+
+ // VK_ZOOM (0xFB)
+ // Old IBM 3290 'Zoom' key. No mapping.
+
+ // VK_NONAME (0xFC)
+ // Reserved. No mapping.
+
+ // VK_PA1 (0xFD)
+ // Old IBM 3270 PA1 key. No mapping.
+
+ { Key::CLEAR, VK_OEM_CLEAR }, // (0xFE)
+ // OEM specific clear key. Unclear how it differs from normal clear. Map to clear.
{ Key::UNKNOWN, 0 }
};
-/*
-VK_ZOOM (0xFB)
-VK_NONAME (0xFC)
-VK_PA1 (0xFD)
-VK_OEM_CLEAR (0xFE)
-*/
-
static _WinTranslatePair _scancode_to_keycode[] = {
{ Key::ESCAPE, 0x01 },
{ Key::KEY_1, 0x02 },
@@ -320,7 +400,6 @@ static _WinTranslatePair _scancode_to_keycode[] = {
{ Key::PAGEDOWN, 0x51 },
{ Key::INSERT, 0x52 },
{ Key::KEY_DELETE, 0x53 },
- //{ Key::???, 0x56 }, //NON US BACKSLASH
{ Key::F11, 0x57 },
{ Key::F12, 0x58 },
{ Key::META, 0x5B },
@@ -336,8 +415,6 @@ static _WinTranslatePair _scancode_to_keycode[] = {
Key KeyMappingWindows::get_keysym(unsigned int p_code) {
for (int i = 0; _vk_to_keycode[i].keysym != Key::UNKNOWN; i++) {
if (_vk_to_keycode[i].keycode == p_code) {
- //printf("outcode: %x\n",_vk_to_keycode[i].keysym);
-
return _vk_to_keycode[i].keysym;
}
}
diff --git a/platform/windows/key_mapping_windows.h b/platform/windows/key_mapping_windows.h
index 0454be7310..393432fa39 100644
--- a/platform/windows/key_mapping_windows.h
+++ b/platform/windows/key_mapping_windows.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/lang_table.h b/platform/windows/lang_table.h
index 51583cc11e..5b022853e8 100644
--- a/platform/windows/lang_table.h
+++ b/platform/windows/lang_table.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index bb6a077a5d..203e078cb4 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -184,12 +184,8 @@ void OS_Windows::initialize() {
NetSocketPosix::make_default();
// We need to know how often the clock is updated
- if (!QueryPerformanceFrequency((LARGE_INTEGER *)&ticks_per_second))
- ticks_per_second = 1000;
- // If timeAtGameStart is 0 then we get the time since
- // the start of the computer when we call GetGameTime()
- ticks_start = 0;
- ticks_start = get_ticks_usec();
+ QueryPerformanceFrequency((LARGE_INTEGER *)&ticks_per_second);
+ QueryPerformanceCounter((LARGE_INTEGER *)&ticks_start);
// set minimum resolution for periodic timers, otherwise Sleep(n) may wait at least as
// long as the windows scheduler resolution (~16-30ms) even for calls like Sleep(1)
@@ -369,8 +365,10 @@ uint64_t OS_Windows::get_ticks_usec() const {
uint64_t ticks;
// This is the number of clock ticks since start
- if (!QueryPerformanceCounter((LARGE_INTEGER *)&ticks))
- ticks = (UINT64)timeGetTime();
+ QueryPerformanceCounter((LARGE_INTEGER *)&ticks);
+ // Subtract the ticks at game start to get
+ // the ticks since the game started
+ ticks -= ticks_start;
// Divide by frequency to get the time in seconds
// original calculation shown below is subject to overflow
@@ -390,9 +388,6 @@ uint64_t OS_Windows::get_ticks_usec() const {
// seconds
time += seconds * 1000000L;
- // Subtract the time at game start to get
- // the time since the game started
- time -= ticks_start;
return time;
}
diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h
index 086f63eb3e..4e61f3be7e 100644
--- a/platform/windows/os_windows.h
+++ b/platform/windows/os_windows.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/platform_config.h b/platform/windows/platform_config.h
index dace0f86af..8e80f8cacb 100644
--- a/platform/windows/platform_config.h
+++ b/platform/windows/platform_config.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/vulkan_context_win.cpp b/platform/windows/vulkan_context_win.cpp
index db5e6466be..07c41395fb 100644
--- a/platform/windows/vulkan_context_win.cpp
+++ b/platform/windows/vulkan_context_win.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/vulkan_context_win.h b/platform/windows/vulkan_context_win.h
index 61e66b8ae0..e68f0125ca 100644
--- a/platform/windows/vulkan_context_win.h
+++ b/platform/windows/vulkan_context_win.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/windows_terminal_logger.cpp b/platform/windows/windows_terminal_logger.cpp
index d4148630f0..0d5f0e617c 100644
--- a/platform/windows/windows_terminal_logger.cpp
+++ b/platform/windows/windows_terminal_logger.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/windows/windows_terminal_logger.h b/platform/windows/windows_terminal_logger.h
index 86b65ae30a..1045f12201 100644
--- a/platform/windows/windows_terminal_logger.h
+++ b/platform/windows/windows_terminal_logger.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/animated_sprite_2d.cpp b/scene/2d/animated_sprite_2d.cpp
index 0bcd49432e..4916eb573c 100644
--- a/scene/2d/animated_sprite_2d.cpp
+++ b/scene/2d/animated_sprite_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/animated_sprite_2d.h b/scene/2d/animated_sprite_2d.h
index 976cc57fd5..b3af931ea2 100644
--- a/scene/2d/animated_sprite_2d.h
+++ b/scene/2d/animated_sprite_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/area_2d.cpp b/scene/2d/area_2d.cpp
index 8db1491953..70b9b769cd 100644
--- a/scene/2d/area_2d.cpp
+++ b/scene/2d/area_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/area_2d.h b/scene/2d/area_2d.h
index 98ba270a61..68047ccebf 100644
--- a/scene/2d/area_2d.h
+++ b/scene/2d/area_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/audio_listener_2d.cpp b/scene/2d/audio_listener_2d.cpp
index f16e359a1d..8fae339756 100644
--- a/scene/2d/audio_listener_2d.cpp
+++ b/scene/2d/audio_listener_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/audio_listener_2d.h b/scene/2d/audio_listener_2d.h
index 454053bc4a..172d388efc 100644
--- a/scene/2d/audio_listener_2d.h
+++ b/scene/2d/audio_listener_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/audio_stream_player_2d.cpp b/scene/2d/audio_stream_player_2d.cpp
index 8bf95e6965..a761d0d1ec 100644
--- a/scene/2d/audio_stream_player_2d.cpp
+++ b/scene/2d/audio_stream_player_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/audio_stream_player_2d.h b/scene/2d/audio_stream_player_2d.h
index 5360fd4934..73b09e432f 100644
--- a/scene/2d/audio_stream_player_2d.h
+++ b/scene/2d/audio_stream_player_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/back_buffer_copy.cpp b/scene/2d/back_buffer_copy.cpp
index 539a66b881..c411aaf411 100644
--- a/scene/2d/back_buffer_copy.cpp
+++ b/scene/2d/back_buffer_copy.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/back_buffer_copy.h b/scene/2d/back_buffer_copy.h
index 6bdb3aaab2..4e7cac1f3e 100644
--- a/scene/2d/back_buffer_copy.h
+++ b/scene/2d/back_buffer_copy.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp
index b6902686fe..f4c0665f36 100644
--- a/scene/2d/camera_2d.cpp
+++ b/scene/2d/camera_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/camera_2d.h b/scene/2d/camera_2d.h
index d697515547..662bee3612 100644
--- a/scene/2d/camera_2d.h
+++ b/scene/2d/camera_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/canvas_group.cpp b/scene/2d/canvas_group.cpp
index ee025b6dfc..37a858330c 100644
--- a/scene/2d/canvas_group.cpp
+++ b/scene/2d/canvas_group.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/canvas_group.h b/scene/2d/canvas_group.h
index b487d7a098..9bc1772ee2 100644
--- a/scene/2d/canvas_group.h
+++ b/scene/2d/canvas_group.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/canvas_modulate.cpp b/scene/2d/canvas_modulate.cpp
index 4de99959a3..d0abed4a0c 100644
--- a/scene/2d/canvas_modulate.cpp
+++ b/scene/2d/canvas_modulate.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/canvas_modulate.h b/scene/2d/canvas_modulate.h
index 3d85a92a11..ec37449f8f 100644
--- a/scene/2d/canvas_modulate.h
+++ b/scene/2d/canvas_modulate.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/collision_object_2d.cpp b/scene/2d/collision_object_2d.cpp
index bd13d96b01..0f4e3c8bed 100644
--- a/scene/2d/collision_object_2d.cpp
+++ b/scene/2d/collision_object_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/collision_object_2d.h b/scene/2d/collision_object_2d.h
index 19abacb201..9463b2c429 100644
--- a/scene/2d/collision_object_2d.h
+++ b/scene/2d/collision_object_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/collision_polygon_2d.cpp b/scene/2d/collision_polygon_2d.cpp
index 00bfa62449..9bc3226851 100644
--- a/scene/2d/collision_polygon_2d.cpp
+++ b/scene/2d/collision_polygon_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/collision_polygon_2d.h b/scene/2d/collision_polygon_2d.h
index 6b32923010..e18022ab7e 100644
--- a/scene/2d/collision_polygon_2d.h
+++ b/scene/2d/collision_polygon_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/collision_shape_2d.cpp b/scene/2d/collision_shape_2d.cpp
index c7742c7ba5..18426c088d 100644
--- a/scene/2d/collision_shape_2d.cpp
+++ b/scene/2d/collision_shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/collision_shape_2d.h b/scene/2d/collision_shape_2d.h
index eaf72627c8..dbc81e8424 100644
--- a/scene/2d/collision_shape_2d.h
+++ b/scene/2d/collision_shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp
index 3bc212ffca..f62e7f24e3 100644
--- a/scene/2d/cpu_particles_2d.cpp
+++ b/scene/2d/cpu_particles_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/cpu_particles_2d.h b/scene/2d/cpu_particles_2d.h
index 3cb3d64855..8c8f161d74 100644
--- a/scene/2d/cpu_particles_2d.h
+++ b/scene/2d/cpu_particles_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/gpu_particles_2d.cpp b/scene/2d/gpu_particles_2d.cpp
index 4384ec8141..8c8f794298 100644
--- a/scene/2d/gpu_particles_2d.cpp
+++ b/scene/2d/gpu_particles_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/gpu_particles_2d.h b/scene/2d/gpu_particles_2d.h
index a9e66b3051..aa9a8da129 100644
--- a/scene/2d/gpu_particles_2d.h
+++ b/scene/2d/gpu_particles_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/joint_2d.cpp b/scene/2d/joint_2d.cpp
index 8a528151cf..62a77fb969 100644
--- a/scene/2d/joint_2d.cpp
+++ b/scene/2d/joint_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/joint_2d.h b/scene/2d/joint_2d.h
index 0c3956e463..e3cd600cbd 100644
--- a/scene/2d/joint_2d.h
+++ b/scene/2d/joint_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/light_2d.cpp b/scene/2d/light_2d.cpp
index 66c0f979ae..f496e1aac2 100644
--- a/scene/2d/light_2d.cpp
+++ b/scene/2d/light_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/light_2d.h b/scene/2d/light_2d.h
index d9ecd81f1c..f7b1f420e3 100644
--- a/scene/2d/light_2d.h
+++ b/scene/2d/light_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/light_occluder_2d.cpp b/scene/2d/light_occluder_2d.cpp
index fdc28f81c2..0a7e4c8841 100644
--- a/scene/2d/light_occluder_2d.cpp
+++ b/scene/2d/light_occluder_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/light_occluder_2d.h b/scene/2d/light_occluder_2d.h
index b4a48d1062..4f8c6d20df 100644
--- a/scene/2d/light_occluder_2d.h
+++ b/scene/2d/light_occluder_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/line_2d.cpp b/scene/2d/line_2d.cpp
index 00767ec22c..1a6aaecaa8 100644
--- a/scene/2d/line_2d.cpp
+++ b/scene/2d/line_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/line_2d.h b/scene/2d/line_2d.h
index 5e7eb4bac9..5322c5a5fe 100644
--- a/scene/2d/line_2d.h
+++ b/scene/2d/line_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/line_builder.cpp b/scene/2d/line_builder.cpp
index 05d77f8224..25eb9b9851 100644
--- a/scene/2d/line_builder.cpp
+++ b/scene/2d/line_builder.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/line_builder.h b/scene/2d/line_builder.h
index 16c88d00e9..e50acc9ce4 100644
--- a/scene/2d/line_builder.h
+++ b/scene/2d/line_builder.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/mesh_instance_2d.cpp b/scene/2d/mesh_instance_2d.cpp
index 58bff97da9..5f8a46ad2e 100644
--- a/scene/2d/mesh_instance_2d.cpp
+++ b/scene/2d/mesh_instance_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/mesh_instance_2d.h b/scene/2d/mesh_instance_2d.h
index f94d53da7d..0647d1ddd9 100644
--- a/scene/2d/mesh_instance_2d.h
+++ b/scene/2d/mesh_instance_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/multimesh_instance_2d.cpp b/scene/2d/multimesh_instance_2d.cpp
index 1bff2f337d..e1af99d931 100644
--- a/scene/2d/multimesh_instance_2d.cpp
+++ b/scene/2d/multimesh_instance_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/multimesh_instance_2d.h b/scene/2d/multimesh_instance_2d.h
index 213cbd19b0..37d0d24f8f 100644
--- a/scene/2d/multimesh_instance_2d.h
+++ b/scene/2d/multimesh_instance_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/navigation_agent_2d.cpp b/scene/2d/navigation_agent_2d.cpp
index 7faa964407..9331f2dccb 100644
--- a/scene/2d/navigation_agent_2d.cpp
+++ b/scene/2d/navigation_agent_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -241,7 +241,7 @@ TypedArray<String> NavigationAgent2D::get_configuration_warnings() const {
TypedArray<String> warnings = Node::get_configuration_warnings();
if (!Object::cast_to<Node2D>(get_parent())) {
- warnings.push_back(TTR("The NavigationAgent2D can be used only under a Node2D node"));
+ warnings.push_back(TTR("The NavigationAgent2D can be used only under a Node2D node."));
}
return warnings;
diff --git a/scene/2d/navigation_agent_2d.h b/scene/2d/navigation_agent_2d.h
index 052cd78a56..dcedc6506a 100644
--- a/scene/2d/navigation_agent_2d.h
+++ b/scene/2d/navigation_agent_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/navigation_obstacle_2d.cpp b/scene/2d/navigation_obstacle_2d.cpp
index 8802a1098a..e5df089771 100644
--- a/scene/2d/navigation_obstacle_2d.cpp
+++ b/scene/2d/navigation_obstacle_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/navigation_obstacle_2d.h b/scene/2d/navigation_obstacle_2d.h
index a5603f059f..2a0ef14e73 100644
--- a/scene/2d/navigation_obstacle_2d.h
+++ b/scene/2d/navigation_obstacle_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/navigation_region_2d.cpp b/scene/2d/navigation_region_2d.cpp
index ecd79c23a7..34f5830d8d 100644
--- a/scene/2d/navigation_region_2d.cpp
+++ b/scene/2d/navigation_region_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -363,10 +363,10 @@ void NavigationRegion2D::set_enabled(bool p_enabled) {
if (!enabled) {
NavigationServer2D::get_singleton()->region_set_map(region, RID());
- NavigationServer2D::get_singleton()->disconnect("map_changed", callable_mp(this, &NavigationRegion2D::_map_changed));
+ NavigationServer2D::get_singleton_mut()->disconnect("map_changed", callable_mp(this, &NavigationRegion2D::_map_changed));
} else {
NavigationServer2D::get_singleton()->region_set_map(region, get_world_2d()->get_navigation_map());
- NavigationServer2D::get_singleton()->connect("map_changed", callable_mp(this, &NavigationRegion2D::_map_changed));
+ NavigationServer2D::get_singleton_mut()->connect("map_changed", callable_mp(this, &NavigationRegion2D::_map_changed));
}
if (Engine::get_singleton()->is_editor_hint() || get_tree()->is_debugging_navigation_hint()) {
@@ -402,7 +402,7 @@ void NavigationRegion2D::_notification(int p_what) {
case NOTIFICATION_ENTER_TREE: {
if (enabled) {
NavigationServer2D::get_singleton()->region_set_map(region, get_world_2d()->get_navigation_map());
- NavigationServer2D::get_singleton()->connect("map_changed", callable_mp(this, &NavigationRegion2D::_map_changed));
+ NavigationServer2D::get_singleton_mut()->connect("map_changed", callable_mp(this, &NavigationRegion2D::_map_changed));
}
} break;
case NOTIFICATION_TRANSFORM_CHANGED: {
@@ -411,7 +411,7 @@ void NavigationRegion2D::_notification(int p_what) {
case NOTIFICATION_EXIT_TREE: {
NavigationServer2D::get_singleton()->region_set_map(region, RID());
if (enabled) {
- NavigationServer2D::get_singleton()->disconnect("map_changed", callable_mp(this, &NavigationRegion2D::_map_changed));
+ NavigationServer2D::get_singleton_mut()->disconnect("map_changed", callable_mp(this, &NavigationRegion2D::_map_changed));
}
} break;
case NOTIFICATION_DRAW: {
diff --git a/scene/2d/navigation_region_2d.h b/scene/2d/navigation_region_2d.h
index 2db8d70791..012debb584 100644
--- a/scene/2d/navigation_region_2d.h
+++ b/scene/2d/navigation_region_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/node_2d.cpp b/scene/2d/node_2d.cpp
index 54e34b585e..9331340e1b 100644
--- a/scene/2d/node_2d.cpp
+++ b/scene/2d/node_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/node_2d.h b/scene/2d/node_2d.h
index 41897127b1..69d14f82ad 100644
--- a/scene/2d/node_2d.h
+++ b/scene/2d/node_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/parallax_background.cpp b/scene/2d/parallax_background.cpp
index 4870ae614b..f75baaab0f 100644
--- a/scene/2d/parallax_background.cpp
+++ b/scene/2d/parallax_background.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/parallax_background.h b/scene/2d/parallax_background.h
index 3745c5b587..1a3cb43999 100644
--- a/scene/2d/parallax_background.h
+++ b/scene/2d/parallax_background.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/parallax_layer.cpp b/scene/2d/parallax_layer.cpp
index 797e2e59cb..ff572c9b9a 100644
--- a/scene/2d/parallax_layer.cpp
+++ b/scene/2d/parallax_layer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/parallax_layer.h b/scene/2d/parallax_layer.h
index cc2d2e096e..b4dcf0ea61 100644
--- a/scene/2d/parallax_layer.h
+++ b/scene/2d/parallax_layer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/path_2d.cpp b/scene/2d/path_2d.cpp
index 40211f2a9b..742756113f 100644
--- a/scene/2d/path_2d.cpp
+++ b/scene/2d/path_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -93,6 +93,10 @@ void Path2D::_notification(int p_what) {
return;
}
+ if (curve->get_point_count() < 2) {
+ return;
+ }
+
#ifdef TOOLS_ENABLED
const real_t line_width = 2 * EDSCALE;
#else
diff --git a/scene/2d/path_2d.h b/scene/2d/path_2d.h
index 7e8478283f..bc55f84831 100644
--- a/scene/2d/path_2d.h
+++ b/scene/2d/path_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/physical_bone_2d.cpp b/scene/2d/physical_bone_2d.cpp
index c1b0bc35dd..1fc4b651d8 100644
--- a/scene/2d/physical_bone_2d.cpp
+++ b/scene/2d/physical_bone_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/physical_bone_2d.h b/scene/2d/physical_bone_2d.h
index 8b41f75c3e..9f31c22031 100644
--- a/scene/2d/physical_bone_2d.h
+++ b/scene/2d/physical_bone_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/physics_body_2d.cpp b/scene/2d/physics_body_2d.cpp
index 70df587e22..b2cc8164b6 100644
--- a/scene/2d/physics_body_2d.cpp
+++ b/scene/2d/physics_body_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/physics_body_2d.h b/scene/2d/physics_body_2d.h
index 71a7908bd7..649d67d759 100644
--- a/scene/2d/physics_body_2d.h
+++ b/scene/2d/physics_body_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/polygon_2d.cpp b/scene/2d/polygon_2d.cpp
index 7a237bf557..5451d95be9 100644
--- a/scene/2d/polygon_2d.cpp
+++ b/scene/2d/polygon_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/polygon_2d.h b/scene/2d/polygon_2d.h
index bf386b9ace..d6a1be0f6d 100644
--- a/scene/2d/polygon_2d.h
+++ b/scene/2d/polygon_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/position_2d.cpp b/scene/2d/position_2d.cpp
index 4f053ff8b0..28aeff98ca 100644
--- a/scene/2d/position_2d.cpp
+++ b/scene/2d/position_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/position_2d.h b/scene/2d/position_2d.h
index 9ed622c8f6..4ef07eb05c 100644
--- a/scene/2d/position_2d.h
+++ b/scene/2d/position_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/ray_cast_2d.cpp b/scene/2d/ray_cast_2d.cpp
index f9830a8743..33090fbacc 100644
--- a/scene/2d/ray_cast_2d.cpp
+++ b/scene/2d/ray_cast_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/ray_cast_2d.h b/scene/2d/ray_cast_2d.h
index 3ee09fad32..a1015c6ce0 100644
--- a/scene/2d/ray_cast_2d.h
+++ b/scene/2d/ray_cast_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/remote_transform_2d.cpp b/scene/2d/remote_transform_2d.cpp
index fe3e867424..e9431efde3 100644
--- a/scene/2d/remote_transform_2d.cpp
+++ b/scene/2d/remote_transform_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/remote_transform_2d.h b/scene/2d/remote_transform_2d.h
index 36fddb58c7..bd352e1054 100644
--- a/scene/2d/remote_transform_2d.h
+++ b/scene/2d/remote_transform_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/shape_cast_2d.cpp b/scene/2d/shape_cast_2d.cpp
index 50b44eb4ef..7fc1992e96 100644
--- a/scene/2d/shape_cast_2d.cpp
+++ b/scene/2d/shape_cast_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -223,7 +223,7 @@ void ShapeCast2D::_notification(int p_what) {
draw_col.g = g;
draw_col.b = g;
}
- // Draw continuos chain of shapes along the cast.
+ // Draw continuous chain of shapes along the cast.
const int steps = MAX(2, target_position.length() / shape->get_rect().get_size().length() * 4);
for (int i = 0; i <= steps; ++i) {
Vector2 t = (real_t(i) / steps) * target_position;
diff --git a/scene/2d/shape_cast_2d.h b/scene/2d/shape_cast_2d.h
index fca6b46155..7e1ebeb315 100644
--- a/scene/2d/shape_cast_2d.h
+++ b/scene/2d/shape_cast_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/skeleton_2d.cpp b/scene/2d/skeleton_2d.cpp
index b558f0aa21..2270926ea7 100644
--- a/scene/2d/skeleton_2d.cpp
+++ b/scene/2d/skeleton_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/skeleton_2d.h b/scene/2d/skeleton_2d.h
index 56fd0e8504..98fb867d99 100644
--- a/scene/2d/skeleton_2d.h
+++ b/scene/2d/skeleton_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/sprite_2d.cpp b/scene/2d/sprite_2d.cpp
index b2302d09db..389fa0388f 100644
--- a/scene/2d/sprite_2d.cpp
+++ b/scene/2d/sprite_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/sprite_2d.h b/scene/2d/sprite_2d.h
index 49df78c59d..6893e92d4a 100644
--- a/scene/2d/sprite_2d.h
+++ b/scene/2d/sprite_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp
index 2ad6476812..62dc4d1c15 100644
--- a/scene/2d/tile_map.cpp
+++ b/scene/2d/tile_map.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -866,7 +866,7 @@ void TileMap::_recreate_layer_internals(int p_layer) {
return;
}
- // Upadate the layer internals.
+ // Update the layer internals.
_rendering_update_layer(p_layer);
// Recreate the quadrants.
@@ -1375,7 +1375,7 @@ void TileMap::_physics_notification(int p_what) {
in_editor = Engine::get_singleton()->is_editor_hint();
#endif
if (is_inside_tree() && collision_animatable && !in_editor) {
- // Update tranform on the physics tick when in animatable mode.
+ // Update transform on the physics tick when in animatable mode.
last_valid_transform = new_transform;
set_notify_local_transform(false);
set_global_transform(new_transform);
@@ -2296,7 +2296,7 @@ Map<Vector2i, TileSet::TerrainsPattern> TileMap::terrain_wave_function_collapse(
// Randomly a cell to fill out of the most constrained.
Vector2i selected_cell_to_replace = to_choose_from[Math::random(0, to_choose_from.size() - 1)];
- // Get the list of acceptable pattens for the given cell.
+ // Get the list of acceptable patterns for the given cell.
Set<TileSet::TerrainsPattern> valid_tiles = per_cell_acceptable_tiles[selected_cell_to_replace];
if (valid_tiles.is_empty()) {
break; // No possibilities :/
diff --git a/scene/2d/tile_map.h b/scene/2d/tile_map.h
index f260422290..0da04bfeae 100644
--- a/scene/2d/tile_map.h
+++ b/scene/2d/tile_map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/touch_screen_button.cpp b/scene/2d/touch_screen_button.cpp
index 8bd7b696f2..77e6ad44c6 100644
--- a/scene/2d/touch_screen_button.cpp
+++ b/scene/2d/touch_screen_button.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/touch_screen_button.h b/scene/2d/touch_screen_button.h
index 1c515149d4..6ed9ba8dc7 100644
--- a/scene/2d/touch_screen_button.h
+++ b/scene/2d/touch_screen_button.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/visible_on_screen_notifier_2d.cpp b/scene/2d/visible_on_screen_notifier_2d.cpp
index eb4bedb6a3..a7c2ae5bb1 100644
--- a/scene/2d/visible_on_screen_notifier_2d.cpp
+++ b/scene/2d/visible_on_screen_notifier_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/2d/visible_on_screen_notifier_2d.h b/scene/2d/visible_on_screen_notifier_2d.h
index 9c236a138f..e0d580f174 100644
--- a/scene/2d/visible_on_screen_notifier_2d.h
+++ b/scene/2d/visible_on_screen_notifier_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/area_3d.cpp b/scene/3d/area_3d.cpp
index 073543638f..5123a6eb6c 100644
--- a/scene/3d/area_3d.cpp
+++ b/scene/3d/area_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/area_3d.h b/scene/3d/area_3d.h
index 7f31be2e17..c2399985ff 100644
--- a/scene/3d/area_3d.h
+++ b/scene/3d/area_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/audio_listener_3d.cpp b/scene/3d/audio_listener_3d.cpp
index b2319e40d7..0eb7588958 100644
--- a/scene/3d/audio_listener_3d.cpp
+++ b/scene/3d/audio_listener_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/audio_listener_3d.h b/scene/3d/audio_listener_3d.h
index 31de3b4fb1..ebc37673ed 100644
--- a/scene/3d/audio_listener_3d.h
+++ b/scene/3d/audio_listener_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/audio_stream_player_3d.cpp b/scene/3d/audio_stream_player_3d.cpp
index bdcab49e4e..3b52974b8e 100644
--- a/scene/3d/audio_stream_player_3d.cpp
+++ b/scene/3d/audio_stream_player_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/audio_stream_player_3d.h b/scene/3d/audio_stream_player_3d.h
index 697bbe2381..53cdd2e630 100644
--- a/scene/3d/audio_stream_player_3d.h
+++ b/scene/3d/audio_stream_player_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/bone_attachment_3d.cpp b/scene/3d/bone_attachment_3d.cpp
index 5dc7382197..73a4dcd1f7 100644
--- a/scene/3d/bone_attachment_3d.cpp
+++ b/scene/3d/bone_attachment_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/bone_attachment_3d.h b/scene/3d/bone_attachment_3d.h
index 57b9854e0e..395dfde1d7 100644
--- a/scene/3d/bone_attachment_3d.h
+++ b/scene/3d/bone_attachment_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/camera_3d.cpp b/scene/3d/camera_3d.cpp
index cc5b7078e3..55fa05d3fd 100644
--- a/scene/3d/camera_3d.cpp
+++ b/scene/3d/camera_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/camera_3d.h b/scene/3d/camera_3d.h
index 73126611d5..b5665814c7 100644
--- a/scene/3d/camera_3d.h
+++ b/scene/3d/camera_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/collision_object_3d.cpp b/scene/3d/collision_object_3d.cpp
index 085f1ade66..df7c044f9e 100644
--- a/scene/3d/collision_object_3d.cpp
+++ b/scene/3d/collision_object_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/collision_object_3d.h b/scene/3d/collision_object_3d.h
index 1c7e205888..f560753543 100644
--- a/scene/3d/collision_object_3d.h
+++ b/scene/3d/collision_object_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/collision_polygon_3d.cpp b/scene/3d/collision_polygon_3d.cpp
index 6328d9c67d..7926175459 100644
--- a/scene/3d/collision_polygon_3d.cpp
+++ b/scene/3d/collision_polygon_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/collision_polygon_3d.h b/scene/3d/collision_polygon_3d.h
index 73b8a8e0e3..a24d485af2 100644
--- a/scene/3d/collision_polygon_3d.h
+++ b/scene/3d/collision_polygon_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/collision_shape_3d.cpp b/scene/3d/collision_shape_3d.cpp
index 4e496fba47..773095b377 100644
--- a/scene/3d/collision_shape_3d.cpp
+++ b/scene/3d/collision_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/collision_shape_3d.h b/scene/3d/collision_shape_3d.h
index cb7fe21eae..bd5595f974 100644
--- a/scene/3d/collision_shape_3d.h
+++ b/scene/3d/collision_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/cpu_particles_3d.cpp b/scene/3d/cpu_particles_3d.cpp
index 905a137001..e3d551d782 100644
--- a/scene/3d/cpu_particles_3d.cpp
+++ b/scene/3d/cpu_particles_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/cpu_particles_3d.h b/scene/3d/cpu_particles_3d.h
index 6addeab1a6..bd736bdf24 100644
--- a/scene/3d/cpu_particles_3d.h
+++ b/scene/3d/cpu_particles_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/decal.cpp b/scene/3d/decal.cpp
index 500bf4d8f5..dfac9055f5 100644
--- a/scene/3d/decal.cpp
+++ b/scene/3d/decal.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/decal.h b/scene/3d/decal.h
index e9bda3276d..740dd2c407 100644
--- a/scene/3d/decal.h
+++ b/scene/3d/decal.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/fog_volume.cpp b/scene/3d/fog_volume.cpp
index 694defd7dc..8d05254a25 100644
--- a/scene/3d/fog_volume.cpp
+++ b/scene/3d/fog_volume.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/fog_volume.h b/scene/3d/fog_volume.h
index 0807fb22e6..68d5c58169 100644
--- a/scene/3d/fog_volume.h
+++ b/scene/3d/fog_volume.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/gpu_particles_3d.cpp b/scene/3d/gpu_particles_3d.cpp
index b35a45576f..aaaa728838 100644
--- a/scene/3d/gpu_particles_3d.cpp
+++ b/scene/3d/gpu_particles_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/gpu_particles_3d.h b/scene/3d/gpu_particles_3d.h
index 5e96f660da..54ae84628a 100644
--- a/scene/3d/gpu_particles_3d.h
+++ b/scene/3d/gpu_particles_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/gpu_particles_collision_3d.cpp b/scene/3d/gpu_particles_collision_3d.cpp
index adb532145b..54fbc720ce 100644
--- a/scene/3d/gpu_particles_collision_3d.cpp
+++ b/scene/3d/gpu_particles_collision_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/gpu_particles_collision_3d.h b/scene/3d/gpu_particles_collision_3d.h
index 5568ecdfc1..b6de1d83fc 100644
--- a/scene/3d/gpu_particles_collision_3d.h
+++ b/scene/3d/gpu_particles_collision_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/importer_mesh_instance_3d.cpp b/scene/3d/importer_mesh_instance_3d.cpp
index 748a2e5092..7cd6a81532 100644
--- a/scene/3d/importer_mesh_instance_3d.cpp
+++ b/scene/3d/importer_mesh_instance_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/importer_mesh_instance_3d.h b/scene/3d/importer_mesh_instance_3d.h
index 0cf7dbe86b..3daf06771d 100644
--- a/scene/3d/importer_mesh_instance_3d.h
+++ b/scene/3d/importer_mesh_instance_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/joint_3d.cpp b/scene/3d/joint_3d.cpp
index aa5ca85bdf..bd47ab3462 100644
--- a/scene/3d/joint_3d.cpp
+++ b/scene/3d/joint_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/joint_3d.h b/scene/3d/joint_3d.h
index 211cf8e071..ea356ef3b7 100644
--- a/scene/3d/joint_3d.h
+++ b/scene/3d/joint_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/light_3d.cpp b/scene/3d/light_3d.cpp
index 5d9ae019c2..0a0507207a 100644
--- a/scene/3d/light_3d.cpp
+++ b/scene/3d/light_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/light_3d.h b/scene/3d/light_3d.h
index a9f5ce27b4..93dc8155bb 100644
--- a/scene/3d/light_3d.h
+++ b/scene/3d/light_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/lightmap_gi.cpp b/scene/3d/lightmap_gi.cpp
index 58cd42010f..715c421632 100644
--- a/scene/3d/lightmap_gi.cpp
+++ b/scene/3d/lightmap_gi.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -942,11 +942,7 @@ LightmapGI::BakeError LightmapGI::bake(Node *p_from_node, String p_image_data_pa
c.r *= environment_custom_energy;
c.g *= environment_custom_energy;
c.b *= environment_custom_energy;
- for (int i = 0; i < 128; i++) {
- for (int j = 0; j < 64; j++) {
- environment_image->set_pixel(i, j, c);
- }
- }
+ environment_image->fill(c);
} break;
}
diff --git a/scene/3d/lightmap_gi.h b/scene/3d/lightmap_gi.h
index e73350fd64..66acf4f487 100644
--- a/scene/3d/lightmap_gi.h
+++ b/scene/3d/lightmap_gi.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/lightmap_probe.cpp b/scene/3d/lightmap_probe.cpp
index 830b97ffab..641b0a4c48 100644
--- a/scene/3d/lightmap_probe.cpp
+++ b/scene/3d/lightmap_probe.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/lightmap_probe.h b/scene/3d/lightmap_probe.h
index df87ed49dd..11b35451a1 100644
--- a/scene/3d/lightmap_probe.h
+++ b/scene/3d/lightmap_probe.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/lightmapper.cpp b/scene/3d/lightmapper.cpp
index 9e5078ba95..8ab710d98f 100644
--- a/scene/3d/lightmapper.cpp
+++ b/scene/3d/lightmapper.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/lightmapper.h b/scene/3d/lightmapper.h
index d028628901..f641c99ec1 100644
--- a/scene/3d/lightmapper.h
+++ b/scene/3d/lightmapper.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/mesh_instance_3d.cpp b/scene/3d/mesh_instance_3d.cpp
index ae686143e4..58ff512130 100644
--- a/scene/3d/mesh_instance_3d.cpp
+++ b/scene/3d/mesh_instance_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/mesh_instance_3d.h b/scene/3d/mesh_instance_3d.h
index 8f21726601..03ee3cd608 100644
--- a/scene/3d/mesh_instance_3d.h
+++ b/scene/3d/mesh_instance_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/multimesh_instance_3d.cpp b/scene/3d/multimesh_instance_3d.cpp
index 2adef115cf..34b1e86435 100644
--- a/scene/3d/multimesh_instance_3d.cpp
+++ b/scene/3d/multimesh_instance_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/multimesh_instance_3d.h b/scene/3d/multimesh_instance_3d.h
index 63735fd3a6..d03b24eb4e 100644
--- a/scene/3d/multimesh_instance_3d.h
+++ b/scene/3d/multimesh_instance_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/navigation_agent_3d.cpp b/scene/3d/navigation_agent_3d.cpp
index 1bc7d20c19..e90971845e 100644
--- a/scene/3d/navigation_agent_3d.cpp
+++ b/scene/3d/navigation_agent_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/navigation_agent_3d.h b/scene/3d/navigation_agent_3d.h
index bebfdc5f7e..aebd5be7e4 100644
--- a/scene/3d/navigation_agent_3d.h
+++ b/scene/3d/navigation_agent_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/navigation_obstacle_3d.cpp b/scene/3d/navigation_obstacle_3d.cpp
index f9fff802e0..b1f6f0cf91 100644
--- a/scene/3d/navigation_obstacle_3d.cpp
+++ b/scene/3d/navigation_obstacle_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/navigation_obstacle_3d.h b/scene/3d/navigation_obstacle_3d.h
index 12c813ab08..542d603a0a 100644
--- a/scene/3d/navigation_obstacle_3d.h
+++ b/scene/3d/navigation_obstacle_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/navigation_region_3d.cpp b/scene/3d/navigation_region_3d.cpp
index 473368cf69..1e298e0137 100644
--- a/scene/3d/navigation_region_3d.cpp
+++ b/scene/3d/navigation_region_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/navigation_region_3d.h b/scene/3d/navigation_region_3d.h
index ec7761ef93..1a50bb5f64 100644
--- a/scene/3d/navigation_region_3d.h
+++ b/scene/3d/navigation_region_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/node_3d.cpp b/scene/3d/node_3d.cpp
index ddd9d2da8a..a992d2aaf2 100644
--- a/scene/3d/node_3d.cpp
+++ b/scene/3d/node_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,6 +33,7 @@
#include "core/object/message_queue.h"
#include "scene/3d/visual_instance_3d.h"
#include "scene/main/viewport.h"
+#include "scene/property_utils.h"
#include "scene/scene_string_names.h"
/*
@@ -84,6 +85,9 @@ void Node3D::_notify_dirty() {
}
void Node3D::_update_local_transform() const {
+ if (this->get_rotation_edit_mode() != ROTATION_EDIT_MODE_BASIS) {
+ data.local_transform = data.local_transform.orthogonalized();
+ }
data.local_transform.basis.set_euler_scale(data.rotation, data.scale);
data.dirty &= ~DIRTY_LOCAL;
@@ -172,6 +176,7 @@ void Node3D::_notification(int p_what) {
if (get_script_instance()) {
get_script_instance()->call(SceneStringNames::get_singleton()->_enter_world);
}
+
#ifdef TOOLS_ENABLED
if (Engine::get_singleton()->is_editor_hint() && get_tree()->is_node_being_edited(this)) {
get_tree()->call_group_flags(0, SceneStringNames::get_singleton()->_spatial_editor_group, SceneStringNames::get_singleton()->_request_gizmo, this);
@@ -186,7 +191,6 @@ void Node3D::_notification(int p_what) {
}
}
#endif
-
} break;
case NOTIFICATION_EXIT_WORLD: {
#ifdef TOOLS_ENABLED
@@ -321,6 +325,14 @@ void Node3D::set_rotation_edit_mode(RotationEditMode p_mode) {
return;
}
data.rotation_edit_mode = p_mode;
+
+ // Shearing is not allowed except in ROTATION_EDIT_MODE_BASIS.
+ data.dirty |= DIRTY_LOCAL;
+ _propagate_transform_changed(this);
+ if (data.notify_local_transform) {
+ notification(NOTIFICATION_LOCAL_TRANSFORM_CHANGED);
+ }
+
notify_property_list_changed();
}
@@ -456,7 +468,6 @@ void Node3D::clear_subgizmo_selection() {
void Node3D::add_gizmo(Ref<Node3DGizmo> p_gizmo) {
#ifdef TOOLS_ENABLED
-
if (data.gizmos_disabled || p_gizmo.is_null()) {
return;
}
@@ -474,7 +485,6 @@ void Node3D::add_gizmo(Ref<Node3DGizmo> p_gizmo) {
void Node3D::remove_gizmo(Ref<Node3DGizmo> p_gizmo) {
#ifdef TOOLS_ENABLED
-
int idx = data.gizmos.find(p_gizmo);
if (idx != -1) {
p_gizmo->free();
@@ -506,10 +516,8 @@ Array Node3D::get_gizmos_bind() const {
Vector<Ref<Node3DGizmo>> Node3D::get_gizmos() const {
#ifdef TOOLS_ENABLED
-
return data.gizmos;
#else
-
return Vector<Ref<Node3DGizmo>>();
#endif
}
@@ -561,7 +569,6 @@ void Node3D::set_as_top_level(bool p_enabled) {
data.top_level = p_enabled;
data.top_level_active = p_enabled;
-
} else {
data.top_level = p_enabled;
}
@@ -581,6 +588,7 @@ Ref<World3D> Node3D::get_world_3d() const {
void Node3D::_propagate_visibility_changed() {
notification(NOTIFICATION_VISIBILITY_CHANGED);
emit_signal(SceneStringNames::get_singleton()->visibility_changed);
+
#ifdef TOOLS_ENABLED
if (!data.gizmos.is_empty()) {
data.gizmos_dirty = true;
@@ -597,33 +605,30 @@ void Node3D::_propagate_visibility_changed() {
}
void Node3D::show() {
- if (data.visible) {
- return;
- }
-
- data.visible = true;
-
- if (!is_inside_tree()) {
- return;
- }
-
- _propagate_visibility_changed();
+ set_visible(true);
}
void Node3D::hide() {
- if (!data.visible) {
+ set_visible(false);
+}
+
+void Node3D::set_visible(bool p_visible) {
+ if (data.visible == p_visible) {
return;
}
- data.visible = false;
+ data.visible = p_visible;
if (!is_inside_tree()) {
return;
}
-
_propagate_visibility_changed();
}
+bool Node3D::is_visible() const {
+ return data.visible;
+}
+
bool Node3D::is_visible_in_tree() const {
const Node3D *s = this;
@@ -637,18 +642,6 @@ bool Node3D::is_visible_in_tree() const {
return true;
}
-void Node3D::set_visible(bool p_visible) {
- if (p_visible) {
- show();
- } else {
- hide();
- }
-}
-
-bool Node3D::is_visible() const {
- return data.visible;
-}
-
void Node3D::rotate_object_local(const Vector3 &p_axis, real_t p_angle) {
Transform3D t = get_transform();
t.basis.rotate_local(p_axis, p_angle);
@@ -757,16 +750,16 @@ Vector3 Node3D::to_global(Vector3 p_local) const {
return get_global_transform().xform(p_local);
}
-void Node3D::set_notify_transform(bool p_enable) {
- data.notify_transform = p_enable;
+void Node3D::set_notify_transform(bool p_enabled) {
+ data.notify_transform = p_enabled;
}
bool Node3D::is_transform_notification_enabled() const {
return data.notify_transform;
}
-void Node3D::set_notify_local_transform(bool p_enable) {
- data.notify_local_transform = p_enable;
+void Node3D::set_notify_local_transform(bool p_enabled) {
+ data.notify_local_transform = p_enabled;
}
bool Node3D::is_local_transform_notification_enabled() const {
@@ -845,6 +838,64 @@ void Node3D::_validate_property(PropertyInfo &property) const {
}
}
+bool Node3D::property_can_revert(const String &p_name) {
+ if (p_name == "basis") {
+ return true;
+ } else if (p_name == "scale") {
+ return true;
+ } else if (p_name == "quaternion") {
+ return true;
+ } else if (p_name == "rotation") {
+ return true;
+ } else if (p_name == "position") {
+ return true;
+ }
+ return false;
+}
+
+Variant Node3D::property_get_revert(const String &p_name) {
+ Variant r_ret;
+ bool valid = false;
+
+ if (p_name == "basis") {
+ Variant variant = PropertyUtils::get_property_default_value(this, "transform", &valid);
+ if (valid && variant.get_type() == Variant::Type::TRANSFORM3D) {
+ r_ret = Transform3D(variant).get_basis();
+ } else {
+ r_ret = Basis();
+ }
+ } else if (p_name == "scale") {
+ Variant variant = PropertyUtils::get_property_default_value(this, "transform", &valid);
+ if (valid && variant.get_type() == Variant::Type::TRANSFORM3D) {
+ r_ret = Transform3D(variant).get_basis().get_scale();
+ } else {
+ return Vector3(1.0, 1.0, 1.0);
+ }
+ } else if (p_name == "quaternion") {
+ Variant variant = PropertyUtils::get_property_default_value(this, "transform", &valid);
+ if (valid && variant.get_type() == Variant::Type::TRANSFORM3D) {
+ r_ret = Quaternion(Transform3D(variant).get_basis());
+ } else {
+ return Quaternion();
+ }
+ } else if (p_name == "rotation") {
+ Variant variant = PropertyUtils::get_property_default_value(this, "transform", &valid);
+ if (valid && variant.get_type() == Variant::Type::TRANSFORM3D) {
+ r_ret = Transform3D(variant).get_basis().get_euler_normalized(data.rotation_order);
+ } else {
+ return Vector3();
+ }
+ } else if (p_name == "position") {
+ Variant variant = PropertyUtils::get_property_default_value(this, "transform", &valid);
+ if (valid) {
+ r_ret = Transform3D(variant).get_origin();
+ } else {
+ return Vector3();
+ }
+ }
+ return r_ret;
+}
+
void Node3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_transform", "local"), &Node3D::set_transform);
ClassDB::bind_method(D_METHOD("get_transform"), &Node3D::get_transform);
@@ -916,6 +967,9 @@ void Node3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("to_local", "global_point"), &Node3D::to_local);
ClassDB::bind_method(D_METHOD("to_global", "local_point"), &Node3D::to_global);
+ ClassDB::bind_method(D_METHOD("property_can_revert", "name"), &Node3D::property_can_revert);
+ ClassDB::bind_method(D_METHOD("property_get_revert", "name"), &Node3D::property_get_revert);
+
BIND_CONSTANT(NOTIFICATION_TRANSFORM_CHANGED);
BIND_CONSTANT(NOTIFICATION_ENTER_WORLD);
BIND_CONSTANT(NOTIFICATION_EXIT_WORLD);
@@ -934,6 +988,7 @@ void Node3D::_bind_methods() {
//ADD_PROPERTY( PropertyInfo(Variant::TRANSFORM3D,"transform/global",PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR ), "set_global_transform", "get_global_transform") ;
ADD_GROUP("Transform", "");
+ ADD_PROPERTY(PropertyInfo(Variant::TRANSFORM3D, "transform", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR), "set_transform", "get_transform");
ADD_PROPERTY(PropertyInfo(Variant::TRANSFORM3D, "global_transform", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_global_transform", "get_global_transform");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "position", PROPERTY_HINT_RANGE, "-99999,99999,0,or_greater,or_lesser,noslider,suffix:m", PROPERTY_USAGE_EDITOR), "set_position", "get_position");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "rotation", PROPERTY_HINT_RANGE, "-360,360,0.1,or_lesser,or_greater,radians", PROPERTY_USAGE_EDITOR), "set_rotation", "get_rotation");
@@ -943,7 +998,6 @@ void Node3D::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::INT, "rotation_edit_mode", PROPERTY_HINT_ENUM, "Euler,Quaternion,Basis"), "set_rotation_edit_mode", "get_rotation_edit_mode");
ADD_PROPERTY(PropertyInfo(Variant::INT, "rotation_order", PROPERTY_HINT_ENUM, "XYZ,XZY,YXZ,YZX,ZXY,ZYX"), "set_rotation_order", "get_rotation_order");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "top_level"), "set_as_top_level", "is_set_as_top_level");
- ADD_PROPERTY(PropertyInfo(Variant::TRANSFORM3D, "transform", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR), "set_transform", "get_transform");
ADD_GROUP("Visibility", "");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "visible"), "set_visible", "is_visible");
ADD_PROPERTY(PropertyInfo(Variant::NODE_PATH, "visibility_parent", PROPERTY_HINT_NODE_PATH_VALID_TYPES, "GeometryInstance3D"), "set_visibility_parent", "get_visibility_parent");
diff --git a/scene/3d/node_3d.h b/scene/3d/node_3d.h
index 3e21eb12be..4abda66187 100644
--- a/scene/3d/node_3d.h
+++ b/scene/3d/node_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -137,6 +137,9 @@ protected:
virtual void _validate_property(PropertyInfo &property) const override;
+ bool property_can_revert(const String &p_name);
+ Variant property_get_revert(const String &p_name);
+
public:
enum {
NOTIFICATION_TRANSFORM_CHANGED = SceneTree::NOTIFICATION_TRANSFORM_CHANGED,
@@ -182,12 +185,6 @@ public:
virtual bool is_transform_gizmo_visible() const { return data.transform_gizmo_visible; };
#endif
- void set_as_top_level(bool p_enabled);
- bool is_set_as_top_level() const;
-
- void set_disable_scale(bool p_enabled);
- bool is_scale_disabled() const;
-
void set_disable_gizmos(bool p_enabled);
void update_gizmos();
void set_subgizmo_selection(Ref<Node3DGizmo> p_gizmo, int p_id, Transform3D p_transform = Transform3D());
@@ -198,6 +195,12 @@ public:
void remove_gizmo(Ref<Node3DGizmo> p_gizmo);
void clear_gizmos();
+ void set_as_top_level(bool p_enabled);
+ bool is_set_as_top_level() const;
+
+ void set_disable_scale(bool p_enabled);
+ bool is_scale_disabled() const;
+
_FORCE_INLINE_ bool is_inside_world() const { return data.inside_world; }
Transform3D get_relative_transform(const Node *p_parent) const;
@@ -223,19 +226,19 @@ public:
Vector3 to_local(Vector3 p_global) const;
Vector3 to_global(Vector3 p_local) const;
- void set_notify_transform(bool p_enable);
+ void set_notify_transform(bool p_enabled);
bool is_transform_notification_enabled() const;
- void set_notify_local_transform(bool p_enable);
+ void set_notify_local_transform(bool p_enabled);
bool is_local_transform_notification_enabled() const;
void orthonormalize();
void set_identity();
void set_visible(bool p_visible);
- bool is_visible() const;
void show();
void hide();
+ bool is_visible() const;
bool is_visible_in_tree() const;
void force_update_transform();
diff --git a/scene/3d/occluder_instance_3d.cpp b/scene/3d/occluder_instance_3d.cpp
index ac22239d70..e0e2eae4a5 100644
--- a/scene/3d/occluder_instance_3d.cpp
+++ b/scene/3d/occluder_instance_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/occluder_instance_3d.h b/scene/3d/occluder_instance_3d.h
index 173614b80c..8a8d4c9af4 100644
--- a/scene/3d/occluder_instance_3d.h
+++ b/scene/3d/occluder_instance_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/path_3d.cpp b/scene/3d/path_3d.cpp
index a0eac76e39..6e1c9ef781 100644
--- a/scene/3d/path_3d.cpp
+++ b/scene/3d/path_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/path_3d.h b/scene/3d/path_3d.h
index 1ffe291100..32ca5a1beb 100644
--- a/scene/3d/path_3d.h
+++ b/scene/3d/path_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/physics_body_3d.cpp b/scene/3d/physics_body_3d.cpp
index b65f3e0e75..b3192a5bb5 100644
--- a/scene/3d/physics_body_3d.cpp
+++ b/scene/3d/physics_body_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/physics_body_3d.h b/scene/3d/physics_body_3d.h
index beed8a6b36..e37b841117 100644
--- a/scene/3d/physics_body_3d.h
+++ b/scene/3d/physics_body_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/position_3d.cpp b/scene/3d/position_3d.cpp
index 9747465103..7dc1b1ace0 100644
--- a/scene/3d/position_3d.cpp
+++ b/scene/3d/position_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/position_3d.h b/scene/3d/position_3d.h
index 065b14c3bd..5514399e6e 100644
--- a/scene/3d/position_3d.h
+++ b/scene/3d/position_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/ray_cast_3d.cpp b/scene/3d/ray_cast_3d.cpp
index bfa397a1f5..d2ba6809b3 100644
--- a/scene/3d/ray_cast_3d.cpp
+++ b/scene/3d/ray_cast_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/ray_cast_3d.h b/scene/3d/ray_cast_3d.h
index 5c2a61c35b..a580afe8db 100644
--- a/scene/3d/ray_cast_3d.h
+++ b/scene/3d/ray_cast_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/reflection_probe.cpp b/scene/3d/reflection_probe.cpp
index f7f19596a7..be655e71db 100644
--- a/scene/3d/reflection_probe.cpp
+++ b/scene/3d/reflection_probe.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -76,13 +76,13 @@ float ReflectionProbe::get_max_distance() const {
return max_distance;
}
-void ReflectionProbe::set_lod_threshold(float p_pixels) {
- lod_threshold = p_pixels;
- RS::get_singleton()->reflection_probe_set_lod_threshold(probe, p_pixels);
+void ReflectionProbe::set_mesh_lod_threshold(float p_pixels) {
+ mesh_lod_threshold = p_pixels;
+ RS::get_singleton()->reflection_probe_set_mesh_lod_threshold(probe, p_pixels);
}
-float ReflectionProbe::get_lod_threshold() const {
- return lod_threshold;
+float ReflectionProbe::get_mesh_lod_threshold() const {
+ return mesh_lod_threshold;
}
void ReflectionProbe::set_extents(const Vector3 &p_extents) {
@@ -207,8 +207,8 @@ void ReflectionProbe::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_max_distance", "max_distance"), &ReflectionProbe::set_max_distance);
ClassDB::bind_method(D_METHOD("get_max_distance"), &ReflectionProbe::get_max_distance);
- ClassDB::bind_method(D_METHOD("set_lod_threshold", "ratio"), &ReflectionProbe::set_lod_threshold);
- ClassDB::bind_method(D_METHOD("get_lod_threshold"), &ReflectionProbe::get_lod_threshold);
+ ClassDB::bind_method(D_METHOD("set_mesh_lod_threshold", "ratio"), &ReflectionProbe::set_mesh_lod_threshold);
+ ClassDB::bind_method(D_METHOD("get_mesh_lod_threshold"), &ReflectionProbe::get_mesh_lod_threshold);
ClassDB::bind_method(D_METHOD("set_extents", "extents"), &ReflectionProbe::set_extents);
ClassDB::bind_method(D_METHOD("get_extents"), &ReflectionProbe::get_extents);
@@ -240,7 +240,7 @@ void ReflectionProbe::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "interior"), "set_as_interior", "is_set_as_interior");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "enable_shadows"), "set_enable_shadows", "are_shadows_enabled");
ADD_PROPERTY(PropertyInfo(Variant::INT, "cull_mask", PROPERTY_HINT_LAYERS_3D_RENDER), "set_cull_mask", "get_cull_mask");
- ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "lod_threshold", PROPERTY_HINT_RANGE, "0,1024,0.1"), "set_lod_threshold", "get_lod_threshold");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "mesh_lod_threshold", PROPERTY_HINT_RANGE, "0,1024,0.1"), "set_mesh_lod_threshold", "get_mesh_lod_threshold");
ADD_GROUP("Ambient", "ambient_");
ADD_PROPERTY(PropertyInfo(Variant::INT, "ambient_mode", PROPERTY_HINT_ENUM, "Disabled,Environment,Constant Color"), "set_ambient_mode", "get_ambient_mode");
diff --git a/scene/3d/reflection_probe.h b/scene/3d/reflection_probe.h
index d1b9b12f65..d0643496a4 100644
--- a/scene/3d/reflection_probe.h
+++ b/scene/3d/reflection_probe.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -60,7 +60,7 @@ private:
AmbientMode ambient_mode = AMBIENT_ENVIRONMENT;
Color ambient_color = Color(0, 0, 0);
float ambient_color_energy = 1.0;
- float lod_threshold = 1.0;
+ float mesh_lod_threshold = 1.0;
uint32_t cull_mask = (1 << 20) - 1;
UpdateMode update_mode = UPDATE_ONCE;
@@ -88,8 +88,8 @@ public:
void set_max_distance(float p_distance);
float get_max_distance() const;
- void set_lod_threshold(float p_pixels);
- float get_lod_threshold() const;
+ void set_mesh_lod_threshold(float p_pixels);
+ float get_mesh_lod_threshold() const;
void set_extents(const Vector3 &p_extents);
Vector3 get_extents() const;
diff --git a/scene/3d/remote_transform_3d.cpp b/scene/3d/remote_transform_3d.cpp
index d890609e23..2770b6f40c 100644
--- a/scene/3d/remote_transform_3d.cpp
+++ b/scene/3d/remote_transform_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/remote_transform_3d.h b/scene/3d/remote_transform_3d.h
index 321bd3b51e..03bb253578 100644
--- a/scene/3d/remote_transform_3d.h
+++ b/scene/3d/remote_transform_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/skeleton_3d.cpp b/scene/3d/skeleton_3d.cpp
index 85ef532459..3957a1653f 100644
--- a/scene/3d/skeleton_3d.cpp
+++ b/scene/3d/skeleton_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/skeleton_3d.h b/scene/3d/skeleton_3d.h
index f7bc3df94e..80ff2a1f79 100644
--- a/scene/3d/skeleton_3d.h
+++ b/scene/3d/skeleton_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/skeleton_ik_3d.cpp b/scene/3d/skeleton_ik_3d.cpp
index 1498955ec0..6089c785a2 100644
--- a/scene/3d/skeleton_ik_3d.cpp
+++ b/scene/3d/skeleton_ik_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/skeleton_ik_3d.h b/scene/3d/skeleton_ik_3d.h
index ccb25bcd4c..3ced5c49d3 100644
--- a/scene/3d/skeleton_ik_3d.h
+++ b/scene/3d/skeleton_ik_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/soft_dynamic_body_3d.cpp b/scene/3d/soft_dynamic_body_3d.cpp
index d9907430fc..8ee777bcbf 100644
--- a/scene/3d/soft_dynamic_body_3d.cpp
+++ b/scene/3d/soft_dynamic_body_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/soft_dynamic_body_3d.h b/scene/3d/soft_dynamic_body_3d.h
index daef9acac0..c30ec701c7 100644
--- a/scene/3d/soft_dynamic_body_3d.h
+++ b/scene/3d/soft_dynamic_body_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/spring_arm_3d.cpp b/scene/3d/spring_arm_3d.cpp
index 0b5af8823b..e0cd44e05b 100644
--- a/scene/3d/spring_arm_3d.cpp
+++ b/scene/3d/spring_arm_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/spring_arm_3d.h b/scene/3d/spring_arm_3d.h
index 63505ab9d3..b247ea1707 100644
--- a/scene/3d/spring_arm_3d.h
+++ b/scene/3d/spring_arm_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp
index 09f0187147..2b4ddce0e2 100644
--- a/scene/3d/sprite_3d.cpp
+++ b/scene/3d/sprite_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/sprite_3d.h b/scene/3d/sprite_3d.h
index 61448c0e32..6a61219edf 100644
--- a/scene/3d/sprite_3d.h
+++ b/scene/3d/sprite_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/vehicle_body_3d.cpp b/scene/3d/vehicle_body_3d.cpp
index 5b2d01f8df..a5fd3a7dd0 100644
--- a/scene/3d/vehicle_body_3d.cpp
+++ b/scene/3d/vehicle_body_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/vehicle_body_3d.h b/scene/3d/vehicle_body_3d.h
index eb6923df54..d2371d819b 100644
--- a/scene/3d/vehicle_body_3d.h
+++ b/scene/3d/vehicle_body_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/velocity_tracker_3d.cpp b/scene/3d/velocity_tracker_3d.cpp
index 200664a41b..5bfe519440 100644
--- a/scene/3d/velocity_tracker_3d.cpp
+++ b/scene/3d/velocity_tracker_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/velocity_tracker_3d.h b/scene/3d/velocity_tracker_3d.h
index 827c3f5bd8..7fdcacc9c1 100644
--- a/scene/3d/velocity_tracker_3d.h
+++ b/scene/3d/velocity_tracker_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/visible_on_screen_notifier_3d.cpp b/scene/3d/visible_on_screen_notifier_3d.cpp
index 3d0bc3df9c..44d2a3e03f 100644
--- a/scene/3d/visible_on_screen_notifier_3d.cpp
+++ b/scene/3d/visible_on_screen_notifier_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/visible_on_screen_notifier_3d.h b/scene/3d/visible_on_screen_notifier_3d.h
index fb7137c4f0..852c7e2ed3 100644
--- a/scene/3d/visible_on_screen_notifier_3d.h
+++ b/scene/3d/visible_on_screen_notifier_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/visual_instance_3d.cpp b/scene/3d/visual_instance_3d.cpp
index d407592376..0db2fe9fc6 100644
--- a/scene/3d/visual_instance_3d.cpp
+++ b/scene/3d/visual_instance_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -152,6 +152,15 @@ Ref<Material> GeometryInstance3D::get_material_override() const {
return material_override;
}
+void GeometryInstance3D::set_material_overlay(const Ref<Material> &p_material) {
+ material_overlay = p_material;
+ RS::get_singleton()->instance_geometry_set_material_overlay(get_instance(), p_material.is_valid() ? p_material->get_rid() : RID());
+}
+
+Ref<Material> GeometryInstance3D::get_material_overlay() const {
+ return material_overlay;
+}
+
void GeometryInstance3D::set_transparecy(float p_transparency) {
transparency = CLAMP(p_transparency, 0.0f, 1.0f);
RS::get_singleton()->instance_geometry_set_transparency(get_instance(), transparency);
@@ -184,6 +193,7 @@ float GeometryInstance3D::get_visibility_range_end() const {
void GeometryInstance3D::set_visibility_range_begin_margin(float p_dist) {
visibility_range_begin_margin = p_dist;
RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode);
+ update_configuration_warnings();
}
float GeometryInstance3D::get_visibility_range_begin_margin() const {
@@ -193,6 +203,7 @@ float GeometryInstance3D::get_visibility_range_begin_margin() const {
void GeometryInstance3D::set_visibility_range_end_margin(float p_dist) {
visibility_range_end_margin = p_dist;
RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode);
+ update_configuration_warnings();
}
float GeometryInstance3D::get_visibility_range_end_margin() const {
@@ -202,6 +213,7 @@ float GeometryInstance3D::get_visibility_range_end_margin() const {
void GeometryInstance3D::set_visibility_range_fade_mode(VisibilityRangeFadeMode p_mode) {
visibility_range_fade_mode = p_mode;
RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode);
+ update_configuration_warnings();
}
GeometryInstance3D::VisibilityRangeFadeMode GeometryInstance3D::get_visibility_range_fade_mode() const {
@@ -380,6 +392,14 @@ TypedArray<String> GeometryInstance3D::get_configuration_warnings() const {
warnings.push_back(TTR("The GeometryInstance3D visibility range's End distance is set to a non-zero value, but is lower than the Begin distance.\nThis means the GeometryInstance3D will never be visible.\nTo resolve this, set the End distance to 0 or to a value greater than the Begin distance."));
}
+ if ((visibility_range_fade_mode == VISIBILITY_RANGE_FADE_SELF || visibility_range_fade_mode == VISIBILITY_RANGE_FADE_DEPENDENCIES) && !Math::is_zero_approx(visibility_range_begin) && Math::is_zero_approx(visibility_range_begin_margin)) {
+ warnings.push_back(TTR("The GeometryInstance3D is configured to fade in smoothly over distance, but the fade transition distance is set to 0.\nTo resolve this, increase Visibility Range Begin Margin above 0."));
+ }
+
+ if ((visibility_range_fade_mode == VISIBILITY_RANGE_FADE_SELF || visibility_range_fade_mode == VISIBILITY_RANGE_FADE_DEPENDENCIES) && !Math::is_zero_approx(visibility_range_end) && Math::is_zero_approx(visibility_range_end_margin)) {
+ warnings.push_back(TTR("The GeometryInstance3D is configured to fade out smoothly over distance, but the fade transition distance is set to 0.\nTo resolve this, increase Visibility Range End Margin above 0."));
+ }
+
return warnings;
}
@@ -387,6 +407,9 @@ void GeometryInstance3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_material_override", "material"), &GeometryInstance3D::set_material_override);
ClassDB::bind_method(D_METHOD("get_material_override"), &GeometryInstance3D::get_material_override);
+ ClassDB::bind_method(D_METHOD("set_material_overlay", "material"), &GeometryInstance3D::set_material_overlay);
+ ClassDB::bind_method(D_METHOD("get_material_overlay"), &GeometryInstance3D::get_material_overlay);
+
ClassDB::bind_method(D_METHOD("set_cast_shadows_setting", "shadow_casting_setting"), &GeometryInstance3D::set_cast_shadows_setting);
ClassDB::bind_method(D_METHOD("get_cast_shadows_setting"), &GeometryInstance3D::get_cast_shadows_setting);
@@ -432,6 +455,7 @@ void GeometryInstance3D::_bind_methods() {
ADD_GROUP("Geometry", "");
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "material_override", PROPERTY_HINT_RESOURCE_TYPE, "BaseMaterial3D,ShaderMaterial", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_DEFERRED_SET_RESOURCE), "set_material_override", "get_material_override");
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "material_overlay", PROPERTY_HINT_RESOURCE_TYPE, "BaseMaterial3D,ShaderMaterial", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_DEFERRED_SET_RESOURCE), "set_material_overlay", "get_material_overlay");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "transparency", PROPERTY_HINT_RANGE, "0.0,1.0,0.01"), "set_transparency", "get_transparency");
ADD_PROPERTY(PropertyInfo(Variant::INT, "cast_shadow", PROPERTY_HINT_ENUM, "Off,On,Double-Sided,Shadows Only"), "set_cast_shadows_setting", "get_cast_shadows_setting");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "extra_cull_margin", PROPERTY_HINT_RANGE, "0,16384,0.01"), "set_extra_cull_margin", "get_extra_cull_margin");
diff --git a/scene/3d/visual_instance_3d.h b/scene/3d/visual_instance_3d.h
index acdbc4666a..dd0eb25001 100644
--- a/scene/3d/visual_instance_3d.h
+++ b/scene/3d/visual_instance_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -110,6 +110,7 @@ public:
private:
ShadowCastingSetting shadow_casting_setting = SHADOW_CASTING_SETTING_ON;
Ref<Material> material_override;
+ Ref<Material> material_overlay;
float visibility_range_begin = 0.0;
float visibility_range_end = 0.0;
@@ -164,6 +165,9 @@ public:
void set_material_override(const Ref<Material> &p_material);
Ref<Material> get_material_override() const;
+ void set_material_overlay(const Ref<Material> &p_material);
+ Ref<Material> get_material_overlay() const;
+
void set_extra_cull_margin(float p_margin);
float get_extra_cull_margin() const;
diff --git a/scene/3d/voxel_gi.cpp b/scene/3d/voxel_gi.cpp
index c7108cbae0..35ac1792e9 100644
--- a/scene/3d/voxel_gi.cpp
+++ b/scene/3d/voxel_gi.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -227,7 +227,7 @@ void VoxelGIData::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "_data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR | PROPERTY_USAGE_INTERNAL), "_set_data", "_get_data");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "dynamic_range", PROPERTY_HINT_RANGE, "0,8,0.01"), "set_dynamic_range", "get_dynamic_range");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "dynamic_range", PROPERTY_HINT_RANGE, "1,8,0.01"), "set_dynamic_range", "get_dynamic_range");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "energy", PROPERTY_HINT_RANGE, "0,64,0.01"), "set_energy", "get_energy");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "bias", PROPERTY_HINT_RANGE, "0,8,0.01"), "set_bias", "get_bias");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "normal_bias", PROPERTY_HINT_RANGE, "0,8,0.01"), "set_normal_bias", "get_normal_bias");
diff --git a/scene/3d/voxel_gi.h b/scene/3d/voxel_gi.h
index 5d0dda1ba3..3678bd4f3b 100644
--- a/scene/3d/voxel_gi.h
+++ b/scene/3d/voxel_gi.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -45,7 +45,7 @@ class VoxelGIData : public Resource {
AABB bounds;
Vector3 octree_size;
- float dynamic_range = 4.0;
+ float dynamic_range = 2.0;
float energy = 1.0;
float bias = 1.5;
float normal_bias = 0.0;
diff --git a/scene/3d/voxelizer.cpp b/scene/3d/voxelizer.cpp
index aa1236521d..f56e3caa4b 100644
--- a/scene/3d/voxelizer.cpp
+++ b/scene/3d/voxelizer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/voxelizer.h b/scene/3d/voxelizer.h
index 09c126bc4e..dc7569d17c 100644
--- a/scene/3d/voxelizer.h
+++ b/scene/3d/voxelizer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/world_environment.cpp b/scene/3d/world_environment.cpp
index 4eeb987dde..98f28a8cff 100644
--- a/scene/3d/world_environment.cpp
+++ b/scene/3d/world_environment.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/world_environment.h b/scene/3d/world_environment.h
index 310d1e96a5..8dbb57364c 100644
--- a/scene/3d/world_environment.h
+++ b/scene/3d/world_environment.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/xr_nodes.cpp b/scene/3d/xr_nodes.cpp
index a16820cbdc..a054f35d2e 100644
--- a/scene/3d/xr_nodes.cpp
+++ b/scene/3d/xr_nodes.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/3d/xr_nodes.h b/scene/3d/xr_nodes.h
index 5e7d06093d..8e1ef1a4fb 100644
--- a/scene/3d/xr_nodes.h
+++ b/scene/3d/xr_nodes.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_blend_space_1d.cpp b/scene/animation/animation_blend_space_1d.cpp
index 9a71e7bf55..33939d4cd6 100644
--- a/scene/animation/animation_blend_space_1d.cpp
+++ b/scene/animation/animation_blend_space_1d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_blend_space_1d.h b/scene/animation/animation_blend_space_1d.h
index 6730c09fd4..7038cece06 100644
--- a/scene/animation/animation_blend_space_1d.h
+++ b/scene/animation/animation_blend_space_1d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_blend_space_2d.cpp b/scene/animation/animation_blend_space_2d.cpp
index 8b5203961f..f169e79751 100644
--- a/scene/animation/animation_blend_space_2d.cpp
+++ b/scene/animation/animation_blend_space_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_blend_space_2d.h b/scene/animation/animation_blend_space_2d.h
index a919fff1d2..1356656bf8 100644
--- a/scene/animation/animation_blend_space_2d.h
+++ b/scene/animation/animation_blend_space_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_blend_tree.cpp b/scene/animation/animation_blend_tree.cpp
index 8f644face5..2740103a4a 100644
--- a/scene/animation/animation_blend_tree.cpp
+++ b/scene/animation/animation_blend_tree.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_blend_tree.h b/scene/animation/animation_blend_tree.h
index e55dfb58ed..2acacd7396 100644
--- a/scene/animation/animation_blend_tree.h
+++ b/scene/animation/animation_blend_tree.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_node_state_machine.cpp b/scene/animation/animation_node_state_machine.cpp
index 31a1d4d64c..a23e1b689c 100644
--- a/scene/animation/animation_node_state_machine.cpp
+++ b/scene/animation/animation_node_state_machine.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_node_state_machine.h b/scene/animation/animation_node_state_machine.h
index 6f0e3107fd..b980556875 100644
--- a/scene/animation/animation_node_state_machine.h
+++ b/scene/animation/animation_node_state_machine.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp
index c4cb800c24..128c6cae8b 100644
--- a/scene/animation/animation_player.cpp
+++ b/scene/animation/animation_player.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -625,7 +625,7 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, double
pa->object->set_indexed(pa->subpath, value, &valid); //you are not speshul
#ifdef DEBUG_ENABLED
if (!valid) {
- ERR_PRINT("Failed setting track value '" + String(pa->owner->path) + "'. Check if property exists or the type of key is valid. Animation '" + a->get_name() + "' at node '" + get_path() + "'.");
+ ERR_PRINT("Failed setting track value '" + String(pa->owner->path) + "'. Check if the property exists or the type of key is valid. Animation '" + a->get_name() + "' at node '" + get_path() + "'.");
}
#endif
@@ -1070,8 +1070,24 @@ void AnimationPlayer::_animation_update_transforms() {
bool valid;
pa->object->set_indexed(pa->subpath, pa->value_accum, &valid); //you are not speshul
#ifdef DEBUG_ENABLED
+
if (!valid) {
- ERR_PRINT("Failed setting key at time " + rtos(playback.current.pos) + " in Animation '" + get_current_animation() + "' at Node '" + get_path() + "', Track '" + String(pa->owner->path) + "'. Check if property exists or the type of key is right for the property");
+ // Get subpath as string for printing the error
+ // Cannot use `String::join(Vector<String>)` because this is a vector of StringName
+ String key_debug;
+ if (pa->subpath.size() > 0) {
+ key_debug = pa->subpath[0];
+ for (int subpath_index = 1; subpath_index < pa->subpath.size(); ++subpath_index) {
+ key_debug += ".";
+ key_debug += pa->subpath[subpath_index];
+ }
+ }
+ ERR_PRINT("Failed setting key '" + key_debug +
+ "' at time " + rtos(playback.current.pos) +
+ " in Animation '" + get_current_animation() +
+ "' at Node '" + get_path() +
+ "', Track '" + String(pa->owner->path) +
+ "'. Check if the property exists or the type of key is right for the property.");
}
#endif
diff --git a/scene/animation/animation_player.h b/scene/animation/animation_player.h
index 1b07c086c0..c4fc69f370 100644
--- a/scene/animation/animation_player.h
+++ b/scene/animation/animation_player.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_tree.cpp b/scene/animation/animation_tree.cpp
index 1d4b5ebf06..a551417778 100644
--- a/scene/animation/animation_tree.cpp
+++ b/scene/animation/animation_tree.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/animation_tree.h b/scene/animation/animation_tree.h
index 6fc051fa41..11c9bcd4ef 100644
--- a/scene/animation/animation_tree.h
+++ b/scene/animation/animation_tree.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/easing_equations.h b/scene/animation/easing_equations.h
index c38d083b7f..6d246c7a93 100644
--- a/scene/animation/easing_equations.h
+++ b/scene/animation/easing_equations.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/root_motion_view.cpp b/scene/animation/root_motion_view.cpp
index 770996820d..0d44687588 100644
--- a/scene/animation/root_motion_view.cpp
+++ b/scene/animation/root_motion_view.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/root_motion_view.h b/scene/animation/root_motion_view.h
index d64c8bc675..e8b141c1fd 100644
--- a/scene/animation/root_motion_view.h
+++ b/scene/animation/root_motion_view.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp
index da933ae02d..a37c6f5355 100644
--- a/scene/animation/tween.cpp
+++ b/scene/animation/tween.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -260,10 +260,8 @@ bool Tween::step(float p_delta) {
}
if (is_bound) {
- Object *bound_instance = ObjectDB::get_instance(bound_node);
- if (bound_instance) {
- Node *bound_node = Object::cast_to<Node>(bound_instance);
- // This can't by anything else than Node, so we can omit checking if casting succeeded.
+ Node *bound_node = get_bound_node();
+ if (bound_node) {
if (!bound_node->is_inside_tree()) {
return true;
}
@@ -320,16 +318,23 @@ bool Tween::step(float p_delta) {
return true;
}
-bool Tween::should_pause() {
+bool Tween::can_process(bool p_tree_paused) const {
if (is_bound && pause_mode == TWEEN_PAUSE_BOUND) {
- Object *bound_instance = ObjectDB::get_instance(bound_node);
- if (bound_instance) {
- Node *bound_node = Object::cast_to<Node>(bound_instance);
- return !bound_node->can_process();
+ Node *bound_node = get_bound_node();
+ if (bound_node) {
+ return bound_node->can_process();
}
}
- return pause_mode != TWEEN_PAUSE_PROCESS;
+ return !p_tree_paused || pause_mode == TWEEN_PAUSE_PROCESS;
+}
+
+Node *Tween::get_bound_node() const {
+ if (is_bound) {
+ return Object::cast_to<Node>(ObjectDB::get_instance(bound_node));
+ } else {
+ return nullptr;
+ }
}
real_t Tween::run_equation(TransitionType p_trans_type, EaseType p_ease_type, real_t p_time, real_t p_initial, real_t p_delta, real_t p_duration) {
diff --git a/scene/animation/tween.h b/scene/animation/tween.h
index 6a48d332b8..5b0745b2b3 100644
--- a/scene/animation/tween.h
+++ b/scene/animation/tween.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -97,7 +97,7 @@ public:
private:
TweenProcessMode process_mode = TweenProcessMode::TWEEN_PROCESS_IDLE;
- TweenPauseMode pause_mode = TweenPauseMode::TWEEN_PAUSE_STOP;
+ TweenPauseMode pause_mode = TweenPauseMode::TWEEN_PAUSE_BOUND;
TransitionType default_transition = TransitionType::TRANS_LINEAR;
EaseType default_ease = EaseType::EASE_IN_OUT;
ObjectID bound_node;
@@ -164,7 +164,8 @@ public:
Variant calculate_delta_value(Variant p_intial_val, Variant p_final_val);
bool step(float p_delta);
- bool should_pause();
+ bool can_process(bool p_tree_paused) const;
+ Node *get_bound_node() const;
Tween() {}
};
diff --git a/scene/audio/audio_stream_player.cpp b/scene/audio/audio_stream_player.cpp
index 3da4f23a08..5f9d8a0d47 100644
--- a/scene/audio/audio_stream_player.cpp
+++ b/scene/audio/audio_stream_player.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/audio/audio_stream_player.h b/scene/audio/audio_stream_player.h
index 7205fce204..67e616312a 100644
--- a/scene/audio/audio_stream_player.h
+++ b/scene/audio/audio_stream_player.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/debugger/scene_debugger.cpp b/scene/debugger/scene_debugger.cpp
index e1594384d5..41340f281b 100644
--- a/scene/debugger/scene_debugger.cpp
+++ b/scene/debugger/scene_debugger.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/debugger/scene_debugger.h b/scene/debugger/scene_debugger.h
index 9d54556187..432317a423 100644
--- a/scene/debugger/scene_debugger.h
+++ b/scene/debugger/scene_debugger.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/aspect_ratio_container.cpp b/scene/gui/aspect_ratio_container.cpp
index 9526c5e793..181d1bf33b 100644
--- a/scene/gui/aspect_ratio_container.cpp
+++ b/scene/gui/aspect_ratio_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/aspect_ratio_container.h b/scene/gui/aspect_ratio_container.h
index 3cdfc75734..4a168bad14 100644
--- a/scene/gui/aspect_ratio_container.h
+++ b/scene/gui/aspect_ratio_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp
index 5f740ecaa0..eee7663b09 100644
--- a/scene/gui/base_button.cpp
+++ b/scene/gui/base_button.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/base_button.h b/scene/gui/base_button.h
index 3ea59c3ff9..0bcad4fc0e 100644
--- a/scene/gui/base_button.h
+++ b/scene/gui/base_button.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/box_container.cpp b/scene/gui/box_container.cpp
index 6aaa8433ec..9827bd0cef 100644
--- a/scene/gui/box_container.cpp
+++ b/scene/gui/box_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/box_container.h b/scene/gui/box_container.h
index 9bb26ec32c..68d55e1aaf 100644
--- a/scene/gui/box_container.h
+++ b/scene/gui/box_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/button.cpp b/scene/gui/button.cpp
index 8bb41e7abf..046b9c18c7 100644
--- a/scene/gui/button.cpp
+++ b/scene/gui/button.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -126,7 +126,8 @@ void Button::_notification(int p_what) {
}
} break;
case DRAW_HOVER_PRESSED: {
- if (has_theme_stylebox(SNAME("hover_pressed")) && has_theme_stylebox_override("hover_pressed")) {
+ // Edge case for CheckButton and CheckBox.
+ if (has_theme_stylebox("hover_pressed")) {
if (rtl && has_theme_stylebox(SNAME("hover_pressed_mirrored"))) {
style = get_theme_stylebox(SNAME("hover_pressed_mirrored"));
} else {
@@ -138,8 +139,6 @@ void Button::_notification(int p_what) {
}
if (has_theme_color(SNAME("font_hover_pressed_color"))) {
color = get_theme_color(SNAME("font_hover_pressed_color"));
- } else {
- color = get_theme_color(SNAME("font_color"));
}
if (has_theme_color(SNAME("icon_hover_pressed_color"))) {
color_icon = get_theme_color(SNAME("icon_hover_pressed_color"));
@@ -303,6 +302,8 @@ void Button::_notification(int p_what) {
Point2 text_ofs = (size - style->get_minimum_size() - icon_ofs - text_buf->get_size() - Point2(_internal_margin[SIDE_RIGHT] - _internal_margin[SIDE_LEFT], 0)) / 2.0;
+ text_buf->set_alignment(align_rtl_checked);
+ text_buf->set_width(text_width);
switch (align_rtl_checked) {
case HORIZONTAL_ALIGNMENT_FILL:
case HORIZONTAL_ALIGNMENT_LEFT: {
@@ -498,7 +499,7 @@ bool Button::_set(const StringName &p_name, const Variant &p_value) {
if (str.begins_with("opentype_features/")) {
String name = str.get_slicec('/', 1);
int32_t tag = TS->name_to_tag(name);
- double value = p_value;
+ int value = p_value;
if (value == -1) {
if (opentype_features.has(tag)) {
opentype_features.erase(tag);
@@ -506,7 +507,7 @@ bool Button::_set(const StringName &p_name, const Variant &p_value) {
update();
}
} else {
- if ((double)opentype_features[tag] != value) {
+ if (!opentype_features.has(tag) || (int)opentype_features[tag] != value) {
opentype_features[tag] = value;
_shape();
update();
@@ -538,7 +539,7 @@ bool Button::_get(const StringName &p_name, Variant &r_ret) const {
void Button::_get_property_list(List<PropertyInfo> *p_list) const {
for (const Variant *ftr = opentype_features.next(nullptr); ftr != nullptr; ftr = opentype_features.next(ftr)) {
String name = TS->tag_to_name(*ftr);
- p_list->push_back(PropertyInfo(Variant::FLOAT, "opentype_features/" + name));
+ p_list->push_back(PropertyInfo(Variant::INT, "opentype_features/" + name));
}
p_list->push_back(PropertyInfo(Variant::NIL, "opentype_features/_new", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR));
}
diff --git a/scene/gui/button.h b/scene/gui/button.h
index 92d86542a6..1abf86c986 100644
--- a/scene/gui/button.h
+++ b/scene/gui/button.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/center_container.cpp b/scene/gui/center_container.cpp
index e17552006f..f3306783f3 100644
--- a/scene/gui/center_container.cpp
+++ b/scene/gui/center_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/center_container.h b/scene/gui/center_container.h
index 0944f200fc..16a10c8070 100644
--- a/scene/gui/center_container.h
+++ b/scene/gui/center_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/check_box.cpp b/scene/gui/check_box.cpp
index 134766b05f..da2d4369d1 100644
--- a/scene/gui/check_box.cpp
+++ b/scene/gui/check_box.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/check_box.h b/scene/gui/check_box.h
index 9fb0aea218..735c7aedfe 100644
--- a/scene/gui/check_box.h
+++ b/scene/gui/check_box.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/check_button.cpp b/scene/gui/check_button.cpp
index 499bedda52..afb23a540b 100644
--- a/scene/gui/check_button.cpp
+++ b/scene/gui/check_button.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/check_button.h b/scene/gui/check_button.h
index 29c557ce89..5ba81a1027 100644
--- a/scene/gui/check_button.h
+++ b/scene/gui/check_button.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/code_edit.cpp b/scene/gui/code_edit.cpp
index ba37d51e24..398b909195 100644
--- a/scene/gui/code_edit.cpp
+++ b/scene/gui/code_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -143,7 +143,6 @@ void CodeEdit::_notification(int p_what) {
code_completion_line_ofs = CLAMP(code_completion_current_selected - lines / 2, 0, code_completion_options_count - lines);
RenderingServer::get_singleton()->canvas_item_add_rect(ci, Rect2(Point2(code_completion_rect.position.x, code_completion_rect.position.y + (code_completion_current_selected - code_completion_line_ofs) * row_height), Size2(code_completion_rect.size.width, row_height)), code_completion_selected_color);
- draw_rect(Rect2(code_completion_rect.position + Vector2(icon_area_size.x + icon_hsep, 0), Size2(MIN(code_completion_base_width, code_completion_rect.size.width - (icon_area_size.x + icon_hsep)), code_completion_rect.size.height)), code_completion_existing_color);
for (int i = 0; i < lines; i++) {
int l = code_completion_line_ofs + i;
@@ -177,6 +176,17 @@ void CodeEdit::_notification(int p_what) {
}
tl->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_LEFT);
}
+
+ Point2 match_pos = Point2(code_completion_rect.position.x + icon_area_size.x + icon_hsep, code_completion_rect.position.y + i * row_height);
+
+ for (int j = 0; j < code_completion_options[l].matches.size(); j++) {
+ Pair<int, int> match = code_completion_options[l].matches[j];
+ int match_offset = font->get_string_size(code_completion_options[l].display.substr(0, match.first), font_size).width;
+ int match_len = font->get_string_size(code_completion_options[l].display.substr(match.first, match.second), font_size).width;
+
+ draw_rect(Rect2(match_pos + Point2(match_offset, 0), Size2(match_len, row_height)), code_completion_existing_color);
+ }
+
tl->draw(ci, title_pos, code_completion_options[l].font_color);
}
@@ -2808,6 +2818,8 @@ void CodeEdit::_filter_code_completion_candidates_impl() {
code_completion_base = string_to_complete;
Vector<ScriptCodeCompletionOption> completion_options_casei;
+ Vector<ScriptCodeCompletionOption> completion_options_substr;
+ Vector<ScriptCodeCompletionOption> completion_options_substr_casei;
Vector<ScriptCodeCompletionOption> completion_options_subseq;
Vector<ScriptCodeCompletionOption> completion_options_subseq_casei;
@@ -2862,35 +2874,100 @@ void CodeEdit::_filter_code_completion_candidates_impl() {
const char32_t *tgt = &option.display[0];
const char32_t *tgt_lower = &display_lower[0];
- const char32_t *ssq_last_tgt = nullptr;
- const char32_t *ssq_lower_last_tgt = nullptr;
+ const char32_t *sst = &string_to_complete[0];
+ const char32_t *sst_lower = &display_lower[0];
+
+ Vector<Pair<int, int>> ssq_matches;
+ int ssq_match_start = 0;
+ int ssq_match_len = 0;
+
+ Vector<Pair<int, int>> ssq_lower_matches;
+ int ssq_lower_match_start = 0;
+ int ssq_lower_match_len = 0;
+
+ int sst_start = -1;
+ int sst_lower_start = -1;
+
+ for (int i = 0; *tgt; tgt++, tgt_lower++, i++) {
+ // Check substring.
+ if (*sst == *tgt) {
+ sst++;
+ if (sst_start == -1) {
+ sst_start = i;
+ }
+ } else if (sst_start != -1 && *sst) {
+ sst = &string_to_complete[0];
+ sst_start = -1;
+ }
- for (; *tgt; tgt++, tgt_lower++) {
+ // Check subsequence.
if (*ssq == *tgt) {
ssq++;
- ssq_last_tgt = tgt;
+ if (ssq_match_len == 0) {
+ ssq_match_start = i;
+ }
+ ssq_match_len++;
+ } else if (ssq_match_len > 0) {
+ ssq_matches.push_back(Pair<int, int>(ssq_match_start, ssq_match_len));
+ ssq_match_len = 0;
}
+
+ // Check lower substring.
+ if (*sst_lower == *tgt) {
+ sst_lower++;
+ if (sst_lower_start == -1) {
+ sst_lower_start = i;
+ }
+ } else if (sst_lower_start != -1 && *sst_lower) {
+ sst_lower = &string_to_complete[0];
+ sst_lower_start = -1;
+ }
+
+ // Check lower subsequence.
if (*ssq_lower == *tgt_lower) {
ssq_lower++;
- ssq_lower_last_tgt = tgt;
+ if (ssq_lower_match_len == 0) {
+ ssq_lower_match_start = i;
+ }
+ ssq_lower_match_len++;
+ } else if (ssq_lower_match_len > 0) {
+ ssq_lower_matches.push_back(Pair<int, int>(ssq_lower_match_start, ssq_lower_match_len));
+ ssq_lower_match_len = 0;
}
}
/* Matched the whole subsequence in s. */
- if (!*ssq) {
- /* Finished matching in the first s.length() characters. */
- if (ssq_last_tgt == &option.display[string_to_complete.length() - 1]) {
+ if (!*ssq) { // Matched the whole subsequence in s.
+ option.matches.clear();
+
+ if (sst_start == 0) { // Matched substring in beginning of s.
+ option.matches.push_back(Pair<int, int>(sst_start, string_to_complete.length()));
code_completion_options.push_back(option);
+ } else if (sst_start > 0) { // Matched substring in s.
+ option.matches.push_back(Pair<int, int>(sst_start, string_to_complete.length()));
+ completion_options_substr.push_back(option);
} else {
+ if (ssq_match_len > 0) {
+ ssq_matches.push_back(Pair<int, int>(ssq_match_start, ssq_match_len));
+ }
+ option.matches.append_array(ssq_matches);
completion_options_subseq.push_back(option);
}
max_width = MAX(max_width, font->get_string_size(option.display, font_size).width + offset);
- /* Matched the whole subsequence in s_lower. */
- } else if (!*ssq_lower) {
- /* Finished matching in the first s.length() characters. */
- if (ssq_lower_last_tgt == &option.display[string_to_complete.length() - 1]) {
+ } else if (!*ssq_lower) { // Matched the whole subsequence in s_lower.
+ option.matches.clear();
+
+ if (sst_lower_start == 0) { // Matched substring in beginning of s_lower.
+ option.matches.push_back(Pair<int, int>(sst_lower_start, string_to_complete.length()));
completion_options_casei.push_back(option);
+ } else if (sst_lower_start > 0) { // Matched substring in s_lower.
+ option.matches.push_back(Pair<int, int>(sst_lower_start, string_to_complete.length()));
+ completion_options_substr_casei.push_back(option);
} else {
+ if (ssq_lower_match_len > 0) {
+ ssq_lower_matches.push_back(Pair<int, int>(ssq_lower_match_start, ssq_lower_match_len));
+ }
+ option.matches.append_array(ssq_lower_matches);
completion_options_subseq_casei.push_back(option);
}
max_width = MAX(max_width, font->get_string_size(option.display, font_size).width + offset);
@@ -2990,7 +3067,7 @@ CodeEdit::CodeEdit() {
add_auto_brace_completion_pair("\"", "\"");
add_auto_brace_completion_pair("\'", "\'");
- /* Delimiter traking */
+ /* Delimiter tracking */
add_string_delimiter("\"", "\"", false);
add_string_delimiter("\'", "\'", false);
diff --git a/scene/gui/code_edit.h b/scene/gui/code_edit.h
index f0d971dd35..cb1309ced3 100644
--- a/scene/gui/code_edit.h
+++ b/scene/gui/code_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp
index 63ffe7bf95..36ea843d1e 100644
--- a/scene/gui/color_picker.cpp
+++ b/scene/gui/color_picker.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/color_picker.h b/scene/gui/color_picker.h
index ad4f5ad5b1..d6067b1cf4 100644
--- a/scene/gui/color_picker.h
+++ b/scene/gui/color_picker.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/color_rect.cpp b/scene/gui/color_rect.cpp
index e35d37d520..dbac1fc78a 100644
--- a/scene/gui/color_rect.cpp
+++ b/scene/gui/color_rect.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/color_rect.h b/scene/gui/color_rect.h
index 5c650f9f01..35c8ebcaf8 100644
--- a/scene/gui/color_rect.h
+++ b/scene/gui/color_rect.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/container.cpp b/scene/gui/container.cpp
index 81afa53d85..7b213ec314 100644
--- a/scene/gui/container.cpp
+++ b/scene/gui/container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/container.h b/scene/gui/container.h
index f3ae948556..0e986f46ef 100644
--- a/scene/gui/container.h
+++ b/scene/gui/container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index 1fdc30eb6d..69e6d74292 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -589,6 +589,7 @@ void Control::_notification(int p_notification) {
_size_changed();
} break;
case NOTIFICATION_EXIT_TREE: {
+ release_focus();
get_viewport()->_gui_remove_control(this);
} break;
case NOTIFICATION_READY: {
@@ -1148,12 +1149,12 @@ float Control::fetch_theme_default_base_scale(Control *p_theme_owner, Window *p_
Window *theme_owner_window = p_theme_owner_window;
while (theme_owner || theme_owner_window) {
- if (theme_owner && theme_owner->data.theme->has_default_theme_base_scale()) {
- return theme_owner->data.theme->get_default_theme_base_scale();
+ if (theme_owner && theme_owner->data.theme->has_default_base_scale()) {
+ return theme_owner->data.theme->get_default_base_scale();
}
- if (theme_owner_window && theme_owner_window->theme->has_default_theme_base_scale()) {
- return theme_owner_window->theme->get_default_theme_base_scale();
+ if (theme_owner_window && theme_owner_window->theme->has_default_base_scale()) {
+ return theme_owner_window->theme->get_default_base_scale();
}
Node *parent = theme_owner ? theme_owner->get_parent() : theme_owner_window->get_parent();
@@ -1175,13 +1176,16 @@ float Control::fetch_theme_default_base_scale(Control *p_theme_owner, Window *p_
// Secondly, check the project-defined Theme resource.
if (Theme::get_project_default().is_valid()) {
- if (Theme::get_project_default()->has_default_theme_base_scale()) {
- return Theme::get_project_default()->get_default_theme_base_scale();
+ if (Theme::get_project_default()->has_default_base_scale()) {
+ return Theme::get_project_default()->get_default_base_scale();
}
}
// Lastly, fall back on the default Theme.
- return Theme::get_default()->get_default_theme_base_scale();
+ if (Theme::get_default()->has_default_base_scale()) {
+ return Theme::get_default()->get_default_base_scale();
+ }
+ return Theme::get_fallback_base_scale();
}
float Control::get_theme_default_base_scale() const {
@@ -1196,12 +1200,12 @@ Ref<Font> Control::fetch_theme_default_font(Control *p_theme_owner, Window *p_th
Window *theme_owner_window = p_theme_owner_window;
while (theme_owner || theme_owner_window) {
- if (theme_owner && theme_owner->data.theme->has_default_theme_font()) {
- return theme_owner->data.theme->get_default_theme_font();
+ if (theme_owner && theme_owner->data.theme->has_default_font()) {
+ return theme_owner->data.theme->get_default_font();
}
- if (theme_owner_window && theme_owner_window->theme->has_default_theme_font()) {
- return theme_owner_window->theme->get_default_theme_font();
+ if (theme_owner_window && theme_owner_window->theme->has_default_font()) {
+ return theme_owner_window->theme->get_default_font();
}
Node *parent = theme_owner ? theme_owner->get_parent() : theme_owner_window->get_parent();
@@ -1223,13 +1227,16 @@ Ref<Font> Control::fetch_theme_default_font(Control *p_theme_owner, Window *p_th
// Secondly, check the project-defined Theme resource.
if (Theme::get_project_default().is_valid()) {
- if (Theme::get_project_default()->has_default_theme_font()) {
- return Theme::get_project_default()->get_default_theme_font();
+ if (Theme::get_project_default()->has_default_font()) {
+ return Theme::get_project_default()->get_default_font();
}
}
// Lastly, fall back on the default Theme.
- return Theme::get_default()->get_default_theme_font();
+ if (Theme::get_default()->has_default_font()) {
+ return Theme::get_default()->get_default_font();
+ }
+ return Theme::get_fallback_font();
}
Ref<Font> Control::get_theme_default_font() const {
@@ -1244,12 +1251,12 @@ int Control::fetch_theme_default_font_size(Control *p_theme_owner, Window *p_the
Window *theme_owner_window = p_theme_owner_window;
while (theme_owner || theme_owner_window) {
- if (theme_owner && theme_owner->data.theme->has_default_theme_font_size()) {
- return theme_owner->data.theme->get_default_theme_font_size();
+ if (theme_owner && theme_owner->data.theme->has_default_font_size()) {
+ return theme_owner->data.theme->get_default_font_size();
}
- if (theme_owner_window && theme_owner_window->theme->has_default_theme_font_size()) {
- return theme_owner_window->theme->get_default_theme_font_size();
+ if (theme_owner_window && theme_owner_window->theme->has_default_font_size()) {
+ return theme_owner_window->theme->get_default_font_size();
}
Node *parent = theme_owner ? theme_owner->get_parent() : theme_owner_window->get_parent();
@@ -1271,13 +1278,16 @@ int Control::fetch_theme_default_font_size(Control *p_theme_owner, Window *p_the
// Secondly, check the project-defined Theme resource.
if (Theme::get_project_default().is_valid()) {
- if (Theme::get_project_default()->has_default_theme_font_size()) {
- return Theme::get_project_default()->get_default_theme_font_size();
+ if (Theme::get_project_default()->has_default_font_size()) {
+ return Theme::get_project_default()->get_default_font_size();
}
}
// Lastly, fall back on the default Theme.
- return Theme::get_default()->get_default_theme_font_size();
+ if (Theme::get_default()->has_default_font_size()) {
+ return Theme::get_default()->get_default_font_size();
+ }
+ return Theme::get_fallback_font_size();
}
int Control::get_theme_default_font_size() const {
diff --git a/scene/gui/control.h b/scene/gui/control.h
index ae9ca1489a..bf79f790e7 100644
--- a/scene/gui/control.h
+++ b/scene/gui/control.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/dialogs.cpp b/scene/gui/dialogs.cpp
index f1725e57ea..1cbe3adb3c 100644
--- a/scene/gui/dialogs.cpp
+++ b/scene/gui/dialogs.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/dialogs.h b/scene/gui/dialogs.h
index 8e803a2a7c..1365b1df24 100644
--- a/scene/gui/dialogs.h
+++ b/scene/gui/dialogs.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp
index 08d5df3db8..f9b6b1274d 100644
--- a/scene/gui/file_dialog.cpp
+++ b/scene/gui/file_dialog.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -649,6 +649,7 @@ void FileDialog::clear_filters() {
}
void FileDialog::add_filter(const String &p_filter) {
+ ERR_FAIL_COND_MSG(p_filter.begins_with("."), "Filter must be \"filename.extension\", can't start with dot.");
filters.push_back(p_filter);
update_filters();
invalidate();
diff --git a/scene/gui/file_dialog.h b/scene/gui/file_dialog.h
index b5190bdab1..782d11afe1 100644
--- a/scene/gui/file_dialog.h
+++ b/scene/gui/file_dialog.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/gradient_edit.cpp b/scene/gui/gradient_edit.cpp
index b887499ad4..bec3d58384 100644
--- a/scene/gui/gradient_edit.cpp
+++ b/scene/gui/gradient_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/gradient_edit.h b/scene/gui/gradient_edit.h
index 1e2059c4e3..407f61f7c1 100644
--- a/scene/gui/gradient_edit.h
+++ b/scene/gui/gradient_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp
index a008ed7180..378bfb69dc 100644
--- a/scene/gui/graph_edit.cpp
+++ b/scene/gui/graph_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -600,6 +600,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) {
to = get_node(String(connecting_from)); //maybe it was erased
if (Object::cast_to<GraphNode>(to)) {
connecting = true;
+ emit_signal(SNAME("connection_drag_started"), connecting_from, connecting_index, false);
}
return;
}
@@ -616,6 +617,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) {
connecting_target = false;
connecting_to = pos;
just_disconnected = false;
+ emit_signal(SNAME("connection_drag_started"), connecting_from, connecting_index, true);
return;
}
}
@@ -642,6 +644,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) {
fr = get_node(String(connecting_from)); //maybe it was erased
if (Object::cast_to<GraphNode>(fr)) {
connecting = true;
+ emit_signal(SNAME("connection_drag_started"), connecting_from, connecting_index, true);
}
return;
}
@@ -658,7 +661,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) {
connecting_target = false;
connecting_to = pos;
just_disconnected = false;
-
+ emit_signal(SNAME("connection_drag_started"), connecting_from, connecting_index, false);
return;
}
}
@@ -740,11 +743,9 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) {
}
}
- connecting = false;
- top_layer->update();
- minimap->update();
- update();
- connections_layer->update();
+ if (connecting) {
+ force_connection_drag_end();
+ }
}
}
@@ -772,8 +773,9 @@ bool GraphEdit::_check_clickable_control(Control *p_control, const Vector2 &pos)
}
bool GraphEdit::is_in_input_hotzone(GraphNode *p_graph_node, int p_slot_index, const Vector2 &p_mouse_pos, const Vector2i &p_port_size) {
- if (get_script_instance() && get_script_instance()->has_method("_is_in_input_hotzone")) {
- return get_script_instance()->call("_is_in_input_hotzone", p_graph_node, p_slot_index, p_mouse_pos);
+ bool success;
+ if (GDVIRTUAL_CALL(_is_in_input_hotzone, p_graph_node, p_slot_index, p_mouse_pos, success)) {
+ return success;
} else {
Vector2 pos = p_graph_node->get_connection_input_position(p_slot_index) + p_graph_node->get_position();
return is_in_port_hotzone(pos / zoom, p_mouse_pos, p_port_size, true);
@@ -781,8 +783,9 @@ bool GraphEdit::is_in_input_hotzone(GraphNode *p_graph_node, int p_slot_index, c
}
bool GraphEdit::is_in_output_hotzone(GraphNode *p_graph_node, int p_slot_index, const Vector2 &p_mouse_pos, const Vector2i &p_port_size) {
- if (get_script_instance() && get_script_instance()->has_method("_is_in_output_hotzone")) {
- return get_script_instance()->call("_is_in_output_hotzone", p_graph_node, p_slot_index, p_mouse_pos);
+ bool success;
+ if (GDVIRTUAL_CALL(_is_in_output_hotzone, p_graph_node, p_slot_index, p_mouse_pos, success)) {
+ return success;
} else {
Vector2 pos = p_graph_node->get_connection_output_position(p_slot_index) + p_graph_node->get_position();
return is_in_port_hotzone(pos / zoom, p_mouse_pos, p_port_size, false);
@@ -1162,9 +1165,7 @@ void GraphEdit::gui_input(const Ref<InputEvent> &p_ev) {
minimap->update();
} else {
if (connecting) {
- connecting = false;
- top_layer->update();
- minimap->update();
+ force_connection_drag_end();
} else {
emit_signal(SNAME("popup_request"), get_screen_position() + b->get_position());
}
@@ -1394,6 +1395,17 @@ void GraphEdit::clear_connections() {
connections_layer->update();
}
+void GraphEdit::force_connection_drag_end() {
+ ERR_FAIL_COND_MSG(!connecting, "Drag end requested without active drag!");
+ connecting = false;
+ connecting_valid = false;
+ top_layer->update();
+ minimap->update();
+ update();
+ connections_layer->update();
+ emit_signal(SNAME("connection_drag_ended"));
+}
+
void GraphEdit::set_zoom(float p_zoom) {
set_zoom_custom(p_zoom, get_size() / 2);
}
@@ -1692,7 +1704,7 @@ int GraphEdit::_set_operations(SET_OPERATIONS p_operation, Set<StringName> &r_u,
r_u.insert(E->get());
}
}
- return r_v.size();
+ return r_u.size();
} break;
default:
break;
@@ -1787,8 +1799,8 @@ void GraphEdit::_horizontal_alignment(Dictionary &r_root, Dictionary &r_align, c
}
}
- int start = up.size() / 2;
- int end = up.size() % 2 ? start : start + 1;
+ int start = (up.size() - 1) / 2;
+ int end = (up.size() - 1) % 2 ? start + 1 : start;
for (int p = start; p <= end; p++) {
StringName Align = r_align[current_node];
if (Align == current_node && r < up[p].first) {
@@ -2107,7 +2119,7 @@ void GraphEdit::arrange_nodes() {
} while (u != E->get());
}
- //Compute horizontal co-ordinates individually for layers to get uniform gap
+ // Compute horizontal coordinates individually for layers to get uniform gap.
float start_from = origin.x;
float largest_node_size = 0.0f;
@@ -2165,6 +2177,7 @@ void GraphEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_connection_activity", "from", "from_port", "to", "to_port", "amount"), &GraphEdit::set_connection_activity);
ClassDB::bind_method(D_METHOD("get_connection_list"), &GraphEdit::_get_connection_list);
ClassDB::bind_method(D_METHOD("clear_connections"), &GraphEdit::clear_connections);
+ ClassDB::bind_method(D_METHOD("force_connection_drag_end"), &GraphEdit::force_connection_drag_end);
ClassDB::bind_method(D_METHOD("get_scroll_ofs"), &GraphEdit::get_scroll_ofs);
ClassDB::bind_method(D_METHOD("set_scroll_ofs", "ofs"), &GraphEdit::set_scroll_ofs);
@@ -2216,8 +2229,8 @@ void GraphEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("is_right_disconnects_enabled"), &GraphEdit::is_right_disconnects_enabled);
ClassDB::bind_method(D_METHOD("_update_scroll_offset"), &GraphEdit::_update_scroll_offset);
- ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::BOOL, "_is_in_input_hotzone", PropertyInfo(Variant::OBJECT, "graph_node"), PropertyInfo(Variant::INT, "slot_index"), PropertyInfo(Variant::VECTOR2, "mouse_position")));
- ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::BOOL, "_is_in_output_hotzone", PropertyInfo(Variant::OBJECT, "graph_node"), PropertyInfo(Variant::INT, "slot_index"), PropertyInfo(Variant::VECTOR2, "mouse_position")));
+ GDVIRTUAL_BIND(_is_in_input_hotzone, "graph_node", "slot_index", "mouse_position");
+ GDVIRTUAL_BIND(_is_in_output_hotzone, "graph_node", "slot_index", "mouse_position");
ClassDB::bind_method(D_METHOD("get_zoom_hbox"), &GraphEdit::get_zoom_hbox);
@@ -2262,6 +2275,8 @@ void GraphEdit::_bind_methods() {
ADD_SIGNAL(MethodInfo("begin_node_move"));
ADD_SIGNAL(MethodInfo("end_node_move"));
ADD_SIGNAL(MethodInfo("scroll_offset_changed", PropertyInfo(Variant::VECTOR2, "ofs")));
+ ADD_SIGNAL(MethodInfo("connection_drag_started", PropertyInfo(Variant::STRING, "from"), PropertyInfo(Variant::STRING, "slot"), PropertyInfo(Variant::BOOL, "is_output")));
+ ADD_SIGNAL(MethodInfo("connection_drag_ended"));
}
GraphEdit::GraphEdit() {
diff --git a/scene/gui/graph_edit.h b/scene/gui/graph_edit.h
index e064c237d0..145e0dcc59 100644
--- a/scene/gui/graph_edit.h
+++ b/scene/gui/graph_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -261,12 +261,15 @@ protected:
void _notification(int p_what);
GDVIRTUAL2RC(Vector<Vector2>, _get_connection_line, Vector2, Vector2)
+ GDVIRTUAL3R(bool, _is_in_input_hotzone, Object *, int, Vector2)
+ GDVIRTUAL3R(bool, _is_in_output_hotzone, Object *, int, Vector2)
public:
Error connect_node(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port);
bool is_node_connected(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port);
void disconnect_node(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port);
void clear_connections();
+ void force_connection_drag_end();
void set_connection_activity(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port, float p_activity);
diff --git a/scene/gui/graph_node.cpp b/scene/gui/graph_node.cpp
index 7a7b35585e..d6569e3de4 100644
--- a/scene/gui/graph_node.cpp
+++ b/scene/gui/graph_node.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -46,7 +46,7 @@ bool GraphNode::_set(const StringName &p_name, const Variant &p_value) {
if (str.begins_with("opentype_features/")) {
String name = str.get_slicec('/', 1);
int32_t tag = TS->name_to_tag(name);
- double value = p_value;
+ int value = p_value;
if (value == -1) {
if (opentype_features.has(tag)) {
opentype_features.erase(tag);
@@ -54,7 +54,7 @@ bool GraphNode::_set(const StringName &p_name, const Variant &p_value) {
update();
}
} else {
- if ((double)opentype_features[tag] != value) {
+ if (!opentype_features.has(tag) || (int)opentype_features[tag] != value) {
opentype_features[tag] = value;
_shape();
update();
@@ -153,7 +153,7 @@ bool GraphNode::_get(const StringName &p_name, Variant &r_ret) const {
void GraphNode::_get_property_list(List<PropertyInfo> *p_list) const {
for (const Variant *ftr = opentype_features.next(nullptr); ftr != nullptr; ftr = opentype_features.next(ftr)) {
String name = TS->tag_to_name(*ftr);
- p_list->push_back(PropertyInfo(Variant::FLOAT, "opentype_features/" + name));
+ p_list->push_back(PropertyInfo(Variant::INT, "opentype_features/" + name));
}
p_list->push_back(PropertyInfo(Variant::NIL, "opentype_features/_new", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR));
diff --git a/scene/gui/graph_node.h b/scene/gui/graph_node.h
index 2238cfdb56..b41fc7f5d4 100644
--- a/scene/gui/graph_node.h
+++ b/scene/gui/graph_node.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/grid_container.cpp b/scene/gui/grid_container.cpp
index 624330cdf6..465c9dac78 100644
--- a/scene/gui/grid_container.cpp
+++ b/scene/gui/grid_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/grid_container.h b/scene/gui/grid_container.h
index 9b43a5bc7e..9d77f90ab3 100644
--- a/scene/gui/grid_container.h
+++ b/scene/gui/grid_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp
index 6deb39b9e2..0cb3249c1d 100644
--- a/scene/gui/item_list.cpp
+++ b/scene/gui/item_list.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1492,6 +1492,9 @@ bool ItemList::_set(const StringName &p_name, const Variant &p_value) {
} else if (components[1] == "disabled") {
set_item_disabled(item_index, p_value);
return true;
+ } else if (components[1] == "selectable") {
+ set_item_selectable(item_index, p_value);
+ return true;
}
}
#ifndef DISABLE_DEPRECATED
@@ -1528,6 +1531,9 @@ bool ItemList::_get(const StringName &p_name, Variant &r_ret) const {
} else if (components[1] == "disabled") {
r_ret = is_item_disabled(item_index);
return true;
+ } else if (components[1] == "selectable") {
+ r_ret = is_item_selectable(item_index);
+ return true;
}
}
return false;
@@ -1541,6 +1547,10 @@ void ItemList::_get_property_list(List<PropertyInfo> *p_list) const {
pi.usage &= ~(get_item_icon(i).is_null() ? PROPERTY_USAGE_STORAGE : 0);
p_list->push_back(pi);
+ pi = PropertyInfo(Variant::BOOL, vformat("item_%d/selectable", i));
+ pi.usage &= ~(is_item_selectable(i) ? PROPERTY_USAGE_STORAGE : 0);
+ p_list->push_back(pi);
+
pi = PropertyInfo(Variant::BOOL, vformat("item_%d/disabled", i));
pi.usage &= ~(!is_item_disabled(i) ? PROPERTY_USAGE_STORAGE : 0);
p_list->push_back(pi);
@@ -1652,7 +1662,7 @@ void ItemList::_bind_methods() {
ClassDB::bind_method(D_METHOD("ensure_current_is_visible"), &ItemList::ensure_current_is_visible);
- ClassDB::bind_method(D_METHOD("get_v_scroll"), &ItemList::get_v_scroll);
+ ClassDB::bind_method(D_METHOD("get_v_scroll_bar"), &ItemList::get_v_scroll_bar);
ClassDB::bind_method(D_METHOD("set_text_overrun_behavior", "overrun_behavior"), &ItemList::set_text_overrun_behavior);
ClassDB::bind_method(D_METHOD("get_text_overrun_behavior"), &ItemList::get_text_overrun_behavior);
diff --git a/scene/gui/item_list.h b/scene/gui/item_list.h
index e780179e7b..77e910870f 100644
--- a/scene/gui/item_list.h
+++ b/scene/gui/item_list.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -62,7 +62,7 @@ private:
String language;
TextDirection text_direction = TEXT_DIRECTION_AUTO;
- bool selectable = false;
+ bool selectable = true;
bool selected = false;
bool disabled = false;
bool tooltip_enabled = true;
@@ -255,7 +255,7 @@ public:
void set_autoscroll_to_bottom(const bool p_enable);
- VScrollBar *get_v_scroll() { return scroll_bar; }
+ VScrollBar *get_v_scroll_bar() { return scroll_bar; }
ItemList();
~ItemList();
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp
index c6d658356f..edd206a1ca 100644
--- a/scene/gui/label.cpp
+++ b/scene/gui/label.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -811,7 +811,7 @@ bool Label::_set(const StringName &p_name, const Variant &p_value) {
if (str.begins_with("opentype_features/")) {
String name = str.get_slicec('/', 1);
int32_t tag = TS->name_to_tag(name);
- double value = p_value;
+ int value = p_value;
if (value == -1) {
if (opentype_features.has(tag)) {
opentype_features.erase(tag);
@@ -819,7 +819,7 @@ bool Label::_set(const StringName &p_name, const Variant &p_value) {
update();
}
} else {
- if ((double)opentype_features[tag] != value) {
+ if (!opentype_features.has(tag) || (int)opentype_features[tag] != value) {
opentype_features[tag] = value;
dirty = true;
update();
@@ -851,7 +851,7 @@ bool Label::_get(const StringName &p_name, Variant &r_ret) const {
void Label::_get_property_list(List<PropertyInfo> *p_list) const {
for (const Variant *ftr = opentype_features.next(nullptr); ftr != nullptr; ftr = opentype_features.next(ftr)) {
String name = TS->tag_to_name(*ftr);
- p_list->push_back(PropertyInfo(Variant::FLOAT, "opentype_features/" + name));
+ p_list->push_back(PropertyInfo(Variant::INT, "opentype_features/" + name));
}
p_list->push_back(PropertyInfo(Variant::NIL, "opentype_features/_new", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR));
}
diff --git a/scene/gui/label.h b/scene/gui/label.h
index 43c6bf6e89..354e9c664d 100644
--- a/scene/gui/label.h
+++ b/scene/gui/label.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp
index 810781995e..ec18101d2f 100644
--- a/scene/gui/line_edit.cpp
+++ b/scene/gui/line_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2164,7 +2164,7 @@ bool LineEdit::_set(const StringName &p_name, const Variant &p_value) {
if (str.begins_with("opentype_features/")) {
String name = str.get_slicec('/', 1);
int32_t tag = TS->name_to_tag(name);
- double value = p_value;
+ int value = p_value;
if (value == -1) {
if (opentype_features.has(tag)) {
opentype_features.erase(tag);
@@ -2172,7 +2172,7 @@ bool LineEdit::_set(const StringName &p_name, const Variant &p_value) {
update();
}
} else {
- if ((double)opentype_features[tag] != value) {
+ if (!opentype_features.has(tag) || (int)opentype_features[tag] != value) {
opentype_features[tag] = value;
_shape();
update();
@@ -2204,7 +2204,7 @@ bool LineEdit::_get(const StringName &p_name, Variant &r_ret) const {
void LineEdit::_get_property_list(List<PropertyInfo> *p_list) const {
for (const Variant *ftr = opentype_features.next(nullptr); ftr != nullptr; ftr = opentype_features.next(ftr)) {
String name = TS->tag_to_name(*ftr);
- p_list->push_back(PropertyInfo(Variant::FLOAT, "opentype_features/" + name));
+ p_list->push_back(PropertyInfo(Variant::INT, "opentype_features/" + name));
}
p_list->push_back(PropertyInfo(Variant::NIL, "opentype_features/_new", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR));
}
diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h
index 854e54e8f1..0c313f71c2 100644
--- a/scene/gui/line_edit.h
+++ b/scene/gui/line_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -97,7 +97,7 @@ private:
PopupMenu *menu_dir = nullptr;
PopupMenu *menu_ctl = nullptr;
- bool caret_mid_grapheme_enabled = false;
+ bool caret_mid_grapheme_enabled = true;
int caret_column = 0;
int scroll_offset = 0;
diff --git a/scene/gui/link_button.cpp b/scene/gui/link_button.cpp
index b59f4fb7d4..67ffa2c7ed 100644
--- a/scene/gui/link_button.cpp
+++ b/scene/gui/link_button.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -240,7 +240,7 @@ bool LinkButton::_set(const StringName &p_name, const Variant &p_value) {
if (str.begins_with("opentype_features/")) {
String name = str.get_slicec('/', 1);
int32_t tag = TS->name_to_tag(name);
- double value = p_value;
+ int value = p_value;
if (value == -1) {
if (opentype_features.has(tag)) {
opentype_features.erase(tag);
@@ -248,7 +248,7 @@ bool LinkButton::_set(const StringName &p_name, const Variant &p_value) {
update();
}
} else {
- if ((double)opentype_features[tag] != value) {
+ if (!opentype_features.has(tag) || (int)opentype_features[tag] != value) {
opentype_features[tag] = value;
_shape();
update();
@@ -280,7 +280,7 @@ bool LinkButton::_get(const StringName &p_name, Variant &r_ret) const {
void LinkButton::_get_property_list(List<PropertyInfo> *p_list) const {
for (const Variant *ftr = opentype_features.next(nullptr); ftr != nullptr; ftr = opentype_features.next(ftr)) {
String name = TS->tag_to_name(*ftr);
- p_list->push_back(PropertyInfo(Variant::FLOAT, "opentype_features/" + name));
+ p_list->push_back(PropertyInfo(Variant::INT, "opentype_features/" + name));
}
p_list->push_back(PropertyInfo(Variant::NIL, "opentype_features/_new", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR));
}
diff --git a/scene/gui/link_button.h b/scene/gui/link_button.h
index 231543c63c..7d302e967d 100644
--- a/scene/gui/link_button.h
+++ b/scene/gui/link_button.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/margin_container.cpp b/scene/gui/margin_container.cpp
index af239d67ae..7b696ddb84 100644
--- a/scene/gui/margin_container.cpp
+++ b/scene/gui/margin_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/margin_container.h b/scene/gui/margin_container.h
index b782976ada..3a2f0fa8b3 100644
--- a/scene/gui/margin_container.h
+++ b/scene/gui/margin_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/menu_button.cpp b/scene/gui/menu_button.cpp
index 32501b65a0..f7805136f9 100644
--- a/scene/gui/menu_button.cpp
+++ b/scene/gui/menu_button.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -184,7 +184,7 @@ void MenuButton::_get_property_list(List<PropertyInfo> *p_list) const {
pi.usage &= ~(!popup->is_item_checked(i) ? PROPERTY_USAGE_STORAGE : 0);
p_list->push_back(pi);
- pi = PropertyInfo(Variant::INT, vformat("popup/item_%d/id", i), PROPERTY_HINT_RANGE, "1,10,1,or_greater");
+ pi = PropertyInfo(Variant::INT, vformat("popup/item_%d/id", i), PROPERTY_HINT_RANGE, "0,10,1,or_greater");
p_list->push_back(pi);
pi = PropertyInfo(Variant::BOOL, vformat("popup/item_%d/disabled", i));
diff --git a/scene/gui/menu_button.h b/scene/gui/menu_button.h
index 455b7dc870..3647a69d33 100644
--- a/scene/gui/menu_button.h
+++ b/scene/gui/menu_button.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/nine_patch_rect.cpp b/scene/gui/nine_patch_rect.cpp
index ea5c82306d..779d1307f5 100644
--- a/scene/gui/nine_patch_rect.cpp
+++ b/scene/gui/nine_patch_rect.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/nine_patch_rect.h b/scene/gui/nine_patch_rect.h
index f9a3f31fe5..23aebbb782 100644
--- a/scene/gui/nine_patch_rect.h
+++ b/scene/gui/nine_patch_rect.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/option_button.cpp b/scene/gui/option_button.cpp
index 61c72fa580..e955fde43a 100644
--- a/scene/gui/option_button.cpp
+++ b/scene/gui/option_button.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -359,8 +359,9 @@ void OptionButton::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_popup"), &OptionButton::get_popup);
- ClassDB::bind_method(D_METHOD("set_item_count"), &OptionButton::set_item_count);
+ ClassDB::bind_method(D_METHOD("set_item_count", "count"), &OptionButton::set_item_count);
ClassDB::bind_method(D_METHOD("get_item_count"), &OptionButton::get_item_count);
+
// "selected" property must come after "item_count", otherwise GH-10213 occurs.
ADD_ARRAY_COUNT("Items", "item_count", "set_item_count", "get_item_count", "popup/item_");
ADD_PROPERTY(PropertyInfo(Variant::INT, "selected"), "_select_int", "get_selected");
diff --git a/scene/gui/option_button.h b/scene/gui/option_button.h
index 7430100ad7..adf2bb90ef 100644
--- a/scene/gui/option_button.h
+++ b/scene/gui/option_button.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/panel.cpp b/scene/gui/panel.cpp
index e8e7e3d997..86858fdc78 100644
--- a/scene/gui/panel.cpp
+++ b/scene/gui/panel.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/panel.h b/scene/gui/panel.h
index 84fd6aaead..37f14c250c 100644
--- a/scene/gui/panel.h
+++ b/scene/gui/panel.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/panel_container.cpp b/scene/gui/panel_container.cpp
index d910e1e882..463ad3c513 100644
--- a/scene/gui/panel_container.cpp
+++ b/scene/gui/panel_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/panel_container.h b/scene/gui/panel_container.h
index f27ca7fad7..a5ff74cebb 100644
--- a/scene/gui/panel_container.h
+++ b/scene/gui/panel_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/popup.cpp b/scene/gui/popup.cpp
index a48ad0f770..7c03fcbb37 100644
--- a/scene/gui/popup.cpp
+++ b/scene/gui/popup.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/popup.h b/scene/gui/popup.h
index 8458a75eef..5678043b23 100644
--- a/scene/gui/popup.h
+++ b/scene/gui/popup.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp
index a61d77e95c..f4d45fe1fa 100644
--- a/scene/gui/popup_menu.cpp
+++ b/scene/gui/popup_menu.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -50,7 +50,7 @@ Size2 PopupMenu::_get_contents_minimum_size() const {
int hseparation = get_theme_constant(SNAME("hseparation"));
Size2 minsize = get_theme_stylebox(SNAME("panel"))->get_minimum_size(); // Accounts for margin in the margin container
- minsize.x += scroll_container->get_v_scrollbar()->get_size().width * 2; // Adds a buffer so that the scrollbar does not render over the top of content
+ minsize.x += scroll_container->get_v_scroll_bar()->get_size().width * 2; // Adds a buffer so that the scrollbar does not render over the top of content
float max_w = 0.0;
float icon_w = 0.0;
@@ -343,11 +343,11 @@ void PopupMenu::gui_input(const Ref<InputEvent> &p_event) {
// Make an area which does not include v scrollbar, so that items are not activated when dragging scrollbar.
Rect2 item_clickable_area = scroll_container->get_rect();
- if (scroll_container->get_v_scrollbar()->is_visible_in_tree()) {
+ if (scroll_container->get_v_scroll_bar()->is_visible_in_tree()) {
if (is_layout_rtl()) {
- item_clickable_area.position.x += scroll_container->get_v_scrollbar()->get_size().width;
+ item_clickable_area.position.x += scroll_container->get_v_scroll_bar()->get_size().width;
} else {
- item_clickable_area.size.width -= scroll_container->get_v_scrollbar()->get_size().width;
+ item_clickable_area.size.width -= scroll_container->get_v_scroll_bar()->get_size().width;
}
}
@@ -508,7 +508,7 @@ void PopupMenu::_draw_items() {
Color font_hover_color = get_theme_color(SNAME("font_hover_color"));
Color font_separator_color = get_theme_color(SNAME("font_separator_color"));
- float scroll_width = scroll_container->get_v_scrollbar()->is_visible_in_tree() ? scroll_container->get_v_scrollbar()->get_size().width : 0;
+ float scroll_width = scroll_container->get_v_scroll_bar()->is_visible_in_tree() ? scroll_container->get_v_scroll_bar()->get_size().width : 0;
float display_width = control->get_size().width - scroll_width;
// Find the widest icon and whether any items have a checkbox, and store the offsets for each.
@@ -1275,7 +1275,15 @@ int PopupMenu::get_current_index() const {
void PopupMenu::set_item_count(int p_count) {
ERR_FAIL_COND(p_count < 0);
+ int prev_size = items.size();
items.resize(p_count);
+
+ if (prev_size < p_count) {
+ for (int i = prev_size; i < p_count; i++) {
+ items.write[i].id = i;
+ }
+ }
+
control->update();
child_controls_changed();
notify_property_list_changed();
@@ -1658,7 +1666,7 @@ void PopupMenu::_get_property_list(List<PropertyInfo> *p_list) const {
pi.usage &= ~(!is_item_checked(i) ? PROPERTY_USAGE_STORAGE : 0);
p_list->push_back(pi);
- pi = PropertyInfo(Variant::INT, vformat("item_%d/id", i), PROPERTY_HINT_RANGE, "1,10,1,or_greater");
+ pi = PropertyInfo(Variant::INT, vformat("item_%d/id", i), PROPERTY_HINT_RANGE, "0,10,1,or_greater");
p_list->push_back(pi);
pi = PropertyInfo(Variant::BOOL, vformat("item_%d/disabled", i));
diff --git a/scene/gui/popup_menu.h b/scene/gui/popup_menu.h
index 22912fb59c..5d6b75cbf5 100644
--- a/scene/gui/popup_menu.h
+++ b/scene/gui/popup_menu.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/progress_bar.cpp b/scene/gui/progress_bar.cpp
index 2cfaaa2fde..c20fb0d7a8 100644
--- a/scene/gui/progress_bar.cpp
+++ b/scene/gui/progress_bar.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/progress_bar.h b/scene/gui/progress_bar.h
index fb6060d932..2d89163f78 100644
--- a/scene/gui/progress_bar.h
+++ b/scene/gui/progress_bar.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/range.cpp b/scene/gui/range.cpp
index c4f05a7975..879f25c8d8 100644
--- a/scene/gui/range.cpp
+++ b/scene/gui/range.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/range.h b/scene/gui/range.h
index 0dc702b19c..c27eeee13c 100644
--- a/scene/gui/range.h
+++ b/scene/gui/range.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/reference_rect.cpp b/scene/gui/reference_rect.cpp
index 6d7f2cfd57..e2a0d568a1 100644
--- a/scene/gui/reference_rect.cpp
+++ b/scene/gui/reference_rect.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/reference_rect.h b/scene/gui/reference_rect.h
index 7097e83a15..4a2d328162 100644
--- a/scene/gui/reference_rect.h
+++ b/scene/gui/reference_rect.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/rich_text_effect.cpp b/scene/gui/rich_text_effect.cpp
index 076fa132c0..c9516ed6b9 100644
--- a/scene/gui/rich_text_effect.cpp
+++ b/scene/gui/rich_text_effect.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/rich_text_effect.h b/scene/gui/rich_text_effect.h
index 5681f9b193..4532a812ee 100644
--- a/scene/gui/rich_text_effect.h
+++ b/scene/gui/rich_text_effect.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index f258575f3e..348a0324f4 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2363,6 +2363,7 @@ void RichTextLabel::_remove_item(Item *p_item, const int p_line, const int p_sub
// Then remove the provided item itself.
p_item->parent->subitems.erase(p_item);
}
+ memdelete(p_item);
}
void RichTextLabel::add_image(const Ref<Texture2D> &p_image, const int p_width, const int p_height, const Color &p_color, InlineAlignment p_alignment) {
@@ -4052,7 +4053,7 @@ int RichTextLabel::get_content_height() const {
#ifndef DISABLE_DEPRECATED
// People will be very angry, if their texts get erased, because of #39148. (3.x -> 4.0)
-// Altough some people may not used bbcode_text, so we only overwrite, if bbcode_text is not empty
+// Although some people may not used bbcode_text, so we only overwrite, if bbcode_text is not empty.
bool RichTextLabel::_set(const StringName &p_name, const Variant &p_value) {
if (p_name == "bbcode_text" && !((String)p_value).is_empty()) {
set_text(p_value);
@@ -4121,7 +4122,7 @@ void RichTextLabel::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_scroll_follow", "follow"), &RichTextLabel::set_scroll_follow);
ClassDB::bind_method(D_METHOD("is_scroll_following"), &RichTextLabel::is_scroll_following);
- ClassDB::bind_method(D_METHOD("get_v_scroll"), &RichTextLabel::get_v_scroll);
+ ClassDB::bind_method(D_METHOD("get_v_scroll_bar"), &RichTextLabel::get_v_scroll_bar);
ClassDB::bind_method(D_METHOD("scroll_to_line", "line"), &RichTextLabel::scroll_to_line);
ClassDB::bind_method(D_METHOD("scroll_to_paragraph", "paragraph"), &RichTextLabel::scroll_to_paragraph);
diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h
index d803e44b65..70467e7e7c 100644
--- a/scene/gui/rich_text_label.h
+++ b/scene/gui/rich_text_label.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -544,7 +544,7 @@ public:
int get_content_height() const;
- VScrollBar *get_v_scroll() { return vscroll; }
+ VScrollBar *get_v_scroll_bar() { return vscroll; }
virtual CursorShape get_cursor_shape(const Point2 &p_pos) const override;
diff --git a/scene/gui/scroll_bar.cpp b/scene/gui/scroll_bar.cpp
index 8c292e663e..343056957c 100644
--- a/scene/gui/scroll_bar.cpp
+++ b/scene/gui/scroll_bar.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/scroll_bar.h b/scene/gui/scroll_bar.h
index 574d17ee20..651edd1a74 100644
--- a/scene/gui/scroll_bar.h
+++ b/scene/gui/scroll_bar.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/scroll_container.cpp b/scene/gui/scroll_container.cpp
index dcd2c32a3b..5e128d594c 100644
--- a/scene/gui/scroll_container.cpp
+++ b/scene/gui/scroll_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -532,11 +532,11 @@ TypedArray<String> ScrollContainer::get_configuration_warnings() const {
return warnings;
}
-HScrollBar *ScrollContainer::get_h_scrollbar() {
+HScrollBar *ScrollContainer::get_h_scroll_bar() {
return h_scroll;
}
-VScrollBar *ScrollContainer::get_v_scrollbar() {
+VScrollBar *ScrollContainer::get_v_scroll_bar() {
return v_scroll;
}
@@ -561,8 +561,8 @@ void ScrollContainer::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_follow_focus", "enabled"), &ScrollContainer::set_follow_focus);
ClassDB::bind_method(D_METHOD("is_following_focus"), &ScrollContainer::is_following_focus);
- ClassDB::bind_method(D_METHOD("get_h_scrollbar"), &ScrollContainer::get_h_scrollbar);
- ClassDB::bind_method(D_METHOD("get_v_scrollbar"), &ScrollContainer::get_v_scrollbar);
+ ClassDB::bind_method(D_METHOD("get_h_scroll_bar"), &ScrollContainer::get_h_scroll_bar);
+ ClassDB::bind_method(D_METHOD("get_v_scroll_bar"), &ScrollContainer::get_v_scroll_bar);
ClassDB::bind_method(D_METHOD("ensure_control_visible", "control"), &ScrollContainer::ensure_control_visible);
ADD_SIGNAL(MethodInfo("scroll_started"));
diff --git a/scene/gui/scroll_container.h b/scene/gui/scroll_container.h
index 0cec4db57a..c00df87b18 100644
--- a/scene/gui/scroll_container.h
+++ b/scene/gui/scroll_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -105,8 +105,8 @@ public:
bool is_following_focus() const;
void set_follow_focus(bool p_follow);
- HScrollBar *get_h_scrollbar();
- VScrollBar *get_v_scrollbar();
+ HScrollBar *get_h_scroll_bar();
+ VScrollBar *get_v_scroll_bar();
void ensure_control_visible(Control *p_control);
TypedArray<String> get_configuration_warnings() const override;
diff --git a/scene/gui/separator.cpp b/scene/gui/separator.cpp
index 1f3cb7aa24..9c19eb54dc 100644
--- a/scene/gui/separator.cpp
+++ b/scene/gui/separator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/separator.h b/scene/gui/separator.h
index 77162c68fa..1621bb3351 100644
--- a/scene/gui/separator.h
+++ b/scene/gui/separator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/slider.cpp b/scene/gui/slider.cpp
index f8cabe172c..1d459d589f 100644
--- a/scene/gui/slider.cpp
+++ b/scene/gui/slider.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -70,8 +70,13 @@ void Slider::gui_input(const Ref<InputEvent> &p_event) {
}
grab.active = true;
grab.uvalue = get_as_ratio();
+
+ emit_signal(SNAME("drag_started"));
} else {
grab.active = false;
+
+ const bool value_changed = !Math::is_equal_approx((double)grab.uvalue, get_as_ratio());
+ emit_signal(SNAME("drag_ended"), value_changed);
}
} else if (scrollable) {
if (mb->is_pressed() && mb->get_button_index() == MouseButton::WHEEL_UP) {
@@ -264,6 +269,9 @@ void Slider::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_scrollable", "scrollable"), &Slider::set_scrollable);
ClassDB::bind_method(D_METHOD("is_scrollable"), &Slider::is_scrollable);
+ ADD_SIGNAL(MethodInfo("drag_started"));
+ ADD_SIGNAL(MethodInfo("drag_ended", PropertyInfo(Variant::BOOL, "value_changed")));
+
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editable"), "set_editable", "is_editable");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "scrollable"), "set_scrollable", "is_scrollable");
ADD_PROPERTY(PropertyInfo(Variant::INT, "tick_count", PROPERTY_HINT_RANGE, "0,4096,1"), "set_ticks", "get_ticks");
diff --git a/scene/gui/slider.h b/scene/gui/slider.h
index 46fa08bbf0..5fbfee2aec 100644
--- a/scene/gui/slider.h
+++ b/scene/gui/slider.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp
index 8d6315d085..19d47ea492 100644
--- a/scene/gui/spin_box.cpp
+++ b/scene/gui/spin_box.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/spin_box.h b/scene/gui/spin_box.h
index 736a5d873d..0691a4b48d 100644
--- a/scene/gui/spin_box.h
+++ b/scene/gui/spin_box.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/split_container.cpp b/scene/gui/split_container.cpp
index 106bb7949f..874e5868b6 100644
--- a/scene/gui/split_container.cpp
+++ b/scene/gui/split_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/split_container.h b/scene/gui/split_container.h
index 47fd30a122..ba6fff6f55 100644
--- a/scene/gui/split_container.h
+++ b/scene/gui/split_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/subviewport_container.cpp b/scene/gui/subviewport_container.cpp
index 53ea32e1b7..760144591e 100644
--- a/scene/gui/subviewport_container.cpp
+++ b/scene/gui/subviewport_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -54,6 +54,7 @@ Size2 SubViewportContainer::get_minimum_size() const {
void SubViewportContainer::set_stretch(bool p_enable) {
stretch = p_enable;
+ update_minimum_size();
queue_sort();
update();
}
diff --git a/scene/gui/subviewport_container.h b/scene/gui/subviewport_container.h
index 7853f1590e..e7520763fb 100644
--- a/scene/gui/subviewport_container.h
+++ b/scene/gui/subviewport_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/tab_bar.cpp b/scene/gui/tab_bar.cpp
index 3d88c117e7..92da169487 100644
--- a/scene/gui/tab_bar.cpp
+++ b/scene/gui/tab_bar.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -510,6 +510,13 @@ void TabBar::_notification(int p_what) {
}
}
+void TabBar::set_tab_count(int p_count) {
+ ERR_FAIL_COND(p_count < 0);
+ tabs.resize(p_count);
+ update();
+ notify_property_list_changed();
+}
+
int TabBar::get_tab_count() const {
return tabs.size();
}
@@ -635,7 +642,7 @@ void TabBar::set_tab_disabled(int p_tab, bool p_disabled) {
update();
}
-bool TabBar::get_tab_disabled(int p_tab) const {
+bool TabBar::is_tab_disabled(int p_tab) const {
ERR_FAIL_INDEX_V(p_tab, tabs.size(), false);
return tabs[p_tab].disabled;
}
@@ -765,13 +772,9 @@ void TabBar::add_tab(const String &p_str, const Ref<Texture2D> &p_icon) {
Tab t;
t.text = p_str;
t.xl_text = atr(p_str);
- t.text_buf.instantiate();
t.text_buf->set_direction(is_layout_rtl() ? TextServer::DIRECTION_RTL : TextServer::DIRECTION_LTR);
t.text_buf->add_string(t.xl_text, get_theme_font(SNAME("font")), get_theme_font_size(SNAME("font_size")), Dictionary(), TranslationServer::get_singleton()->get_tool_locale());
t.icon = p_icon;
- t.disabled = false;
- t.ofs_cache = 0;
- t.size_cache = 0;
tabs.push_back(t);
_update_cache();
@@ -786,6 +789,7 @@ void TabBar::clear_tabs() {
previous = 0;
call_deferred(SNAME("_update_hover"));
update();
+ notify_property_list_changed();
}
void TabBar::remove_tab(int p_idx) {
@@ -808,6 +812,7 @@ void TabBar::remove_tab(int p_idx) {
}
_ensure_no_over_offset();
+ notify_property_list_changed();
}
Variant TabBar::get_drag_data(const Point2 &p_point) {
@@ -966,6 +971,7 @@ void TabBar::move_tab(int from, int to) {
_update_cache();
update();
+ notify_property_list_changed();
}
int TabBar::get_tab_width(int p_idx) const {
@@ -1128,8 +1134,61 @@ bool TabBar::get_select_with_rmb() const {
return select_with_rmb;
}
+bool TabBar::_set(const StringName &p_name, const Variant &p_value) {
+ Vector<String> components = String(p_name).split("/", true, 2);
+ if (components.size() >= 2 && components[0].begins_with("tab_") && components[0].trim_prefix("tab_").is_valid_int()) {
+ int tab_index = components[0].trim_prefix("tab_").to_int();
+ String property = components[1];
+ if (property == "title") {
+ set_tab_title(tab_index, p_value);
+ return true;
+ } else if (property == "icon") {
+ set_tab_icon(tab_index, p_value);
+ return true;
+ } else if (components[1] == "disabled") {
+ set_tab_disabled(tab_index, p_value);
+ return true;
+ }
+ }
+ return false;
+}
+
+bool TabBar::_get(const StringName &p_name, Variant &r_ret) const {
+ Vector<String> components = String(p_name).split("/", true, 2);
+ if (components.size() >= 2 && components[0].begins_with("tab_") && components[0].trim_prefix("tab_").is_valid_int()) {
+ int tab_index = components[0].trim_prefix("tab_").to_int();
+ String property = components[1];
+ if (property == "title") {
+ r_ret = get_tab_title(tab_index);
+ return true;
+ } else if (property == "icon") {
+ r_ret = get_tab_icon(tab_index);
+ return true;
+ } else if (components[1] == "disabled") {
+ r_ret = is_tab_disabled(tab_index);
+ return true;
+ }
+ }
+ return false;
+}
+
+void TabBar::_get_property_list(List<PropertyInfo> *p_list) const {
+ for (int i = 0; i < tabs.size(); i++) {
+ p_list->push_back(PropertyInfo(Variant::STRING, vformat("tab_%d/title", i)));
+
+ PropertyInfo pi = PropertyInfo(Variant::OBJECT, vformat("tab_%d/icon", i), PROPERTY_HINT_RESOURCE_TYPE, "Texture2D");
+ pi.usage &= ~(get_tab_icon(i).is_null() ? PROPERTY_USAGE_STORAGE : 0);
+ p_list->push_back(pi);
+
+ pi = PropertyInfo(Variant::BOOL, vformat("tab_%d/disabled", i));
+ pi.usage &= ~(!is_tab_disabled(i) ? PROPERTY_USAGE_STORAGE : 0);
+ p_list->push_back(pi);
+ }
+}
+
void TabBar::_bind_methods() {
ClassDB::bind_method(D_METHOD("_update_hover"), &TabBar::_update_hover);
+ ClassDB::bind_method(D_METHOD("set_tab_count", "count"), &TabBar::set_tab_count);
ClassDB::bind_method(D_METHOD("get_tab_count"), &TabBar::get_tab_count);
ClassDB::bind_method(D_METHOD("set_current_tab", "tab_idx"), &TabBar::set_current_tab);
ClassDB::bind_method(D_METHOD("get_current_tab"), &TabBar::get_current_tab);
@@ -1146,7 +1205,7 @@ void TabBar::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_tab_icon", "tab_idx", "icon"), &TabBar::set_tab_icon);
ClassDB::bind_method(D_METHOD("get_tab_icon", "tab_idx"), &TabBar::get_tab_icon);
ClassDB::bind_method(D_METHOD("set_tab_disabled", "tab_idx", "disabled"), &TabBar::set_tab_disabled);
- ClassDB::bind_method(D_METHOD("get_tab_disabled", "tab_idx"), &TabBar::get_tab_disabled);
+ ClassDB::bind_method(D_METHOD("is_tab_disabled", "tab_idx"), &TabBar::is_tab_disabled);
ClassDB::bind_method(D_METHOD("remove_tab", "tab_idx"), &TabBar::remove_tab);
ClassDB::bind_method(D_METHOD("add_tab", "title", "icon"), &TabBar::add_tab, DEFVAL(""), DEFVAL(Ref<Texture2D>()));
ClassDB::bind_method(D_METHOD("set_tab_alignment", "alignment"), &TabBar::set_tab_alignment);
@@ -1184,6 +1243,8 @@ void TabBar::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "scrolling_enabled"), "set_scrolling_enabled", "get_scrolling_enabled");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "drag_to_rearrange_enabled"), "set_drag_to_rearrange_enabled", "get_drag_to_rearrange_enabled");
+ ADD_ARRAY_COUNT("Tabs", "tab_count", "set_tab_count", "get_tab_count", "tab_");
+
BIND_ENUM_CONSTANT(ALIGNMENT_LEFT);
BIND_ENUM_CONSTANT(ALIGNMENT_CENTER);
BIND_ENUM_CONSTANT(ALIGNMENT_RIGHT);
diff --git a/scene/gui/tab_bar.h b/scene/gui/tab_bar.h
index 2d211937fc..1741481b40 100644
--- a/scene/gui/tab_bar.h
+++ b/scene/gui/tab_bar.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -73,6 +73,10 @@ private:
Ref<Texture2D> right_button;
Rect2 rb_rect;
Rect2 cb_rect;
+
+ Tab() {
+ text_buf.instantiate();
+ }
};
int offset = 0;
@@ -112,6 +116,9 @@ private:
protected:
virtual void gui_input(const Ref<InputEvent> &p_event) override;
+ bool _set(const StringName &p_name, const Variant &p_value);
+ bool _get(const StringName &p_name, Variant &r_ret) const;
+ void _get_property_list(List<PropertyInfo> *p_list) const;
void _notification(int p_what);
static void _bind_methods();
@@ -140,7 +147,7 @@ public:
Ref<Texture2D> get_tab_icon(int p_tab) const;
void set_tab_disabled(int p_tab, bool p_disabled);
- bool get_tab_disabled(int p_tab) const;
+ bool is_tab_disabled(int p_tab) const;
void set_tab_right_button(int p_tab, const Ref<Texture2D> &p_right_button);
Ref<Texture2D> get_tab_right_button(int p_tab) const;
@@ -156,7 +163,9 @@ public:
void set_tab_close_display_policy(CloseButtonDisplayPolicy p_policy);
CloseButtonDisplayPolicy get_tab_close_display_policy() const;
+ void set_tab_count(int p_count);
int get_tab_count() const;
+
void set_current_tab(int p_current);
int get_current_tab() const;
int get_previous_tab() const;
diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp
index fd5df5c93b..c3fc08731e 100644
--- a/scene/gui/tab_container.cpp
+++ b/scene/gui/tab_container.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -703,30 +703,16 @@ void TabContainer::add_child_notify(Node *p_child) {
return;
}
- Vector<Control *> tabs = _get_tabs();
_refresh_texts();
+ call_deferred("_repaint");
+ update();
- bool first = false;
-
- if (tabs.size() != 1) {
- c->hide();
- } else {
- c->show();
- //call_deferred(SNAME("set_current_tab"),0);
- first = true;
+ bool first = (_get_tabs().size() == 1);
+ if (first) {
current = 0;
previous = 0;
}
- c->set_anchors_and_offsets_preset(Control::PRESET_WIDE);
- if (tabs_visible) {
- c->set_offset(SIDE_TOP, _get_top_margin());
- }
- Ref<StyleBox> sb = get_theme_stylebox(SNAME("panel"));
- c->set_offset(SIDE_TOP, c->get_offset(SIDE_TOP) + sb->get_margin(SIDE_TOP));
- c->set_offset(SIDE_LEFT, c->get_offset(SIDE_LEFT) + sb->get_margin(SIDE_LEFT));
- c->set_offset(SIDE_RIGHT, c->get_offset(SIDE_RIGHT) - sb->get_margin(SIDE_RIGHT));
- c->set_offset(SIDE_BOTTOM, c->get_offset(SIDE_BOTTOM) - sb->get_margin(SIDE_BOTTOM));
- update();
+
p_child->connect("renamed", callable_mp(this, &TabContainer::_child_renamed_callback));
if (first && is_inside_tree()) {
emit_signal(SNAME("tab_changed"), current);
@@ -1223,6 +1209,7 @@ void TabContainer::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_use_hidden_tabs_for_min_size", "enabled"), &TabContainer::set_use_hidden_tabs_for_min_size);
ClassDB::bind_method(D_METHOD("get_use_hidden_tabs_for_min_size"), &TabContainer::get_use_hidden_tabs_for_min_size);
+ ClassDB::bind_method(D_METHOD("_repaint"), &TabContainer::_repaint);
ClassDB::bind_method(D_METHOD("_on_theme_changed"), &TabContainer::_on_theme_changed);
ClassDB::bind_method(D_METHOD("_update_current_tab"), &TabContainer::_update_current_tab);
diff --git a/scene/gui/tab_container.h b/scene/gui/tab_container.h
index 6dfeb2b625..01e71e9fa8 100644
--- a/scene/gui/tab_container.h
+++ b/scene/gui/tab_container.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 63e3740a97..2d4ee01c84 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1135,7 +1135,7 @@ void TextEdit::_notification(int p_what) {
int first_visible_char = TS->shaped_text_get_range(rid).y;
int last_visible_char = TS->shaped_text_get_range(rid).x;
- int char_ofs = 0;
+ float char_ofs = 0;
if (outline_size > 0 && outline_color.a > 0) {
for (int j = 0; j < gl_size; j++) {
for (int k = 0; k < glyphs[j].repeat; k++) {
@@ -1170,7 +1170,7 @@ void TextEdit::_notification(int p_what) {
}
}
- int char_pos = char_ofs + char_margin + ofs_x;
+ float char_pos = char_ofs + char_margin + ofs_x;
if (char_pos >= xmargin_beg) {
if (highlight_matching_braces_enabled) {
if ((brace_open_match_line == line && brace_open_match_column == glyphs[j].start) ||
@@ -5048,7 +5048,7 @@ void TextEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_line_wrapped_text", "line"), &TextEdit::get_line_wrapped_text);
/* Viewport. */
- // Scolling.
+ // Scrolling.
ClassDB::bind_method(D_METHOD("set_smooth_scroll_enable", "enable"), &TextEdit::set_smooth_scroll_enabled);
ClassDB::bind_method(D_METHOD("is_smooth_scroll_enabled"), &TextEdit::is_smooth_scroll_enabled);
@@ -5228,7 +5228,7 @@ bool TextEdit::_set(const StringName &p_name, const Variant &p_value) {
if (str.begins_with("opentype_features/")) {
String name = str.get_slicec('/', 1);
int32_t tag = TS->name_to_tag(name);
- double value = p_value;
+ int value = p_value;
if (value == -1) {
if (opentype_features.has(tag)) {
opentype_features.erase(tag);
@@ -5237,7 +5237,7 @@ bool TextEdit::_set(const StringName &p_name, const Variant &p_value) {
update();
}
} else {
- if ((double)opentype_features[tag] != value) {
+ if (!opentype_features.has(tag) || (int)opentype_features[tag] != value) {
opentype_features[tag] = value;
text.set_font_features(opentype_features);
text.invalidate_all();
@@ -5270,7 +5270,7 @@ bool TextEdit::_get(const StringName &p_name, Variant &r_ret) const {
void TextEdit::_get_property_list(List<PropertyInfo> *p_list) const {
for (const Variant *ftr = opentype_features.next(nullptr); ftr != nullptr; ftr = opentype_features.next(ftr)) {
String name = TS->tag_to_name(*ftr);
- p_list->push_back(PropertyInfo(Variant::FLOAT, "opentype_features/" + name));
+ p_list->push_back(PropertyInfo(Variant::INT, "opentype_features/" + name));
}
p_list->push_back(PropertyInfo(Variant::NIL, "opentype_features/_new", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR));
}
@@ -5410,7 +5410,7 @@ void TextEdit::_cut_internal() {
set_caret_line(get_caret_line() + 1);
}
- // Correct the visualy perceived caret column taking care of identation level of the lines.
+ // Correct the visually perceived caret column taking care of indentation level of the lines.
int diff_indent = indent_level - get_indent_level(get_caret_line());
cc += diff_indent;
if (diff_indent != 0) {
diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h
index df3edca943..57b48b5f52 100644
--- a/scene/gui/text_edit.h
+++ b/scene/gui/text_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -70,7 +70,7 @@ public:
GUTTER_TYPE_CUSTOM
};
- /* Contex Menu. */
+ /* Context Menu. */
enum MenuItems {
MENU_CUT,
MENU_COPY,
@@ -374,7 +374,7 @@ private:
bool move_caret_on_right_click = true;
- bool caret_mid_grapheme_enabled = false;
+ bool caret_mid_grapheme_enabled = true;
bool drag_action = false;
bool drag_caret_force_displayed = false;
diff --git a/scene/gui/texture_button.cpp b/scene/gui/texture_button.cpp
index 3f0d907a7e..da202c1c8f 100644
--- a/scene/gui/texture_button.cpp
+++ b/scene/gui/texture_button.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -170,6 +170,12 @@ void TextureButton::_notification(int p_what) {
Point2 ofs;
Size2 size;
+ bool draw_focus = (has_focus() && focused.is_valid());
+
+ // If no other texture is valid, try using focused texture.
+ if (!texdraw.is_valid() && draw_focus) {
+ texdraw = focused;
+ }
if (texdraw.is_valid()) {
size = texdraw->get_size();
@@ -226,7 +232,9 @@ void TextureButton::_notification(int p_what) {
size.width *= hflip ? -1.0f : 1.0f;
size.height *= vflip ? -1.0f : 1.0f;
- if (_tile) {
+ if (texdraw == focused) {
+ // Do nothing, we only needed to calculate the rectangle.
+ } else if (_tile) {
draw_texture_rect(texdraw, Rect2(ofs, size), _tile);
} else {
draw_texture_rect_region(texdraw, Rect2(ofs, size), _texture_region);
@@ -235,7 +243,7 @@ void TextureButton::_notification(int p_what) {
_position_rect = Rect2();
}
- if (has_focus() && focused.is_valid()) {
+ if (draw_focus) {
draw_texture_rect(focused, Rect2(ofs, size), false);
};
} break;
diff --git a/scene/gui/texture_button.h b/scene/gui/texture_button.h
index 8361f3c341..1428a79a1d 100644
--- a/scene/gui/texture_button.h
+++ b/scene/gui/texture_button.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/texture_progress_bar.cpp b/scene/gui/texture_progress_bar.cpp
index 6a926a0364..043c0f464c 100644
--- a/scene/gui/texture_progress_bar.cpp
+++ b/scene/gui/texture_progress_bar.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/texture_progress_bar.h b/scene/gui/texture_progress_bar.h
index c508f41387..4d3e38e006 100644
--- a/scene/gui/texture_progress_bar.h
+++ b/scene/gui/texture_progress_bar.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/texture_rect.cpp b/scene/gui/texture_rect.cpp
index 85c15cdae7..a8cdeb44f5 100644
--- a/scene/gui/texture_rect.cpp
+++ b/scene/gui/texture_rect.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -44,9 +44,6 @@ void TextureRect::_notification(int p_what) {
bool tile = false;
switch (stretch_mode) {
- case STRETCH_SCALE_ON_EXPAND: {
- size = expand ? get_size() : texture->get_size();
- } break;
case STRETCH_SCALE: {
size = get_size();
} break;
@@ -114,7 +111,7 @@ void TextureRect::_notification(int p_what) {
}
Size2 TextureRect::get_minimum_size() const {
- if (!expand && !texture.is_null()) {
+ if (!ignore_texture_size && !texture.is_null()) {
return texture->get_size();
} else {
return Size2();
@@ -124,8 +121,8 @@ Size2 TextureRect::get_minimum_size() const {
void TextureRect::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_texture", "texture"), &TextureRect::set_texture);
ClassDB::bind_method(D_METHOD("get_texture"), &TextureRect::get_texture);
- ClassDB::bind_method(D_METHOD("set_expand", "enable"), &TextureRect::set_expand);
- ClassDB::bind_method(D_METHOD("has_expand"), &TextureRect::has_expand);
+ ClassDB::bind_method(D_METHOD("set_ignore_texture_size", "ignore"), &TextureRect::set_ignore_texture_size);
+ ClassDB::bind_method(D_METHOD("get_ignore_texture_size"), &TextureRect::get_ignore_texture_size);
ClassDB::bind_method(D_METHOD("set_flip_h", "enable"), &TextureRect::set_flip_h);
ClassDB::bind_method(D_METHOD("is_flipped_h"), &TextureRect::is_flipped_h);
ClassDB::bind_method(D_METHOD("set_flip_v", "enable"), &TextureRect::set_flip_v);
@@ -134,12 +131,11 @@ void TextureRect::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_stretch_mode"), &TextureRect::get_stretch_mode);
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D"), "set_texture", "get_texture");
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "expand"), "set_expand", "has_expand");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "stretch_mode", PROPERTY_HINT_ENUM, "Scale On Expand (Compat),Scale,Tile,Keep,Keep Centered,Keep Aspect,Keep Aspect Centered,Keep Aspect Covered"), "set_stretch_mode", "get_stretch_mode");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "ignore_texture_size"), "set_ignore_texture_size", "get_ignore_texture_size");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "stretch_mode", PROPERTY_HINT_ENUM, "Scale,Tile,Keep,Keep Centered,Keep Aspect,Keep Aspect Centered,Keep Aspect Covered"), "set_stretch_mode", "get_stretch_mode");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "flip_h"), "set_flip_h", "is_flipped_h");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "flip_v"), "set_flip_v", "is_flipped_v");
- BIND_ENUM_CONSTANT(STRETCH_SCALE_ON_EXPAND);
BIND_ENUM_CONSTANT(STRETCH_SCALE);
BIND_ENUM_CONSTANT(STRETCH_TILE);
BIND_ENUM_CONSTANT(STRETCH_KEEP);
@@ -179,14 +175,14 @@ Ref<Texture2D> TextureRect::get_texture() const {
return texture;
}
-void TextureRect::set_expand(bool p_expand) {
- expand = p_expand;
+void TextureRect::set_ignore_texture_size(bool p_ignore) {
+ ignore_texture_size = p_ignore;
update();
update_minimum_size();
}
-bool TextureRect::has_expand() const {
- return expand;
+bool TextureRect::get_ignore_texture_size() const {
+ return ignore_texture_size;
}
void TextureRect::set_stretch_mode(StretchMode p_mode) {
diff --git a/scene/gui/texture_rect.h b/scene/gui/texture_rect.h
index 0f93d5732f..7d667b25a8 100644
--- a/scene/gui/texture_rect.h
+++ b/scene/gui/texture_rect.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -38,7 +38,6 @@ class TextureRect : public Control {
public:
enum StretchMode {
- STRETCH_SCALE_ON_EXPAND, //default, for backwards compatibility
STRETCH_SCALE,
STRETCH_TILE,
STRETCH_KEEP,
@@ -49,11 +48,11 @@ public:
};
private:
- bool expand = false;
+ bool ignore_texture_size = false;
bool hflip = false;
bool vflip = false;
Ref<Texture2D> texture;
- StretchMode stretch_mode = STRETCH_SCALE_ON_EXPAND;
+ StretchMode stretch_mode = STRETCH_SCALE;
void _texture_changed();
@@ -66,8 +65,8 @@ public:
void set_texture(const Ref<Texture2D> &p_tex);
Ref<Texture2D> get_texture() const;
- void set_expand(bool p_expand);
- bool has_expand() const;
+ void set_ignore_texture_size(bool p_ignore);
+ bool get_ignore_texture_size() const;
void set_stretch_mode(StretchMode p_mode);
StretchMode get_stretch_mode() const;
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index 5a6ac7c0d2..73d39aee8a 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2195,8 +2195,10 @@ void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_c
*/
} else if (c.selected) {
- c.selected = false;
- //p_current->deselected_signal.call(p_col);
+ if (p_selected != p_current) {
+ // Deselect other rows.
+ c.selected = false;
+ }
}
} else if (select_mode == SELECT_SINGLE || select_mode == SELECT_MULTI) {
if (!r_in_range && &selected_cell == &c) {
@@ -2316,12 +2318,9 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, int
return -1;
}
- if (!p_item->disable_folding && !hide_folding && (p_pos.x >= x_ofs && p_pos.x < (x_ofs + cache.item_margin))) {
- if (p_item->first_child) {
- p_item->set_collapsed(!p_item->is_collapsed());
- }
-
- return -1; //handled!
+ if (!p_item->disable_folding && !hide_folding && p_item->first_child && (p_pos.x >= x_ofs && p_pos.x < (x_ofs + cache.item_margin))) {
+ p_item->set_collapsed(!p_item->is_collapsed());
+ return -1;
}
int x = p_pos.x;
@@ -4827,7 +4826,7 @@ void Tree::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_allow_reselect"), &Tree::get_allow_reselect);
ADD_PROPERTY(PropertyInfo(Variant::INT, "columns"), "set_columns", "get_columns");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "column_titles_visible"), "set_column_titles_visible", "are_column_titles_visible");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "column_titles_visible"), "set_column_titles_visible", "are_column_titles_visible");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "allow_reselect"), "set_allow_reselect", "get_allow_reselect");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "allow_rmb_select"), "set_allow_rmb_select", "get_allow_rmb_select");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "hide_folding"), "set_hide_folding", "is_folding_hidden");
diff --git a/scene/gui/tree.h b/scene/gui/tree.h
index a190567f0f..c60c87564e 100644
--- a/scene/gui/tree.h
+++ b/scene/gui/tree.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/video_stream_player.cpp b/scene/gui/video_stream_player.cpp
index a11d56a2ed..1f2a8c8aa1 100644
--- a/scene/gui/video_stream_player.cpp
+++ b/scene/gui/video_stream_player.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/gui/video_stream_player.h b/scene/gui/video_stream_player.h
index ad4a3dd9e9..130b2901f1 100644
--- a/scene/gui/video_stream_player.h
+++ b/scene/gui/video_stream_player.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/canvas_item.cpp b/scene/main/canvas_item.cpp
index 2022a9a46e..c80665cf2e 100644
--- a/scene/main/canvas_item.cpp
+++ b/scene/main/canvas_item.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/canvas_item.h b/scene/main/canvas_item.h
index 26a7068e68..3d49d89746 100644
--- a/scene/main/canvas_item.h
+++ b/scene/main/canvas_item.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/canvas_layer.cpp b/scene/main/canvas_layer.cpp
index cd7534f73c..282ab6b497 100644
--- a/scene/main/canvas_layer.cpp
+++ b/scene/main/canvas_layer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/canvas_layer.h b/scene/main/canvas_layer.h
index 9d8e0c203d..93a0152787 100644
--- a/scene/main/canvas_layer.h
+++ b/scene/main/canvas_layer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/http_request.cpp b/scene/main/http_request.cpp
index 2dbfb43ad3..34cc4aceb8 100644
--- a/scene/main/http_request.cpp
+++ b/scene/main/http_request.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/http_request.h b/scene/main/http_request.h
index 38c2f704ec..62880fa282 100644
--- a/scene/main/http_request.h
+++ b/scene/main/http_request.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/instance_placeholder.cpp b/scene/main/instance_placeholder.cpp
index b5ba1899ec..6dd83e4636 100644
--- a/scene/main/instance_placeholder.cpp
+++ b/scene/main/instance_placeholder.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/instance_placeholder.h b/scene/main/instance_placeholder.h
index fe20fc4760..8f2eb01773 100644
--- a/scene/main/instance_placeholder.h
+++ b/scene/main/instance_placeholder.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/node.cpp b/scene/main/node.cpp
index 87f77ed4bd..8b5883a742 100644
--- a/scene/main/node.cpp
+++ b/scene/main/node.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -152,12 +152,6 @@ void Node::_notification(int p_notification) {
data.in_constructor = false;
} break;
case NOTIFICATION_PREDELETE: {
- set_owner(nullptr);
-
- while (data.owned.size()) {
- data.owned.front()->get()->set_owner(nullptr);
- }
-
if (data.parent) {
data.parent->remove_child(this);
}
@@ -165,10 +159,8 @@ void Node::_notification(int p_notification) {
// kill children as cleanly as possible
while (data.children.size()) {
Node *child = data.children[data.children.size() - 1]; //begin from the end because its faster and more consistent with creation
- remove_child(child);
memdelete(child);
}
-
} break;
}
}
@@ -237,11 +229,32 @@ void Node::_propagate_enter_tree() {
}
void Node::_propagate_after_exit_tree() {
+ // Clear owner if it was not part of the pruned branch
+ if (data.owner) {
+ bool found = false;
+ Node *parent = data.parent;
+
+ while (parent) {
+ if (parent == data.owner) {
+ found = true;
+ break;
+ }
+
+ parent = parent->data.parent;
+ }
+
+ if (!found) {
+ data.owner->data.owned.erase(data.OW);
+ data.owner = nullptr;
+ }
+ }
+
data.blocked++;
- for (int i = 0; i < data.children.size(); i++) {
+ for (int i = data.children.size() - 1; i >= 0; i--) {
data.children[i]->_propagate_after_exit_tree();
}
data.blocked--;
+
emit_signal(SceneStringNames::get_singleton()->tree_exited);
}
@@ -896,7 +909,7 @@ void Node::set_name(const String &p_name) {
data.name = name;
if (data.parent) {
- data.parent->_validate_child_name(this);
+ data.parent->_validate_child_name(this, true);
}
propagate_notification(NOTIFICATION_PATH_RENAMED);
@@ -1144,31 +1157,6 @@ void Node::add_sibling(Node *p_sibling, bool p_legible_unique_name) {
data.parent->_move_child(p_sibling, get_index() + 1);
}
-void Node::_propagate_validate_owner() {
- if (data.owner) {
- bool found = false;
- Node *parent = data.parent;
-
- while (parent) {
- if (parent == data.owner) {
- found = true;
- break;
- }
-
- parent = parent->data.parent;
- }
-
- if (!found) {
- data.owner->data.owned.erase(data.OW);
- data.owner = nullptr;
- }
- }
-
- for (int i = 0; i < data.children.size(); i++) {
- data.children[i]->_propagate_validate_owner();
- }
-}
-
void Node::remove_child(Node *p_child) {
ERR_FAIL_NULL(p_child);
ERR_FAIL_COND_MSG(data.blocked > 0, "Parent node is busy setting up children, remove_node() failed. Consider using call_deferred(\"remove_child\", child) instead.");
@@ -1222,9 +1210,6 @@ void Node::remove_child(Node *p_child) {
p_child->data.parent = nullptr;
p_child->data.pos = -1;
- // validate owner
- p_child->_propagate_validate_owner();
-
if (data.inside_tree) {
p_child->_propagate_after_exit_tree();
}
diff --git a/scene/main/node.h b/scene/main/node.h
index dc74a33580..a1fc672a15 100644
--- a/scene/main/node.h
+++ b/scene/main/node.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -172,7 +172,6 @@ private:
void _propagate_ready();
void _propagate_exit_tree();
void _propagate_after_exit_tree();
- void _propagate_validate_owner();
void _print_stray_nodes();
void _propagate_process_owner(Node *p_owner, int p_pause_notification, int p_enabled_notification);
Array _get_node_and_resource(const NodePath &p_path);
diff --git a/scene/main/resource_preloader.cpp b/scene/main/resource_preloader.cpp
index c44b55284d..49010095ff 100644
--- a/scene/main/resource_preloader.cpp
+++ b/scene/main/resource_preloader.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/resource_preloader.h b/scene/main/resource_preloader.h
index 1b7ea3fb9f..aabb109d56 100644
--- a/scene/main/resource_preloader.h
+++ b/scene/main/resource_preloader.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp
index 2af8024fe4..cafa4a43fd 100644
--- a/scene/main/scene_tree.cpp
+++ b/scene/main/scene_tree.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -535,7 +535,7 @@ void SceneTree::process_tweens(float p_delta, bool p_physics) {
for (List<Ref<Tween>>::Element *E = tweens.front(); E;) {
List<Ref<Tween>>::Element *N = E->next();
// Don't process if paused or process mode doesn't match.
- if ((paused && E->get()->should_pause()) || (p_physics == (E->get()->get_process_mode() == Tween::TWEEN_PROCESS_IDLE))) {
+ if (!E->get()->can_process(paused) || (p_physics == (E->get()->get_process_mode() == Tween::TWEEN_PROCESS_IDLE))) {
if (E == L) {
break;
}
@@ -1355,9 +1355,9 @@ SceneTree::SceneTree() {
const bool use_occlusion_culling = GLOBAL_DEF("rendering/occlusion_culling/use_occlusion_culling", false);
root->set_use_occlusion_culling(use_occlusion_culling);
- float lod_threshold = GLOBAL_DEF("rendering/mesh_lod/lod_change/threshold_pixels", 1.0);
+ float mesh_lod_threshold = GLOBAL_DEF("rendering/mesh_lod/lod_change/threshold_pixels", 1.0);
ProjectSettings::get_singleton()->set_custom_property_info("rendering/mesh_lod/lod_change/threshold_pixels", PropertyInfo(Variant::FLOAT, "rendering/mesh_lod/lod_change/threshold_pixels", PROPERTY_HINT_RANGE, "0,1024,0.1"));
- root->set_lod_threshold(lod_threshold);
+ root->set_mesh_lod_threshold(mesh_lod_threshold);
bool snap_2d_transforms = GLOBAL_DEF("rendering/2d/snap/snap_2d_transforms_to_pixel", false);
root->set_snap_2d_transforms_to_pixel(snap_2d_transforms);
diff --git a/scene/main/scene_tree.h b/scene/main/scene_tree.h
index 7a4f9f9c52..1dff1dab4f 100644
--- a/scene/main/scene_tree.h
+++ b/scene/main/scene_tree.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/shader_globals_override.cpp b/scene/main/shader_globals_override.cpp
index 9477e300d1..240e662efb 100644
--- a/scene/main/shader_globals_override.cpp
+++ b/scene/main/shader_globals_override.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/shader_globals_override.h b/scene/main/shader_globals_override.h
index ab4b9de727..af99bf9aa7 100644
--- a/scene/main/shader_globals_override.h
+++ b/scene/main/shader_globals_override.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/timer.cpp b/scene/main/timer.cpp
index 154e4cf683..babe62f453 100644
--- a/scene/main/timer.cpp
+++ b/scene/main/timer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/timer.h b/scene/main/timer.h
index e2f34042dd..8785d31a8a 100644
--- a/scene/main/timer.h
+++ b/scene/main/timer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index 34845d5875..abbd7ba5a0 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -48,6 +48,7 @@
#include "scene/gui/label.h"
#include "scene/gui/popup.h"
#include "scene/gui/popup_menu.h"
+#include "scene/gui/subviewport_container.h"
#include "scene/main/canvas_layer.h"
#include "scene/main/window.h"
#include "scene/resources/mesh.h"
@@ -371,8 +372,6 @@ void Viewport::_sub_window_remove(Window *p_window) {
void Viewport::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_ENTER_TREE: {
- gui.embedding_subwindows = gui.embed_subwindows_hint;
-
if (get_parent()) {
parent = get_parent()->get_viewport();
RenderingServer::get_singleton()->viewport_set_parent_viewport(viewport, parent->get_viewport_rid());
@@ -2545,7 +2544,7 @@ bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) {
if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT) {
bool click_on_window = false;
for (int i = gui.sub_windows.size() - 1; i >= 0; i--) {
- SubWindow &sw = gui.sub_windows.write[i];
+ SubWindow sw = gui.sub_windows.write[i];
// Clicked inside window?
@@ -2833,13 +2832,13 @@ bool Viewport::is_using_debanding() const {
return use_debanding;
}
-void Viewport::set_lod_threshold(float p_pixels) {
- lod_threshold = p_pixels;
- RS::get_singleton()->viewport_set_lod_threshold(viewport, lod_threshold);
+void Viewport::set_mesh_lod_threshold(float p_pixels) {
+ mesh_lod_threshold = p_pixels;
+ RS::get_singleton()->viewport_set_mesh_lod_threshold(viewport, mesh_lod_threshold);
}
-float Viewport::get_lod_threshold() const {
- return lod_threshold;
+float Viewport::get_mesh_lod_threshold() const {
+ return mesh_lod_threshold;
}
void Viewport::set_use_occlusion_culling(bool p_use_occlusion_culling) {
@@ -3634,8 +3633,8 @@ void Viewport::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_sdf_scale", "scale"), &Viewport::set_sdf_scale);
ClassDB::bind_method(D_METHOD("get_sdf_scale"), &Viewport::get_sdf_scale);
- ClassDB::bind_method(D_METHOD("set_lod_threshold", "pixels"), &Viewport::set_lod_threshold);
- ClassDB::bind_method(D_METHOD("get_lod_threshold"), &Viewport::get_lod_threshold);
+ ClassDB::bind_method(D_METHOD("set_mesh_lod_threshold", "pixels"), &Viewport::set_mesh_lod_threshold);
+ ClassDB::bind_method(D_METHOD("get_mesh_lod_threshold"), &Viewport::get_mesh_lod_threshold);
ClassDB::bind_method(D_METHOD("_process_picking"), &Viewport::_process_picking);
@@ -3685,7 +3684,7 @@ void Viewport::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::INT, "screen_space_aa", PROPERTY_HINT_ENUM, "Disabled (Fastest),FXAA (Fast)"), "set_screen_space_aa", "get_screen_space_aa");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_debanding"), "set_use_debanding", "is_using_debanding");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_occlusion_culling"), "set_use_occlusion_culling", "is_using_occlusion_culling");
- ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "lod_threshold", PROPERTY_HINT_RANGE, "0,1024,0.1"), "set_lod_threshold", "get_lod_threshold");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "mesh_lod_threshold", PROPERTY_HINT_RANGE, "0,1024,0.1"), "set_mesh_lod_threshold", "get_mesh_lod_threshold");
ADD_PROPERTY(PropertyInfo(Variant::INT, "debug_draw", PROPERTY_HINT_ENUM, "Disabled,Unshaded,Overdraw,Wireframe"), "set_debug_draw", "get_debug_draw");
#ifndef _3D_DISABLED
ADD_GROUP("Scaling 3D", "");
@@ -3766,6 +3765,7 @@ void Viewport::_bind_methods() {
BIND_ENUM_CONSTANT(DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS);
BIND_ENUM_CONSTANT(DEBUG_DRAW_SCENE_LUMINANCE);
BIND_ENUM_CONSTANT(DEBUG_DRAW_SSAO);
+ BIND_ENUM_CONSTANT(DEBUG_DRAW_SSIL);
BIND_ENUM_CONSTANT(DEBUG_DRAW_PSSM_SPLITS);
BIND_ENUM_CONSTANT(DEBUG_DRAW_DECAL_ATLAS);
BIND_ENUM_CONSTANT(DEBUG_DRAW_SDFGI);
@@ -3824,7 +3824,7 @@ Viewport::Viewport() {
set_shadow_atlas_quadrant_subdiv(2, SHADOW_ATLAS_QUADRANT_SUBDIV_16);
set_shadow_atlas_quadrant_subdiv(3, SHADOW_ATLAS_QUADRANT_SUBDIV_64);
- set_lod_threshold(lod_threshold);
+ set_mesh_lod_threshold(mesh_lod_threshold);
String id = itos(get_instance_id());
input_group = "_vp_input" + id;
@@ -3864,6 +3864,11 @@ Viewport::~Viewport() {
void SubViewport::set_size(const Size2i &p_size) {
_set_size(p_size, _get_size_2d_override(), Rect2i(), _stretch_transform(), true);
+
+ SubViewportContainer *c = Object::cast_to<SubViewportContainer>(get_parent());
+ if (c) {
+ c->update_minimum_size();
+ }
}
Size2i SubViewport::get_size() const {
diff --git a/scene/main/viewport.h b/scene/main/viewport.h
index 38d43e1e59..a3127811f5 100644
--- a/scene/main/viewport.h
+++ b/scene/main/viewport.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -148,6 +148,7 @@ public:
DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS,
DEBUG_DRAW_SCENE_LUMINANCE,
DEBUG_DRAW_SSAO,
+ DEBUG_DRAW_SSIL,
DEBUG_DRAW_PSSM_SPLITS,
DEBUG_DRAW_DECAL_ATLAS,
DEBUG_DRAW_SDFGI,
@@ -296,7 +297,7 @@ private:
float fsr_sharpness = 0.2f;
float fsr_mipmap_bias = 0.0f;
bool use_debanding = false;
- float lod_threshold = 1.0;
+ float mesh_lod_threshold = 1.0;
bool use_occlusion_culling = false;
Ref<ViewportTexture> default_texture;
@@ -361,7 +362,6 @@ private:
bool dragging = false;
bool drag_successful = false;
bool embed_subwindows_hint = false;
- bool embedding_subwindows = false;
Window *subwindow_focused = nullptr;
SubWindowDrag subwindow_drag = SUB_WINDOW_DRAG_DISABLED;
@@ -372,7 +372,7 @@ private:
SubWindowResize subwindow_resize_mode;
Rect2i subwindow_resize_from_rect;
- Vector<SubWindow> sub_windows;
+ Vector<SubWindow> sub_windows; // Don't obtain references or pointers to the elements, as their location can change.
} gui;
DefaultCanvasItemTextureFilter default_canvas_item_texture_filter = DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR;
@@ -530,8 +530,8 @@ public:
void set_use_debanding(bool p_use_debanding);
bool is_using_debanding() const;
- void set_lod_threshold(float p_pixels);
- float get_lod_threshold() const;
+ void set_mesh_lod_threshold(float p_pixels);
+ float get_mesh_lod_threshold() const;
void set_use_occlusion_culling(bool p_us_occlusion_culling);
bool is_using_occlusion_culling() const;
diff --git a/scene/main/window.cpp b/scene/main/window.cpp
index 7784fa1094..43de4187d4 100644
--- a/scene/main/window.cpp
+++ b/scene/main/window.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/main/window.h b/scene/main/window.h
index f511f6df29..2dd1dd6601 100644
--- a/scene/main/window.h
+++ b/scene/main/window.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/property_utils.cpp b/scene/property_utils.cpp
index 6ffc1f148a..2540a633a9 100644
--- a/scene/property_utils.cpp
+++ b/scene/property_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -111,10 +111,37 @@ Variant PropertyUtils::get_property_default_value(const Object *p_object, const
}
// Fall back to the default from the native class
- if (r_is_class_default) {
- *r_is_class_default = true;
+ {
+ if (r_is_class_default) {
+ *r_is_class_default = true;
+ }
+ bool valid = false;
+ Variant value = ClassDB::class_get_default_property_value(p_object->get_class_name(), p_property, &valid);
+ if (valid) {
+ if (r_is_valid) {
+ *r_is_valid = true;
+ }
+ return value;
+ } else {
+ // Heuristically check if this is a synthetic property (whatever/0, whatever/1, etc.)
+ // because they are not in the class DB yet must have a default (null).
+ String prop_str = String(p_property);
+ int p = prop_str.rfind("/");
+ if (p != -1 && p < prop_str.length() - 1) {
+ bool all_digits = true;
+ for (int i = p + 1; i < prop_str.length(); i++) {
+ if (prop_str[i] < '0' || prop_str[i] > '9') {
+ all_digits = false;
+ break;
+ }
+ }
+ if (r_is_valid) {
+ *r_is_valid = all_digits;
+ }
+ }
+ return Variant();
+ }
}
- return ClassDB::class_get_default_property_value(p_object->get_class_name(), p_property, r_is_valid);
}
// Like SceneState::PackState, but using a raw pointer to avoid the cost of
diff --git a/scene/property_utils.h b/scene/property_utils.h
index aa06649cdc..5ada35fdd7 100644
--- a/scene/property_utils.h
+++ b/scene/property_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp
index 283a3a4883..e6b73b7780 100644
--- a/scene/register_scene_types.cpp
+++ b/scene/register_scene_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1071,7 +1071,7 @@ void initialize_theme() {
if (theme.is_valid()) {
Theme::set_project_default(theme);
if (font.is_valid()) {
- Theme::set_default_font(font);
+ Theme::set_fallback_font(font);
}
} else {
ERR_PRINT("Error loading custom theme '" + theme_path + "'");
diff --git a/scene/register_scene_types.h b/scene/register_scene_types.h
index 32ab165fb3..f0a14387c1 100644
--- a/scene/register_scene_types.h
+++ b/scene/register_scene_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp
index 255d0ececd..44d3e4af19 100644
--- a/scene/resources/animation.cpp
+++ b/scene/resources/animation.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2715,6 +2715,7 @@ void Animation::value_track_set_update_mode(int p_track, UpdateMode p_mode) {
ValueTrack *vt = static_cast<ValueTrack *>(t);
vt->update_mode = p_mode;
+ emit_changed();
}
Animation::UpdateMode Animation::value_track_get_update_mode(int p_track) const {
@@ -4197,7 +4198,7 @@ struct AnimationCompressionDataState {
};
uint32_t components = 3;
- LocalVector<uint8_t> data; //commited packets
+ LocalVector<uint8_t> data; // Committed packets.
struct PacketData {
int32_t data[3] = { 0, 0, 0 };
uint32_t frame = 0;
@@ -4576,7 +4577,7 @@ void Animation::compress(uint32_t p_page_size, uint32_t p_fps, float p_split_tol
}
}
for (int j = 0; j < 3; j++) {
- //cant have zero
+ // Can't have zero.
if (aabb.size[j] < CMP_EPSILON) {
aabb.size[j] = CMP_EPSILON;
}
@@ -4596,7 +4597,7 @@ void Animation::compress(uint32_t p_page_size, uint32_t p_fps, float p_split_tol
}
}
for (int j = 0; j < 3; j++) {
- //cant have zero
+ // Can't have zero.
if (aabb.size[j] < CMP_EPSILON) {
aabb.size[j] = CMP_EPSILON;
}
diff --git a/scene/resources/animation.h b/scene/resources/animation.h
index 8e4287e4fb..f9a33da428 100644
--- a/scene/resources/animation.h
+++ b/scene/resources/animation.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/audio_stream_sample.cpp b/scene/resources/audio_stream_sample.cpp
index d3fab802c5..56786ac4b1 100644
--- a/scene/resources/audio_stream_sample.cpp
+++ b/scene/resources/audio_stream_sample.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/audio_stream_sample.h b/scene/resources/audio_stream_sample.h
index 0eb34be9bf..043a62ff70 100644
--- a/scene/resources/audio_stream_sample.h
+++ b/scene/resources/audio_stream_sample.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/bit_map.cpp b/scene/resources/bit_map.cpp
index 16f1507c34..25f169b6a2 100644
--- a/scene/resources/bit_map.cpp
+++ b/scene/resources/bit_map.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/bit_map.h b/scene/resources/bit_map.h
index 68fd0b999a..0d0d779c32 100644
--- a/scene/resources/bit_map.h
+++ b/scene/resources/bit_map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/box_shape_3d.cpp b/scene/resources/box_shape_3d.cpp
index 008914c5ee..b97d378e02 100644
--- a/scene/resources/box_shape_3d.cpp
+++ b/scene/resources/box_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/box_shape_3d.h b/scene/resources/box_shape_3d.h
index 91978a0e6a..4e6db893af 100644
--- a/scene/resources/box_shape_3d.h
+++ b/scene/resources/box_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/camera_effects.cpp b/scene/resources/camera_effects.cpp
index 0df372ea1b..ebe2aa4dba 100644
--- a/scene/resources/camera_effects.cpp
+++ b/scene/resources/camera_effects.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/camera_effects.h b/scene/resources/camera_effects.h
index b9338f4806..85ae64cdf5 100644
--- a/scene/resources/camera_effects.h
+++ b/scene/resources/camera_effects.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/canvas_item_material.cpp b/scene/resources/canvas_item_material.cpp
index b291724c4c..2d668cdf7f 100644
--- a/scene/resources/canvas_item_material.cpp
+++ b/scene/resources/canvas_item_material.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/canvas_item_material.h b/scene/resources/canvas_item_material.h
index 37cd4de136..e40e4392cb 100644
--- a/scene/resources/canvas_item_material.h
+++ b/scene/resources/canvas_item_material.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/capsule_shape_2d.cpp b/scene/resources/capsule_shape_2d.cpp
index 0818e4fd99..cb8a189116 100644
--- a/scene/resources/capsule_shape_2d.cpp
+++ b/scene/resources/capsule_shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/capsule_shape_2d.h b/scene/resources/capsule_shape_2d.h
index 37b6c52c0e..ec8b540947 100644
--- a/scene/resources/capsule_shape_2d.h
+++ b/scene/resources/capsule_shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/capsule_shape_3d.cpp b/scene/resources/capsule_shape_3d.cpp
index afec7b1877..c16ddad984 100644
--- a/scene/resources/capsule_shape_3d.cpp
+++ b/scene/resources/capsule_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/capsule_shape_3d.h b/scene/resources/capsule_shape_3d.h
index f09b4fb77d..967a413da4 100644
--- a/scene/resources/capsule_shape_3d.h
+++ b/scene/resources/capsule_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/circle_shape_2d.cpp b/scene/resources/circle_shape_2d.cpp
index f06bc4248d..68ee1be9f9 100644
--- a/scene/resources/circle_shape_2d.cpp
+++ b/scene/resources/circle_shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/circle_shape_2d.h b/scene/resources/circle_shape_2d.h
index 333f299236..62a907387f 100644
--- a/scene/resources/circle_shape_2d.h
+++ b/scene/resources/circle_shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/concave_polygon_shape_2d.cpp b/scene/resources/concave_polygon_shape_2d.cpp
index 0c767c8a52..b188a6164d 100644
--- a/scene/resources/concave_polygon_shape_2d.cpp
+++ b/scene/resources/concave_polygon_shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/concave_polygon_shape_2d.h b/scene/resources/concave_polygon_shape_2d.h
index 98ae341e97..0f49a0d80f 100644
--- a/scene/resources/concave_polygon_shape_2d.h
+++ b/scene/resources/concave_polygon_shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/concave_polygon_shape_3d.cpp b/scene/resources/concave_polygon_shape_3d.cpp
index 03854683bd..3e178108c4 100644
--- a/scene/resources/concave_polygon_shape_3d.cpp
+++ b/scene/resources/concave_polygon_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/concave_polygon_shape_3d.h b/scene/resources/concave_polygon_shape_3d.h
index bb28359dcc..5337deb5fb 100644
--- a/scene/resources/concave_polygon_shape_3d.h
+++ b/scene/resources/concave_polygon_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/convex_polygon_shape_2d.cpp b/scene/resources/convex_polygon_shape_2d.cpp
index ac31315858..667399ee75 100644
--- a/scene/resources/convex_polygon_shape_2d.cpp
+++ b/scene/resources/convex_polygon_shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/convex_polygon_shape_2d.h b/scene/resources/convex_polygon_shape_2d.h
index 1813b608bd..4896d3ec66 100644
--- a/scene/resources/convex_polygon_shape_2d.h
+++ b/scene/resources/convex_polygon_shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/convex_polygon_shape_3d.cpp b/scene/resources/convex_polygon_shape_3d.cpp
index 6b895da606..e7960f1ba4 100644
--- a/scene/resources/convex_polygon_shape_3d.cpp
+++ b/scene/resources/convex_polygon_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/convex_polygon_shape_3d.h b/scene/resources/convex_polygon_shape_3d.h
index edd127c8f4..930edb015d 100644
--- a/scene/resources/convex_polygon_shape_3d.h
+++ b/scene/resources/convex_polygon_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/curve.cpp b/scene/resources/curve.cpp
index bf3efd7599..d2cd76b796 100644
--- a/scene/resources/curve.cpp
+++ b/scene/resources/curve.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/curve.h b/scene/resources/curve.h
index 16facda85a..767900b843 100644
--- a/scene/resources/curve.h
+++ b/scene/resources/curve.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/cylinder_shape_3d.cpp b/scene/resources/cylinder_shape_3d.cpp
index 63bdc8d26d..5eeb62d17b 100644
--- a/scene/resources/cylinder_shape_3d.cpp
+++ b/scene/resources/cylinder_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/cylinder_shape_3d.h b/scene/resources/cylinder_shape_3d.h
index d1b8364672..0211f2b08f 100644
--- a/scene/resources/cylinder_shape_3d.h
+++ b/scene/resources/cylinder_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp
index a1d76ef352..549bd3ba12 100644
--- a/scene/resources/default_theme/default_theme.cpp
+++ b/scene/resources/default_theme/default_theme.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1053,17 +1053,17 @@ void make_default_theme(bool p_hidpi, Ref<Font> p_font) {
fill_default_theme(t, default_font, large_font, default_icon, default_style, default_scale);
Theme::set_default(t);
- Theme::set_default_base_scale(default_scale);
- Theme::set_default_icon(default_icon);
- Theme::set_default_style(default_style);
- Theme::set_default_font(default_font);
- Theme::set_default_font_size(default_font_size);
+ Theme::set_fallback_base_scale(default_scale);
+ Theme::set_fallback_icon(default_icon);
+ Theme::set_fallback_style(default_style);
+ Theme::set_fallback_font(default_font);
+ Theme::set_fallback_font_size(default_font_size);
}
void clear_default_theme() {
Theme::set_project_default(nullptr);
Theme::set_default(nullptr);
- Theme::set_default_icon(nullptr);
- Theme::set_default_style(nullptr);
- Theme::set_default_font(nullptr);
+ Theme::set_fallback_icon(nullptr);
+ Theme::set_fallback_style(nullptr);
+ Theme::set_fallback_font(nullptr);
}
diff --git a/scene/resources/default_theme/default_theme.h b/scene/resources/default_theme/default_theme.h
index 4cd781e814..e6d7b31b3e 100644
--- a/scene/resources/default_theme/default_theme.h
+++ b/scene/resources/default_theme/default_theme.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/environment.cpp b/scene/resources/environment.cpp
index 4c25ed589b..7e71ad8986 100644
--- a/scene/resources/environment.cpp
+++ b/scene/resources/environment.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -426,6 +426,64 @@ void Environment::_update_ssao() {
ssao_ao_channel_affect);
}
+// SSIL
+
+void Environment::set_ssil_enabled(bool p_enabled) {
+ ssil_enabled = p_enabled;
+ _update_ssil();
+ notify_property_list_changed();
+}
+
+bool Environment::is_ssil_enabled() const {
+ return ssil_enabled;
+}
+
+void Environment::set_ssil_radius(float p_radius) {
+ ssil_radius = p_radius;
+ _update_ssil();
+}
+
+float Environment::get_ssil_radius() const {
+ return ssil_radius;
+}
+
+void Environment::set_ssil_intensity(float p_intensity) {
+ ssil_intensity = p_intensity;
+ _update_ssil();
+}
+
+float Environment::get_ssil_intensity() const {
+ return ssil_intensity;
+}
+
+void Environment::set_ssil_sharpness(float p_sharpness) {
+ ssil_sharpness = p_sharpness;
+ _update_ssil();
+}
+
+float Environment::get_ssil_sharpness() const {
+ return ssil_sharpness;
+}
+
+void Environment::set_ssil_normal_rejection(float p_normal_rejection) {
+ ssil_normal_rejection = p_normal_rejection;
+ _update_ssil();
+}
+
+float Environment::get_ssil_normal_rejection() const {
+ return ssil_normal_rejection;
+}
+
+void Environment::_update_ssil() {
+ RS::get_singleton()->environment_set_ssil(
+ environment,
+ ssil_enabled,
+ ssil_radius,
+ ssil_intensity,
+ ssil_sharpness,
+ ssil_normal_rejection);
+}
+
// SDFGI
void Environment::set_sdfgi_enabled(bool p_enabled) {
@@ -1164,7 +1222,6 @@ void Environment::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ss_reflections_depth_tolerance", PROPERTY_HINT_RANGE, "0.01,128,0.1"), "set_ssr_depth_tolerance", "get_ssr_depth_tolerance");
// SSAO
-
ClassDB::bind_method(D_METHOD("set_ssao_enabled", "enabled"), &Environment::set_ssao_enabled);
ClassDB::bind_method(D_METHOD("is_ssao_enabled"), &Environment::is_ssao_enabled);
ClassDB::bind_method(D_METHOD("set_ssao_radius", "radius"), &Environment::set_ssao_radius);
@@ -1195,6 +1252,25 @@ void Environment::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssao_light_affect", PROPERTY_HINT_RANGE, "0.00,1,0.01"), "set_ssao_direct_light_affect", "get_ssao_direct_light_affect");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssao_ao_channel_affect", PROPERTY_HINT_RANGE, "0.00,1,0.01"), "set_ssao_ao_channel_affect", "get_ssao_ao_channel_affect");
+ // SSIL
+ ClassDB::bind_method(D_METHOD("set_ssil_enabled", "enabled"), &Environment::set_ssil_enabled);
+ ClassDB::bind_method(D_METHOD("is_ssil_enabled"), &Environment::is_ssil_enabled);
+ ClassDB::bind_method(D_METHOD("set_ssil_radius", "radius"), &Environment::set_ssil_radius);
+ ClassDB::bind_method(D_METHOD("get_ssil_radius"), &Environment::get_ssil_radius);
+ ClassDB::bind_method(D_METHOD("set_ssil_intensity", "intensity"), &Environment::set_ssil_intensity);
+ ClassDB::bind_method(D_METHOD("get_ssil_intensity"), &Environment::get_ssil_intensity);
+ ClassDB::bind_method(D_METHOD("set_ssil_sharpness", "sharpness"), &Environment::set_ssil_sharpness);
+ ClassDB::bind_method(D_METHOD("get_ssil_sharpness"), &Environment::get_ssil_sharpness);
+ ClassDB::bind_method(D_METHOD("set_ssil_normal_rejection", "normal_rejection"), &Environment::set_ssil_normal_rejection);
+ ClassDB::bind_method(D_METHOD("get_ssil_normal_rejection"), &Environment::get_ssil_normal_rejection);
+
+ ADD_GROUP("SSIL", "ssil_");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "ssil_enabled"), "set_ssil_enabled", "is_ssil_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssil_radius", PROPERTY_HINT_RANGE, "0.01,16,0.01,or_greater"), "set_ssil_radius", "get_ssil_radius");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssil_intensity", PROPERTY_HINT_RANGE, "0,16,0.01,or_greater"), "set_ssil_intensity", "get_ssil_intensity");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssil_sharpness", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_ssil_sharpness", "get_ssil_sharpness");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssil_normal_rejection", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_ssil_normal_rejection", "get_ssil_normal_rejection");
+
// SDFGI
ClassDB::bind_method(D_METHOD("set_sdfgi_enabled", "enabled"), &Environment::set_sdfgi_enabled);
@@ -1431,6 +1507,7 @@ Environment::Environment() {
_update_tonemap();
_update_ssr();
_update_ssao();
+ _update_ssil();
_update_sdfgi();
_update_glow();
_update_fog();
diff --git a/scene/resources/environment.h b/scene/resources/environment.h
index 024bef34de..98e755c336 100644
--- a/scene/resources/environment.h
+++ b/scene/resources/environment.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -142,6 +142,15 @@ private:
float ssao_ao_channel_affect = 0.0;
void _update_ssao();
+ // SSIL
+ bool ssil_enabled = false;
+ float ssil_radius = 5.0;
+ float ssil_intensity = 1.0;
+ float ssil_sharpness = 0.98;
+ float ssil_normal_rejection = 1.0;
+
+ void _update_ssil();
+
// SDFGI
bool sdfgi_enabled = false;
SDFGICascades sdfgi_cascades = SDFGI_CASCADES_6;
@@ -296,6 +305,18 @@ public:
void set_ssao_ao_channel_affect(float p_ao_channel_affect);
float get_ssao_ao_channel_affect() const;
+ // SSIL
+ void set_ssil_enabled(bool p_enabled);
+ bool is_ssil_enabled() const;
+ void set_ssil_radius(float p_radius);
+ float get_ssil_radius() const;
+ void set_ssil_intensity(float p_intensity);
+ float get_ssil_intensity() const;
+ void set_ssil_sharpness(float p_sharpness);
+ float get_ssil_sharpness() const;
+ void set_ssil_normal_rejection(float p_normal_rejection);
+ float get_ssil_normal_rejection() const;
+
// SDFGI
void set_sdfgi_enabled(bool p_enabled);
bool is_sdfgi_enabled() const;
diff --git a/scene/resources/fog_material.cpp b/scene/resources/fog_material.cpp
index 978aaca33d..a05ef0c779 100644
--- a/scene/resources/fog_material.cpp
+++ b/scene/resources/fog_material.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/fog_material.h b/scene/resources/fog_material.h
index e256bd4719..1f7cd7bfe6 100644
--- a/scene/resources/fog_material.h
+++ b/scene/resources/fog_material.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp
index e5740472c6..d9e0c301de 100644
--- a/scene/resources/font.cpp
+++ b/scene/resources/font.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -184,6 +184,9 @@ void FontData::_bind_methods() {
ClassDB::bind_method(D_METHOD("remove_script_support_override", "script"), &FontData::remove_script_support_override);
ClassDB::bind_method(D_METHOD("get_script_support_overrides"), &FontData::get_script_support_overrides);
+ ClassDB::bind_method(D_METHOD("set_opentype_feature_overrides", "overrides"), &FontData::set_opentype_feature_overrides);
+ ClassDB::bind_method(D_METHOD("get_opentype_feature_overrides"), &FontData::get_opentype_feature_overrides);
+
ClassDB::bind_method(D_METHOD("has_char", "char"), &FontData::has_char);
ClassDB::bind_method(D_METHOD("get_supported_chars"), &FontData::get_supported_chars);
@@ -191,49 +194,25 @@ void FontData::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_supported_feature_list"), &FontData::get_supported_feature_list);
ClassDB::bind_method(D_METHOD("get_supported_variation_list"), &FontData::get_supported_variation_list);
+
+ ADD_PROPERTY(PropertyInfo(Variant::PACKED_BYTE_ARRAY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_data", "get_data");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "antialiased", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_antialiased", "is_antialiased");
+ ADD_PROPERTY(PropertyInfo(Variant::STRING, "font_name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_font_name", "get_font_name");
+ ADD_PROPERTY(PropertyInfo(Variant::STRING, "style_name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_font_style_name", "get_font_style_name");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "font_style", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_font_style", "get_font_style");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "multichannel_signed_distance_field", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_multichannel_signed_distance_field", "is_multichannel_signed_distance_field");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "msdf_pixel_range", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_msdf_pixel_range", "get_msdf_pixel_range");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "msdf_size", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_msdf_size", "get_msdf_size");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "force_autohinter", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_force_autohinter", "is_force_autohinter");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "hinting", PROPERTY_HINT_ENUM, "None,Light,Normal", PROPERTY_USAGE_STORAGE), "set_hinting", "get_hinting");
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_oversampling", "get_oversampling");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "fixed_size", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_fixed_size", "get_fixed_size");
+ ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "opentype_feature_overrides", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "set_opentype_feature_overrides", "get_opentype_feature_overrides");
}
bool FontData::_set(const StringName &p_name, const Variant &p_value) {
Vector<String> tokens = p_name.operator String().split("/");
- if (tokens.size() == 1) {
- if (tokens[0] == "data") {
- set_data(p_value);
- return true;
- } else if (tokens[0] == "antialiased") {
- set_antialiased(p_value);
- return true;
- } else if (tokens[0] == "font_name") {
- set_font_name(p_value);
- return true;
- } else if (tokens[0] == "style_name") {
- set_font_style_name(p_value);
- return true;
- } else if (tokens[0] == "font_style") {
- set_font_style(p_value);
- return true;
- } else if (tokens[0] == "multichannel_signed_distance_field") {
- set_multichannel_signed_distance_field(p_value);
- return true;
- } else if (tokens[0] == "msdf_pixel_range") {
- set_msdf_pixel_range(p_value);
- return true;
- } else if (tokens[0] == "msdf_size") {
- set_msdf_size(p_value);
- return true;
- } else if (tokens[0] == "fixed_size") {
- set_fixed_size(p_value);
- return true;
- } else if (tokens[0] == "hinting") {
- set_hinting((TextServer::Hinting)p_value.operator int());
- return true;
- } else if (tokens[0] == "force_autohinter") {
- set_force_autohinter(p_value);
- return true;
- } else if (tokens[0] == "oversampling") {
- set_oversampling(p_value);
- return true;
- }
- } else if (tokens.size() == 2 && tokens[0] == "language_support_override") {
+ if (tokens.size() == 2 && tokens[0] == "language_support_override") {
String lang = tokens[1];
set_language_support_override(lang, p_value);
return true;
@@ -309,45 +288,7 @@ bool FontData::_set(const StringName &p_name, const Variant &p_value) {
bool FontData::_get(const StringName &p_name, Variant &r_ret) const {
Vector<String> tokens = p_name.operator String().split("/");
- if (tokens.size() == 1) {
- if (tokens[0] == "data") {
- r_ret = get_data();
- return true;
- } else if (tokens[0] == "antialiased") {
- r_ret = is_antialiased();
- return true;
- } else if (tokens[0] == "font_name") {
- r_ret = get_font_name();
- return true;
- } else if (tokens[0] == "style_name") {
- r_ret = get_font_style_name();
- return true;
- } else if (tokens[0] == "font_style") {
- r_ret = get_font_style();
- return true;
- } else if (tokens[0] == "multichannel_signed_distance_field") {
- r_ret = is_multichannel_signed_distance_field();
- return true;
- } else if (tokens[0] == "msdf_pixel_range") {
- r_ret = get_msdf_pixel_range();
- return true;
- } else if (tokens[0] == "msdf_size") {
- r_ret = get_msdf_size();
- return true;
- } else if (tokens[0] == "fixed_size") {
- r_ret = get_fixed_size();
- return true;
- } else if (tokens[0] == "hinting") {
- r_ret = get_hinting();
- return true;
- } else if (tokens[0] == "force_autohinter") {
- r_ret = is_force_autohinter();
- return true;
- } else if (tokens[0] == "oversampling") {
- r_ret = get_oversampling();
- return true;
- }
- } else if (tokens.size() == 2 && tokens[0] == "language_support_override") {
+ if (tokens.size() == 2 && tokens[0] == "language_support_override") {
String lang = tokens[1];
r_ret = get_language_support_override(lang);
return true;
@@ -422,20 +363,6 @@ bool FontData::_get(const StringName &p_name, Variant &r_ret) const {
}
void FontData::_get_property_list(List<PropertyInfo> *p_list) const {
- p_list->push_back(PropertyInfo(Variant::PACKED_BYTE_ARRAY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
-
- p_list->push_back(PropertyInfo(Variant::STRING, "font_name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
- p_list->push_back(PropertyInfo(Variant::STRING, "style_name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
- p_list->push_back(PropertyInfo(Variant::INT, "font_style", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
- p_list->push_back(PropertyInfo(Variant::BOOL, "antialiased", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
- p_list->push_back(PropertyInfo(Variant::BOOL, "multichannel_signed_distance_field", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
- p_list->push_back(PropertyInfo(Variant::INT, "msdf_pixel_range", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
- p_list->push_back(PropertyInfo(Variant::INT, "msdf_size", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
- p_list->push_back(PropertyInfo(Variant::INT, "fixed_size", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
- p_list->push_back(PropertyInfo(Variant::INT, "hinting", PROPERTY_HINT_ENUM, "None,Light,Normal", PROPERTY_USAGE_STORAGE));
- p_list->push_back(PropertyInfo(Variant::BOOL, "force_autohinter", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
- p_list->push_back(PropertyInfo(Variant::FLOAT, "oversampling", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
-
Vector<String> lang_over = get_language_support_overrides();
for (int i = 0; i < lang_over.size(); i++) {
p_list->push_back(PropertyInfo(Variant::BOOL, "language_support_override/" + lang_over[i], PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
@@ -1077,6 +1004,16 @@ Vector<String> FontData::get_script_support_overrides() const {
return TS->font_get_script_support_overrides(cache[0]);
}
+void FontData::set_opentype_feature_overrides(const Dictionary &p_overrides) {
+ _ensure_rid(0);
+ TS->font_set_opentype_feature_overrides(cache[0], p_overrides);
+}
+
+Dictionary FontData::get_opentype_feature_overrides() const {
+ _ensure_rid(0);
+ return TS->font_get_opentype_feature_overrides(cache[0]);
+}
+
bool FontData::has_char(char32_t p_char) const {
_ensure_rid(0);
return TS->font_has_char(cache[0], p_char);
diff --git a/scene/resources/font.h b/scene/resources/font.h
index fb662037a1..1b4ecc73ce 100644
--- a/scene/resources/font.h
+++ b/scene/resources/font.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -198,6 +198,9 @@ public:
virtual void remove_script_support_override(const String &p_script);
virtual Vector<String> get_script_support_overrides() const;
+ virtual void set_opentype_feature_overrides(const Dictionary &p_overrides);
+ virtual Dictionary get_opentype_feature_overrides() const;
+
// Base font properties.
virtual bool has_char(char32_t p_char) const;
virtual String get_supported_chars() const;
diff --git a/scene/resources/gradient.cpp b/scene/resources/gradient.cpp
index 95ec141df6..79ac1b57c3 100644
--- a/scene/resources/gradient.cpp
+++ b/scene/resources/gradient.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/gradient.h b/scene/resources/gradient.h
index eb438d0bba..c2085b3a13 100644
--- a/scene/resources/gradient.h
+++ b/scene/resources/gradient.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/height_map_shape_3d.cpp b/scene/resources/height_map_shape_3d.cpp
index d1a958ad38..121930d86f 100644
--- a/scene/resources/height_map_shape_3d.cpp
+++ b/scene/resources/height_map_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/height_map_shape_3d.h b/scene/resources/height_map_shape_3d.h
index 1273aee040..79d1b15674 100644
--- a/scene/resources/height_map_shape_3d.h
+++ b/scene/resources/height_map_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/immediate_mesh.cpp b/scene/resources/immediate_mesh.cpp
index 4f9a055bfb..b9469803a0 100644
--- a/scene/resources/immediate_mesh.cpp
+++ b/scene/resources/immediate_mesh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/immediate_mesh.h b/scene/resources/immediate_mesh.h
index 92bf91441d..e5f627ae8e 100644
--- a/scene/resources/immediate_mesh.h
+++ b/scene/resources/immediate_mesh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/importer_mesh.cpp b/scene/resources/importer_mesh.cpp
index b2b90f019e..92ab091b86 100644
--- a/scene/resources/importer_mesh.cpp
+++ b/scene/resources/importer_mesh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/importer_mesh.h b/scene/resources/importer_mesh.h
index 8576312a8a..8f77597a58 100644
--- a/scene/resources/importer_mesh.h
+++ b/scene/resources/importer_mesh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp
index 3f14c7bb62..f3e5ece1f9 100644
--- a/scene/resources/material.cpp
+++ b/scene/resources/material.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1659,18 +1659,6 @@ bool BaseMaterial3D::get_feature(Feature p_feature) const {
void BaseMaterial3D::set_texture(TextureParam p_param, const Ref<Texture2D> &p_texture) {
ERR_FAIL_INDEX(p_param, TEXTURE_MAX);
- if (get_texture(TEXTURE_ROUGHNESS).is_null() && p_texture.is_valid() && p_param == TEXTURE_ROUGHNESS) {
- // If no roughness texture is currently set, automatically set the recommended value
- // for roughness when using a roughness map.
- set_roughness(1.0);
- }
-
- if (get_texture(TEXTURE_METALLIC).is_null() && p_texture.is_valid() && p_param == TEXTURE_METALLIC) {
- // If no metallic texture is currently set, automatically set the recommended value
- // for metallic when using a metallic map.
- set_metallic(1.0);
- }
-
textures[p_param] = p_texture;
RID rid = p_texture.is_valid() ? p_texture->get_rid() : RID();
RS::get_singleton()->material_set_param(_get_material(), shader_names->texture_names[p_param], rid);
diff --git a/scene/resources/material.h b/scene/resources/material.h
index 798f7568df..7250544d10 100644
--- a/scene/resources/material.h
+++ b/scene/resources/material.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/mesh.cpp b/scene/resources/mesh.cpp
index 661016d148..d2d96b1f06 100644
--- a/scene/resources/mesh.cpp
+++ b/scene/resources/mesh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -596,7 +596,7 @@ enum OldArrayFormat {
OLD_ARRAY_FLAG_USE_2D_VERTICES = OLD_ARRAY_COMPRESS_INDEX << 1,
OLD_ARRAY_FLAG_USE_16_BIT_BONES = OLD_ARRAY_COMPRESS_INDEX << 2,
OLD_ARRAY_FLAG_USE_DYNAMIC_UPDATE = OLD_ARRAY_COMPRESS_INDEX << 3,
-
+ OLD_ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION = OLD_ARRAY_COMPRESS_INDEX << 4,
};
#ifndef DISABLE_DEPRECATED
@@ -626,6 +626,27 @@ static Mesh::PrimitiveType _old_primitives[7] = {
};
#endif // DISABLE_DEPRECATED
+// Convert Octahedron-mapped normalized vector back to Cartesian
+// Assumes normalized format (elements of v within range [-1, 1])
+Vector3 _oct_to_norm(const Vector2 v) {
+ Vector3 res(v.x, v.y, 1 - (Math::absf(v.x) + Math::absf(v.y)));
+ float t = MAX(-res.z, 0.0f);
+ res.x += t * -SIGN(res.x);
+ res.y += t * -SIGN(res.y);
+ return res.normalized();
+}
+
+// Convert Octahedron-mapped normalized tangent vector back to Cartesian
+// out_sign provides the direction for the original cartesian tangent
+// Assumes normalized format (elements of v within range [-1, 1])
+Vector3 _oct_to_tangent(const Vector2 v, float *out_sign) {
+ Vector2 v_decompressed = v;
+ v_decompressed.y = Math::absf(v_decompressed.y) * 2 - 1;
+ Vector3 res = _oct_to_norm(v_decompressed);
+ *out_sign = SIGN(v[1]);
+ return res;
+}
+
void _fix_array_compatibility(const Vector<uint8_t> &p_src, uint32_t p_old_format, uint32_t p_new_format, uint32_t p_elements, Vector<uint8_t> &vertex_data, Vector<uint8_t> &attribute_data, Vector<uint8_t> &skin_data) {
uint32_t dst_vertex_stride;
uint32_t dst_attribute_stride;
@@ -692,66 +713,133 @@ void _fix_array_compatibility(const Vector<uint8_t> &p_src, uint32_t p_old_forma
}
} break;
case OLD_ARRAY_NORMAL: {
- if (p_old_format & OLD_ARRAY_COMPRESS_NORMAL) {
- const float multiplier = 1.f / 127.f * 1023.0f;
+ if (p_old_format & OLD_ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION) {
+ if ((p_old_format & OLD_ARRAY_COMPRESS_NORMAL) && (p_old_format & OLD_ARRAY_FORMAT_TANGENT) && (p_old_format & OLD_ARRAY_COMPRESS_TANGENT)) {
+ for (uint32_t i = 0; i < p_elements; i++) {
+ const int8_t *src = (const int8_t *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
+ uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_NORMAL]];
+ const Vector2 src_vec(src[0] / 127.0f, src[1] / 127.0f);
+
+ const Vector3 res = _oct_to_norm(src_vec) * Vector3(0.5, 0.5, 0.5) + Vector3(0.5, 0.5, 0.5);
+ *dst = 0;
+ *dst |= CLAMP(int(res.x * 1023.0f), 0, 1023);
+ *dst |= CLAMP(int(res.y * 1023.0f), 0, 1023) << 10;
+ *dst |= CLAMP(int(res.z * 1023.0f), 0, 1023) << 20;
+ }
+ src_offset += sizeof(int8_t) * 2;
+ } else {
+ for (uint32_t i = 0; i < p_elements; i++) {
+ const int16_t *src = (const int16_t *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
+ uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_NORMAL]];
+ const Vector2 src_vec(src[0] / 32767.0f, src[1] / 32767.0f);
+
+ const Vector3 res = _oct_to_norm(src_vec) * Vector3(0.5, 0.5, 0.5) + Vector3(0.5, 0.5, 0.5);
+ *dst = 0;
+ *dst |= CLAMP(int(res.x * 1023.0f), 0, 1023);
+ *dst |= CLAMP(int(res.y * 1023.0f), 0, 1023) << 10;
+ *dst |= CLAMP(int(res.z * 1023.0f), 0, 1023) << 20;
+ }
+ src_offset += sizeof(int16_t) * 2;
+ }
+ } else { // No Octahedral compression
+ if (p_old_format & OLD_ARRAY_COMPRESS_NORMAL) {
+ const float multiplier = 1.f / 127.f * 1023.0f;
- for (uint32_t i = 0; i < p_elements; i++) {
- const int8_t *src = (const int8_t *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
- uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_NORMAL]];
+ for (uint32_t i = 0; i < p_elements; i++) {
+ const int8_t *src = (const int8_t *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
+ uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_NORMAL]];
- *dst = 0;
- *dst |= CLAMP(int(src[0] * multiplier), 0, 1023);
- *dst |= CLAMP(int(src[1] * multiplier), 0, 1023) << 10;
- *dst |= CLAMP(int(src[2] * multiplier), 0, 1023) << 20;
- }
- src_offset += sizeof(uint32_t);
- } else {
- for (uint32_t i = 0; i < p_elements; i++) {
- const float *src = (const float *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
- uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_NORMAL]];
+ *dst = 0;
+ *dst |= CLAMP(int(src[0] * multiplier), 0, 1023);
+ *dst |= CLAMP(int(src[1] * multiplier), 0, 1023) << 10;
+ *dst |= CLAMP(int(src[2] * multiplier), 0, 1023) << 20;
+ }
+ src_offset += sizeof(uint32_t);
+ } else {
+ for (uint32_t i = 0; i < p_elements; i++) {
+ const float *src = (const float *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
+ uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_NORMAL]];
- *dst = 0;
- *dst |= CLAMP(int(src[0] * 1023.0), 0, 1023);
- *dst |= CLAMP(int(src[1] * 1023.0), 0, 1023) << 10;
- *dst |= CLAMP(int(src[2] * 1023.0), 0, 1023) << 20;
+ *dst = 0;
+ *dst |= CLAMP(int(src[0] * 1023.0), 0, 1023);
+ *dst |= CLAMP(int(src[1] * 1023.0), 0, 1023) << 10;
+ *dst |= CLAMP(int(src[2] * 1023.0), 0, 1023) << 20;
+ }
+ src_offset += sizeof(float) * 3;
}
- src_offset += sizeof(float) * 3;
}
} break;
case OLD_ARRAY_TANGENT: {
- if (p_old_format & OLD_ARRAY_COMPRESS_TANGENT) {
- const float multiplier = 1.f / 127.f * 1023.0f;
-
- for (uint32_t i = 0; i < p_elements; i++) {
- const int8_t *src = (const int8_t *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
- uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_TANGENT]];
-
- *dst = 0;
- *dst |= CLAMP(int(src[0] * multiplier), 0, 1023);
- *dst |= CLAMP(int(src[1] * multiplier), 0, 1023) << 10;
- *dst |= CLAMP(int(src[2] * multiplier), 0, 1023) << 20;
- if (src[3] > 0) {
- *dst |= 3 << 30;
+ if (p_old_format & OLD_ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION) {
+ if (p_old_format & OLD_ARRAY_COMPRESS_TANGENT) { // int8
+ for (uint32_t i = 0; i < p_elements; i++) {
+ const int8_t *src = (const int8_t *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
+ uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_TANGENT]];
+ const Vector2 src_vec(src[0] / 127.0f, src[1] / 127.0f);
+ float out_sign;
+ const Vector3 res = _oct_to_tangent(src_vec, &out_sign) * Vector3(0.5, 0.5, 0.5) + Vector3(0.5, 0.5, 0.5);
+
+ *dst = 0;
+ *dst |= CLAMP(int(res.x * 1023.0), 0, 1023);
+ *dst |= CLAMP(int(res.y * 1023.0), 0, 1023) << 10;
+ *dst |= CLAMP(int(res.z * 1023.0), 0, 1023) << 20;
+ if (out_sign > 0) {
+ *dst |= 3 << 30;
+ }
}
+ src_offset += sizeof(int8_t) * 2;
+ } else { // int16
+ for (uint32_t i = 0; i < p_elements; i++) {
+ const int16_t *src = (const int16_t *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
+ uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_TANGENT]];
+ const Vector2 src_vec(src[0] / 32767.0f, src[1] / 32767.0f);
+ float out_sign;
+ Vector3 res = _oct_to_tangent(src_vec, &out_sign) * Vector3(0.5, 0.5, 0.5) + Vector3(0.5, 0.5, 0.5);
+
+ *dst = 0;
+ *dst |= CLAMP(int(res.x * 1023.0), 0, 1023);
+ *dst |= CLAMP(int(res.y * 1023.0), 0, 1023) << 10;
+ *dst |= CLAMP(int(res.z * 1023.0), 0, 1023) << 20;
+ if (out_sign > 0) {
+ *dst |= 3 << 30;
+ }
+ }
+ src_offset += sizeof(int16_t) * 2;
}
- src_offset += sizeof(uint32_t);
- } else {
- for (uint32_t i = 0; i < p_elements; i++) {
- const float *src = (const float *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
- uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_TANGENT]];
-
- *dst = 0;
- *dst |= CLAMP(int(src[0] * 1023.0), 0, 1023);
- *dst |= CLAMP(int(src[1] * 1023.0), 0, 1023) << 10;
- *dst |= CLAMP(int(src[2] * 1023.0), 0, 1023) << 20;
- if (src[3] > 0) {
- *dst |= 3 << 30;
+ } else { // No Octahedral compression
+ if (p_old_format & OLD_ARRAY_COMPRESS_TANGENT) {
+ const float multiplier = 1.f / 127.f * 1023.0f;
+
+ for (uint32_t i = 0; i < p_elements; i++) {
+ const int8_t *src = (const int8_t *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
+ uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_TANGENT]];
+
+ *dst = 0;
+ *dst |= CLAMP(int(src[0] * multiplier), 0, 1023);
+ *dst |= CLAMP(int(src[1] * multiplier), 0, 1023) << 10;
+ *dst |= CLAMP(int(src[2] * multiplier), 0, 1023) << 20;
+ if (src[3] > 0) {
+ *dst |= 3 << 30;
+ }
+ }
+ src_offset += sizeof(uint32_t);
+ } else {
+ for (uint32_t i = 0; i < p_elements; i++) {
+ const float *src = (const float *)&src_vertex_ptr[i * src_vertex_stride + src_offset];
+ uint32_t *dst = (uint32_t *)&dst_vertex_ptr[i * dst_vertex_stride + dst_offsets[Mesh::ARRAY_TANGENT]];
+
+ *dst = 0;
+ *dst |= CLAMP(int(src[0] * 1023.0), 0, 1023);
+ *dst |= CLAMP(int(src[1] * 1023.0), 0, 1023) << 10;
+ *dst |= CLAMP(int(src[2] * 1023.0), 0, 1023) << 20;
+ if (src[3] > 0) {
+ *dst |= 3 << 30;
+ }
}
+ src_offset += sizeof(float) * 4;
}
- src_offset += sizeof(float) * 4;
}
-
} break;
case OLD_ARRAY_COLOR: {
if (p_old_format & OLD_ARRAY_COMPRESS_COLOR) {
diff --git a/scene/resources/mesh.h b/scene/resources/mesh.h
index a95b4d4a5e..08d834bdb9 100644
--- a/scene/resources/mesh.h
+++ b/scene/resources/mesh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/mesh_data_tool.cpp b/scene/resources/mesh_data_tool.cpp
index 9ecd8ec2f3..594f723a1d 100644
--- a/scene/resources/mesh_data_tool.cpp
+++ b/scene/resources/mesh_data_tool.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/mesh_data_tool.h b/scene/resources/mesh_data_tool.h
index b0ebfba7ee..ff27d78c29 100644
--- a/scene/resources/mesh_data_tool.h
+++ b/scene/resources/mesh_data_tool.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/mesh_library.cpp b/scene/resources/mesh_library.cpp
index 309670e0b1..3db839a1d0 100644
--- a/scene/resources/mesh_library.cpp
+++ b/scene/resources/mesh_library.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/mesh_library.h b/scene/resources/mesh_library.h
index c25df757e9..e0f2ab2114 100644
--- a/scene/resources/mesh_library.h
+++ b/scene/resources/mesh_library.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/multimesh.cpp b/scene/resources/multimesh.cpp
index 8894f0bb11..c30e748f66 100644
--- a/scene/resources/multimesh.cpp
+++ b/scene/resources/multimesh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/multimesh.h b/scene/resources/multimesh.h
index 2fe0927e6f..30ada5365f 100644
--- a/scene/resources/multimesh.h
+++ b/scene/resources/multimesh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/navigation_mesh.cpp b/scene/resources/navigation_mesh.cpp
index db091ec37b..47a87bdea5 100644
--- a/scene/resources/navigation_mesh.cpp
+++ b/scene/resources/navigation_mesh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/navigation_mesh.h b/scene/resources/navigation_mesh.h
index 009239838f..e43e8627e4 100644
--- a/scene/resources/navigation_mesh.h
+++ b/scene/resources/navigation_mesh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp
index b2a339b850..402e67a0f1 100644
--- a/scene/resources/packed_scene.cpp
+++ b/scene/resources/packed_scene.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -353,15 +353,23 @@ Node *SceneState::instantiate(GenEditState p_edit_state) const {
continue;
}
- Vector<Variant> binds;
- if (c.binds.size()) {
- binds.resize(c.binds.size());
- for (int j = 0; j < c.binds.size(); j++) {
- binds.write[j] = props[c.binds[j]];
+ Callable callable(cto, snames[c.method]);
+ if (c.unbinds > 0) {
+ callable = callable.unbind(c.unbinds);
+ } else if (!c.binds.is_empty()) {
+ Vector<Variant> binds;
+ if (c.binds.size()) {
+ binds.resize(c.binds.size());
+ for (int j = 0; j < c.binds.size(); j++) {
+ binds.write[j] = props[c.binds[j]];
+ }
}
+
+ const Variant *args = binds.ptr();
+ callable = callable.bind(&args, binds.size());
}
- cfrom->connect(snames[c.signal], Callable(cto, snames[c.method]), binds, CONNECT_PERSIST | c.flags);
+ cfrom->connect(snames[c.signal], callable, varray(), CONNECT_PERSIST | c.flags);
}
//Node *s = ret_nodes[0];
@@ -652,6 +660,26 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName
continue;
}
+ Vector<Variant> binds;
+ int unbinds = 0;
+ Callable base_callable;
+
+ if (c.callable.is_custom()) {
+ CallableCustomBind *ccb = dynamic_cast<CallableCustomBind *>(c.callable.get_custom());
+ if (ccb) {
+ binds = ccb->get_binds();
+ base_callable = ccb->get_callable();
+ }
+
+ CallableCustomUnbind *ccu = dynamic_cast<CallableCustomUnbind *>(c.callable.get_custom());
+ if (ccu) {
+ unbinds = ccu->get_unbinds();
+ base_callable = ccu->get_callable();
+ }
+ } else {
+ base_callable = c.callable;
+ }
+
//find if this connection already exists
Node *common_parent = target->find_common_parent_with(p_node);
@@ -677,7 +705,7 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName
NodePath signal_from = common_parent->get_path_to(p_node);
NodePath signal_to = common_parent->get_path_to(target);
- if (ps->has_connection(signal_from, c.signal.get_name(), signal_to, c.callable.get_method())) {
+ if (ps->has_connection(signal_from, c.signal.get_name(), signal_to, base_callable.get_method())) {
exists = true;
break;
}
@@ -708,7 +736,7 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName
if (from_node >= 0 && to_node >= 0) {
//this one has state for this node, save
- if (state->is_connection(from_node, c.signal.get_name(), to_node, c.callable.get_method())) {
+ if (state->is_connection(from_node, c.signal.get_name(), to_node, base_callable.get_method())) {
exists2 = true;
break;
}
@@ -726,7 +754,7 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName
if (from_node >= 0 && to_node >= 0) {
//this one has state for this node, save
- if (state->is_connection(from_node, c.signal.get_name(), to_node, c.callable.get_method())) {
+ if (state->is_connection(from_node, c.signal.get_name(), to_node, base_callable.get_method())) {
exists2 = true;
break;
}
@@ -773,12 +801,16 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName
ConnectionData cd;
cd.from = src_id;
cd.to = target_id;
- cd.method = _nm_get_string(c.callable.get_method(), name_map);
+ cd.method = _nm_get_string(base_callable.get_method(), name_map);
cd.signal = _nm_get_string(c.signal.get_name(), name_map);
cd.flags = c.flags;
- for (int i = 0; i < c.binds.size(); i++) {
+ cd.unbinds = unbinds;
+ for (int i = 0; i < c.binds.size(); i++) { // TODO: This could be removed now.
cd.binds.push_back(_vm_get_variant(c.binds[i], variant_map));
}
+ for (int i = 0; i < binds.size(); i++) {
+ cd.binds.push_back(_vm_get_variant(binds[i], variant_map));
+ }
connections.push_back(cd);
}
}
@@ -1390,6 +1422,11 @@ int SceneState::get_connection_flags(int p_idx) const {
return connections[p_idx].flags;
}
+int SceneState::get_connection_unbinds(int p_idx) const {
+ ERR_FAIL_INDEX_V(p_idx, connections.size(), -1);
+ return connections[p_idx].unbinds;
+}
+
Array SceneState::get_connection_binds(int p_idx) const {
ERR_FAIL_INDEX_V(p_idx, connections.size(), Array());
Array binds;
@@ -1494,7 +1531,7 @@ void SceneState::set_base_scene(int p_idx) {
base_scene_idx = p_idx;
}
-void SceneState::add_connection(int p_from, int p_to, int p_signal, int p_method, int p_flags, const Vector<int> &p_binds) {
+void SceneState::add_connection(int p_from, int p_to, int p_signal, int p_method, int p_flags, int p_unbinds, const Vector<int> &p_binds) {
ERR_FAIL_INDEX(p_signal, names.size());
ERR_FAIL_INDEX(p_method, names.size());
@@ -1507,6 +1544,7 @@ void SceneState::add_connection(int p_from, int p_to, int p_signal, int p_method
c.signal = p_signal;
c.method = p_method;
c.flags = p_flags;
+ c.unbinds = p_unbinds;
c.binds = p_binds;
connections.push_back(c);
}
@@ -1549,6 +1587,7 @@ void SceneState::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_connection_method", "idx"), &SceneState::get_connection_method);
ClassDB::bind_method(D_METHOD("get_connection_flags", "idx"), &SceneState::get_connection_flags);
ClassDB::bind_method(D_METHOD("get_connection_binds", "idx"), &SceneState::get_connection_binds);
+ ClassDB::bind_method(D_METHOD("get_connection_unbinds", "idx"), &SceneState::get_connection_unbinds);
BIND_ENUM_CONSTANT(GEN_EDIT_STATE_DISABLED);
BIND_ENUM_CONSTANT(GEN_EDIT_STATE_INSTANCE);
diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h
index a03da558e4..81b38840d9 100644
--- a/scene/resources/packed_scene.h
+++ b/scene/resources/packed_scene.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -77,6 +77,7 @@ class SceneState : public RefCounted {
int signal = 0;
int method = 0;
int flags = 0;
+ int unbinds = 0;
Vector<int> binds;
};
@@ -163,6 +164,7 @@ public:
NodePath get_connection_target(int p_idx) const;
StringName get_connection_method(int p_idx) const;
int get_connection_flags(int p_idx) const;
+ int get_connection_unbinds(int p_idx) const;
Array get_connection_binds(int p_idx) const;
bool has_connection(const NodePath &p_node_from, const StringName &p_signal, const NodePath &p_node_to, const StringName &p_method);
@@ -178,7 +180,7 @@ public:
void add_node_property(int p_node, int p_name, int p_value);
void add_node_group(int p_node, int p_group);
void set_base_scene(int p_idx);
- void add_connection(int p_from, int p_to, int p_signal, int p_method, int p_flags, const Vector<int> &p_binds);
+ void add_connection(int p_from, int p_to, int p_signal, int p_method, int p_flags, int p_unbinds, const Vector<int> &p_binds);
void add_editable_instance(const NodePath &p_path);
virtual void set_last_modified_time(uint64_t p_time) { last_modified_time = p_time; }
diff --git a/scene/resources/particles_material.cpp b/scene/resources/particles_material.cpp
index 90ef78ccd9..1ef2b3496f 100644
--- a/scene/resources/particles_material.cpp
+++ b/scene/resources/particles_material.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/particles_material.h b/scene/resources/particles_material.h
index 9c0bbe3b5d..fd00c58468 100644
--- a/scene/resources/particles_material.h
+++ b/scene/resources/particles_material.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/physics_material.cpp b/scene/resources/physics_material.cpp
index 31df35aa51..c1b868cb97 100644
--- a/scene/resources/physics_material.cpp
+++ b/scene/resources/physics_material.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/physics_material.h b/scene/resources/physics_material.h
index d302800823..f352e66189 100644
--- a/scene/resources/physics_material.h
+++ b/scene/resources/physics_material.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/polygon_path_finder.cpp b/scene/resources/polygon_path_finder.cpp
index ec2022ed2f..882afdb43d 100644
--- a/scene/resources/polygon_path_finder.cpp
+++ b/scene/resources/polygon_path_finder.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/polygon_path_finder.h b/scene/resources/polygon_path_finder.h
index 2f3cb634fb..db96192917 100644
--- a/scene/resources/polygon_path_finder.h
+++ b/scene/resources/polygon_path_finder.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/primitive_meshes.cpp b/scene/resources/primitive_meshes.cpp
index f8be00f5fb..38acd0af0a 100644
--- a/scene/resources/primitive_meshes.cpp
+++ b/scene/resources/primitive_meshes.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/primitive_meshes.h b/scene/resources/primitive_meshes.h
index d447dad97a..75ea6a0f12 100644
--- a/scene/resources/primitive_meshes.h
+++ b/scene/resources/primitive_meshes.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/rectangle_shape_2d.cpp b/scene/resources/rectangle_shape_2d.cpp
index 17ce0b34ac..27659f724e 100644
--- a/scene/resources/rectangle_shape_2d.cpp
+++ b/scene/resources/rectangle_shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/rectangle_shape_2d.h b/scene/resources/rectangle_shape_2d.h
index f1e8be4c5b..fa85aef428 100644
--- a/scene/resources/rectangle_shape_2d.h
+++ b/scene/resources/rectangle_shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/resource_format_text.cpp b/scene/resources/resource_format_text.cpp
index 0e354ebff4..1b81455d4c 100644
--- a/scene/resources/resource_format_text.cpp
+++ b/scene/resources/resource_format_text.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -313,6 +313,7 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars
StringName method = next_tag.fields["method"];
StringName signal = next_tag.fields["signal"];
int flags = Object::CONNECT_PERSIST;
+ int unbinds = 0;
Array binds;
if (next_tag.fields.has("flags")) {
@@ -323,6 +324,10 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars
binds = next_tag.fields["binds"];
}
+ if (next_tag.fields.has("unbinds")) {
+ unbinds = next_tag.fields["unbinds"];
+ }
+
Vector<int> bind_ints;
for (int i = 0; i < binds.size(); i++) {
bind_ints.push_back(packed_scene->get_state()->add_value(binds[i]));
@@ -334,6 +339,7 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars
packed_scene->get_state()->add_name(signal),
packed_scene->get_state()->add_name(method),
flags,
+ unbinds,
bind_ints);
error = VariantParser::parse_tag(&stream, lines, error_text, next_tag, &parser);
@@ -1909,6 +1915,11 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r
connstr += " flags=" + itos(flags);
}
+ int unbinds = state->get_connection_unbinds(i);
+ if (unbinds > 0) {
+ connstr += " unbinds=" + itos(unbinds);
+ }
+
Array binds = state->get_connection_binds(i);
f->store_string(connstr);
if (binds.size()) {
diff --git a/scene/resources/resource_format_text.h b/scene/resources/resource_format_text.h
index 373e71b2c4..9585b9040f 100644
--- a/scene/resources/resource_format_text.h
+++ b/scene/resources/resource_format_text.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/segment_shape_2d.cpp b/scene/resources/segment_shape_2d.cpp
index 35439634f8..cea8ca1b29 100644
--- a/scene/resources/segment_shape_2d.cpp
+++ b/scene/resources/segment_shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/segment_shape_2d.h b/scene/resources/segment_shape_2d.h
index f218955061..6ade0618e3 100644
--- a/scene/resources/segment_shape_2d.h
+++ b/scene/resources/segment_shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/separation_ray_shape_2d.cpp b/scene/resources/separation_ray_shape_2d.cpp
index 0acd6d268d..5ac8d0a475 100644
--- a/scene/resources/separation_ray_shape_2d.cpp
+++ b/scene/resources/separation_ray_shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/separation_ray_shape_2d.h b/scene/resources/separation_ray_shape_2d.h
index 5b74e6c727..7c35d53133 100644
--- a/scene/resources/separation_ray_shape_2d.h
+++ b/scene/resources/separation_ray_shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/separation_ray_shape_3d.cpp b/scene/resources/separation_ray_shape_3d.cpp
index 376e04c844..a059d55bbe 100644
--- a/scene/resources/separation_ray_shape_3d.cpp
+++ b/scene/resources/separation_ray_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/separation_ray_shape_3d.h b/scene/resources/separation_ray_shape_3d.h
index 54058b6095..0e750a48e6 100644
--- a/scene/resources/separation_ray_shape_3d.h
+++ b/scene/resources/separation_ray_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/shader.cpp b/scene/resources/shader.cpp
index 84fa07e4f4..ce7fcb199d 100644
--- a/scene/resources/shader.cpp
+++ b/scene/resources/shader.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/shader.h b/scene/resources/shader.h
index c688dc1bab..d05ec06819 100644
--- a/scene/resources/shader.h
+++ b/scene/resources/shader.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/shape_2d.cpp b/scene/resources/shape_2d.cpp
index 013b1ef1a9..16ef45829f 100644
--- a/scene/resources/shape_2d.cpp
+++ b/scene/resources/shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/shape_2d.h b/scene/resources/shape_2d.h
index 7c5d1344e8..e9dc10eeae 100644
--- a/scene/resources/shape_2d.h
+++ b/scene/resources/shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/shape_3d.cpp b/scene/resources/shape_3d.cpp
index 044268864a..ffb2b27644 100644
--- a/scene/resources/shape_3d.cpp
+++ b/scene/resources/shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/shape_3d.h b/scene/resources/shape_3d.h
index f3a7aa5b12..77e79a269d 100644
--- a/scene/resources/shape_3d.h
+++ b/scene/resources/shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d.cpp b/scene/resources/skeleton_modification_2d.cpp
index 7ac40b497d..885cf0f1b8 100644
--- a/scene/resources/skeleton_modification_2d.cpp
+++ b/scene/resources/skeleton_modification_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d.h b/scene/resources/skeleton_modification_2d.h
index aaddb9136e..d49f9e7f51 100644
--- a/scene/resources/skeleton_modification_2d.h
+++ b/scene/resources/skeleton_modification_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_ccdik.cpp b/scene/resources/skeleton_modification_2d_ccdik.cpp
index bea42109cb..7adaf1452c 100644
--- a/scene/resources/skeleton_modification_2d_ccdik.cpp
+++ b/scene/resources/skeleton_modification_2d_ccdik.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_ccdik.h b/scene/resources/skeleton_modification_2d_ccdik.h
index dc48291f62..31485fa31f 100644
--- a/scene/resources/skeleton_modification_2d_ccdik.h
+++ b/scene/resources/skeleton_modification_2d_ccdik.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_fabrik.cpp b/scene/resources/skeleton_modification_2d_fabrik.cpp
index 3b5c555f89..393d404e9b 100644
--- a/scene/resources/skeleton_modification_2d_fabrik.cpp
+++ b/scene/resources/skeleton_modification_2d_fabrik.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_fabrik.h b/scene/resources/skeleton_modification_2d_fabrik.h
index 79e0106e26..d5077084ef 100644
--- a/scene/resources/skeleton_modification_2d_fabrik.h
+++ b/scene/resources/skeleton_modification_2d_fabrik.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_jiggle.cpp b/scene/resources/skeleton_modification_2d_jiggle.cpp
index 31045455a3..eee6067dae 100644
--- a/scene/resources/skeleton_modification_2d_jiggle.cpp
+++ b/scene/resources/skeleton_modification_2d_jiggle.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_jiggle.h b/scene/resources/skeleton_modification_2d_jiggle.h
index e24038a1db..a1abca6564 100644
--- a/scene/resources/skeleton_modification_2d_jiggle.h
+++ b/scene/resources/skeleton_modification_2d_jiggle.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_lookat.cpp b/scene/resources/skeleton_modification_2d_lookat.cpp
index 740937fc44..23e1c579dc 100644
--- a/scene/resources/skeleton_modification_2d_lookat.cpp
+++ b/scene/resources/skeleton_modification_2d_lookat.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_lookat.h b/scene/resources/skeleton_modification_2d_lookat.h
index 6aff30b826..ff91b92e7d 100644
--- a/scene/resources/skeleton_modification_2d_lookat.h
+++ b/scene/resources/skeleton_modification_2d_lookat.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_physicalbones.cpp b/scene/resources/skeleton_modification_2d_physicalbones.cpp
index 9dedb93f36..ddfd1d06b3 100644
--- a/scene/resources/skeleton_modification_2d_physicalbones.cpp
+++ b/scene/resources/skeleton_modification_2d_physicalbones.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_physicalbones.h b/scene/resources/skeleton_modification_2d_physicalbones.h
index cdf6a5f570..d53102fa5e 100644
--- a/scene/resources/skeleton_modification_2d_physicalbones.h
+++ b/scene/resources/skeleton_modification_2d_physicalbones.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_stackholder.cpp b/scene/resources/skeleton_modification_2d_stackholder.cpp
index 9436092cd9..9ec3434704 100644
--- a/scene/resources/skeleton_modification_2d_stackholder.cpp
+++ b/scene/resources/skeleton_modification_2d_stackholder.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_stackholder.h b/scene/resources/skeleton_modification_2d_stackholder.h
index 9cc38e3942..99d9f6f381 100644
--- a/scene/resources/skeleton_modification_2d_stackholder.h
+++ b/scene/resources/skeleton_modification_2d_stackholder.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_twoboneik.cpp b/scene/resources/skeleton_modification_2d_twoboneik.cpp
index 4f752896a9..b08fd82381 100644
--- a/scene/resources/skeleton_modification_2d_twoboneik.cpp
+++ b/scene/resources/skeleton_modification_2d_twoboneik.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_2d_twoboneik.h b/scene/resources/skeleton_modification_2d_twoboneik.h
index c7e545a488..fc14d35f70 100644
--- a/scene/resources/skeleton_modification_2d_twoboneik.h
+++ b/scene/resources/skeleton_modification_2d_twoboneik.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d.cpp b/scene/resources/skeleton_modification_3d.cpp
index b476952d86..b5b3fd5e9f 100644
--- a/scene/resources/skeleton_modification_3d.cpp
+++ b/scene/resources/skeleton_modification_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d.h b/scene/resources/skeleton_modification_3d.h
index fb1f3d33d1..a81c0c38bd 100644
--- a/scene/resources/skeleton_modification_3d.h
+++ b/scene/resources/skeleton_modification_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_ccdik.cpp b/scene/resources/skeleton_modification_3d_ccdik.cpp
index 6409022563..f19be47db2 100644
--- a/scene/resources/skeleton_modification_3d_ccdik.cpp
+++ b/scene/resources/skeleton_modification_3d_ccdik.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_ccdik.h b/scene/resources/skeleton_modification_3d_ccdik.h
index e7537cc5b0..873ab8aa5a 100644
--- a/scene/resources/skeleton_modification_3d_ccdik.h
+++ b/scene/resources/skeleton_modification_3d_ccdik.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_fabrik.cpp b/scene/resources/skeleton_modification_3d_fabrik.cpp
index dedea3e282..b62dda3f4f 100644
--- a/scene/resources/skeleton_modification_3d_fabrik.cpp
+++ b/scene/resources/skeleton_modification_3d_fabrik.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_fabrik.h b/scene/resources/skeleton_modification_3d_fabrik.h
index 6c58b8a07a..cc4d3a5e20 100644
--- a/scene/resources/skeleton_modification_3d_fabrik.h
+++ b/scene/resources/skeleton_modification_3d_fabrik.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_jiggle.cpp b/scene/resources/skeleton_modification_3d_jiggle.cpp
index 2535f2b987..3e36c241f7 100644
--- a/scene/resources/skeleton_modification_3d_jiggle.cpp
+++ b/scene/resources/skeleton_modification_3d_jiggle.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -168,7 +168,7 @@ void SkeletonModification3DJiggle::_execute_jiggle_joint(int p_joint_idx, Node3D
}
if (_print_execution_error(
jiggle_data_chain[p_joint_idx].bone_idx < 0 || jiggle_data_chain[p_joint_idx].bone_idx > stack->skeleton->get_bone_count(),
- "Jiggle joint " + itos(p_joint_idx) + " bone index is invald. Cannot execute modification!")) {
+ "Jiggle joint " + itos(p_joint_idx) + " bone index is invalid. Cannot execute modification!")) {
return;
}
diff --git a/scene/resources/skeleton_modification_3d_jiggle.h b/scene/resources/skeleton_modification_3d_jiggle.h
index c210c8fa73..7ec5ed4f11 100644
--- a/scene/resources/skeleton_modification_3d_jiggle.h
+++ b/scene/resources/skeleton_modification_3d_jiggle.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_lookat.cpp b/scene/resources/skeleton_modification_3d_lookat.cpp
index f3b0f41d60..3e8c1e3a77 100644
--- a/scene/resources/skeleton_modification_3d_lookat.cpp
+++ b/scene/resources/skeleton_modification_3d_lookat.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_lookat.h b/scene/resources/skeleton_modification_3d_lookat.h
index 5971e3f647..9f5120a0fd 100644
--- a/scene/resources/skeleton_modification_3d_lookat.h
+++ b/scene/resources/skeleton_modification_3d_lookat.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_stackholder.cpp b/scene/resources/skeleton_modification_3d_stackholder.cpp
index 56035a4def..fb2e80d217 100644
--- a/scene/resources/skeleton_modification_3d_stackholder.cpp
+++ b/scene/resources/skeleton_modification_3d_stackholder.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_stackholder.h b/scene/resources/skeleton_modification_3d_stackholder.h
index c765cd8de3..5780d7d43f 100644
--- a/scene/resources/skeleton_modification_3d_stackholder.h
+++ b/scene/resources/skeleton_modification_3d_stackholder.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_twoboneik.cpp b/scene/resources/skeleton_modification_3d_twoboneik.cpp
index 93ec155a88..acc5ff716c 100644
--- a/scene/resources/skeleton_modification_3d_twoboneik.cpp
+++ b/scene/resources/skeleton_modification_3d_twoboneik.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_3d_twoboneik.h b/scene/resources/skeleton_modification_3d_twoboneik.h
index e62d6cc497..a4ddc6cee7 100644
--- a/scene/resources/skeleton_modification_3d_twoboneik.h
+++ b/scene/resources/skeleton_modification_3d_twoboneik.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_stack_2d.cpp b/scene/resources/skeleton_modification_stack_2d.cpp
index e596390f78..b944c244b6 100644
--- a/scene/resources/skeleton_modification_stack_2d.cpp
+++ b/scene/resources/skeleton_modification_stack_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_stack_2d.h b/scene/resources/skeleton_modification_stack_2d.h
index 58855701a1..7b5f8e0322 100644
--- a/scene/resources/skeleton_modification_stack_2d.h
+++ b/scene/resources/skeleton_modification_stack_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_stack_3d.cpp b/scene/resources/skeleton_modification_stack_3d.cpp
index e5b7771251..7ccba1228c 100644
--- a/scene/resources/skeleton_modification_stack_3d.cpp
+++ b/scene/resources/skeleton_modification_stack_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skeleton_modification_stack_3d.h b/scene/resources/skeleton_modification_stack_3d.h
index cbc8d4e0b9..2c17fba2c5 100644
--- a/scene/resources/skeleton_modification_stack_3d.h
+++ b/scene/resources/skeleton_modification_stack_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skin.cpp b/scene/resources/skin.cpp
index 15cdb86bab..d371598cc0 100644
--- a/scene/resources/skin.cpp
+++ b/scene/resources/skin.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/skin.h b/scene/resources/skin.h
index 6857bf743a..6ade9dbed1 100644
--- a/scene/resources/skin.h
+++ b/scene/resources/skin.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -67,23 +67,17 @@ public:
void set_bind_name(int p_index, const StringName &p_name);
inline int get_bind_bone(int p_index) const {
-#ifdef DEBUG_ENABLED
ERR_FAIL_INDEX_V(p_index, bind_count, -1);
-#endif
return binds_ptr[p_index].bone;
}
inline StringName get_bind_name(int p_index) const {
-#ifdef DEBUG_ENABLED
ERR_FAIL_INDEX_V(p_index, bind_count, StringName());
-#endif
return binds_ptr[p_index].name;
}
inline Transform3D get_bind_pose(int p_index) const {
-#ifdef DEBUG_ENABLED
ERR_FAIL_INDEX_V(p_index, bind_count, Transform3D());
-#endif
return binds_ptr[p_index].pose;
}
diff --git a/scene/resources/sky.cpp b/scene/resources/sky.cpp
index 71424ba8ac..9cb6a16f5c 100644
--- a/scene/resources/sky.cpp
+++ b/scene/resources/sky.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/sky.h b/scene/resources/sky.h
index f0226d321d..5e52239032 100644
--- a/scene/resources/sky.h
+++ b/scene/resources/sky.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/sky_material.cpp b/scene/resources/sky_material.cpp
index ff388e288c..3918cc5ef8 100644
--- a/scene/resources/sky_material.cpp
+++ b/scene/resources/sky_material.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/sky_material.h b/scene/resources/sky_material.h
index daeda212d4..74b2965ce8 100644
--- a/scene/resources/sky_material.h
+++ b/scene/resources/sky_material.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/sphere_shape_3d.cpp b/scene/resources/sphere_shape_3d.cpp
index e4b4398063..ee789362c9 100644
--- a/scene/resources/sphere_shape_3d.cpp
+++ b/scene/resources/sphere_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/sphere_shape_3d.h b/scene/resources/sphere_shape_3d.h
index eddd2a2132..ff6d883940 100644
--- a/scene/resources/sphere_shape_3d.h
+++ b/scene/resources/sphere_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/sprite_frames.cpp b/scene/resources/sprite_frames.cpp
index 71ed96cf15..ece126791e 100644
--- a/scene/resources/sprite_frames.cpp
+++ b/scene/resources/sprite_frames.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/sprite_frames.h b/scene/resources/sprite_frames.h
index fdfd6af5ab..12b69afde1 100644
--- a/scene/resources/sprite_frames.h
+++ b/scene/resources/sprite_frames.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/style_box.cpp b/scene/resources/style_box.cpp
index b960944d99..c39902739f 100644
--- a/scene/resources/style_box.cpp
+++ b/scene/resources/style_box.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/style_box.h b/scene/resources/style_box.h
index a6cd5b7fb7..4c41f42293 100644
--- a/scene/resources/style_box.h
+++ b/scene/resources/style_box.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp
index 455af8a40c..cc7322476f 100644
--- a/scene/resources/surface_tool.cpp
+++ b/scene/resources/surface_tool.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/surface_tool.h b/scene/resources/surface_tool.h
index bde6702759..9cb83e0e68 100644
--- a/scene/resources/surface_tool.h
+++ b/scene/resources/surface_tool.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/syntax_highlighter.cpp b/scene/resources/syntax_highlighter.cpp
index 800752d597..2efda08e08 100644
--- a/scene/resources/syntax_highlighter.cpp
+++ b/scene/resources/syntax_highlighter.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/syntax_highlighter.h b/scene/resources/syntax_highlighter.h
index 0fe39ccff6..143f1679c6 100644
--- a/scene/resources/syntax_highlighter.h
+++ b/scene/resources/syntax_highlighter.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/text_file.cpp b/scene/resources/text_file.cpp
index 1dc46711f8..cbfee754e2 100644
--- a/scene/resources/text_file.cpp
+++ b/scene/resources/text_file.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/text_file.h b/scene/resources/text_file.h
index 005075a218..0c8cf855f0 100644
--- a/scene/resources/text_file.h
+++ b/scene/resources/text_file.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/text_line.cpp b/scene/resources/text_line.cpp
index cfd7e1d876..f3752053c0 100644
--- a/scene/resources/text_line.cpp
+++ b/scene/resources/text_line.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/text_line.h b/scene/resources/text_line.h
index bab17a3024..e68049ee45 100644
--- a/scene/resources/text_line.h
+++ b/scene/resources/text_line.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/text_paragraph.cpp b/scene/resources/text_paragraph.cpp
index 130b83ea99..18e46e5476 100644
--- a/scene/resources/text_paragraph.cpp
+++ b/scene/resources/text_paragraph.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/text_paragraph.h b/scene/resources/text_paragraph.h
index 1faa3f3a7b..773cc1a858 100644
--- a/scene/resources/text_paragraph.h
+++ b/scene/resources/text_paragraph.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp
index 13c3f6ea1d..28dc869c4f 100644
--- a/scene/resources/texture.cpp
+++ b/scene/resources/texture.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/texture.h b/scene/resources/texture.h
index 5b69711de6..c3f29ad417 100644
--- a/scene/resources/texture.h
+++ b/scene/resources/texture.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/theme.cpp b/scene/resources/theme.cpp
index 99977a20f2..8da287042e 100644
--- a/scene/resources/theme.cpp
+++ b/scene/resources/theme.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,11 +36,11 @@ Ref<Theme> Theme::default_theme;
Ref<Theme> Theme::project_default_theme;
// Universal default values, final fallback for every theme.
-float Theme::default_base_scale = 1.0;
-Ref<Texture2D> Theme::default_icon;
-Ref<StyleBox> Theme::default_style;
-Ref<Font> Theme::default_font;
-int Theme::default_font_size = 16;
+float Theme::fallback_base_scale = 1.0;
+Ref<Texture2D> Theme::fallback_icon;
+Ref<StyleBox> Theme::fallback_style;
+Ref<Font> Theme::fallback_font;
+int Theme::fallback_font_size = 16;
// Dynamic properties.
bool Theme::_set(const StringName &p_name, const Variant &p_value) {
@@ -220,87 +220,107 @@ void Theme::set_project_default(const Ref<Theme> &p_project_default) {
}
// Universal fallback values for theme item types.
-void Theme::set_default_base_scale(float p_base_scale) {
- default_base_scale = p_base_scale;
+void Theme::set_fallback_base_scale(float p_base_scale) {
+ fallback_base_scale = p_base_scale;
}
-void Theme::set_default_icon(const Ref<Texture2D> &p_icon) {
- default_icon = p_icon;
+void Theme::set_fallback_icon(const Ref<Texture2D> &p_icon) {
+ fallback_icon = p_icon;
}
-void Theme::set_default_style(const Ref<StyleBox> &p_style) {
- default_style = p_style;
+void Theme::set_fallback_style(const Ref<StyleBox> &p_style) {
+ fallback_style = p_style;
}
-void Theme::set_default_font(const Ref<Font> &p_font) {
- default_font = p_font;
+void Theme::set_fallback_font(const Ref<Font> &p_font) {
+ fallback_font = p_font;
}
-void Theme::set_default_font_size(int p_font_size) {
- default_font_size = p_font_size;
+void Theme::set_fallback_font_size(int p_font_size) {
+ fallback_font_size = p_font_size;
+}
+
+float Theme::get_fallback_base_scale() {
+ return fallback_base_scale;
+}
+
+Ref<Texture2D> Theme::get_fallback_icon() {
+ return fallback_icon;
+}
+
+Ref<StyleBox> Theme::get_fallback_style() {
+ return fallback_style;
+}
+
+Ref<Font> Theme::get_fallback_font() {
+ return fallback_font;
+}
+
+int Theme::get_fallback_font_size() {
+ return fallback_font_size;
}
// Fallback values for theme item types, configurable per theme.
-void Theme::set_default_theme_base_scale(float p_base_scale) {
- if (default_theme_base_scale == p_base_scale) {
+void Theme::set_default_base_scale(float p_base_scale) {
+ if (default_base_scale == p_base_scale) {
return;
}
- default_theme_base_scale = p_base_scale;
+ default_base_scale = p_base_scale;
_emit_theme_changed();
}
-float Theme::get_default_theme_base_scale() const {
- return default_theme_base_scale;
+float Theme::get_default_base_scale() const {
+ return default_base_scale;
}
-bool Theme::has_default_theme_base_scale() const {
- return default_theme_base_scale > 0.0;
+bool Theme::has_default_base_scale() const {
+ return default_base_scale > 0.0;
}
-void Theme::set_default_theme_font(const Ref<Font> &p_default_font) {
- if (default_theme_font == p_default_font) {
+void Theme::set_default_font(const Ref<Font> &p_default_font) {
+ if (default_font == p_default_font) {
return;
}
- if (default_theme_font.is_valid()) {
- default_theme_font->disconnect("changed", callable_mp(this, &Theme::_emit_theme_changed));
+ if (default_font.is_valid()) {
+ default_font->disconnect("changed", callable_mp(this, &Theme::_emit_theme_changed));
}
- default_theme_font = p_default_font;
+ default_font = p_default_font;
- if (default_theme_font.is_valid()) {
- default_theme_font->connect("changed", callable_mp(this, &Theme::_emit_theme_changed), varray(false), CONNECT_REFERENCE_COUNTED);
+ if (default_font.is_valid()) {
+ default_font->connect("changed", callable_mp(this, &Theme::_emit_theme_changed), varray(false), CONNECT_REFERENCE_COUNTED);
}
_emit_theme_changed();
}
-Ref<Font> Theme::get_default_theme_font() const {
- return default_theme_font;
+Ref<Font> Theme::get_default_font() const {
+ return default_font;
}
-bool Theme::has_default_theme_font() const {
- return default_theme_font.is_valid();
+bool Theme::has_default_font() const {
+ return default_font.is_valid();
}
-void Theme::set_default_theme_font_size(int p_font_size) {
- if (default_theme_font_size == p_font_size) {
+void Theme::set_default_font_size(int p_font_size) {
+ if (default_font_size == p_font_size) {
return;
}
- default_theme_font_size = p_font_size;
+ default_font_size = p_font_size;
_emit_theme_changed();
}
-int Theme::get_default_theme_font_size() const {
- return default_theme_font_size;
+int Theme::get_default_font_size() const {
+ return default_font_size;
}
-bool Theme::has_default_theme_font_size() const {
- return default_theme_font_size > 0;
+bool Theme::has_default_font_size() const {
+ return default_font_size > 0;
}
// Icons.
@@ -324,7 +344,7 @@ Ref<Texture2D> Theme::get_icon(const StringName &p_name, const StringName &p_the
if (icon_map.has(p_theme_type) && icon_map[p_theme_type].has(p_name) && icon_map[p_theme_type][p_name].is_valid()) {
return icon_map[p_theme_type][p_name];
} else {
- return default_icon;
+ return fallback_icon;
}
}
@@ -411,7 +431,7 @@ Ref<StyleBox> Theme::get_stylebox(const StringName &p_name, const StringName &p_
if (style_map.has(p_theme_type) && style_map[p_theme_type].has(p_name) && style_map[p_theme_type][p_name].is_valid()) {
return style_map[p_theme_type][p_name];
} else {
- return default_style;
+ return fallback_style;
}
}
@@ -497,15 +517,15 @@ void Theme::set_font(const StringName &p_name, const StringName &p_theme_type, c
Ref<Font> Theme::get_font(const StringName &p_name, const StringName &p_theme_type) const {
if (font_map.has(p_theme_type) && font_map[p_theme_type].has(p_name) && font_map[p_theme_type][p_name].is_valid()) {
return font_map[p_theme_type][p_name];
- } else if (has_default_theme_font()) {
- return default_theme_font;
- } else {
+ } else if (has_default_font()) {
return default_font;
+ } else {
+ return fallback_font;
}
}
bool Theme::has_font(const StringName &p_name, const StringName &p_theme_type) const {
- return ((font_map.has(p_theme_type) && font_map[p_theme_type].has(p_name) && font_map[p_theme_type][p_name].is_valid()) || has_default_theme_font());
+ return ((font_map.has(p_theme_type) && font_map[p_theme_type].has(p_name) && font_map[p_theme_type][p_name].is_valid()) || has_default_font());
}
bool Theme::has_font_nocheck(const StringName &p_name, const StringName &p_theme_type) const {
@@ -577,15 +597,15 @@ void Theme::set_font_size(const StringName &p_name, const StringName &p_theme_ty
int Theme::get_font_size(const StringName &p_name, const StringName &p_theme_type) const {
if (font_size_map.has(p_theme_type) && font_size_map[p_theme_type].has(p_name) && (font_size_map[p_theme_type][p_name] > 0)) {
return font_size_map[p_theme_type][p_name];
- } else if (has_default_theme_font_size()) {
- return default_theme_font_size;
- } else {
+ } else if (has_default_font_size()) {
return default_font_size;
+ } else {
+ return fallback_font_size;
}
}
bool Theme::has_font_size(const StringName &p_name, const StringName &p_theme_type) const {
- return ((font_size_map.has(p_theme_type) && font_size_map[p_theme_type].has(p_name) && (font_size_map[p_theme_type][p_name] > 0)) || has_default_theme_font_size());
+ return ((font_size_map.has(p_theme_type) && font_size_map[p_theme_type].has(p_name) && (font_size_map[p_theme_type][p_name] > 0)) || has_default_font_size());
}
bool Theme::has_font_size_nocheck(const StringName &p_name, const StringName &p_theme_type) const {
@@ -1622,17 +1642,17 @@ void Theme::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_constant_list", "theme_type"), &Theme::_get_constant_list);
ClassDB::bind_method(D_METHOD("get_constant_type_list"), &Theme::_get_constant_type_list);
- ClassDB::bind_method(D_METHOD("set_default_base_scale", "font_size"), &Theme::set_default_theme_base_scale);
- ClassDB::bind_method(D_METHOD("get_default_base_scale"), &Theme::get_default_theme_base_scale);
- ClassDB::bind_method(D_METHOD("has_default_base_scale"), &Theme::has_default_theme_base_scale);
+ ClassDB::bind_method(D_METHOD("set_default_base_scale", "base_scale"), &Theme::set_default_base_scale);
+ ClassDB::bind_method(D_METHOD("get_default_base_scale"), &Theme::get_default_base_scale);
+ ClassDB::bind_method(D_METHOD("has_default_base_scale"), &Theme::has_default_base_scale);
- ClassDB::bind_method(D_METHOD("set_default_font", "font"), &Theme::set_default_theme_font);
- ClassDB::bind_method(D_METHOD("get_default_font"), &Theme::get_default_theme_font);
- ClassDB::bind_method(D_METHOD("has_default_font"), &Theme::has_default_theme_font);
+ ClassDB::bind_method(D_METHOD("set_default_font", "font"), &Theme::set_default_font);
+ ClassDB::bind_method(D_METHOD("get_default_font"), &Theme::get_default_font);
+ ClassDB::bind_method(D_METHOD("has_default_font"), &Theme::has_default_font);
- ClassDB::bind_method(D_METHOD("set_default_font_size", "font_size"), &Theme::set_default_theme_font_size);
- ClassDB::bind_method(D_METHOD("get_default_font_size"), &Theme::get_default_theme_font_size);
- ClassDB::bind_method(D_METHOD("has_default_font_size"), &Theme::has_default_theme_font_size);
+ ClassDB::bind_method(D_METHOD("set_default_font_size", "font_size"), &Theme::set_default_font_size);
+ ClassDB::bind_method(D_METHOD("get_default_font_size"), &Theme::get_default_font_size);
+ ClassDB::bind_method(D_METHOD("has_default_font_size"), &Theme::has_default_font_size);
ClassDB::bind_method(D_METHOD("set_theme_item", "data_type", "name", "theme_type", "value"), &Theme::set_theme_item);
ClassDB::bind_method(D_METHOD("get_theme_item", "data_type", "name", "theme_type"), &Theme::get_theme_item);
diff --git a/scene/resources/theme.h b/scene/resources/theme.h
index d170d53ae3..822743a1fe 100644
--- a/scene/resources/theme.h
+++ b/scene/resources/theme.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -101,16 +101,16 @@ protected:
static Ref<Theme> project_default_theme;
// Universal default values, final fallback for every theme.
- static float default_base_scale;
- static Ref<Texture2D> default_icon;
- static Ref<StyleBox> default_style;
- static Ref<Font> default_font;
- static int default_font_size;
+ static float fallback_base_scale;
+ static Ref<Texture2D> fallback_icon;
+ static Ref<StyleBox> fallback_style;
+ static Ref<Font> fallback_font;
+ static int fallback_font_size;
// Default values configurable for each individual theme.
- float default_theme_base_scale = 0.0;
- Ref<Font> default_theme_font;
- int default_theme_font_size = -1;
+ float default_base_scale = 0.0;
+ Ref<Font> default_font;
+ int default_font_size = -1;
static void _bind_methods();
@@ -126,23 +126,29 @@ public:
static Ref<Theme> get_project_default();
static void set_project_default(const Ref<Theme> &p_project_default);
- static void set_default_base_scale(float p_base_scale);
- static void set_default_icon(const Ref<Texture2D> &p_icon);
- static void set_default_style(const Ref<StyleBox> &p_style);
- static void set_default_font(const Ref<Font> &p_font);
- static void set_default_font_size(int p_font_size);
-
- void set_default_theme_base_scale(float p_base_scale);
- float get_default_theme_base_scale() const;
- bool has_default_theme_base_scale() const;
-
- void set_default_theme_font(const Ref<Font> &p_default_font);
- Ref<Font> get_default_theme_font() const;
- bool has_default_theme_font() const;
-
- void set_default_theme_font_size(int p_font_size);
- int get_default_theme_font_size() const;
- bool has_default_theme_font_size() const;
+ static void set_fallback_base_scale(float p_base_scale);
+ static void set_fallback_icon(const Ref<Texture2D> &p_icon);
+ static void set_fallback_style(const Ref<StyleBox> &p_style);
+ static void set_fallback_font(const Ref<Font> &p_font);
+ static void set_fallback_font_size(int p_font_size);
+
+ static float get_fallback_base_scale();
+ static Ref<Texture2D> get_fallback_icon();
+ static Ref<StyleBox> get_fallback_style();
+ static Ref<Font> get_fallback_font();
+ static int get_fallback_font_size();
+
+ void set_default_base_scale(float p_base_scale);
+ float get_default_base_scale() const;
+ bool has_default_base_scale() const;
+
+ void set_default_font(const Ref<Font> &p_default_font);
+ Ref<Font> get_default_font() const;
+ bool has_default_font() const;
+
+ void set_default_font_size(int p_font_size);
+ int get_default_font_size() const;
+ bool has_default_font_size() const;
void set_icon(const StringName &p_name, const StringName &p_theme_type, const Ref<Texture2D> &p_icon);
Ref<Texture2D> get_icon(const StringName &p_name, const StringName &p_theme_type) const;
diff --git a/scene/resources/tile_set.cpp b/scene/resources/tile_set.cpp
index 34fe7c0b87..44a7af75b9 100644
--- a/scene/resources/tile_set.cpp
+++ b/scene/resources/tile_set.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/tile_set.h b/scene/resources/tile_set.h
index d2238c26d2..2673ca1cb6 100644
--- a/scene/resources/tile_set.h
+++ b/scene/resources/tile_set.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/video_stream.h b/scene/resources/video_stream.h
index f960f85521..3e154d539b 100644
--- a/scene/resources/video_stream.h
+++ b/scene/resources/video_stream.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp
index e355122621..57b73c1234 100644
--- a/scene/resources/visual_shader.cpp
+++ b/scene/resources/visual_shader.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -349,11 +349,11 @@ String VisualShaderNodeCustom::get_output_port_name(int p_port) const {
String VisualShaderNodeCustom::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const {
ERR_FAIL_COND_V(!GDVIRTUAL_IS_OVERRIDDEN(_get_code), "");
- Vector<String> input_vars;
+ TypedArray<String> input_vars;
for (int i = 0; i < get_input_port_count(); i++) {
input_vars.push_back(p_input_vars[i]);
}
- Array output_vars;
+ TypedArray<String> output_vars;
for (int i = 0; i < get_output_port_count(); i++) {
output_vars.push_back(p_output_vars[i]);
}
diff --git a/scene/resources/visual_shader.h b/scene/resources/visual_shader.h
index 444e88ad89..066c18e3bc 100644
--- a/scene/resources/visual_shader.h
+++ b/scene/resources/visual_shader.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -326,7 +326,7 @@ protected:
GDVIRTUAL0RC(int, _get_output_port_count)
GDVIRTUAL1RC(int, _get_output_port_type, int)
GDVIRTUAL1RC(String, _get_output_port_name, int)
- GDVIRTUAL4RC(String, _get_code, Vector<String>, TypedArray<String>, Shader::Mode, VisualShader::Type)
+ GDVIRTUAL4RC(String, _get_code, TypedArray<String>, TypedArray<String>, Shader::Mode, VisualShader::Type)
GDVIRTUAL1RC(String, _get_global_code, Shader::Mode)
GDVIRTUAL0RC(bool, _is_highend)
diff --git a/scene/resources/visual_shader_nodes.cpp b/scene/resources/visual_shader_nodes.cpp
index afd46aa461..b61e3f5d14 100644
--- a/scene/resources/visual_shader_nodes.cpp
+++ b/scene/resources/visual_shader_nodes.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/visual_shader_nodes.h b/scene/resources/visual_shader_nodes.h
index a9fa21f164..f1dda634f1 100644
--- a/scene/resources/visual_shader_nodes.h
+++ b/scene/resources/visual_shader_nodes.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/visual_shader_particle_nodes.cpp b/scene/resources/visual_shader_particle_nodes.cpp
index a7c20b2cb9..c970b9c08b 100644
--- a/scene/resources/visual_shader_particle_nodes.cpp
+++ b/scene/resources/visual_shader_particle_nodes.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/visual_shader_particle_nodes.h b/scene/resources/visual_shader_particle_nodes.h
index ae7ea69225..add6928841 100644
--- a/scene/resources/visual_shader_particle_nodes.h
+++ b/scene/resources/visual_shader_particle_nodes.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/visual_shader_sdf_nodes.cpp b/scene/resources/visual_shader_sdf_nodes.cpp
index 0fe7c33396..1b43fda4c5 100644
--- a/scene/resources/visual_shader_sdf_nodes.cpp
+++ b/scene/resources/visual_shader_sdf_nodes.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/visual_shader_sdf_nodes.h b/scene/resources/visual_shader_sdf_nodes.h
index 0fcf5ec0b5..d2d1dde4ea 100644
--- a/scene/resources/visual_shader_sdf_nodes.h
+++ b/scene/resources/visual_shader_sdf_nodes.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/world_2d.cpp b/scene/resources/world_2d.cpp
index eceb42ee14..c937d988d2 100644
--- a/scene/resources/world_2d.cpp
+++ b/scene/resources/world_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/world_2d.h b/scene/resources/world_2d.h
index 65f89c8f64..91f9a026d3 100644
--- a/scene/resources/world_2d.h
+++ b/scene/resources/world_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/world_3d.cpp b/scene/resources/world_3d.cpp
index 0e1b343eac..c012ab6177 100644
--- a/scene/resources/world_3d.cpp
+++ b/scene/resources/world_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/world_3d.h b/scene/resources/world_3d.h
index 2c5be35609..b34b7a2bfb 100644
--- a/scene/resources/world_3d.h
+++ b/scene/resources/world_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/world_boundary_shape_2d.cpp b/scene/resources/world_boundary_shape_2d.cpp
index 39af92793f..9789388c6a 100644
--- a/scene/resources/world_boundary_shape_2d.cpp
+++ b/scene/resources/world_boundary_shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/world_boundary_shape_2d.h b/scene/resources/world_boundary_shape_2d.h
index 4cc60f5985..3275e8c916 100644
--- a/scene/resources/world_boundary_shape_2d.h
+++ b/scene/resources/world_boundary_shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/world_boundary_shape_3d.cpp b/scene/resources/world_boundary_shape_3d.cpp
index 8cde537164..efa288511d 100644
--- a/scene/resources/world_boundary_shape_3d.cpp
+++ b/scene/resources/world_boundary_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/resources/world_boundary_shape_3d.h b/scene/resources/world_boundary_shape_3d.h
index 853f555ebc..5378bc52c7 100644
--- a/scene/resources/world_boundary_shape_3d.h
+++ b/scene/resources/world_boundary_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/scene_string_names.cpp b/scene/scene_string_names.cpp
index a5ed27cb7b..a15c03d675 100644
--- a/scene/scene_string_names.cpp
+++ b/scene/scene_string_names.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/scene/scene_string_names.h b/scene/scene_string_names.h
index b1ace1748c..5589ab327f 100644
--- a/scene/scene_string_names.h
+++ b/scene/scene_string_names.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/audio_driver_dummy.cpp b/servers/audio/audio_driver_dummy.cpp
index 47799dce96..1ba0afd8a1 100644
--- a/servers/audio/audio_driver_dummy.cpp
+++ b/servers/audio/audio_driver_dummy.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/audio_driver_dummy.h b/servers/audio/audio_driver_dummy.h
index 7d84e7ffc8..6324e2f5d3 100644
--- a/servers/audio/audio_driver_dummy.h
+++ b/servers/audio/audio_driver_dummy.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/audio_effect.cpp b/servers/audio/audio_effect.cpp
index 3035828c95..b9eca14a4c 100644
--- a/servers/audio/audio_effect.cpp
+++ b/servers/audio/audio_effect.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/audio_effect.h b/servers/audio/audio_effect.h
index bea7292b8e..00a5d6c004 100644
--- a/servers/audio/audio_effect.h
+++ b/servers/audio/audio_effect.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/audio_filter_sw.cpp b/servers/audio/audio_filter_sw.cpp
index b31014bd21..082931647a 100644
--- a/servers/audio/audio_filter_sw.cpp
+++ b/servers/audio/audio_filter_sw.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/audio_filter_sw.h b/servers/audio/audio_filter_sw.h
index 540d6368e3..9e55662d0a 100644
--- a/servers/audio/audio_filter_sw.h
+++ b/servers/audio/audio_filter_sw.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/audio_rb_resampler.cpp b/servers/audio/audio_rb_resampler.cpp
index b37965a988..0cfba17563 100644
--- a/servers/audio/audio_rb_resampler.cpp
+++ b/servers/audio/audio_rb_resampler.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/audio_rb_resampler.h b/servers/audio/audio_rb_resampler.h
index c0f981704b..3fbe684c3e 100644
--- a/servers/audio/audio_rb_resampler.h
+++ b/servers/audio/audio_rb_resampler.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/audio_stream.cpp b/servers/audio/audio_stream.cpp
index c098a97906..170a7ef967 100644
--- a/servers/audio/audio_stream.cpp
+++ b/servers/audio/audio_stream.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/audio_stream.h b/servers/audio/audio_stream.h
index 12d4343f5c..32159e96ef 100644
--- a/servers/audio/audio_stream.h
+++ b/servers/audio/audio_stream.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_amplify.cpp b/servers/audio/effects/audio_effect_amplify.cpp
index 79788d334b..b01160ea5c 100644
--- a/servers/audio/effects/audio_effect_amplify.cpp
+++ b/servers/audio/effects/audio_effect_amplify.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_amplify.h b/servers/audio/effects/audio_effect_amplify.h
index 9d3facc230..bd0fcaa94d 100644
--- a/servers/audio/effects/audio_effect_amplify.h
+++ b/servers/audio/effects/audio_effect_amplify.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_capture.cpp b/servers/audio/effects/audio_effect_capture.cpp
index 065065042e..f605cfc9d4 100644
--- a/servers/audio/effects/audio_effect_capture.cpp
+++ b/servers/audio/effects/audio_effect_capture.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_capture.h b/servers/audio/effects/audio_effect_capture.h
index bb1d03be8c..3935f7d473 100644
--- a/servers/audio/effects/audio_effect_capture.h
+++ b/servers/audio/effects/audio_effect_capture.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_chorus.cpp b/servers/audio/effects/audio_effect_chorus.cpp
index 9af3ed30cc..8b1fe9cfd2 100644
--- a/servers/audio/effects/audio_effect_chorus.cpp
+++ b/servers/audio/effects/audio_effect_chorus.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_chorus.h b/servers/audio/effects/audio_effect_chorus.h
index f81bebb0ae..19035222c5 100644
--- a/servers/audio/effects/audio_effect_chorus.h
+++ b/servers/audio/effects/audio_effect_chorus.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_compressor.cpp b/servers/audio/effects/audio_effect_compressor.cpp
index cfa2ae6f79..f75d092dd3 100644
--- a/servers/audio/effects/audio_effect_compressor.cpp
+++ b/servers/audio/effects/audio_effect_compressor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_compressor.h b/servers/audio/effects/audio_effect_compressor.h
index dae4618a64..53c448e5db 100644
--- a/servers/audio/effects/audio_effect_compressor.h
+++ b/servers/audio/effects/audio_effect_compressor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_delay.cpp b/servers/audio/effects/audio_effect_delay.cpp
index 07475e1ed4..bddd235204 100644
--- a/servers/audio/effects/audio_effect_delay.cpp
+++ b/servers/audio/effects/audio_effect_delay.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_delay.h b/servers/audio/effects/audio_effect_delay.h
index 50a2233e5f..5cc6d72c99 100644
--- a/servers/audio/effects/audio_effect_delay.h
+++ b/servers/audio/effects/audio_effect_delay.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_distortion.cpp b/servers/audio/effects/audio_effect_distortion.cpp
index 188b7a3301..afc4353bd7 100644
--- a/servers/audio/effects/audio_effect_distortion.cpp
+++ b/servers/audio/effects/audio_effect_distortion.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_distortion.h b/servers/audio/effects/audio_effect_distortion.h
index 3a762f8cf6..487babbdda 100644
--- a/servers/audio/effects/audio_effect_distortion.h
+++ b/servers/audio/effects/audio_effect_distortion.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_eq.cpp b/servers/audio/effects/audio_effect_eq.cpp
index e87944b74b..cc317031d4 100644
--- a/servers/audio/effects/audio_effect_eq.cpp
+++ b/servers/audio/effects/audio_effect_eq.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_eq.h b/servers/audio/effects/audio_effect_eq.h
index b99727d7c0..252f931e6c 100644
--- a/servers/audio/effects/audio_effect_eq.h
+++ b/servers/audio/effects/audio_effect_eq.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_filter.cpp b/servers/audio/effects/audio_effect_filter.cpp
index 1db8b1f1b5..06e66f22b1 100644
--- a/servers/audio/effects/audio_effect_filter.cpp
+++ b/servers/audio/effects/audio_effect_filter.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_filter.h b/servers/audio/effects/audio_effect_filter.h
index 1fa3df1570..d5d58ddaa3 100644
--- a/servers/audio/effects/audio_effect_filter.h
+++ b/servers/audio/effects/audio_effect_filter.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_limiter.cpp b/servers/audio/effects/audio_effect_limiter.cpp
index 280411641b..5923cf8cf5 100644
--- a/servers/audio/effects/audio_effect_limiter.cpp
+++ b/servers/audio/effects/audio_effect_limiter.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_limiter.h b/servers/audio/effects/audio_effect_limiter.h
index 398613aa44..f84a0ae103 100644
--- a/servers/audio/effects/audio_effect_limiter.h
+++ b/servers/audio/effects/audio_effect_limiter.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_panner.cpp b/servers/audio/effects/audio_effect_panner.cpp
index e2062609b9..278acda86c 100644
--- a/servers/audio/effects/audio_effect_panner.cpp
+++ b/servers/audio/effects/audio_effect_panner.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_panner.h b/servers/audio/effects/audio_effect_panner.h
index d75bcaeb95..d05c9902af 100644
--- a/servers/audio/effects/audio_effect_panner.h
+++ b/servers/audio/effects/audio_effect_panner.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_phaser.cpp b/servers/audio/effects/audio_effect_phaser.cpp
index c76692eed7..af5dce707e 100644
--- a/servers/audio/effects/audio_effect_phaser.cpp
+++ b/servers/audio/effects/audio_effect_phaser.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_phaser.h b/servers/audio/effects/audio_effect_phaser.h
index 2a0ed64805..80b7742835 100644
--- a/servers/audio/effects/audio_effect_phaser.h
+++ b/servers/audio/effects/audio_effect_phaser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_pitch_shift.cpp b/servers/audio/effects/audio_effect_pitch_shift.cpp
index d6c396e0a5..3c53887931 100644
--- a/servers/audio/effects/audio_effect_pitch_shift.cpp
+++ b/servers/audio/effects/audio_effect_pitch_shift.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_pitch_shift.h b/servers/audio/effects/audio_effect_pitch_shift.h
index 3ed096cd94..0478d05ceb 100644
--- a/servers/audio/effects/audio_effect_pitch_shift.h
+++ b/servers/audio/effects/audio_effect_pitch_shift.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_record.cpp b/servers/audio/effects/audio_effect_record.cpp
index f71679d30f..569832b8a8 100644
--- a/servers/audio/effects/audio_effect_record.cpp
+++ b/servers/audio/effects/audio_effect_record.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_record.h b/servers/audio/effects/audio_effect_record.h
index 6e862b1377..18b5d4d83c 100644
--- a/servers/audio/effects/audio_effect_record.h
+++ b/servers/audio/effects/audio_effect_record.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_reverb.cpp b/servers/audio/effects/audio_effect_reverb.cpp
index 819f906773..0d4eb14e6a 100644
--- a/servers/audio/effects/audio_effect_reverb.cpp
+++ b/servers/audio/effects/audio_effect_reverb.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_reverb.h b/servers/audio/effects/audio_effect_reverb.h
index eaa66352f6..90694c5492 100644
--- a/servers/audio/effects/audio_effect_reverb.h
+++ b/servers/audio/effects/audio_effect_reverb.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_spectrum_analyzer.cpp b/servers/audio/effects/audio_effect_spectrum_analyzer.cpp
index 6f9e7ac67d..10627be74c 100644
--- a/servers/audio/effects/audio_effect_spectrum_analyzer.cpp
+++ b/servers/audio/effects/audio_effect_spectrum_analyzer.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_spectrum_analyzer.h b/servers/audio/effects/audio_effect_spectrum_analyzer.h
index 3c5ae4a5e8..982c20d4a4 100644
--- a/servers/audio/effects/audio_effect_spectrum_analyzer.h
+++ b/servers/audio/effects/audio_effect_spectrum_analyzer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_stereo_enhance.cpp b/servers/audio/effects/audio_effect_stereo_enhance.cpp
index 3a016b06b8..757edd6d43 100644
--- a/servers/audio/effects/audio_effect_stereo_enhance.cpp
+++ b/servers/audio/effects/audio_effect_stereo_enhance.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_effect_stereo_enhance.h b/servers/audio/effects/audio_effect_stereo_enhance.h
index e0f9d79a94..8b8b7b47a0 100644
--- a/servers/audio/effects/audio_effect_stereo_enhance.h
+++ b/servers/audio/effects/audio_effect_stereo_enhance.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_stream_generator.cpp b/servers/audio/effects/audio_stream_generator.cpp
index 447acf53a4..6c917f3eb6 100644
--- a/servers/audio/effects/audio_stream_generator.cpp
+++ b/servers/audio/effects/audio_stream_generator.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/audio_stream_generator.h b/servers/audio/effects/audio_stream_generator.h
index 918589f6d0..51288262b3 100644
--- a/servers/audio/effects/audio_stream_generator.h
+++ b/servers/audio/effects/audio_stream_generator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/eq.cpp b/servers/audio/effects/eq.cpp
index e0c3eb6d3a..2123284b3b 100644
--- a/servers/audio/effects/eq.cpp
+++ b/servers/audio/effects/eq.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/eq.h b/servers/audio/effects/eq.h
index afd5bf5334..74280ee22e 100644
--- a/servers/audio/effects/eq.h
+++ b/servers/audio/effects/eq.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/reverb.cpp b/servers/audio/effects/reverb.cpp
index 1d97de5205..4b5b9ab79f 100644
--- a/servers/audio/effects/reverb.cpp
+++ b/servers/audio/effects/reverb.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio/effects/reverb.h b/servers/audio/effects/reverb.h
index e7ce55098d..fa06d262a3 100644
--- a/servers/audio/effects/reverb.h
+++ b/servers/audio/effects/reverb.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/audio_server.cpp b/servers/audio_server.cpp
index f7c8f0921c..c89f811678 100644
--- a/servers/audio_server.cpp
+++ b/servers/audio_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1591,7 +1591,7 @@ void AudioServer::set_bus_layout(const Ref<AudioBusLayout> &p_bus_layout) {
Bus::Effect bfx;
bfx.effect = fx;
bfx.enabled = p_bus_layout->buses[i].effects[j].enabled;
-#if DEBUG_ENABLED
+#ifdef DEBUG_ENABLED
bfx.prof_time = 0;
#endif
bus->effects.push_back(bfx);
diff --git a/servers/audio_server.h b/servers/audio_server.h
index 46873845dc..0c150427f2 100644
--- a/servers/audio_server.h
+++ b/servers/audio_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/camera/camera_feed.cpp b/servers/camera/camera_feed.cpp
index 9f8e8a8106..3aab995857 100644
--- a/servers/camera/camera_feed.cpp
+++ b/servers/camera/camera_feed.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/camera/camera_feed.h b/servers/camera/camera_feed.h
index 1f80d15e30..ea66c5f947 100644
--- a/servers/camera/camera_feed.h
+++ b/servers/camera/camera_feed.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/camera_server.cpp b/servers/camera_server.cpp
index 8391a2ee2e..91df3afadd 100644
--- a/servers/camera_server.cpp
+++ b/servers/camera_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/camera_server.h b/servers/camera_server.h
index 7390129df9..893fdba912 100644
--- a/servers/camera_server.h
+++ b/servers/camera_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/display_server.cpp b/servers/display_server.cpp
index 8b5a965738..01f58e37eb 100644
--- a/servers/display_server.cpp
+++ b/servers/display_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/display_server.h b/servers/display_server.h
index 2d837dbef9..a84290be77 100644
--- a/servers/display_server.h
+++ b/servers/display_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/display_server_headless.h b/servers/display_server_headless.h
index 0837e41db8..4ef9dc622f 100644
--- a/servers/display_server_headless.h
+++ b/servers/display_server_headless.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/navigation_server_2d.cpp b/servers/navigation_server_2d.cpp
index 85b12f1585..53190d7681 100644
--- a/servers/navigation_server_2d.cpp
+++ b/servers/navigation_server_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -204,7 +204,7 @@ void NavigationServer2D::_bind_methods() {
NavigationServer2D::NavigationServer2D() {
singleton = this;
ERR_FAIL_COND_MSG(!NavigationServer3D::get_singleton(), "The Navigation3D singleton should be initialized before the 2D one.");
- NavigationServer3D::get_singleton()->connect("map_changed", callable_mp(this, &NavigationServer2D::_emit_map_changed));
+ NavigationServer3D::get_singleton_mut()->connect("map_changed", callable_mp(this, &NavigationServer2D::_emit_map_changed));
}
NavigationServer2D::~NavigationServer2D() {
diff --git a/servers/navigation_server_2d.h b/servers/navigation_server_2d.h
index d56c719839..2dd718e09c 100644
--- a/servers/navigation_server_2d.h
+++ b/servers/navigation_server_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -52,7 +52,7 @@ protected:
public:
/// Thread safe, can be used across many threads.
- static NavigationServer2D *get_singleton() { return singleton; }
+ static const NavigationServer2D *get_singleton() { return singleton; }
/// MUST be used in single thread!
static NavigationServer2D *get_singleton_mut() { return singleton; }
diff --git a/servers/navigation_server_3d.cpp b/servers/navigation_server_3d.cpp
index b0047a250a..d78e58bea0 100644
--- a/servers/navigation_server_3d.cpp
+++ b/servers/navigation_server_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -84,7 +84,7 @@ void NavigationServer3D::_bind_methods() {
ADD_SIGNAL(MethodInfo("map_changed", PropertyInfo(Variant::RID, "map")));
}
-NavigationServer3D *NavigationServer3D::get_singleton() {
+const NavigationServer3D *NavigationServer3D::get_singleton() {
return singleton;
}
diff --git a/servers/navigation_server_3d.h b/servers/navigation_server_3d.h
index 3aef693ac8..f711e4e0e5 100644
--- a/servers/navigation_server_3d.h
+++ b/servers/navigation_server_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -55,7 +55,7 @@ protected:
public:
/// Thread safe, can be used across many threads.
- static NavigationServer3D *get_singleton();
+ static const NavigationServer3D *get_singleton();
/// MUST be used in single thread!
static NavigationServer3D *get_singleton_mut();
diff --git a/servers/physics_2d/godot_area_2d.cpp b/servers/physics_2d/godot_area_2d.cpp
index c4060615c9..9937178550 100644
--- a/servers/physics_2d/godot_area_2d.cpp
+++ b/servers/physics_2d/godot_area_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_area_2d.h b/servers/physics_2d/godot_area_2d.h
index 699c1c1bc8..6e8078909b 100644
--- a/servers/physics_2d/godot_area_2d.h
+++ b/servers/physics_2d/godot_area_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_area_pair_2d.cpp b/servers/physics_2d/godot_area_pair_2d.cpp
index bde22aab11..72208d7dff 100644
--- a/servers/physics_2d/godot_area_pair_2d.cpp
+++ b/servers/physics_2d/godot_area_pair_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_area_pair_2d.h b/servers/physics_2d/godot_area_pair_2d.h
index f1290a27d0..ef6c774bc3 100644
--- a/servers/physics_2d/godot_area_pair_2d.h
+++ b/servers/physics_2d/godot_area_pair_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_body_2d.cpp b/servers/physics_2d/godot_body_2d.cpp
index 886fe4af0f..6873504f70 100644
--- a/servers/physics_2d/godot_body_2d.cpp
+++ b/servers/physics_2d/godot_body_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_body_2d.h b/servers/physics_2d/godot_body_2d.h
index 9902da9b46..1335a19126 100644
--- a/servers/physics_2d/godot_body_2d.h
+++ b/servers/physics_2d/godot_body_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_body_direct_state_2d.cpp b/servers/physics_2d/godot_body_direct_state_2d.cpp
index 2843466e01..cde6e8c991 100644
--- a/servers/physics_2d/godot_body_direct_state_2d.cpp
+++ b/servers/physics_2d/godot_body_direct_state_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_body_direct_state_2d.h b/servers/physics_2d/godot_body_direct_state_2d.h
index bc6038f7e8..a2c0a87989 100644
--- a/servers/physics_2d/godot_body_direct_state_2d.h
+++ b/servers/physics_2d/godot_body_direct_state_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_body_pair_2d.cpp b/servers/physics_2d/godot_body_pair_2d.cpp
index ca67277d1c..1986191cc3 100644
--- a/servers/physics_2d/godot_body_pair_2d.cpp
+++ b/servers/physics_2d/godot_body_pair_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_body_pair_2d.h b/servers/physics_2d/godot_body_pair_2d.h
index 0a086a78b1..1c0f61be26 100644
--- a/servers/physics_2d/godot_body_pair_2d.h
+++ b/servers/physics_2d/godot_body_pair_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_broad_phase_2d.cpp b/servers/physics_2d/godot_broad_phase_2d.cpp
index 4b35f8d996..e734c24f88 100644
--- a/servers/physics_2d/godot_broad_phase_2d.cpp
+++ b/servers/physics_2d/godot_broad_phase_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_broad_phase_2d.h b/servers/physics_2d/godot_broad_phase_2d.h
index 7017a6e41f..abab087045 100644
--- a/servers/physics_2d/godot_broad_phase_2d.h
+++ b/servers/physics_2d/godot_broad_phase_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_broad_phase_2d_bvh.cpp b/servers/physics_2d/godot_broad_phase_2d_bvh.cpp
index 9ec6b0a6b7..5a96dae8ca 100644
--- a/servers/physics_2d/godot_broad_phase_2d_bvh.cpp
+++ b/servers/physics_2d/godot_broad_phase_2d_bvh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_broad_phase_2d_bvh.h b/servers/physics_2d/godot_broad_phase_2d_bvh.h
index 19b49f3499..d77e0574eb 100644
--- a/servers/physics_2d/godot_broad_phase_2d_bvh.h
+++ b/servers/physics_2d/godot_broad_phase_2d_bvh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_collision_object_2d.cpp b/servers/physics_2d/godot_collision_object_2d.cpp
index 719d9c874a..35027e0f69 100644
--- a/servers/physics_2d/godot_collision_object_2d.cpp
+++ b/servers/physics_2d/godot_collision_object_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_collision_object_2d.h b/servers/physics_2d/godot_collision_object_2d.h
index 7233857808..1e9baad8d9 100644
--- a/servers/physics_2d/godot_collision_object_2d.h
+++ b/servers/physics_2d/godot_collision_object_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_collision_solver_2d.cpp b/servers/physics_2d/godot_collision_solver_2d.cpp
index 25371b9885..263d6d939f 100644
--- a/servers/physics_2d/godot_collision_solver_2d.cpp
+++ b/servers/physics_2d/godot_collision_solver_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_collision_solver_2d.h b/servers/physics_2d/godot_collision_solver_2d.h
index f10815a444..bd90641f04 100644
--- a/servers/physics_2d/godot_collision_solver_2d.h
+++ b/servers/physics_2d/godot_collision_solver_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_collision_solver_2d_sat.cpp b/servers/physics_2d/godot_collision_solver_2d_sat.cpp
index 63053e8259..a965795bee 100644
--- a/servers/physics_2d/godot_collision_solver_2d_sat.cpp
+++ b/servers/physics_2d/godot_collision_solver_2d_sat.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_collision_solver_2d_sat.h b/servers/physics_2d/godot_collision_solver_2d_sat.h
index 1517b90a19..3d8e29c41a 100644
--- a/servers/physics_2d/godot_collision_solver_2d_sat.h
+++ b/servers/physics_2d/godot_collision_solver_2d_sat.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_constraint_2d.h b/servers/physics_2d/godot_constraint_2d.h
index 84f975e583..d9bf035c2b 100644
--- a/servers/physics_2d/godot_constraint_2d.h
+++ b/servers/physics_2d/godot_constraint_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_joints_2d.cpp b/servers/physics_2d/godot_joints_2d.cpp
index 7c08c2f4b4..0876184d8c 100644
--- a/servers/physics_2d/godot_joints_2d.cpp
+++ b/servers/physics_2d/godot_joints_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_joints_2d.h b/servers/physics_2d/godot_joints_2d.h
index 4c97190d01..acaaf0f629 100644
--- a/servers/physics_2d/godot_joints_2d.h
+++ b/servers/physics_2d/godot_joints_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_physics_server_2d.cpp b/servers/physics_2d/godot_physics_server_2d.cpp
index a1b2d8c3e0..5e099e27ec 100644
--- a/servers/physics_2d/godot_physics_server_2d.cpp
+++ b/servers/physics_2d/godot_physics_server_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_physics_server_2d.h b/servers/physics_2d/godot_physics_server_2d.h
index bdf614a16d..0a84caadc5 100644
--- a/servers/physics_2d/godot_physics_server_2d.h
+++ b/servers/physics_2d/godot_physics_server_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_shape_2d.cpp b/servers/physics_2d/godot_shape_2d.cpp
index 3604004324..1e8799a727 100644
--- a/servers/physics_2d/godot_shape_2d.cpp
+++ b/servers/physics_2d/godot_shape_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_shape_2d.h b/servers/physics_2d/godot_shape_2d.h
index 25d113aafb..fb52cbce20 100644
--- a/servers/physics_2d/godot_shape_2d.h
+++ b/servers/physics_2d/godot_shape_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_space_2d.cpp b/servers/physics_2d/godot_space_2d.cpp
index 8f22efc40c..5c2bda340b 100644
--- a/servers/physics_2d/godot_space_2d.cpp
+++ b/servers/physics_2d/godot_space_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_space_2d.h b/servers/physics_2d/godot_space_2d.h
index e11f4c3afb..5d97721176 100644
--- a/servers/physics_2d/godot_space_2d.h
+++ b/servers/physics_2d/godot_space_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_step_2d.cpp b/servers/physics_2d/godot_step_2d.cpp
index bc604e380a..866c415440 100644
--- a/servers/physics_2d/godot_step_2d.cpp
+++ b/servers/physics_2d/godot_step_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_2d/godot_step_2d.h b/servers/physics_2d/godot_step_2d.h
index 4038417854..9a6d8caf9b 100644
--- a/servers/physics_2d/godot_step_2d.h
+++ b/servers/physics_2d/godot_step_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/gjk_epa.cpp b/servers/physics_3d/gjk_epa.cpp
index ef6535a878..928ffe0980 100644
--- a/servers/physics_3d/gjk_epa.cpp
+++ b/servers/physics_3d/gjk_epa.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/gjk_epa.h b/servers/physics_3d/gjk_epa.h
index 39a7d03435..01a47f222e 100644
--- a/servers/physics_3d/gjk_epa.h
+++ b/servers/physics_3d/gjk_epa.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_area_3d.cpp b/servers/physics_3d/godot_area_3d.cpp
index d4e14b8d85..e7df23d0d8 100644
--- a/servers/physics_3d/godot_area_3d.cpp
+++ b/servers/physics_3d/godot_area_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_area_3d.h b/servers/physics_3d/godot_area_3d.h
index 0dcf89b2b4..ce64fc802a 100644
--- a/servers/physics_3d/godot_area_3d.h
+++ b/servers/physics_3d/godot_area_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_area_pair_3d.cpp b/servers/physics_3d/godot_area_pair_3d.cpp
index 58188565e3..a75cb74f60 100644
--- a/servers/physics_3d/godot_area_pair_3d.cpp
+++ b/servers/physics_3d/godot_area_pair_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_area_pair_3d.h b/servers/physics_3d/godot_area_pair_3d.h
index 4237e7722e..c416477204 100644
--- a/servers/physics_3d/godot_area_pair_3d.h
+++ b/servers/physics_3d/godot_area_pair_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_body_3d.cpp b/servers/physics_3d/godot_body_3d.cpp
index fca8a3f3a9..ad97533f44 100644
--- a/servers/physics_3d/godot_body_3d.cpp
+++ b/servers/physics_3d/godot_body_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_body_3d.h b/servers/physics_3d/godot_body_3d.h
index 5868d8c282..1906e8aab1 100644
--- a/servers/physics_3d/godot_body_3d.h
+++ b/servers/physics_3d/godot_body_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_body_direct_state_3d.cpp b/servers/physics_3d/godot_body_direct_state_3d.cpp
index e45180cd02..a8c6086e1c 100644
--- a/servers/physics_3d/godot_body_direct_state_3d.cpp
+++ b/servers/physics_3d/godot_body_direct_state_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_body_direct_state_3d.h b/servers/physics_3d/godot_body_direct_state_3d.h
index 93e9997e11..483cfb9298 100644
--- a/servers/physics_3d/godot_body_direct_state_3d.h
+++ b/servers/physics_3d/godot_body_direct_state_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_body_pair_3d.cpp b/servers/physics_3d/godot_body_pair_3d.cpp
index dd82a02059..89d5d59161 100644
--- a/servers/physics_3d/godot_body_pair_3d.cpp
+++ b/servers/physics_3d/godot_body_pair_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_body_pair_3d.h b/servers/physics_3d/godot_body_pair_3d.h
index 8a9664e7e1..7a7309f9d5 100644
--- a/servers/physics_3d/godot_body_pair_3d.h
+++ b/servers/physics_3d/godot_body_pair_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_broad_phase_3d.cpp b/servers/physics_3d/godot_broad_phase_3d.cpp
index db51dfb2b6..115a01a0c5 100644
--- a/servers/physics_3d/godot_broad_phase_3d.cpp
+++ b/servers/physics_3d/godot_broad_phase_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_broad_phase_3d.h b/servers/physics_3d/godot_broad_phase_3d.h
index 65423f293c..75196cbd1b 100644
--- a/servers/physics_3d/godot_broad_phase_3d.h
+++ b/servers/physics_3d/godot_broad_phase_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_broad_phase_3d_bvh.cpp b/servers/physics_3d/godot_broad_phase_3d_bvh.cpp
index 0f2061a1ea..9a6b96c411 100644
--- a/servers/physics_3d/godot_broad_phase_3d_bvh.cpp
+++ b/servers/physics_3d/godot_broad_phase_3d_bvh.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_broad_phase_3d_bvh.h b/servers/physics_3d/godot_broad_phase_3d_bvh.h
index 61127e52c1..7138019a9c 100644
--- a/servers/physics_3d/godot_broad_phase_3d_bvh.h
+++ b/servers/physics_3d/godot_broad_phase_3d_bvh.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_collision_object_3d.cpp b/servers/physics_3d/godot_collision_object_3d.cpp
index 421291011b..63284aeca5 100644
--- a/servers/physics_3d/godot_collision_object_3d.cpp
+++ b/servers/physics_3d/godot_collision_object_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_collision_object_3d.h b/servers/physics_3d/godot_collision_object_3d.h
index 43558034e0..0178838a25 100644
--- a/servers/physics_3d/godot_collision_object_3d.h
+++ b/servers/physics_3d/godot_collision_object_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_collision_solver_3d.cpp b/servers/physics_3d/godot_collision_solver_3d.cpp
index 540b16c6e3..81e1a88366 100644
--- a/servers/physics_3d/godot_collision_solver_3d.cpp
+++ b/servers/physics_3d/godot_collision_solver_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_collision_solver_3d.h b/servers/physics_3d/godot_collision_solver_3d.h
index 133635ca7e..a6a0ebfead 100644
--- a/servers/physics_3d/godot_collision_solver_3d.h
+++ b/servers/physics_3d/godot_collision_solver_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_collision_solver_3d_sat.cpp b/servers/physics_3d/godot_collision_solver_3d_sat.cpp
index 4faa07b6c9..82e04a7e31 100644
--- a/servers/physics_3d/godot_collision_solver_3d_sat.cpp
+++ b/servers/physics_3d/godot_collision_solver_3d_sat.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_collision_solver_3d_sat.h b/servers/physics_3d/godot_collision_solver_3d_sat.h
index 069a701cba..3eb7aa4c9e 100644
--- a/servers/physics_3d/godot_collision_solver_3d_sat.h
+++ b/servers/physics_3d/godot_collision_solver_3d_sat.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_constraint_3d.h b/servers/physics_3d/godot_constraint_3d.h
index 840c81716c..217955047f 100644
--- a/servers/physics_3d/godot_constraint_3d.h
+++ b/servers/physics_3d/godot_constraint_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_joint_3d.h b/servers/physics_3d/godot_joint_3d.h
index 4086bb53e1..d4b719fc5e 100644
--- a/servers/physics_3d/godot_joint_3d.h
+++ b/servers/physics_3d/godot_joint_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_physics_server_3d.cpp b/servers/physics_3d/godot_physics_server_3d.cpp
index f301b791bb..4e1680e6ac 100644
--- a/servers/physics_3d/godot_physics_server_3d.cpp
+++ b/servers/physics_3d/godot_physics_server_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_physics_server_3d.h b/servers/physics_3d/godot_physics_server_3d.h
index ab9cd19723..b903f4808c 100644
--- a/servers/physics_3d/godot_physics_server_3d.h
+++ b/servers/physics_3d/godot_physics_server_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_shape_3d.cpp b/servers/physics_3d/godot_shape_3d.cpp
index 5364a9833d..26fa470233 100644
--- a/servers/physics_3d/godot_shape_3d.cpp
+++ b/servers/physics_3d/godot_shape_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_shape_3d.h b/servers/physics_3d/godot_shape_3d.h
index 43319510d4..9d171c3928 100644
--- a/servers/physics_3d/godot_shape_3d.h
+++ b/servers/physics_3d/godot_shape_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_soft_body_3d.cpp b/servers/physics_3d/godot_soft_body_3d.cpp
index 43d4433302..1de27760d5 100644
--- a/servers/physics_3d/godot_soft_body_3d.cpp
+++ b/servers/physics_3d/godot_soft_body_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_soft_body_3d.h b/servers/physics_3d/godot_soft_body_3d.h
index 14ddc419cf..5028e81dd8 100644
--- a/servers/physics_3d/godot_soft_body_3d.h
+++ b/servers/physics_3d/godot_soft_body_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_space_3d.cpp b/servers/physics_3d/godot_space_3d.cpp
index 89e0d5c51f..ed756a7f9d 100644
--- a/servers/physics_3d/godot_space_3d.cpp
+++ b/servers/physics_3d/godot_space_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_space_3d.h b/servers/physics_3d/godot_space_3d.h
index fbdb65e29c..ac54c8bf69 100644
--- a/servers/physics_3d/godot_space_3d.h
+++ b/servers/physics_3d/godot_space_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_step_3d.cpp b/servers/physics_3d/godot_step_3d.cpp
index 6332532f6e..63635b224b 100644
--- a/servers/physics_3d/godot_step_3d.cpp
+++ b/servers/physics_3d/godot_step_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/godot_step_3d.h b/servers/physics_3d/godot_step_3d.h
index 10389713f6..6d975b0dd3 100644
--- a/servers/physics_3d/godot_step_3d.h
+++ b/servers/physics_3d/godot_step_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_cone_twist_joint_3d.cpp b/servers/physics_3d/joints/godot_cone_twist_joint_3d.cpp
index 864086c956..dc4858ff9a 100644
--- a/servers/physics_3d/joints/godot_cone_twist_joint_3d.cpp
+++ b/servers/physics_3d/joints/godot_cone_twist_joint_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_cone_twist_joint_3d.h b/servers/physics_3d/joints/godot_cone_twist_joint_3d.h
index 999d0f0692..fdcc2ceea3 100644
--- a/servers/physics_3d/joints/godot_cone_twist_joint_3d.h
+++ b/servers/physics_3d/joints/godot_cone_twist_joint_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_generic_6dof_joint_3d.cpp b/servers/physics_3d/joints/godot_generic_6dof_joint_3d.cpp
index 915bb528e9..41e9bf06bb 100644
--- a/servers/physics_3d/joints/godot_generic_6dof_joint_3d.cpp
+++ b/servers/physics_3d/joints/godot_generic_6dof_joint_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_generic_6dof_joint_3d.h b/servers/physics_3d/joints/godot_generic_6dof_joint_3d.h
index f37b5b981b..bcf2d18647 100644
--- a/servers/physics_3d/joints/godot_generic_6dof_joint_3d.h
+++ b/servers/physics_3d/joints/godot_generic_6dof_joint_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_hinge_joint_3d.cpp b/servers/physics_3d/joints/godot_hinge_joint_3d.cpp
index cf77129a30..a7a7843499 100644
--- a/servers/physics_3d/joints/godot_hinge_joint_3d.cpp
+++ b/servers/physics_3d/joints/godot_hinge_joint_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_hinge_joint_3d.h b/servers/physics_3d/joints/godot_hinge_joint_3d.h
index ff1fbe0f25..b934540e8d 100644
--- a/servers/physics_3d/joints/godot_hinge_joint_3d.h
+++ b/servers/physics_3d/joints/godot_hinge_joint_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_jacobian_entry_3d.h b/servers/physics_3d/joints/godot_jacobian_entry_3d.h
index 90a77a9b61..0fe15751d5 100644
--- a/servers/physics_3d/joints/godot_jacobian_entry_3d.h
+++ b/servers/physics_3d/joints/godot_jacobian_entry_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_pin_joint_3d.cpp b/servers/physics_3d/joints/godot_pin_joint_3d.cpp
index e9e81b61a7..c52ea2665c 100644
--- a/servers/physics_3d/joints/godot_pin_joint_3d.cpp
+++ b/servers/physics_3d/joints/godot_pin_joint_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_pin_joint_3d.h b/servers/physics_3d/joints/godot_pin_joint_3d.h
index 17e2e6e973..eeeaa650bd 100644
--- a/servers/physics_3d/joints/godot_pin_joint_3d.h
+++ b/servers/physics_3d/joints/godot_pin_joint_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_slider_joint_3d.cpp b/servers/physics_3d/joints/godot_slider_joint_3d.cpp
index 1f463ad24c..f175421304 100644
--- a/servers/physics_3d/joints/godot_slider_joint_3d.cpp
+++ b/servers/physics_3d/joints/godot_slider_joint_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_3d/joints/godot_slider_joint_3d.h b/servers/physics_3d/joints/godot_slider_joint_3d.h
index 9baaf1fa40..f596c9ff75 100644
--- a/servers/physics_3d/joints/godot_slider_joint_3d.h
+++ b/servers/physics_3d/joints/godot_slider_joint_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_server_2d.cpp b/servers/physics_server_2d.cpp
index f76e00d466..d8f2a2a780 100644
--- a/servers/physics_server_2d.cpp
+++ b/servers/physics_server_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_server_2d.h b/servers/physics_server_2d.h
index 87a549e72d..e9faf0a3bf 100644
--- a/servers/physics_server_2d.h
+++ b/servers/physics_server_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_server_2d_wrap_mt.cpp b/servers/physics_server_2d_wrap_mt.cpp
index 33070bf42d..02223b83f0 100644
--- a/servers/physics_server_2d_wrap_mt.cpp
+++ b/servers/physics_server_2d_wrap_mt.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_server_2d_wrap_mt.h b/servers/physics_server_2d_wrap_mt.h
index cb6e6fc084..aa3a8bc04a 100644
--- a/servers/physics_server_2d_wrap_mt.h
+++ b/servers/physics_server_2d_wrap_mt.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_server_3d.cpp b/servers/physics_server_3d.cpp
index f5a099013f..8fafd07f87 100644
--- a/servers/physics_server_3d.cpp
+++ b/servers/physics_server_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_server_3d.h b/servers/physics_server_3d.h
index 13719ba1c5..f830c95b58 100644
--- a/servers/physics_server_3d.h
+++ b/servers/physics_server_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_server_3d_wrap_mt.cpp b/servers/physics_server_3d_wrap_mt.cpp
index c424100bba..822ca44b72 100644
--- a/servers/physics_server_3d_wrap_mt.cpp
+++ b/servers/physics_server_3d_wrap_mt.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/physics_server_3d_wrap_mt.h b/servers/physics_server_3d_wrap_mt.h
index 179ca90a2f..ecaef886e1 100644
--- a/servers/physics_server_3d_wrap_mt.h
+++ b/servers/physics_server_3d_wrap_mt.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/register_server_types.cpp b/servers/register_server_types.cpp
index 7004b2317c..3fbf4fe436 100644
--- a/servers/register_server_types.cpp
+++ b/servers/register_server_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/register_server_types.h b/servers/register_server_types.h
index f6a65cb653..cf6364eee3 100644
--- a/servers/register_server_types.h
+++ b/servers/register_server_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/rasterizer_dummy.h b/servers/rendering/rasterizer_dummy.h
index 01e96b3bc6..f02a01c97d 100644
--- a/servers/rendering/rasterizer_dummy.h
+++ b/servers/rendering/rasterizer_dummy.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -44,6 +44,7 @@ public:
GeometryInstance *geometry_instance_create(RID p_base) override { return nullptr; }
void geometry_instance_set_skeleton(GeometryInstance *p_geometry_instance, RID p_skeleton) override {}
void geometry_instance_set_material_override(GeometryInstance *p_geometry_instance, RID p_override) override {}
+ void geometry_instance_set_material_overlay(GeometryInstance *p_geometry_instance, RID p_override) override {}
void geometry_instance_set_surface_materials(GeometryInstance *p_geometry_instance, const Vector<RID> &p_material) override {}
void geometry_instance_set_mesh_instance(GeometryInstance *p_geometry_instance, RID p_mesh_instance) override {}
void geometry_instance_set_transform(GeometryInstance *p_geometry_instance, const Transform3D &p_transform, const AABB &p_aabb, const AABB &p_transformed_aabbb) override {}
@@ -116,6 +117,8 @@ public:
void environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) override {}
void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_power, float p_detail, float p_horizon, float p_sharpness, float p_light_affect, float p_ao_channel_affect) override {}
void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {}
+ void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) override {}
+ void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {}
void environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) override {}
@@ -186,7 +189,7 @@ public:
void voxel_gi_set_quality(RS::VoxelGIQuality) override {}
- void render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RendererScene::RenderInfo *r_info = nullptr) override {}
+ void render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RendererScene::RenderInfo *r_info = nullptr) override {}
void render_material(const Transform3D &p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_ortogonal, const PagedArray<GeometryInstance *> &p_instances, RID p_framebuffer, const Rect2i &p_region) override {}
void render_particle_collider_heightfield(RID p_collider, const Transform3D &p_transform, const PagedArray<GeometryInstance *> &p_instances) override {}
@@ -327,8 +330,8 @@ public:
void mesh_instance_set_blend_shape_weight(RID p_mesh_instance, int p_shape, float p_weight) override {}
void mesh_instance_check_for_update(RID p_mesh_instance) override {}
void update_mesh_instances() override {}
- void reflection_probe_set_lod_threshold(RID p_probe, float p_ratio) override {}
- float reflection_probe_get_lod_threshold(RID p_probe) const override { return 0.0; }
+ void reflection_probe_set_mesh_lod_threshold(RID p_probe, float p_ratio) override {}
+ float reflection_probe_get_mesh_lod_threshold(RID p_probe) const override { return 0.0; }
void mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) override {}
@@ -702,6 +705,7 @@ public:
String get_video_adapter_name() const override { return String(); }
String get_video_adapter_vendor() const override { return String(); }
+ RenderingDevice::DeviceType get_video_adapter_type() const override { return RenderingDevice::DeviceType::DEVICE_TYPE_OTHER; }
static RendererStorage *base_singleton;
diff --git a/servers/rendering/renderer_canvas_cull.cpp b/servers/rendering/renderer_canvas_cull.cpp
index 591023c820..02af3c6eb9 100644
--- a/servers/rendering/renderer_canvas_cull.cpp
+++ b/servers/rendering/renderer_canvas_cull.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_canvas_cull.h b/servers/rendering/renderer_canvas_cull.h
index bdd61123df..fc53ce2327 100644
--- a/servers/rendering/renderer_canvas_cull.h
+++ b/servers/rendering/renderer_canvas_cull.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_canvas_render.cpp b/servers/rendering/renderer_canvas_render.cpp
index 1945435586..3b68cd74fd 100644
--- a/servers/rendering/renderer_canvas_render.cpp
+++ b/servers/rendering/renderer_canvas_render.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_canvas_render.h b/servers/rendering/renderer_canvas_render.h
index 04ddae4089..1840925f78 100644
--- a/servers/rendering/renderer_canvas_render.h
+++ b/servers/rendering/renderer_canvas_render.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_compositor.cpp b/servers/rendering/renderer_compositor.cpp
index 80c4625261..82e8bd6ef9 100644
--- a/servers/rendering/renderer_compositor.cpp
+++ b/servers/rendering/renderer_compositor.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_compositor.h b/servers/rendering/renderer_compositor.h
index 4526354d17..f245af9a4a 100644
--- a/servers/rendering/renderer_compositor.h
+++ b/servers/rendering/renderer_compositor.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/cluster_builder_rd.cpp b/servers/rendering/renderer_rd/cluster_builder_rd.cpp
index 4a98cf0831..6ad3556969 100644
--- a/servers/rendering/renderer_rd/cluster_builder_rd.cpp
+++ b/servers/rendering/renderer_rd/cluster_builder_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/cluster_builder_rd.h b/servers/rendering/renderer_rd/cluster_builder_rd.h
index feafd4c2db..7f6750fa7e 100644
--- a/servers/rendering/renderer_rd/cluster_builder_rd.h
+++ b/servers/rendering/renderer_rd/cluster_builder_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/effects_rd.cpp b/servers/rendering/renderer_rd/effects_rd.cpp
index cf943901d4..4a19519995 100644
--- a/servers/rendering/renderer_rd/effects_rd.cpp
+++ b/servers/rendering/renderer_rd/effects_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1315,6 +1315,111 @@ void EffectsRD::bokeh_dof_raster(const BokehBuffers &p_buffers, bool p_dof_far,
}
}
+void EffectsRD::downsample_depth(RID p_depth_buffer, const Vector<RID> &p_depth_mipmaps, RS::EnvironmentSSAOQuality p_ssao_quality, RS::EnvironmentSSILQuality p_ssil_quality, bool p_invalidate_uniform_set, bool p_ssao_half_size, bool p_ssil_half_size, Size2i p_full_screen_size, const CameraMatrix &p_projection) {
+ // Downsample and deinterleave the depth buffer for SSAO and SSIL
+ RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin();
+
+ int downsample_pipeline = SS_EFFECTS_DOWNSAMPLE;
+ bool use_mips = p_ssao_quality > RS::ENV_SSAO_QUALITY_MEDIUM || p_ssil_quality > RS::ENV_SSIL_QUALITY_MEDIUM;
+
+ if (p_ssao_quality == RS::ENV_SSAO_QUALITY_VERY_LOW && p_ssil_quality == RS::ENV_SSIL_QUALITY_VERY_LOW) {
+ downsample_pipeline = SS_EFFECTS_DOWNSAMPLE_HALF;
+ } else if (use_mips) {
+ downsample_pipeline = SS_EFFECTS_DOWNSAMPLE_MIPMAP;
+ }
+
+ bool use_half_size = false;
+ bool use_full_mips = false;
+
+ if (p_ssao_half_size && p_ssil_half_size) {
+ downsample_pipeline++;
+ use_half_size = true;
+ } else if (p_ssao_half_size != p_ssil_half_size) {
+ if (use_mips) {
+ downsample_pipeline = SS_EFFECTS_DOWNSAMPLE_FULL_MIPS;
+ use_full_mips = true;
+ } else {
+ // Only need the first two mipmaps, but the cost to generate the next two is trivial
+ // TODO investigate the benefit of a shader version to generate only 2 mips
+ downsample_pipeline = SS_EFFECTS_DOWNSAMPLE_MIPMAP;
+ use_mips = true;
+ }
+ }
+
+ int depth_index = use_half_size ? 1 : 0;
+
+ RD::get_singleton()->draw_command_begin_label("Downsample Depth");
+ if (p_invalidate_uniform_set || use_full_mips != ss_effects.used_full_mips_last_frame || use_half_size != ss_effects.used_half_size_last_frame || use_mips != ss_effects.used_mips_last_frame) {
+ Vector<RD::Uniform> uniforms;
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
+ u.binding = 0;
+ u.ids.push_back(p_depth_mipmaps[depth_index + 1]);
+ uniforms.push_back(u);
+ }
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
+ u.binding = 1;
+ u.ids.push_back(p_depth_mipmaps[depth_index + 2]);
+ uniforms.push_back(u);
+ }
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
+ u.binding = 2;
+ u.ids.push_back(p_depth_mipmaps[depth_index + 3]);
+ uniforms.push_back(u);
+ }
+ if (use_full_mips) {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
+ u.binding = 3;
+ u.ids.push_back(p_depth_mipmaps[4]);
+ uniforms.push_back(u);
+ }
+ ss_effects.downsample_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, ss_effects.downsample_shader.version_get_shader(ss_effects.downsample_shader_version, use_full_mips ? 6 : 2), 2);
+ }
+
+ float depth_linearize_mul = -p_projection.matrix[3][2];
+ float depth_linearize_add = p_projection.matrix[2][2];
+ if (depth_linearize_mul * depth_linearize_add < 0) {
+ depth_linearize_add = -depth_linearize_add;
+ }
+
+ ss_effects.downsample_push_constant.orthogonal = p_projection.is_orthogonal();
+ ss_effects.downsample_push_constant.z_near = depth_linearize_mul;
+ ss_effects.downsample_push_constant.z_far = depth_linearize_add;
+ if (ss_effects.downsample_push_constant.orthogonal) {
+ ss_effects.downsample_push_constant.z_near = p_projection.get_z_near();
+ ss_effects.downsample_push_constant.z_far = p_projection.get_z_far();
+ }
+ ss_effects.downsample_push_constant.pixel_size[0] = 1.0 / p_full_screen_size.x;
+ ss_effects.downsample_push_constant.pixel_size[1] = 1.0 / p_full_screen_size.y;
+ ss_effects.downsample_push_constant.radius_sq = 1.0;
+
+ RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ss_effects.pipelines[downsample_pipeline]);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_depth_buffer), 0);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_depth_mipmaps[depth_index + 0]), 1);
+ if (use_mips) {
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, ss_effects.downsample_uniform_set, 2);
+ }
+ RD::get_singleton()->compute_list_set_push_constant(compute_list, &ss_effects.downsample_push_constant, sizeof(SSEffectsDownsamplePushConstant));
+
+ Size2i size(MAX(1, p_full_screen_size.x >> (use_half_size ? 2 : 1)), MAX(1, p_full_screen_size.y >> (use_half_size ? 2 : 1)));
+
+ RD::get_singleton()->compute_list_dispatch_threads(compute_list, size.x, size.y, 1);
+ RD::get_singleton()->compute_list_add_barrier(compute_list);
+ RD::get_singleton()->draw_command_end_label();
+
+ RD::get_singleton()->compute_list_end(RD::BARRIER_MASK_COMPUTE);
+
+ ss_effects.used_full_mips_last_frame = use_mips;
+ ss_effects.used_full_mips_last_frame = use_full_mips;
+ ss_effects.used_half_size_last_frame = use_half_size;
+}
+
void EffectsRD::gather_ssao(RD::ComputeListID p_compute_list, const Vector<RID> p_ao_slices, const SSAOSettings &p_settings, bool p_adaptive_base_pass, RID p_gather_uniform_set, RID p_importance_map_uniform_set) {
RD::get_singleton()->compute_list_bind_uniform_set(p_compute_list, p_gather_uniform_set, 0);
if ((p_settings.quality == RS::ENV_SSAO_QUALITY_ULTRA) && !p_adaptive_base_pass) {
@@ -1341,82 +1446,12 @@ void EffectsRD::gather_ssao(RD::ComputeListID p_compute_list, const Vector<RID>
RD::get_singleton()->compute_list_add_barrier(p_compute_list);
}
-void EffectsRD::generate_ssao(RID p_depth_buffer, RID p_normal_buffer, RID p_depth_mipmaps_texture, const Vector<RID> &p_depth_mipmaps, RID p_ao, const Vector<RID> p_ao_slices, RID p_ao_pong, const Vector<RID> p_ao_pong_slices, RID p_upscale_buffer, RID p_importance_map, RID p_importance_map_pong, const CameraMatrix &p_projection, const SSAOSettings &p_settings, bool p_invalidate_uniform_sets, RID &r_downsample_uniform_set, RID &r_gather_uniform_set, RID &r_importance_map_uniform_set) {
+void EffectsRD::generate_ssao(RID p_normal_buffer, RID p_depth_mipmaps_texture, RID p_ao, const Vector<RID> p_ao_slices, RID p_ao_pong, const Vector<RID> p_ao_pong_slices, RID p_upscale_buffer, RID p_importance_map, RID p_importance_map_pong, const CameraMatrix &p_projection, const SSAOSettings &p_settings, bool p_invalidate_uniform_sets, RID &r_gather_uniform_set, RID &r_importance_map_uniform_set) {
RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin();
- RD::get_singleton()->draw_command_begin_label("SSAO");
+ memset(&ssao.gather_push_constant, 0, sizeof(SSAOGatherPushConstant));
/* FIRST PASS */
- // Downsample and deinterleave the depth buffer.
- {
- RD::get_singleton()->draw_command_begin_label("Downsample Depth");
- if (p_invalidate_uniform_sets) {
- Vector<RD::Uniform> uniforms;
- {
- RD::Uniform u;
- u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
- u.binding = 0;
- u.ids.push_back(p_depth_mipmaps[1]);
- uniforms.push_back(u);
- }
- {
- RD::Uniform u;
- u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
- u.binding = 1;
- u.ids.push_back(p_depth_mipmaps[2]);
- uniforms.push_back(u);
- }
- {
- RD::Uniform u;
- u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
- u.binding = 2;
- u.ids.push_back(p_depth_mipmaps[3]);
- uniforms.push_back(u);
- }
- r_downsample_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, ssao.downsample_shader.version_get_shader(ssao.downsample_shader_version, 2), 2);
- }
-
- float depth_linearize_mul = -p_projection.matrix[3][2];
- float depth_linearize_add = p_projection.matrix[2][2];
- if (depth_linearize_mul * depth_linearize_add < 0) {
- depth_linearize_add = -depth_linearize_add;
- }
-
- ssao.downsample_push_constant.orthogonal = p_projection.is_orthogonal();
- ssao.downsample_push_constant.z_near = depth_linearize_mul;
- ssao.downsample_push_constant.z_far = depth_linearize_add;
- if (ssao.downsample_push_constant.orthogonal) {
- ssao.downsample_push_constant.z_near = p_projection.get_z_near();
- ssao.downsample_push_constant.z_far = p_projection.get_z_far();
- }
- ssao.downsample_push_constant.pixel_size[0] = 1.0 / p_settings.full_screen_size.x;
- ssao.downsample_push_constant.pixel_size[1] = 1.0 / p_settings.full_screen_size.y;
- ssao.downsample_push_constant.radius_sq = p_settings.radius * p_settings.radius;
-
- int downsample_pipeline = SSAO_DOWNSAMPLE;
- if (p_settings.quality == RS::ENV_SSAO_QUALITY_VERY_LOW) {
- downsample_pipeline = SSAO_DOWNSAMPLE_HALF;
- } else if (p_settings.quality > RS::ENV_SSAO_QUALITY_MEDIUM) {
- downsample_pipeline = SSAO_DOWNSAMPLE_MIPMAP;
- }
-
- if (p_settings.half_size) {
- downsample_pipeline++;
- }
-
- RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssao.pipelines[downsample_pipeline]);
- RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_depth_buffer), 0);
- RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_depth_mipmaps[0]), 1);
- if (p_settings.quality > RS::ENV_SSAO_QUALITY_MEDIUM) {
- RD::get_singleton()->compute_list_bind_uniform_set(compute_list, r_downsample_uniform_set, 2);
- }
- RD::get_singleton()->compute_list_set_push_constant(compute_list, &ssao.downsample_push_constant, sizeof(SSAODownsamplePushConstant));
-
- Size2i size(MAX(1, p_settings.full_screen_size.x >> (p_settings.half_size ? 2 : 1)), MAX(1, p_settings.full_screen_size.y >> (p_settings.half_size ? 2 : 1)));
-
- RD::get_singleton()->compute_list_dispatch_threads(compute_list, size.x, size.y, 1);
- RD::get_singleton()->compute_list_add_barrier(compute_list);
- RD::get_singleton()->draw_command_end_label(); // Downsample SSAO
- }
+ RD::get_singleton()->draw_command_begin_label("Process Screen Space Ambient Occlusion");
/* SECOND PASS */
// Sample SSAO
{
@@ -1469,7 +1504,7 @@ void EffectsRD::generate_ssao(RID p_depth_buffer, RID p_normal_buffer, RID p_dep
RD::Uniform u;
u.uniform_type = RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE;
u.binding = 0;
- u.ids.push_back(ssao.mirror_sampler);
+ u.ids.push_back(default_sampler);
u.ids.push_back(p_depth_mipmaps_texture);
uniforms.push_back(u);
}
@@ -1484,7 +1519,7 @@ void EffectsRD::generate_ssao(RID p_depth_buffer, RID p_normal_buffer, RID p_dep
RD::Uniform u;
u.uniform_type = RD::UNIFORM_TYPE_UNIFORM_BUFFER;
u.binding = 2;
- u.ids.push_back(ssao.gather_constants_buffer);
+ u.ids.push_back(ss_effects.gather_constants_buffer);
uniforms.push_back(u);
}
r_gather_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, ssao.gather_shader.version_get_shader(ssao.gather_shader_version, 0), 0);
@@ -1574,6 +1609,7 @@ void EffectsRD::generate_ssao(RID p_depth_buffer, RID p_normal_buffer, RID p_dep
for (int pass = 0; pass < blur_passes; pass++) {
int blur_pipeline = SSAO_BLUR_PASS;
if (p_settings.quality > RS::ENV_SSAO_QUALITY_VERY_LOW) {
+ blur_pipeline = SSAO_BLUR_PASS_SMART;
if (pass < blur_passes - 2) {
blur_pipeline = SSAO_BLUR_PASS_WIDE;
} else {
@@ -1591,7 +1627,7 @@ void EffectsRD::generate_ssao(RID p_depth_buffer, RID p_normal_buffer, RID p_dep
if (p_settings.quality == RS::ENV_SSAO_QUALITY_VERY_LOW) {
RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_ao_slices[i]), 0);
} else {
- RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture_and_sampler(p_ao_slices[i], ssao.mirror_sampler), 0);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture_and_sampler(p_ao_slices[i], ss_effects.mirror_sampler), 0);
}
RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_ao_pong_slices[i]), 1);
@@ -1599,7 +1635,7 @@ void EffectsRD::generate_ssao(RID p_depth_buffer, RID p_normal_buffer, RID p_dep
if (p_settings.quality == RS::ENV_SSAO_QUALITY_VERY_LOW) {
RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_ao_pong_slices[i]), 0);
} else {
- RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture_and_sampler(p_ao_pong_slices[i], ssao.mirror_sampler), 0);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture_and_sampler(p_ao_pong_slices[i], ss_effects.mirror_sampler), 0);
}
RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_ao_slices[i]), 1);
}
@@ -1649,12 +1685,305 @@ void EffectsRD::generate_ssao(RID p_depth_buffer, RID p_normal_buffer, RID p_dep
RD::get_singleton()->draw_command_end_label(); // Interleave
}
RD::get_singleton()->draw_command_end_label(); //SSAO
- RD::get_singleton()->compute_list_end(RD::BARRIER_MASK_TRANSFER); //wait for upcoming transfer
+ RD::get_singleton()->compute_list_end(RD::BARRIER_MASK_NO_BARRIER); //wait for upcoming transfer
int zero[1] = { 0 };
RD::get_singleton()->buffer_update(ssao.importance_map_load_counter, 0, sizeof(uint32_t), &zero, 0); //no barrier
}
+void EffectsRD::gather_ssil(RD::ComputeListID p_compute_list, const Vector<RID> p_ssil_slices, const Vector<RID> p_edges_slices, const SSILSettings &p_settings, bool p_adaptive_base_pass, RID p_gather_uniform_set, RID p_importance_map_uniform_set, RID p_projection_uniform_set) {
+ RD::get_singleton()->compute_list_bind_uniform_set(p_compute_list, p_gather_uniform_set, 0);
+ if ((p_settings.quality == RS::ENV_SSIL_QUALITY_ULTRA) && !p_adaptive_base_pass) {
+ RD::get_singleton()->compute_list_bind_uniform_set(p_compute_list, p_importance_map_uniform_set, 1);
+ }
+ RD::get_singleton()->compute_list_bind_uniform_set(p_compute_list, p_projection_uniform_set, 3);
+
+ for (int i = 0; i < 4; i++) {
+ if ((p_settings.quality == RS::ENV_SSIL_QUALITY_VERY_LOW) && ((i == 1) || (i == 2))) {
+ continue;
+ }
+
+ ssil.gather_push_constant.pass_coord_offset[0] = i % 2;
+ ssil.gather_push_constant.pass_coord_offset[1] = i / 2;
+ ssil.gather_push_constant.pass_uv_offset[0] = ((i % 2) - 0.0) / p_settings.full_screen_size.x;
+ ssil.gather_push_constant.pass_uv_offset[1] = ((i / 2) - 0.0) / p_settings.full_screen_size.y;
+ ssil.gather_push_constant.pass = i;
+ RD::get_singleton()->compute_list_bind_uniform_set(p_compute_list, _get_compute_uniform_set_from_image_pair(p_ssil_slices[i], p_edges_slices[i]), 2);
+ RD::get_singleton()->compute_list_set_push_constant(p_compute_list, &ssil.gather_push_constant, sizeof(SSILGatherPushConstant));
+
+ Size2i size = Size2i(p_settings.full_screen_size.x >> (p_settings.half_size ? 2 : 1), p_settings.full_screen_size.y >> (p_settings.half_size ? 2 : 1));
+
+ RD::get_singleton()->compute_list_dispatch_threads(p_compute_list, size.x, size.y, 1);
+ }
+ RD::get_singleton()->compute_list_add_barrier(p_compute_list);
+}
+
+void EffectsRD::screen_space_indirect_lighting(RID p_diffuse, RID p_destination, RID p_normal_buffer, RID p_depth_mipmaps_texture, RID p_ssil, const Vector<RID> p_ssil_slices, RID p_ssil_pong, const Vector<RID> p_ssil_pong_slices, RID p_importance_map, RID p_importance_map_pong, RID p_edges, const Vector<RID> p_edges_slices, const CameraMatrix &p_projection, const CameraMatrix &p_last_projection, const SSILSettings &p_settings, bool p_invalidate_uniform_sets, RID &r_gather_uniform_set, RID &r_importance_map_uniform_set, RID &r_projection_uniform_set) {
+ RD::get_singleton()->draw_command_begin_label("Process Screen Space Indirect Lighting");
+ //Store projection info before starting the compute list
+ SSILProjectionUniforms projection_uniforms;
+ store_camera(p_last_projection, projection_uniforms.inv_last_frame_projection_matrix);
+
+ RD::get_singleton()->buffer_update(ssil.projection_uniform_buffer, 0, sizeof(SSILProjectionUniforms), &projection_uniforms);
+
+ memset(&ssil.gather_push_constant, 0, sizeof(SSILGatherPushConstant));
+
+ RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin();
+ {
+ RD::get_singleton()->draw_command_begin_label("Gather Samples");
+ ssil.gather_push_constant.screen_size[0] = p_settings.full_screen_size.x;
+ ssil.gather_push_constant.screen_size[1] = p_settings.full_screen_size.y;
+
+ ssil.gather_push_constant.half_screen_pixel_size[0] = 1.0 / p_settings.half_screen_size.x;
+ ssil.gather_push_constant.half_screen_pixel_size[1] = 1.0 / p_settings.half_screen_size.y;
+ float tan_half_fov_x = 1.0 / p_projection.matrix[0][0];
+ float tan_half_fov_y = 1.0 / p_projection.matrix[1][1];
+ ssil.gather_push_constant.NDC_to_view_mul[0] = tan_half_fov_x * 2.0;
+ ssil.gather_push_constant.NDC_to_view_mul[1] = tan_half_fov_y * -2.0;
+ ssil.gather_push_constant.NDC_to_view_add[0] = tan_half_fov_x * -1.0;
+ ssil.gather_push_constant.NDC_to_view_add[1] = tan_half_fov_y;
+ ssil.gather_push_constant.z_near = p_projection.get_z_near();
+ ssil.gather_push_constant.z_far = p_projection.get_z_far();
+ ssil.gather_push_constant.is_orthogonal = p_projection.is_orthogonal();
+
+ ssil.gather_push_constant.half_screen_pixel_size_x025[0] = ssil.gather_push_constant.half_screen_pixel_size[0] * 0.25;
+ ssil.gather_push_constant.half_screen_pixel_size_x025[1] = ssil.gather_push_constant.half_screen_pixel_size[1] * 0.25;
+
+ ssil.gather_push_constant.radius = p_settings.radius;
+ float radius_near_limit = (p_settings.radius * 1.2f);
+ if (p_settings.quality <= RS::ENV_SSIL_QUALITY_LOW) {
+ radius_near_limit *= 1.50f;
+
+ if (p_settings.quality == RS::ENV_SSIL_QUALITY_VERY_LOW) {
+ ssil.gather_push_constant.radius *= 0.8f;
+ }
+ }
+ radius_near_limit /= tan_half_fov_y;
+ ssil.gather_push_constant.intensity = p_settings.intensity * Math_PI;
+ ssil.gather_push_constant.fade_out_mul = -1.0 / (p_settings.fadeout_to - p_settings.fadeout_from);
+ ssil.gather_push_constant.fade_out_add = p_settings.fadeout_from / (p_settings.fadeout_to - p_settings.fadeout_from) + 1.0;
+ ssil.gather_push_constant.inv_radius_near_limit = 1.0f / radius_near_limit;
+ ssil.gather_push_constant.neg_inv_radius = -1.0 / ssil.gather_push_constant.radius;
+ ssil.gather_push_constant.normal_rejection_amount = p_settings.normal_rejection;
+
+ ssil.gather_push_constant.load_counter_avg_div = 9.0 / float((p_settings.quarter_screen_size.x) * (p_settings.quarter_screen_size.y) * 255);
+ ssil.gather_push_constant.adaptive_sample_limit = p_settings.adaptive_target;
+
+ ssil.gather_push_constant.quality = MAX(0, p_settings.quality - 1);
+ ssil.gather_push_constant.size_multiplier = p_settings.half_size ? 2 : 1;
+
+ if (p_invalidate_uniform_sets) {
+ Vector<RD::Uniform> uniforms;
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE;
+ u.binding = 0;
+ u.ids.push_back(default_mipmap_sampler);
+ u.ids.push_back(p_diffuse);
+ uniforms.push_back(u);
+ }
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_UNIFORM_BUFFER;
+ u.binding = 1;
+ u.ids.push_back(ssil.projection_uniform_buffer);
+ uniforms.push_back(u);
+ }
+ r_projection_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, ssil.gather_shader.version_get_shader(ssil.gather_shader_version, 0), 3);
+ }
+
+ if (p_invalidate_uniform_sets) {
+ Vector<RD::Uniform> uniforms;
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE;
+ u.binding = 0;
+ u.ids.push_back(default_sampler);
+ u.ids.push_back(p_depth_mipmaps_texture);
+ uniforms.push_back(u);
+ }
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
+ u.binding = 1;
+ u.ids.push_back(p_normal_buffer);
+ uniforms.push_back(u);
+ }
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_UNIFORM_BUFFER;
+ u.binding = 2;
+ u.ids.push_back(ss_effects.gather_constants_buffer);
+ uniforms.push_back(u);
+ }
+ r_gather_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, ssil.gather_shader.version_get_shader(ssil.gather_shader_version, 0), 0);
+ }
+
+ if (p_invalidate_uniform_sets) {
+ Vector<RD::Uniform> uniforms;
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_IMAGE;
+ u.binding = 0;
+ u.ids.push_back(p_ssil_pong);
+ uniforms.push_back(u);
+ }
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE;
+ u.binding = 1;
+ u.ids.push_back(default_sampler);
+ u.ids.push_back(p_importance_map);
+ uniforms.push_back(u);
+ }
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_STORAGE_BUFFER;
+ u.binding = 2;
+ u.ids.push_back(ssil.importance_map_load_counter);
+ uniforms.push_back(u);
+ }
+ r_importance_map_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, ssil.gather_shader.version_get_shader(ssil.gather_shader_version, 2), 1);
+ }
+
+ if (p_settings.quality == RS::ENV_SSIL_QUALITY_ULTRA) {
+ RD::get_singleton()->draw_command_begin_label("Generate Importance Map");
+ ssil.importance_map_push_constant.half_screen_pixel_size[0] = 1.0 / p_settings.half_screen_size.x;
+ ssil.importance_map_push_constant.half_screen_pixel_size[1] = 1.0 / p_settings.half_screen_size.y;
+ ssil.importance_map_push_constant.intensity = p_settings.intensity * Math_PI;
+ //base pass
+ RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssil.pipelines[SSIL_GATHER_BASE]);
+ gather_ssil(compute_list, p_ssil_pong_slices, p_edges_slices, p_settings, true, r_gather_uniform_set, r_importance_map_uniform_set, r_projection_uniform_set);
+ //generate importance map
+
+ RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssil.pipelines[SSIL_GENERATE_IMPORTANCE_MAP]);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_ssil_pong), 0);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_importance_map), 1);
+ RD::get_singleton()->compute_list_set_push_constant(compute_list, &ssil.importance_map_push_constant, sizeof(SSILImportanceMapPushConstant));
+ RD::get_singleton()->compute_list_dispatch_threads(compute_list, p_settings.quarter_screen_size.x, p_settings.quarter_screen_size.y, 1);
+ RD::get_singleton()->compute_list_add_barrier(compute_list);
+ // process Importance Map A
+ RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssil.pipelines[SSIL_PROCESS_IMPORTANCE_MAPA]);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_importance_map), 0);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_importance_map_pong), 1);
+ RD::get_singleton()->compute_list_set_push_constant(compute_list, &ssil.importance_map_push_constant, sizeof(SSILImportanceMapPushConstant));
+ RD::get_singleton()->compute_list_dispatch_threads(compute_list, p_settings.quarter_screen_size.x, p_settings.quarter_screen_size.y, 1);
+ RD::get_singleton()->compute_list_add_barrier(compute_list);
+ // process Importance Map B
+ RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssil.pipelines[SSIL_PROCESS_IMPORTANCE_MAPB]);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_importance_map_pong), 0);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_importance_map), 1);
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, ssil.counter_uniform_set, 2);
+ RD::get_singleton()->compute_list_set_push_constant(compute_list, &ssil.importance_map_push_constant, sizeof(SSILImportanceMapPushConstant));
+ RD::get_singleton()->compute_list_dispatch_threads(compute_list, p_settings.quarter_screen_size.x, p_settings.quarter_screen_size.y, 1);
+ RD::get_singleton()->compute_list_add_barrier(compute_list);
+
+ RD::get_singleton()->draw_command_end_label(); // Importance Map
+
+ RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssil.pipelines[SSIL_GATHER_ADAPTIVE]);
+ } else {
+ RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssil.pipelines[SSIL_GATHER]);
+ }
+
+ gather_ssil(compute_list, p_ssil_slices, p_edges_slices, p_settings, false, r_gather_uniform_set, r_importance_map_uniform_set, r_projection_uniform_set);
+ RD::get_singleton()->draw_command_end_label(); //Gather
+ }
+
+ {
+ RD::get_singleton()->draw_command_begin_label("Edge Aware Blur");
+ ssil.blur_push_constant.edge_sharpness = 1.0 - p_settings.sharpness;
+ ssil.blur_push_constant.half_screen_pixel_size[0] = 1.0 / p_settings.half_screen_size.x;
+ ssil.blur_push_constant.half_screen_pixel_size[1] = 1.0 / p_settings.half_screen_size.y;
+
+ int blur_passes = p_settings.quality > RS::ENV_SSIL_QUALITY_VERY_LOW ? p_settings.blur_passes : 1;
+
+ for (int pass = 0; pass < blur_passes; pass++) {
+ int blur_pipeline = SSIL_BLUR_PASS;
+ if (p_settings.quality > RS::ENV_SSIL_QUALITY_VERY_LOW) {
+ blur_pipeline = SSIL_BLUR_PASS_SMART;
+ if (pass < blur_passes - 2) {
+ blur_pipeline = SSIL_BLUR_PASS_WIDE;
+ }
+ }
+
+ for (int i = 0; i < 4; i++) {
+ if ((p_settings.quality == RS::ENV_SSIL_QUALITY_VERY_LOW) && ((i == 1) || (i == 2))) {
+ continue;
+ }
+
+ RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssil.pipelines[blur_pipeline]);
+ if (pass % 2 == 0) {
+ if (p_settings.quality == RS::ENV_SSIL_QUALITY_VERY_LOW) {
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_ssil_slices[i]), 0);
+ } else {
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture_and_sampler(p_ssil_slices[i], ss_effects.mirror_sampler), 0);
+ }
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_ssil_pong_slices[i]), 1);
+ } else {
+ if (p_settings.quality == RS::ENV_SSIL_QUALITY_VERY_LOW) {
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_ssil_pong_slices[i]), 0);
+ } else {
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture_and_sampler(p_ssil_pong_slices[i], ss_effects.mirror_sampler), 0);
+ }
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_ssil_slices[i]), 1);
+ }
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_edges_slices[i]), 2);
+
+ RD::get_singleton()->compute_list_set_push_constant(compute_list, &ssil.blur_push_constant, sizeof(SSILBlurPushConstant));
+
+ int x_groups = (p_settings.full_screen_size.x >> (p_settings.half_size ? 2 : 1));
+ int y_groups = (p_settings.full_screen_size.y >> (p_settings.half_size ? 2 : 1));
+
+ RD::get_singleton()->compute_list_dispatch_threads(compute_list, x_groups, y_groups, 1);
+ if (p_settings.quality > RS::ENV_SSIL_QUALITY_VERY_LOW) {
+ RD::get_singleton()->compute_list_add_barrier(compute_list);
+ }
+ }
+ }
+
+ RD::get_singleton()->draw_command_end_label(); // Blur
+ }
+
+ {
+ RD::get_singleton()->draw_command_begin_label("Interleave Buffers");
+ ssil.interleave_push_constant.inv_sharpness = 1.0 - p_settings.sharpness;
+ ssil.interleave_push_constant.pixel_size[0] = 1.0 / p_settings.full_screen_size.x;
+ ssil.interleave_push_constant.pixel_size[1] = 1.0 / p_settings.full_screen_size.y;
+ ssil.interleave_push_constant.size_modifier = uint32_t(p_settings.half_size ? 4 : 2);
+
+ int interleave_pipeline = SSIL_INTERLEAVE_HALF;
+ if (p_settings.quality == RS::ENV_SSIL_QUALITY_LOW) {
+ interleave_pipeline = SSIL_INTERLEAVE;
+ } else if (p_settings.quality >= RS::ENV_SSIL_QUALITY_MEDIUM) {
+ interleave_pipeline = SSIL_INTERLEAVE_SMART;
+ }
+
+ RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssil.pipelines[interleave_pipeline]);
+
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_destination), 0);
+
+ if (p_settings.quality > RS::ENV_SSIL_QUALITY_VERY_LOW && p_settings.blur_passes % 2 == 0) {
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_ssil), 1);
+ } else {
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_compute_uniform_set_from_texture(p_ssil_pong), 1);
+ }
+ RD::get_singleton()->compute_list_bind_uniform_set(compute_list, _get_uniform_set_from_image(p_edges), 2);
+
+ RD::get_singleton()->compute_list_set_push_constant(compute_list, &ssil.interleave_push_constant, sizeof(SSILInterleavePushConstant));
+
+ RD::get_singleton()->compute_list_dispatch_threads(compute_list, p_settings.full_screen_size.x, p_settings.full_screen_size.y, 1);
+ RD::get_singleton()->compute_list_add_barrier(compute_list);
+ RD::get_singleton()->draw_command_end_label(); // Interleave
+ }
+
+ RD::get_singleton()->draw_command_end_label(); // SSIL
+
+ RD::get_singleton()->compute_list_end(RD::BARRIER_MASK_NO_BARRIER);
+
+ int zero[1] = { 0 };
+ RD::get_singleton()->buffer_update(ssil.importance_map_load_counter, 0, sizeof(uint32_t), &zero, 0); //no barrier
+}
+
void EffectsRD::roughness_limit(RID p_source_normal, RID p_roughness, const Size2i &p_size, float p_curve) {
roughness_limiter.push_constant.screen_size[0] = p_size.x;
roughness_limiter.push_constant.screen_size[1] = p_size.y;
@@ -2173,63 +2502,36 @@ EffectsRD::EffectsRD(bool p_prefer_raster_effects) {
}
if (!prefer_raster_effects) {
- // Initialize ssao
-
- RD::SamplerState sampler;
- sampler.mag_filter = RD::SAMPLER_FILTER_NEAREST;
- sampler.min_filter = RD::SAMPLER_FILTER_NEAREST;
- sampler.mip_filter = RD::SAMPLER_FILTER_NEAREST;
- sampler.repeat_u = RD::SAMPLER_REPEAT_MODE_MIRRORED_REPEAT;
- sampler.repeat_v = RD::SAMPLER_REPEAT_MODE_MIRRORED_REPEAT;
- sampler.repeat_w = RD::SAMPLER_REPEAT_MODE_MIRRORED_REPEAT;
- sampler.max_lod = 4;
-
- ssao.mirror_sampler = RD::get_singleton()->sampler_create(sampler);
-
- uint32_t pipeline = 0;
- {
- Vector<String> ssao_modes;
- ssao_modes.push_back("\n");
- ssao_modes.push_back("\n#define USE_HALF_SIZE\n");
- ssao_modes.push_back("\n#define GENERATE_MIPS\n");
- ssao_modes.push_back("\n#define GENERATE_MIPS\n#define USE_HALF_SIZE");
- ssao_modes.push_back("\n#define USE_HALF_BUFFERS\n");
- ssao_modes.push_back("\n#define USE_HALF_BUFFERS\n#define USE_HALF_SIZE");
-
- ssao.downsample_shader.initialize(ssao_modes);
-
- ssao.downsample_shader_version = ssao.downsample_shader.version_create();
-
- for (int i = 0; i <= SSAO_DOWNSAMPLE_HALF_RES_HALF; i++) {
- ssao.pipelines[pipeline] = RD::get_singleton()->compute_pipeline_create(ssao.downsample_shader.version_get_shader(ssao.downsample_shader_version, i));
- pipeline++;
- }
- }
{
- Vector<String> ssao_modes;
-
- ssao_modes.push_back("\n");
- ssao_modes.push_back("\n#define SSAO_BASE\n");
- ssao_modes.push_back("\n#define ADAPTIVE\n");
-
- ssao.gather_shader.initialize(ssao_modes);
-
- ssao.gather_shader_version = ssao.gather_shader.version_create();
-
- for (int i = SSAO_GATHER; i <= SSAO_GATHER_ADAPTIVE; i++) {
- ssao.pipelines[pipeline] = RD::get_singleton()->compute_pipeline_create(ssao.gather_shader.version_get_shader(ssao.gather_shader_version, i - SSAO_GATHER));
- pipeline++;
+ // Initialize depth buffer for screen space effects
+ Vector<String> downsampler_modes;
+ downsampler_modes.push_back("\n");
+ downsampler_modes.push_back("\n#define USE_HALF_SIZE\n");
+ downsampler_modes.push_back("\n#define GENERATE_MIPS\n");
+ downsampler_modes.push_back("\n#define GENERATE_MIPS\n#define USE_HALF_SIZE\n");
+ downsampler_modes.push_back("\n#define USE_HALF_BUFFERS\n");
+ downsampler_modes.push_back("\n#define USE_HALF_BUFFERS\n#define USE_HALF_SIZE\n");
+ downsampler_modes.push_back("\n#define GENERATE_MIPS\n#define GENERATE_FULL_MIPS");
+
+ ss_effects.downsample_shader.initialize(downsampler_modes);
+
+ ss_effects.downsample_shader_version = ss_effects.downsample_shader.version_create();
+
+ for (int i = 0; i < SS_EFFECTS_MAX; i++) {
+ ss_effects.pipelines[i] = RD::get_singleton()->compute_pipeline_create(ss_effects.downsample_shader.version_get_shader(ss_effects.downsample_shader_version, i));
}
- ssao.gather_constants_buffer = RD::get_singleton()->uniform_buffer_create(sizeof(SSAOGatherConstants));
- SSAOGatherConstants gather_constants;
+ ss_effects.gather_constants_buffer = RD::get_singleton()->uniform_buffer_create(sizeof(SSEffectsGatherConstants));
+ SSEffectsGatherConstants gather_constants;
const int sub_pass_count = 5;
for (int pass = 0; pass < 4; pass++) {
for (int subPass = 0; subPass < sub_pass_count; subPass++) {
int a = pass;
+ int b = subPass;
+
int spmap[5]{ 0, 1, 4, 3, 2 };
- int b = spmap[subPass];
+ b = spmap[subPass];
float ca, sa;
float angle0 = (float(a) + float(b) / float(sub_pass_count)) * Math_PI * 0.5f;
@@ -2246,72 +2548,105 @@ EffectsRD::EffectsRD(bool p_prefer_raster_effects) {
}
}
- RD::get_singleton()->buffer_update(ssao.gather_constants_buffer, 0, sizeof(SSAOGatherConstants), &gather_constants);
+ RD::get_singleton()->buffer_update(ss_effects.gather_constants_buffer, 0, sizeof(SSEffectsGatherConstants), &gather_constants);
}
+
{
- Vector<String> ssao_modes;
- ssao_modes.push_back("\n#define GENERATE_MAP\n");
- ssao_modes.push_back("\n#define PROCESS_MAPA\n");
- ssao_modes.push_back("\n#define PROCESS_MAPB\n");
+ // Initialize ssao
- ssao.importance_map_shader.initialize(ssao_modes);
+ RD::SamplerState sampler;
+ sampler.mag_filter = RD::SAMPLER_FILTER_NEAREST;
+ sampler.min_filter = RD::SAMPLER_FILTER_NEAREST;
+ sampler.mip_filter = RD::SAMPLER_FILTER_NEAREST;
+ sampler.repeat_u = RD::SAMPLER_REPEAT_MODE_MIRRORED_REPEAT;
+ sampler.repeat_v = RD::SAMPLER_REPEAT_MODE_MIRRORED_REPEAT;
+ sampler.repeat_w = RD::SAMPLER_REPEAT_MODE_MIRRORED_REPEAT;
+ sampler.max_lod = 4;
- ssao.importance_map_shader_version = ssao.importance_map_shader.version_create();
+ ss_effects.mirror_sampler = RD::get_singleton()->sampler_create(sampler);
- for (int i = SSAO_GENERATE_IMPORTANCE_MAP; i <= SSAO_PROCESS_IMPORTANCE_MAPB; i++) {
- ssao.pipelines[pipeline] = RD::get_singleton()->compute_pipeline_create(ssao.importance_map_shader.version_get_shader(ssao.importance_map_shader_version, i - SSAO_GENERATE_IMPORTANCE_MAP));
+ uint32_t pipeline = 0;
+ {
+ Vector<String> ssao_modes;
- pipeline++;
- }
- ssao.importance_map_load_counter = RD::get_singleton()->storage_buffer_create(sizeof(uint32_t));
- int zero[1] = { 0 };
- RD::get_singleton()->buffer_update(ssao.importance_map_load_counter, 0, sizeof(uint32_t), &zero);
- RD::get_singleton()->set_resource_name(ssao.importance_map_load_counter, "Importance Map Load Counter");
+ ssao_modes.push_back("\n");
+ ssao_modes.push_back("\n#define SSAO_BASE\n");
+ ssao_modes.push_back("\n#define ADAPTIVE\n");
- Vector<RD::Uniform> uniforms;
+ ssao.gather_shader.initialize(ssao_modes);
+
+ ssao.gather_shader_version = ssao.gather_shader.version_create();
+
+ for (int i = 0; i <= SSAO_GATHER_ADAPTIVE; i++) {
+ ssao.pipelines[pipeline] = RD::get_singleton()->compute_pipeline_create(ssao.gather_shader.version_get_shader(ssao.gather_shader_version, i));
+ pipeline++;
+ }
+ }
{
- RD::Uniform u;
- u.uniform_type = RD::UNIFORM_TYPE_STORAGE_BUFFER;
- u.binding = 0;
- u.ids.push_back(ssao.importance_map_load_counter);
- uniforms.push_back(u);
+ Vector<String> ssao_modes;
+ ssao_modes.push_back("\n#define GENERATE_MAP\n");
+ ssao_modes.push_back("\n#define PROCESS_MAPA\n");
+ ssao_modes.push_back("\n#define PROCESS_MAPB\n");
+
+ ssao.importance_map_shader.initialize(ssao_modes);
+
+ ssao.importance_map_shader_version = ssao.importance_map_shader.version_create();
+
+ for (int i = SSAO_GENERATE_IMPORTANCE_MAP; i <= SSAO_PROCESS_IMPORTANCE_MAPB; i++) {
+ ssao.pipelines[pipeline] = RD::get_singleton()->compute_pipeline_create(ssao.importance_map_shader.version_get_shader(ssao.importance_map_shader_version, i - SSAO_GENERATE_IMPORTANCE_MAP));
+
+ pipeline++;
+ }
+ ssao.importance_map_load_counter = RD::get_singleton()->storage_buffer_create(sizeof(uint32_t));
+ int zero[1] = { 0 };
+ RD::get_singleton()->buffer_update(ssao.importance_map_load_counter, 0, sizeof(uint32_t), &zero);
+ RD::get_singleton()->set_resource_name(ssao.importance_map_load_counter, "Importance Map Load Counter");
+
+ Vector<RD::Uniform> uniforms;
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_STORAGE_BUFFER;
+ u.binding = 0;
+ u.ids.push_back(ssao.importance_map_load_counter);
+ uniforms.push_back(u);
+ }
+ ssao.counter_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, ssao.importance_map_shader.version_get_shader(ssao.importance_map_shader_version, 2), 2);
+ RD::get_singleton()->set_resource_name(ssao.counter_uniform_set, "Load Counter Uniform Set");
}
- ssao.counter_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, ssao.importance_map_shader.version_get_shader(ssao.importance_map_shader_version, 2), 2);
- RD::get_singleton()->set_resource_name(ssao.counter_uniform_set, "Load Counter Uniform Set");
- }
- {
- Vector<String> ssao_modes;
- ssao_modes.push_back("\n#define MODE_NON_SMART\n");
- ssao_modes.push_back("\n#define MODE_SMART\n");
- ssao_modes.push_back("\n#define MODE_WIDE\n");
+ {
+ Vector<String> ssao_modes;
+ ssao_modes.push_back("\n#define MODE_NON_SMART\n");
+ ssao_modes.push_back("\n#define MODE_SMART\n");
+ ssao_modes.push_back("\n#define MODE_WIDE\n");
- ssao.blur_shader.initialize(ssao_modes);
+ ssao.blur_shader.initialize(ssao_modes);
- ssao.blur_shader_version = ssao.blur_shader.version_create();
+ ssao.blur_shader_version = ssao.blur_shader.version_create();
- for (int i = SSAO_BLUR_PASS; i <= SSAO_BLUR_PASS_WIDE; i++) {
- ssao.pipelines[pipeline] = RD::get_singleton()->compute_pipeline_create(ssao.blur_shader.version_get_shader(ssao.blur_shader_version, i - SSAO_BLUR_PASS));
+ for (int i = SSAO_BLUR_PASS; i <= SSAO_BLUR_PASS_WIDE; i++) {
+ ssao.pipelines[pipeline] = RD::get_singleton()->compute_pipeline_create(ssao.blur_shader.version_get_shader(ssao.blur_shader_version, i - SSAO_BLUR_PASS));
- pipeline++;
+ pipeline++;
+ }
}
- }
- {
- Vector<String> ssao_modes;
- ssao_modes.push_back("\n#define MODE_NON_SMART\n");
- ssao_modes.push_back("\n#define MODE_SMART\n");
- ssao_modes.push_back("\n#define MODE_HALF\n");
-
- ssao.interleave_shader.initialize(ssao_modes);
-
- ssao.interleave_shader_version = ssao.interleave_shader.version_create();
- for (int i = SSAO_INTERLEAVE; i <= SSAO_INTERLEAVE_HALF; i++) {
- ssao.pipelines[pipeline] = RD::get_singleton()->compute_pipeline_create(ssao.interleave_shader.version_get_shader(ssao.interleave_shader_version, i - SSAO_INTERLEAVE));
- RD::get_singleton()->set_resource_name(ssao.pipelines[pipeline], "Interleave Pipeline " + itos(i));
- pipeline++;
+ {
+ Vector<String> ssao_modes;
+ ssao_modes.push_back("\n#define MODE_NON_SMART\n");
+ ssao_modes.push_back("\n#define MODE_SMART\n");
+ ssao_modes.push_back("\n#define MODE_HALF\n");
+
+ ssao.interleave_shader.initialize(ssao_modes);
+
+ ssao.interleave_shader_version = ssao.interleave_shader.version_create();
+ for (int i = SSAO_INTERLEAVE; i <= SSAO_INTERLEAVE_HALF; i++) {
+ ssao.pipelines[pipeline] = RD::get_singleton()->compute_pipeline_create(ssao.interleave_shader.version_get_shader(ssao.interleave_shader_version, i - SSAO_INTERLEAVE));
+ RD::get_singleton()->set_resource_name(ssao.pipelines[pipeline], "Interleave Pipeline " + itos(i));
+ pipeline++;
+ }
}
- }
- ERR_FAIL_COND(pipeline != SSAO_MAX);
+ ERR_FAIL_COND(pipeline != SSAO_MAX);
+ }
}
if (!prefer_raster_effects) {
@@ -2504,6 +2839,79 @@ EffectsRD::EffectsRD(bool p_prefer_raster_effects) {
}
{
+ Vector<String> ssil_modes;
+ ssil_modes.push_back("\n");
+ ssil_modes.push_back("\n#define SSIL_BASE\n");
+ ssil_modes.push_back("\n#define ADAPTIVE\n");
+
+ ssil.gather_shader.initialize(ssil_modes);
+
+ ssil.gather_shader_version = ssil.gather_shader.version_create();
+
+ for (int i = SSIL_GATHER; i <= SSIL_GATHER_ADAPTIVE; i++) {
+ ssil.pipelines[i] = RD::get_singleton()->compute_pipeline_create(ssil.gather_shader.version_get_shader(ssil.gather_shader_version, i));
+ }
+ ssil.projection_uniform_buffer = RD::get_singleton()->uniform_buffer_create(sizeof(SSILProjectionUniforms));
+ }
+
+ {
+ Vector<String> ssil_modes;
+ ssil_modes.push_back("\n#define GENERATE_MAP\n");
+ ssil_modes.push_back("\n#define PROCESS_MAPA\n");
+ ssil_modes.push_back("\n#define PROCESS_MAPB\n");
+
+ ssil.importance_map_shader.initialize(ssil_modes);
+
+ ssil.importance_map_shader_version = ssil.importance_map_shader.version_create();
+
+ for (int i = SSIL_GENERATE_IMPORTANCE_MAP; i <= SSIL_PROCESS_IMPORTANCE_MAPB; i++) {
+ ssil.pipelines[i] = RD::get_singleton()->compute_pipeline_create(ssil.importance_map_shader.version_get_shader(ssil.importance_map_shader_version, i - SSIL_GENERATE_IMPORTANCE_MAP));
+ }
+ ssil.importance_map_load_counter = RD::get_singleton()->storage_buffer_create(sizeof(uint32_t));
+ int zero[1] = { 0 };
+ RD::get_singleton()->buffer_update(ssil.importance_map_load_counter, 0, sizeof(uint32_t), &zero);
+ RD::get_singleton()->set_resource_name(ssil.importance_map_load_counter, "Importance Map Load Counter");
+
+ Vector<RD::Uniform> uniforms;
+ {
+ RD::Uniform u;
+ u.uniform_type = RD::UNIFORM_TYPE_STORAGE_BUFFER;
+ u.binding = 0;
+ u.ids.push_back(ssil.importance_map_load_counter);
+ uniforms.push_back(u);
+ }
+ ssil.counter_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, ssil.importance_map_shader.version_get_shader(ssil.importance_map_shader_version, 2), 2);
+ RD::get_singleton()->set_resource_name(ssil.counter_uniform_set, "Load Counter Uniform Set");
+ }
+ {
+ Vector<String> ssil_modes;
+ ssil_modes.push_back("\n#define MODE_NON_SMART\n");
+ ssil_modes.push_back("\n#define MODE_SMART\n");
+ ssil_modes.push_back("\n#define MODE_WIDE\n");
+
+ ssil.blur_shader.initialize(ssil_modes);
+
+ ssil.blur_shader_version = ssil.blur_shader.version_create();
+ for (int i = SSIL_BLUR_PASS; i <= SSIL_BLUR_PASS_WIDE; i++) {
+ ssil.pipelines[i] = RD::get_singleton()->compute_pipeline_create(ssil.blur_shader.version_get_shader(ssil.blur_shader_version, i - SSIL_BLUR_PASS));
+ }
+ }
+
+ {
+ Vector<String> ssil_modes;
+ ssil_modes.push_back("\n#define MODE_NON_SMART\n");
+ ssil_modes.push_back("\n#define MODE_SMART\n");
+ ssil_modes.push_back("\n#define MODE_HALF\n");
+
+ ssil.interleave_shader.initialize(ssil_modes);
+
+ ssil.interleave_shader_version = ssil.interleave_shader.version_create();
+ for (int i = SSIL_INTERLEAVE; i <= SSIL_INTERLEAVE_HALF; i++) {
+ ssil.pipelines[i] = RD::get_singleton()->compute_pipeline_create(ssil.interleave_shader.version_get_shader(ssil.interleave_shader_version, i - SSIL_INTERLEAVE));
+ }
+ }
+
+ {
Vector<String> resolve_modes;
resolve_modes.push_back("\n#define MODE_RESOLVE_GI\n");
resolve_modes.push_back("\n#define MODE_RESOLVE_GI\n#define VOXEL_GI_RESOLVE\n");
@@ -2600,20 +3008,26 @@ EffectsRD::~EffectsRD() {
copy.shader.version_free(copy.shader_version);
resolve.shader.version_free(resolve.shader_version);
specular_merge.shader.version_free(specular_merge.shader_version);
+ ss_effects.downsample_shader.version_free(ss_effects.downsample_shader_version);
ssao.blur_shader.version_free(ssao.blur_shader_version);
ssao.gather_shader.version_free(ssao.gather_shader_version);
- ssao.downsample_shader.version_free(ssao.downsample_shader_version);
ssao.interleave_shader.version_free(ssao.interleave_shader_version);
ssao.importance_map_shader.version_free(ssao.importance_map_shader_version);
+ ssil.blur_shader.version_free(ssil.blur_shader_version);
+ ssil.gather_shader.version_free(ssil.gather_shader_version);
+ ssil.interleave_shader.version_free(ssil.interleave_shader_version);
+ ssil.importance_map_shader.version_free(ssil.importance_map_shader_version);
roughness_limiter.shader.version_free(roughness_limiter.shader_version);
ssr.shader.version_free(ssr.shader_version);
ssr_filter.shader.version_free(ssr_filter.shader_version);
ssr_scale.shader.version_free(ssr_scale.shader_version);
sss.shader.version_free(sss.shader_version);
- RD::get_singleton()->free(ssao.mirror_sampler);
- RD::get_singleton()->free(ssao.gather_constants_buffer);
+ RD::get_singleton()->free(ss_effects.mirror_sampler);
+ RD::get_singleton()->free(ss_effects.gather_constants_buffer);
RD::get_singleton()->free(ssao.importance_map_load_counter);
+ RD::get_singleton()->free(ssil.importance_map_load_counter);
+ RD::get_singleton()->free(ssil.projection_uniform_buffer);
}
copy_to_fb.shader.version_free(copy_to_fb.shader_version);
cube_to_dp.shader.version_free(cube_to_dp.shader_version);
diff --git a/servers/rendering/renderer_rd/effects_rd.h b/servers/rendering/renderer_rd/effects_rd.h
index 6037127e82..747f2c8941 100644
--- a/servers/rendering/renderer_rd/effects_rd.h
+++ b/servers/rendering/renderer_rd/effects_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -55,11 +55,15 @@
#include "servers/rendering/renderer_rd/shaders/screen_space_reflection_scale.glsl.gen.h"
#include "servers/rendering/renderer_rd/shaders/sort.glsl.gen.h"
#include "servers/rendering/renderer_rd/shaders/specular_merge.glsl.gen.h"
+#include "servers/rendering/renderer_rd/shaders/ss_effects_downsample.glsl.gen.h"
#include "servers/rendering/renderer_rd/shaders/ssao.glsl.gen.h"
#include "servers/rendering/renderer_rd/shaders/ssao_blur.glsl.gen.h"
-#include "servers/rendering/renderer_rd/shaders/ssao_downsample.glsl.gen.h"
#include "servers/rendering/renderer_rd/shaders/ssao_importance_map.glsl.gen.h"
#include "servers/rendering/renderer_rd/shaders/ssao_interleave.glsl.gen.h"
+#include "servers/rendering/renderer_rd/shaders/ssil.glsl.gen.h"
+#include "servers/rendering/renderer_rd/shaders/ssil_blur.glsl.gen.h"
+#include "servers/rendering/renderer_rd/shaders/ssil_importance_map.glsl.gen.h"
+#include "servers/rendering/renderer_rd/shaders/ssil_interleave.glsl.gen.h"
#include "servers/rendering/renderer_rd/shaders/subsurface_scattering.glsl.gen.h"
#include "servers/rendering/renderer_rd/shaders/tonemap.glsl.gen.h"
#include "servers/rendering/renderer_scene_render.h"
@@ -399,13 +403,47 @@ private:
PipelineCacheRD raster_pipelines[BOKEH_MAX];
} bokeh;
+ struct SSEffectsDownsamplePushConstant {
+ float pixel_size[2];
+ float z_far;
+ float z_near;
+ uint32_t orthogonal;
+ float radius_sq;
+ uint32_t pad[2];
+ };
+
+ enum SSEffectsMode {
+ SS_EFFECTS_DOWNSAMPLE,
+ SS_EFFECTS_DOWNSAMPLE_HALF_RES,
+ SS_EFFECTS_DOWNSAMPLE_MIPMAP,
+ SS_EFFECTS_DOWNSAMPLE_MIPMAP_HALF_RES,
+ SS_EFFECTS_DOWNSAMPLE_HALF,
+ SS_EFFECTS_DOWNSAMPLE_HALF_RES_HALF,
+ SS_EFFECTS_DOWNSAMPLE_FULL_MIPS,
+ SS_EFFECTS_MAX
+ };
+
+ struct SSEffectsGatherConstants {
+ float rotation_matrices[80]; //5 vec4s * 4
+ };
+
+ struct SSEffects {
+ SSEffectsDownsamplePushConstant downsample_push_constant;
+ SsEffectsDownsampleShaderRD downsample_shader;
+ RID downsample_shader_version;
+ RID downsample_uniform_set;
+ bool used_half_size_last_frame = false;
+ bool used_mips_last_frame = false;
+ bool used_full_mips_last_frame = false;
+
+ RID gather_constants_buffer;
+
+ RID mirror_sampler;
+
+ RID pipelines[SS_EFFECTS_MAX];
+ } ss_effects;
+
enum SSAOMode {
- SSAO_DOWNSAMPLE,
- SSAO_DOWNSAMPLE_HALF_RES,
- SSAO_DOWNSAMPLE_MIPMAP,
- SSAO_DOWNSAMPLE_MIPMAP_HALF_RES,
- SSAO_DOWNSAMPLE_HALF,
- SSAO_DOWNSAMPLE_HALF_RES_HALF,
SSAO_GATHER,
SSAO_GATHER_BASE,
SSAO_GATHER_ADAPTIVE,
@@ -421,15 +459,6 @@ private:
SSAO_MAX
};
- struct SSAODownsamplePushConstant {
- float pixel_size[2];
- float z_far;
- float z_near;
- uint32_t orthogonal;
- float radius_sq;
- uint32_t pad[2];
- };
-
struct SSAOGatherPushConstant {
int32_t screen_size[2];
int pass;
@@ -455,7 +484,7 @@ private:
float horizon_angle_threshold;
float inv_radius_near_limit;
- bool is_orthogonal;
+ uint32_t is_orthogonal;
float neg_inv_radius;
float load_counter_avg_div;
float adaptive_sample_limit;
@@ -464,10 +493,6 @@ private:
float pass_uv_offset[2];
};
- struct SSAOGatherConstants {
- float rotation_matrices[80]; //5 vec4s * 4
- };
-
struct SSAOImportanceMapPushConstant {
float half_screen_pixel_size[2];
float intensity;
@@ -487,15 +512,9 @@ private:
};
struct SSAO {
- SSAODownsamplePushConstant downsample_push_constant;
- SsaoDownsampleShaderRD downsample_shader;
- RID downsample_shader_version;
-
SSAOGatherPushConstant gather_push_constant;
SsaoShaderRD gather_shader;
RID gather_shader_version;
- RID gather_constants_buffer;
- bool gather_initialized = false;
SSAOImportanceMapPushConstant importance_map_push_constant;
SsaoImportanceMapShaderRD importance_map_shader;
@@ -511,10 +530,104 @@ private:
SsaoInterleaveShaderRD interleave_shader;
RID interleave_shader_version;
- RID mirror_sampler;
RID pipelines[SSAO_MAX];
} ssao;
+ enum SSILMode {
+ SSIL_GATHER,
+ SSIL_GATHER_BASE,
+ SSIL_GATHER_ADAPTIVE,
+ SSIL_GENERATE_IMPORTANCE_MAP,
+ SSIL_PROCESS_IMPORTANCE_MAPA,
+ SSIL_PROCESS_IMPORTANCE_MAPB,
+ SSIL_BLUR_PASS,
+ SSIL_BLUR_PASS_SMART,
+ SSIL_BLUR_PASS_WIDE,
+ SSIL_INTERLEAVE,
+ SSIL_INTERLEAVE_SMART,
+ SSIL_INTERLEAVE_HALF,
+ SSIL_MAX
+ };
+
+ struct SSILGatherPushConstant {
+ int32_t screen_size[2];
+ int pass;
+ int quality;
+
+ float half_screen_pixel_size[2];
+ float half_screen_pixel_size_x025[2];
+
+ float NDC_to_view_mul[2];
+ float NDC_to_view_add[2];
+
+ float pad2[2];
+ float z_near;
+ float z_far;
+
+ float radius;
+ float intensity;
+ int size_multiplier;
+ int pad;
+
+ float fade_out_mul;
+ float fade_out_add;
+ float normal_rejection_amount;
+ float inv_radius_near_limit;
+
+ uint32_t is_orthogonal;
+ float neg_inv_radius;
+ float load_counter_avg_div;
+ float adaptive_sample_limit;
+
+ int32_t pass_coord_offset[2];
+ float pass_uv_offset[2];
+ };
+
+ struct SSILImportanceMapPushConstant {
+ float half_screen_pixel_size[2];
+ float intensity;
+ float pad;
+ };
+
+ struct SSILBlurPushConstant {
+ float edge_sharpness;
+ float pad;
+ float half_screen_pixel_size[2];
+ };
+
+ struct SSILInterleavePushConstant {
+ float inv_sharpness;
+ uint32_t size_modifier;
+ float pixel_size[2];
+ };
+
+ struct SSILProjectionUniforms {
+ float inv_last_frame_projection_matrix[16];
+ };
+
+ struct SSIL {
+ SSILGatherPushConstant gather_push_constant;
+ SsilShaderRD gather_shader;
+ RID gather_shader_version;
+ RID projection_uniform_buffer;
+
+ SSILImportanceMapPushConstant importance_map_push_constant;
+ SsilImportanceMapShaderRD importance_map_shader;
+ RID importance_map_shader_version;
+ RID importance_map_load_counter;
+ RID counter_uniform_set;
+
+ SSILBlurPushConstant blur_push_constant;
+ SsilBlurShaderRD blur_shader;
+ RID blur_shader_version;
+
+ SSILInterleavePushConstant interleave_push_constant;
+ SsilInterleaveShaderRD interleave_shader;
+ RID interleave_shader_version;
+
+ RID pipelines[SSIL_MAX];
+ } ssil;
+
struct RoughnessLimiterPushConstant {
int32_t screen_size[2];
float curve;
@@ -615,6 +728,7 @@ private:
uint8_t metallic_mask[4];
float projection[16];
+ float prev_projection[16];
};
struct ScreenSpaceReflection {
@@ -879,11 +993,34 @@ public:
Size2i quarter_screen_size = Size2i();
};
+ struct SSILSettings {
+ float radius = 1.0;
+ float intensity = 2.0;
+ float sharpness = 0.98;
+ float normal_rejection = 1.0;
+
+ RS::EnvironmentSSILQuality quality = RS::ENV_SSIL_QUALITY_MEDIUM;
+ bool half_size = true;
+ float adaptive_target = 0.5;
+ int blur_passes = 4;
+ float fadeout_from = 50.0;
+ float fadeout_to = 300.0;
+
+ Size2i full_screen_size = Size2i();
+ Size2i half_screen_size = Size2i();
+ Size2i quarter_screen_size = Size2i();
+ };
+
void tonemapper(RID p_source_color, RID p_dst_framebuffer, const TonemapSettings &p_settings);
void tonemapper(RD::DrawListID p_subpass_draw_list, RID p_source_color, RD::FramebufferFormatID p_dst_format_id, const TonemapSettings &p_settings);
+ void downsample_depth(RID p_depth_buffer, const Vector<RID> &p_depth_mipmaps, RS::EnvironmentSSAOQuality p_ssao_quality, RS::EnvironmentSSILQuality p_ssil_quality, bool p_invalidate_uniform_set, bool p_ssao_half_size, bool p_ssil_half_size, Size2i p_full_screen_size, const CameraMatrix &p_projection);
+
void gather_ssao(RD::ComputeListID p_compute_list, const Vector<RID> p_ao_slices, const SSAOSettings &p_settings, bool p_adaptive_base_pass, RID p_gather_uniform_set, RID p_importance_map_uniform_set);
- void generate_ssao(RID p_depth_buffer, RID p_normal_buffer, RID p_depth_mipmaps_texture, const Vector<RID> &depth_mipmaps, RID p_ao, const Vector<RID> p_ao_slices, RID p_ao_pong, const Vector<RID> p_ao_pong_slices, RID p_upscale_buffer, RID p_importance_map, RID p_importance_map_pong, const CameraMatrix &p_projection, const SSAOSettings &p_settings, bool p_invalidate_uniform_sets, RID &r_downsample_uniform_set, RID &r_gather_uniform_set, RID &r_importance_map_uniform_set);
+ void generate_ssao(RID p_normal_buffer, RID p_depth_mipmaps_texture, RID p_ao, const Vector<RID> p_ao_slices, RID p_ao_pong, const Vector<RID> p_ao_pong_slices, RID p_upscale_buffer, RID p_importance_map, RID p_importance_map_pong, const CameraMatrix &p_projection, const SSAOSettings &p_settings, bool p_invalidate_uniform_sets, RID &r_gather_uniform_set, RID &r_importance_map_uniform_set);
+
+ void gather_ssil(RD::ComputeListID p_compute_list, const Vector<RID> p_ssil_slices, const Vector<RID> p_edges_slices, const SSILSettings &p_settings, bool p_adaptive_base_pass, RID p_gather_uniform_set, RID p_importance_map_uniform_set, RID p_projection_uniform_set);
+ void screen_space_indirect_lighting(RID p_diffuse, RID p_destination, RID p_normal_buffer, RID p_depth_mipmaps_texture, RID p_ao, const Vector<RID> p_ao_slices, RID p_ao_pong, const Vector<RID> p_ao_pong_slices, RID p_importance_map, RID p_importance_map_pong, RID p_edges, const Vector<RID> p_edges_slices, const CameraMatrix &p_projection, const CameraMatrix &p_last_projection, const SSILSettings &p_settings, bool p_invalidate_uniform_sets, RID &r_gather_uniform_set, RID &r_importance_map_uniform_set, RID &r_projection_uniform_set);
void roughness_limit(RID p_source_normal, RID p_roughness, const Size2i &p_size, float p_curve);
void cubemap_downsample(RID p_source_cubemap, RID p_dest_cubemap, const Size2i &p_size);
diff --git a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp
index 03ce2690bf..cd7b2622ab 100644
--- a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp
+++ b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -730,7 +730,7 @@ void RenderForwardClustered::_setup_environment(const RenderDataRD *p_render_dat
scene_state.ubo.ambient_light_color_energy[3] = 1.0;
scene_state.ubo.use_ambient_cubemap = false;
scene_state.ubo.use_reflection_cubemap = false;
- scene_state.ubo.ssao_enabled = false;
+ scene_state.ubo.ss_effects_flags = 0;
} else if (is_environment(p_render_data->environment)) {
RS::EnvironmentBG env_bg = environment_get_background(p_render_data->environment);
@@ -775,9 +775,14 @@ void RenderForwardClustered::_setup_environment(const RenderDataRD *p_render_dat
scene_state.ubo.use_reflection_cubemap = false;
}
- scene_state.ubo.ssao_enabled = p_opaque_render_buffers && environment_is_ssao_enabled(p_render_data->environment);
scene_state.ubo.ssao_ao_affect = environment_get_ssao_ao_affect(p_render_data->environment);
scene_state.ubo.ssao_light_affect = environment_get_ssao_light_affect(p_render_data->environment);
+ uint32_t ss_flags = 0;
+ if (p_opaque_render_buffers) {
+ ss_flags |= environment_is_ssao_enabled(p_render_data->environment) ? 1 : 0;
+ ss_flags |= environment_is_ssil_enabled(p_render_data->environment) ? 2 : 0;
+ }
+ scene_state.ubo.ss_effects_flags = ss_flags;
scene_state.ubo.fog_enabled = environment_is_fog_enabled(p_render_data->environment);
scene_state.ubo.fog_density = environment_get_fog_density(p_render_data->environment);
@@ -809,7 +814,7 @@ void RenderForwardClustered::_setup_environment(const RenderDataRD *p_render_dat
scene_state.ubo.use_ambient_cubemap = false;
scene_state.ubo.use_reflection_cubemap = false;
- scene_state.ubo.ssao_enabled = false;
+ scene_state.ubo.ss_effects_flags = 0;
}
scene_state.ubo.roughness_limiter_enabled = p_opaque_render_buffers && screen_space_roughness_limiter_is_active();
@@ -1057,7 +1062,7 @@ void RenderForwardClustered::_fill_render_list(RenderListType p_render_list, con
// LOD
- if (p_render_data->screen_lod_threshold > 0.0 && storage->mesh_surface_has_lod(surf->surface)) {
+ if (p_render_data->screen_mesh_lod_threshold > 0.0 && storage->mesh_surface_has_lod(surf->surface)) {
//lod
Vector3 lod_support_min = inst->transformed_aabb.get_support(-p_render_data->lod_camera_plane.normal);
Vector3 lod_support_max = inst->transformed_aabb.get_support(p_render_data->lod_camera_plane.normal);
@@ -1077,7 +1082,7 @@ void RenderForwardClustered::_fill_render_list(RenderListType p_render_list, con
}
uint32_t indices;
- surf->sort.lod_index = storage->mesh_surface_get_lod(surf->surface, inst->lod_model_scale * inst->lod_bias, distance * p_render_data->lod_distance_multiplier, p_render_data->screen_lod_threshold, &indices);
+ surf->sort.lod_index = storage->mesh_surface_get_lod(surf->surface, inst->lod_model_scale * inst->lod_bias, distance * p_render_data->lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold, &indices);
if (p_render_data->render_info) {
indices = _indices_to_primitives(surf->primitive, indices);
if (p_render_list == RENDER_LIST_OPAQUE) { //opaque
@@ -1225,6 +1230,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co
bool using_sdfgi = false;
bool using_voxelgi = false;
bool reverse_cull = false;
+ bool using_ssil = p_render_data->environment.is_valid() && environment_is_ssil_enabled(p_render_data->environment);
if (render_buffer) {
screen_size.x = render_buffer->width;
@@ -1254,7 +1260,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co
opaque_specular_framebuffer = render_buffer->color_specular_fb;
}
- } else if (p_render_data->environment.is_valid() && (environment_is_ssao_enabled(p_render_data->environment) || get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER)) {
+ } else if (p_render_data->environment.is_valid() && (environment_is_ssao_enabled(p_render_data->environment) || using_ssil || get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER)) {
depth_pass_mode = PASS_MODE_DEPTH_NORMAL_ROUGHNESS;
}
@@ -1398,7 +1404,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co
bool debug_voxelgis = get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO || get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING || get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION;
bool debug_sdfgi_probes = get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_SDFGI_PROBES;
- bool depth_pre_pass = depth_framebuffer.is_valid();
+ bool depth_pre_pass = bool(GLOBAL_GET("rendering/driver/depth_prepass/enable")) && depth_framebuffer.is_valid();
bool using_ssao = depth_pre_pass && p_render_data->render_buffers.is_valid() && p_render_data->environment.is_valid() && environment_is_ssao_enabled(p_render_data->environment);
bool continue_depth = false;
@@ -1423,7 +1429,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co
RID rp_uniform_set = _setup_render_pass_uniform_set(RENDER_LIST_OPAQUE, nullptr, RID());
bool finish_depth = using_ssao || using_sdfgi || using_voxelgi;
- RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, depth_pass_mode, render_buffer == nullptr, p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_lod_threshold);
+ RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, depth_pass_mode, render_buffer == nullptr, p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold);
_render_list_with_threads(&render_list_params, depth_framebuffer, needs_pre_resolve ? RD::INITIAL_ACTION_CONTINUE : RD::INITIAL_ACTION_CLEAR, RD::FINAL_ACTION_READ, needs_pre_resolve ? RD::INITIAL_ACTION_CONTINUE : RD::INITIAL_ACTION_CLEAR, finish_depth ? RD::FINAL_ACTION_READ : RD::FINAL_ACTION_CONTINUE, needs_pre_resolve ? Vector<Color>() : depth_pass_clear);
RD::get_singleton()->draw_command_end_label();
@@ -1449,7 +1455,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co
continue_depth = !finish_depth;
}
- _pre_opaque_render(p_render_data, using_ssao, using_sdfgi || using_voxelgi, render_buffer ? render_buffer->normal_roughness_buffer : RID(), render_buffer ? render_buffer->voxelgi_buffer : RID());
+ _pre_opaque_render(p_render_data, using_ssao, using_ssil, using_sdfgi || using_voxelgi, render_buffer ? render_buffer->normal_roughness_buffer : RID(), render_buffer ? render_buffer->voxelgi_buffer : RID());
RD::get_singleton()->draw_command_begin_label("Render Opaque Pass");
@@ -1481,7 +1487,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co
}
RID framebuffer = using_separate_specular ? opaque_specular_framebuffer : opaque_framebuffer;
- RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, using_separate_specular ? PASS_MODE_COLOR_SPECULAR : PASS_MODE_COLOR, render_buffer == nullptr, p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_lod_threshold);
+ RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, using_separate_specular ? PASS_MODE_COLOR_SPECULAR : PASS_MODE_COLOR, render_buffer == nullptr, p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold);
_render_list_with_threads(&render_list_params, framebuffer, keep_color ? RD::INITIAL_ACTION_KEEP : RD::INITIAL_ACTION_CLEAR, will_continue_color ? RD::FINAL_ACTION_CONTINUE : RD::FINAL_ACTION_READ, depth_pre_pass ? (continue_depth ? RD::INITIAL_ACTION_CONTINUE : RD::INITIAL_ACTION_KEEP) : RD::INITIAL_ACTION_CLEAR, will_continue_depth ? RD::FINAL_ACTION_CONTINUE : RD::FINAL_ACTION_READ, c, 1.0, 0);
if (will_continue_color && using_separate_specular) {
// close the specular framebuffer, as it's no longer used
@@ -1588,20 +1594,30 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co
_setup_environment(p_render_data, p_render_data->reflection_probe.is_valid(), screen_size, !p_render_data->reflection_probe.is_valid(), p_default_bg_color, false);
{
- RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), false, PASS_MODE_COLOR_TRANSPARENT, render_buffer == nullptr, p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_lod_threshold);
+ RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), false, PASS_MODE_COLOR_TRANSPARENT, render_buffer == nullptr, p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold);
_render_list_with_threads(&render_list_params, alpha_framebuffer, can_continue_color ? RD::INITIAL_ACTION_CONTINUE : RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_READ, can_continue_depth ? RD::INITIAL_ACTION_CONTINUE : RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_READ);
}
RD::get_singleton()->draw_command_end_label();
+ RENDER_TIMESTAMP("Resolve");
+
RD::get_singleton()->draw_command_begin_label("Resolve");
if (render_buffer && render_buffer->msaa != RS::VIEWPORT_MSAA_DISABLED) {
RD::get_singleton()->texture_resolve_multisample(render_buffer->color_msaa, render_buffer->color);
+ storage->get_effects()->resolve_depth(render_buffer->depth_msaa, render_buffer->depth, Vector2i(render_buffer->width, render_buffer->height), texture_multisamples[render_buffer->msaa]);
}
RD::get_singleton()->draw_command_end_label();
+ RD::get_singleton()->draw_command_begin_label("Copy framebuffer for SSIL");
+ if (using_ssil) {
+ RENDER_TIMESTAMP("Copy Final Framebuffer");
+ _copy_framebuffer_to_ssil(p_render_data->render_buffers);
+ }
+ RD::get_singleton()->draw_command_end_label();
+
if (p_render_data->render_buffers.is_valid()) {
_debug_draw_cluster(p_render_data->render_buffers);
@@ -1620,7 +1636,7 @@ void RenderForwardClustered::_render_shadow_begin() {
scene_state.instance_data[RENDER_LIST_SECONDARY].clear();
}
-void RenderForwardClustered::_render_shadow_append(RID p_framebuffer, const PagedArray<GeometryInstance *> &p_instances, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, const Plane &p_camera_plane, float p_lod_distance_multiplier, float p_screen_lod_threshold, const Rect2i &p_rect, bool p_flip_y, bool p_clear_region, bool p_begin, bool p_end, RendererScene::RenderInfo *p_render_info) {
+void RenderForwardClustered::_render_shadow_append(RID p_framebuffer, const PagedArray<GeometryInstance *> &p_instances, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, const Plane &p_camera_plane, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, const Rect2i &p_rect, bool p_flip_y, bool p_clear_region, bool p_begin, bool p_end, RendererScene::RenderInfo *p_render_info) {
uint32_t shadow_pass_index = scene_state.shadow_passes.size();
SceneState::ShadowPass shadow_pass;
@@ -1643,9 +1659,9 @@ void RenderForwardClustered::_render_shadow_append(RID p_framebuffer, const Page
_setup_environment(&render_data, true, Vector2(1, 1), !p_flip_y, Color(), false, p_use_pancake, shadow_pass_index);
if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) {
- render_data.screen_lod_threshold = 0.0;
+ render_data.screen_mesh_lod_threshold = 0.0;
} else {
- render_data.screen_lod_threshold = p_screen_lod_threshold;
+ render_data.screen_mesh_lod_threshold = p_screen_mesh_lod_threshold;
}
PassMode pass_mode = p_use_dp ? PASS_MODE_SHADOW_DP : PASS_MODE_SHADOW;
@@ -1670,7 +1686,7 @@ void RenderForwardClustered::_render_shadow_append(RID p_framebuffer, const Page
shadow_pass.rp_uniform_set = RID(); //will be filled later when instance buffer is complete
shadow_pass.camera_plane = p_camera_plane;
- shadow_pass.screen_lod_threshold = render_data.screen_lod_threshold;
+ shadow_pass.screen_mesh_lod_threshold = render_data.screen_mesh_lod_threshold;
shadow_pass.lod_distance_multiplier = render_data.lod_distance_multiplier;
shadow_pass.framebuffer = p_framebuffer;
@@ -1699,7 +1715,7 @@ void RenderForwardClustered::_render_shadow_end(uint32_t p_barrier) {
for (uint32_t i = 0; i < scene_state.shadow_passes.size(); i++) {
SceneState::ShadowPass &shadow_pass = scene_state.shadow_passes[i];
- RenderListParameters render_list_parameters(render_list[RENDER_LIST_SECONDARY].elements.ptr() + shadow_pass.element_from, render_list[RENDER_LIST_SECONDARY].element_info.ptr() + shadow_pass.element_from, shadow_pass.element_count, shadow_pass.flip_cull, shadow_pass.pass_mode, true, false, shadow_pass.rp_uniform_set, false, Vector2(), shadow_pass.camera_plane, shadow_pass.lod_distance_multiplier, shadow_pass.screen_lod_threshold, shadow_pass.element_from, RD::BARRIER_MASK_NO_BARRIER);
+ RenderListParameters render_list_parameters(render_list[RENDER_LIST_SECONDARY].elements.ptr() + shadow_pass.element_from, render_list[RENDER_LIST_SECONDARY].element_info.ptr() + shadow_pass.element_from, shadow_pass.element_count, shadow_pass.flip_cull, shadow_pass.pass_mode, true, false, shadow_pass.rp_uniform_set, false, Vector2(), shadow_pass.camera_plane, shadow_pass.lod_distance_multiplier, shadow_pass.screen_mesh_lod_threshold, shadow_pass.element_from, RD::BARRIER_MASK_NO_BARRIER);
_render_list_with_threads(&render_list_parameters, shadow_pass.framebuffer, RD::INITIAL_ACTION_DROP, RD::FINAL_ACTION_DISCARD, shadow_pass.initial_depth_action, shadow_pass.final_depth_action, Vector<Color>(), 1.0, 0, shadow_pass.rect);
}
@@ -2372,6 +2388,15 @@ RID RenderForwardClustered::_setup_render_pass_uniform_set(RenderListType p_rend
u.ids.push_back(vfog);
uniforms.push_back(u);
}
+ {
+ RD::Uniform u;
+ u.binding = 19;
+ u.uniform_type = RD::UNIFORM_TYPE_TEXTURE;
+ RID ssil = rb ? render_buffers_get_ssil_texture(p_render_data->render_buffers) : RID();
+ RID texture = ssil.is_valid() ? ssil : storage->texture_rd_get_default(RendererStorageRD::DEFAULT_RD_TEXTURE_BLACK);
+ u.ids.push_back(texture);
+ uniforms.push_back(u);
+ }
}
if (p_index >= (int)render_pass_uniform_sets.size()) {
@@ -2649,6 +2674,24 @@ void RenderForwardClustered::_geometry_instance_add_surface_with_material(Geomet
sdcache->sort.uses_softshadow = ginstance->using_softshadows;
}
+void RenderForwardClustered::_geometry_instance_add_surface_with_material_chain(GeometryInstanceForwardClustered *ginstance, uint32_t p_surface, SceneShaderForwardClustered::MaterialData *p_material, RID p_mat_src, RID p_mesh) {
+ SceneShaderForwardClustered::MaterialData *material = p_material;
+
+ _geometry_instance_add_surface_with_material(ginstance, p_surface, material, p_mat_src.get_local_index(), storage->material_get_shader_id(p_mat_src), p_mesh);
+
+ while (material->next_pass.is_valid()) {
+ RID next_pass = material->next_pass;
+ material = (SceneShaderForwardClustered::MaterialData *)storage->material_get_data(next_pass, RendererStorageRD::SHADER_TYPE_3D);
+ if (!material || !material->shader_data->valid) {
+ break;
+ }
+ if (ginstance->data->dirty_dependencies) {
+ storage->material_update_dependency(next_pass, &ginstance->data->dependency_tracker);
+ }
+ _geometry_instance_add_surface_with_material(ginstance, p_surface, material, next_pass.get_local_index(), storage->material_get_shader_id(next_pass), p_mesh);
+ }
+}
+
void RenderForwardClustered::_geometry_instance_add_surface(GeometryInstanceForwardClustered *ginstance, uint32_t p_surface, RID p_material, RID p_mesh) {
RID m_src;
@@ -2674,18 +2717,19 @@ void RenderForwardClustered::_geometry_instance_add_surface(GeometryInstanceForw
ERR_FAIL_COND(!material);
- _geometry_instance_add_surface_with_material(ginstance, p_surface, material, m_src.get_local_index(), storage->material_get_shader_id(m_src), p_mesh);
+ _geometry_instance_add_surface_with_material_chain(ginstance, p_surface, material, m_src, p_mesh);
- while (material->next_pass.is_valid()) {
- RID next_pass = material->next_pass;
- material = (SceneShaderForwardClustered::MaterialData *)storage->material_get_data(next_pass, RendererStorageRD::SHADER_TYPE_3D);
- if (!material || !material->shader_data->valid) {
- break;
- }
- if (ginstance->data->dirty_dependencies) {
- storage->material_update_dependency(next_pass, &ginstance->data->dependency_tracker);
+ if (ginstance->data->material_overlay.is_valid()) {
+ m_src = ginstance->data->material_overlay;
+
+ material = (SceneShaderForwardClustered::MaterialData *)storage->material_get_data(m_src, RendererStorageRD::SHADER_TYPE_3D);
+ if (material && material->shader_data->valid) {
+ if (ginstance->data->dirty_dependencies) {
+ storage->material_update_dependency(m_src, &ginstance->data->dependency_tracker);
+ }
+
+ _geometry_instance_add_surface_with_material_chain(ginstance, p_surface, material, m_src, p_mesh);
}
- _geometry_instance_add_surface_with_material(ginstance, p_surface, material, next_pass.get_local_index(), storage->material_get_shader_id(next_pass), p_mesh);
}
}
@@ -2894,6 +2938,13 @@ void RenderForwardClustered::geometry_instance_set_material_override(GeometryIns
_geometry_instance_mark_dirty(ginstance);
ginstance->data->dirty_dependencies = true;
}
+void RenderForwardClustered::geometry_instance_set_material_overlay(GeometryInstance *p_geometry_instance, RID p_overlay) {
+ GeometryInstanceForwardClustered *ginstance = static_cast<GeometryInstanceForwardClustered *>(p_geometry_instance);
+ ERR_FAIL_COND(!ginstance);
+ ginstance->data->material_overlay = p_overlay;
+ _geometry_instance_mark_dirty(ginstance);
+ ginstance->data->dirty_dependencies = true;
+}
void RenderForwardClustered::geometry_instance_set_surface_materials(GeometryInstance *p_geometry_instance, const Vector<RID> &p_materials) {
GeometryInstanceForwardClustered *ginstance = static_cast<GeometryInstanceForwardClustered *>(p_geometry_instance);
ERR_FAIL_COND(!ginstance);
diff --git a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h
index d6ab4d1db2..f858887bd0 100644
--- a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h
+++ b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -162,13 +162,13 @@ class RenderForwardClustered : public RendererSceneRenderRD {
Vector2 uv_offset;
Plane lod_plane;
float lod_distance_multiplier = 0.0;
- float screen_lod_threshold = 0.0;
+ float screen_mesh_lod_threshold = 0.0;
RD::FramebufferFormatID framebuffer_format = 0;
uint32_t element_offset = 0;
uint32_t barrier = RD::BARRIER_MASK_ALL;
bool use_directional_soft_shadow = false;
- RenderListParameters(GeometryInstanceSurfaceDataCache **p_elements, RenderElementInfo *p_element_info, int p_element_count, bool p_reverse_cull, PassMode p_pass_mode, bool p_no_gi, bool p_use_directional_soft_shadows, RID p_render_pass_uniform_set, bool p_force_wireframe = false, const Vector2 &p_uv_offset = Vector2(), const Plane &p_lod_plane = Plane(), float p_lod_distance_multiplier = 0.0, float p_screen_lod_threshold = 0.0, uint32_t p_element_offset = 0, uint32_t p_barrier = RD::BARRIER_MASK_ALL) {
+ RenderListParameters(GeometryInstanceSurfaceDataCache **p_elements, RenderElementInfo *p_element_info, int p_element_count, bool p_reverse_cull, PassMode p_pass_mode, bool p_no_gi, bool p_use_directional_soft_shadows, RID p_render_pass_uniform_set, bool p_force_wireframe = false, const Vector2 &p_uv_offset = Vector2(), const Plane &p_lod_plane = Plane(), float p_lod_distance_multiplier = 0.0, float p_screen_mesh_lod_threshold = 0.0, uint32_t p_element_offset = 0, uint32_t p_barrier = RD::BARRIER_MASK_ALL) {
elements = p_elements;
element_info = p_element_info;
element_count = p_element_count;
@@ -180,7 +180,7 @@ class RenderForwardClustered : public RendererSceneRenderRD {
uv_offset = p_uv_offset;
lod_plane = p_lod_plane;
lod_distance_multiplier = p_lod_distance_multiplier;
- screen_lod_threshold = p_screen_lod_threshold;
+ screen_mesh_lod_threshold = p_screen_mesh_lod_threshold;
element_offset = p_element_offset;
barrier = p_barrier;
use_directional_soft_shadow = p_use_directional_soft_shadows;
@@ -251,7 +251,7 @@ class RenderForwardClustered : public RendererSceneRenderRD {
float z_far;
float z_near;
- uint32_t ssao_enabled;
+ uint32_t ss_effects_flags;
float ssao_light_affect;
float ssao_ao_affect;
uint32_t roughness_limiter_enabled;
@@ -342,7 +342,7 @@ class RenderForwardClustered : public RendererSceneRenderRD {
RID rp_uniform_set;
Plane camera_plane;
float lod_distance_multiplier;
- float screen_lod_threshold;
+ float screen_mesh_lod_threshold;
RID framebuffer;
RD::InitialAction initial_depth_action;
@@ -496,6 +496,7 @@ class RenderForwardClustered : public RendererSceneRenderRD {
RID skeleton;
Vector<RID> surface_materials;
RID material_override;
+ RID material_overlay;
AABB aabb;
bool use_dynamic_gi = false;
@@ -523,6 +524,7 @@ class RenderForwardClustered : public RendererSceneRenderRD {
PagedAllocator<GeometryInstanceLightmapSH> geometry_instance_lightmap_sh;
void _geometry_instance_add_surface_with_material(GeometryInstanceForwardClustered *ginstance, uint32_t p_surface, SceneShaderForwardClustered::MaterialData *p_material, uint32_t p_material_id, uint32_t p_shader_id, RID p_mesh);
+ void _geometry_instance_add_surface_with_material_chain(GeometryInstanceForwardClustered *ginstance, uint32_t p_surface, SceneShaderForwardClustered::MaterialData *p_material, RID p_mat_src, RID p_mesh);
void _geometry_instance_add_surface(GeometryInstanceForwardClustered *ginstance, uint32_t p_surface, RID p_material, RID p_mesh);
void _geometry_instance_mark_dirty(GeometryInstance *p_geometry_instance);
void _geometry_instance_update(GeometryInstance *p_geometry_instance);
@@ -594,7 +596,7 @@ protected:
virtual void _render_scene(RenderDataRD *p_render_data, const Color &p_default_bg_color) override;
virtual void _render_shadow_begin() override;
- virtual void _render_shadow_append(RID p_framebuffer, const PagedArray<GeometryInstance *> &p_instances, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, const Plane &p_camera_plane = Plane(), float p_lod_distance_multiplier = 0.0, float p_screen_lod_threshold = 0.0, const Rect2i &p_rect = Rect2i(), bool p_flip_y = false, bool p_clear_region = true, bool p_begin = true, bool p_end = true, RendererScene::RenderInfo *p_render_info = nullptr) override;
+ virtual void _render_shadow_append(RID p_framebuffer, const PagedArray<GeometryInstance *> &p_instances, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, const Plane &p_camera_plane = Plane(), float p_lod_distance_multiplier = 0.0, float p_screen_mesh_lod_threshold = 0.0, const Rect2i &p_rect = Rect2i(), bool p_flip_y = false, bool p_clear_region = true, bool p_begin = true, bool p_end = true, RendererScene::RenderInfo *p_render_info = nullptr) override;
virtual void _render_shadow_process() override;
virtual void _render_shadow_end(uint32_t p_barrier = RD::BARRIER_MASK_ALL) override;
@@ -612,6 +614,7 @@ public:
virtual GeometryInstance *geometry_instance_create(RID p_base) override;
virtual void geometry_instance_set_skeleton(GeometryInstance *p_geometry_instance, RID p_skeleton) override;
virtual void geometry_instance_set_material_override(GeometryInstance *p_geometry_instance, RID p_override) override;
+ virtual void geometry_instance_set_material_overlay(GeometryInstance *p_geometry_instance, RID p_override) override;
virtual void geometry_instance_set_surface_materials(GeometryInstance *p_geometry_instance, const Vector<RID> &p_materials) override;
virtual void geometry_instance_set_mesh_instance(GeometryInstance *p_geometry_instance, RID p_mesh_instance) override;
virtual void geometry_instance_set_transform(GeometryInstance *p_geometry_instance, const Transform3D &p_transform, const AABB &p_aabb, const AABB &p_transformed_aabb) override;
diff --git a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp
index 71753f9694..942e78e1ff 100644
--- a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp
+++ b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -531,6 +531,7 @@ void SceneShaderForwardClustered::init(RendererStorageRD *p_storage, const Strin
actions.renames["COLOR"] = "color_interp";
actions.renames["POINT_SIZE"] = "gl_PointSize";
actions.renames["INSTANCE_ID"] = "gl_InstanceIndex";
+ actions.renames["VERTEX_ID"] = "gl_VertexIndex";
actions.renames["ALPHA_SCISSOR_THRESHOLD"] = "alpha_scissor_threshold";
actions.renames["ALPHA_HASH_SCALE"] = "alpha_hash_scale";
diff --git a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h
index f2a55939f4..98448ce846 100644
--- a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h
+++ b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp
index 445623fb86..8b2a60c487 100644
--- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp
+++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -669,7 +669,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color
RD::get_singleton()->draw_command_end_label(); // Setup Sky resolution buffers
}
- _pre_opaque_render(p_render_data, false, false, RID(), RID());
+ _pre_opaque_render(p_render_data, false, false, false, RID(), RID());
uint32_t spec_constant_base_flags = 0;
@@ -730,7 +730,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color
}
RD::FramebufferFormatID fb_format = RD::get_singleton()->framebuffer_get_format(framebuffer);
- RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, PASS_MODE_COLOR, rp_uniform_set, spec_constant_base_flags, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_lod_threshold, p_render_data->view_count);
+ RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, PASS_MODE_COLOR, rp_uniform_set, spec_constant_base_flags, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold, p_render_data->view_count);
render_list_params.framebuffer_format = fb_format;
if ((uint32_t)render_list_params.element_count > render_list_thread_threshold && false) {
// secondary command buffers need more testing at this time
@@ -794,7 +794,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color
if (using_subpass_transparent) {
RD::FramebufferFormatID fb_format = RD::get_singleton()->framebuffer_get_format(framebuffer);
- RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), reverse_cull, PASS_MODE_COLOR_TRANSPARENT, rp_uniform_set, spec_constant_base_flags, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_lod_threshold, p_render_data->view_count);
+ RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), reverse_cull, PASS_MODE_COLOR_TRANSPARENT, rp_uniform_set, spec_constant_base_flags, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold, p_render_data->view_count);
render_list_params.framebuffer_format = fb_format;
if ((uint32_t)render_list_params.element_count > render_list_thread_threshold && false) {
// secondary command buffers need more testing at this time
@@ -831,7 +831,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color
// _setup_environment(p_render_data, p_render_data->reflection_probe.is_valid(), screen_size, !p_render_data->reflection_probe.is_valid(), p_default_bg_color, false);
RD::FramebufferFormatID fb_format = RD::get_singleton()->framebuffer_get_format(framebuffer);
- RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), reverse_cull, PASS_MODE_COLOR, rp_uniform_set, spec_constant_base_flags, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_lod_threshold, p_render_data->view_count);
+ RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), reverse_cull, PASS_MODE_COLOR, rp_uniform_set, spec_constant_base_flags, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->lod_camera_plane, p_render_data->lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold, p_render_data->view_count);
render_list_params.framebuffer_format = fb_format;
if ((uint32_t)render_list_params.element_count > render_list_thread_threshold && false) {
// secondary command buffers need more testing at this time
@@ -877,7 +877,7 @@ void RenderForwardMobile::_render_shadow_begin() {
render_list[RENDER_LIST_SECONDARY].clear();
}
-void RenderForwardMobile::_render_shadow_append(RID p_framebuffer, const PagedArray<GeometryInstance *> &p_instances, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, const Plane &p_camera_plane, float p_lod_distance_multiplier, float p_screen_lod_threshold, const Rect2i &p_rect, bool p_flip_y, bool p_clear_region, bool p_begin, bool p_end, RendererScene::RenderInfo *p_render_info) {
+void RenderForwardMobile::_render_shadow_append(RID p_framebuffer, const PagedArray<GeometryInstance *> &p_instances, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, const Plane &p_camera_plane, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, const Rect2i &p_rect, bool p_flip_y, bool p_clear_region, bool p_begin, bool p_end, RendererScene::RenderInfo *p_render_info) {
uint32_t shadow_pass_index = scene_state.shadow_passes.size();
SceneState::ShadowPass shadow_pass;
@@ -903,9 +903,9 @@ void RenderForwardMobile::_render_shadow_append(RID p_framebuffer, const PagedAr
_setup_environment(&render_data, true, Vector2(1, 1), !p_flip_y, Color(), false, p_use_pancake, shadow_pass_index);
if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) {
- render_data.screen_lod_threshold = 0.0;
+ render_data.screen_mesh_lod_threshold = 0.0;
} else {
- render_data.screen_lod_threshold = p_screen_lod_threshold;
+ render_data.screen_mesh_lod_threshold = p_screen_mesh_lod_threshold;
}
PassMode pass_mode = p_use_dp ? PASS_MODE_SHADOW_DP : PASS_MODE_SHADOW;
@@ -930,7 +930,7 @@ void RenderForwardMobile::_render_shadow_append(RID p_framebuffer, const PagedAr
shadow_pass.rp_uniform_set = RID(); //will be filled later when instance buffer is complete
shadow_pass.camera_plane = p_camera_plane;
- shadow_pass.screen_lod_threshold = render_data.screen_lod_threshold;
+ shadow_pass.screen_mesh_lod_threshold = render_data.screen_mesh_lod_threshold;
shadow_pass.lod_distance_multiplier = render_data.lod_distance_multiplier;
shadow_pass.framebuffer = p_framebuffer;
@@ -959,7 +959,7 @@ void RenderForwardMobile::_render_shadow_end(uint32_t p_barrier) {
for (uint32_t i = 0; i < scene_state.shadow_passes.size(); i++) {
SceneState::ShadowPass &shadow_pass = scene_state.shadow_passes[i];
- RenderListParameters render_list_parameters(render_list[RENDER_LIST_SECONDARY].elements.ptr() + shadow_pass.element_from, render_list[RENDER_LIST_SECONDARY].element_info.ptr() + shadow_pass.element_from, shadow_pass.element_count, shadow_pass.flip_cull, shadow_pass.pass_mode, shadow_pass.rp_uniform_set, 0, false, Vector2(), shadow_pass.camera_plane, shadow_pass.lod_distance_multiplier, shadow_pass.screen_lod_threshold, 1, shadow_pass.element_from, RD::BARRIER_MASK_NO_BARRIER);
+ RenderListParameters render_list_parameters(render_list[RENDER_LIST_SECONDARY].elements.ptr() + shadow_pass.element_from, render_list[RENDER_LIST_SECONDARY].element_info.ptr() + shadow_pass.element_from, shadow_pass.element_count, shadow_pass.flip_cull, shadow_pass.pass_mode, shadow_pass.rp_uniform_set, 0, false, Vector2(), shadow_pass.camera_plane, shadow_pass.lod_distance_multiplier, shadow_pass.screen_mesh_lod_threshold, 1, shadow_pass.element_from, RD::BARRIER_MASK_NO_BARRIER);
_render_list_with_threads(&render_list_parameters, shadow_pass.framebuffer, RD::INITIAL_ACTION_DROP, RD::FINAL_ACTION_DISCARD, shadow_pass.initial_depth_action, shadow_pass.final_depth_action, Vector<Color>(), 1.0, 0, shadow_pass.rect);
}
@@ -1407,7 +1407,7 @@ void RenderForwardMobile::_fill_render_list(RenderListType p_render_list, const
// LOD
- if (p_render_data->screen_lod_threshold > 0.0 && storage->mesh_surface_has_lod(surf->surface)) {
+ if (p_render_data->screen_mesh_lod_threshold > 0.0 && storage->mesh_surface_has_lod(surf->surface)) {
//lod
Vector3 lod_support_min = inst->transformed_aabb.get_support(-p_render_data->lod_camera_plane.normal);
Vector3 lod_support_max = inst->transformed_aabb.get_support(p_render_data->lod_camera_plane.normal);
@@ -1427,7 +1427,7 @@ void RenderForwardMobile::_fill_render_list(RenderListType p_render_list, const
}
uint32_t indices;
- surf->lod_index = storage->mesh_surface_get_lod(surf->surface, inst->lod_model_scale * inst->lod_bias, distance * p_render_data->lod_distance_multiplier, p_render_data->screen_lod_threshold, &indices);
+ surf->lod_index = storage->mesh_surface_get_lod(surf->surface, inst->lod_model_scale * inst->lod_bias, distance * p_render_data->lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold, &indices);
if (p_render_data->render_info) {
indices = _indices_to_primitives(surf->primitive, indices);
if (p_render_list == RENDER_LIST_OPAQUE) { //opaque
@@ -2033,6 +2033,15 @@ void RenderForwardMobile::geometry_instance_set_material_override(GeometryInstan
ginstance->data->dirty_dependencies = true;
}
+void RenderForwardMobile::geometry_instance_set_material_overlay(GeometryInstance *p_geometry_instance, RID p_overlay) {
+ GeometryInstanceForwardMobile *ginstance = static_cast<GeometryInstanceForwardMobile *>(p_geometry_instance);
+ ERR_FAIL_COND(!ginstance);
+ ginstance->data->material_overlay = p_overlay;
+
+ _geometry_instance_mark_dirty(ginstance);
+ ginstance->data->dirty_dependencies = true;
+}
+
void RenderForwardMobile::geometry_instance_set_surface_materials(GeometryInstance *p_geometry_instance, const Vector<RID> &p_materials) {
GeometryInstanceForwardMobile *ginstance = static_cast<GeometryInstanceForwardMobile *>(p_geometry_instance);
ERR_FAIL_COND(!ginstance);
@@ -2359,6 +2368,24 @@ void RenderForwardMobile::_geometry_instance_add_surface_with_material(GeometryI
sdcache->sort.priority = p_material->priority;
}
+void RenderForwardMobile::_geometry_instance_add_surface_with_material_chain(GeometryInstanceForwardMobile *ginstance, uint32_t p_surface, SceneShaderForwardMobile::MaterialData *p_material, RID p_mat_src, RID p_mesh) {
+ SceneShaderForwardMobile::MaterialData *material = p_material;
+
+ _geometry_instance_add_surface_with_material(ginstance, p_surface, material, p_mat_src.get_local_index(), storage->material_get_shader_id(p_mat_src), p_mesh);
+
+ while (material->next_pass.is_valid()) {
+ RID next_pass = material->next_pass;
+ material = (SceneShaderForwardMobile::MaterialData *)storage->material_get_data(next_pass, RendererStorageRD::SHADER_TYPE_3D);
+ if (!material || !material->shader_data->valid) {
+ break;
+ }
+ if (ginstance->data->dirty_dependencies) {
+ storage->material_update_dependency(next_pass, &ginstance->data->dependency_tracker);
+ }
+ _geometry_instance_add_surface_with_material(ginstance, p_surface, material, next_pass.get_local_index(), storage->material_get_shader_id(next_pass), p_mesh);
+ }
+}
+
void RenderForwardMobile::_geometry_instance_add_surface(GeometryInstanceForwardMobile *ginstance, uint32_t p_surface, RID p_material, RID p_mesh) {
RID m_src;
@@ -2384,18 +2411,19 @@ void RenderForwardMobile::_geometry_instance_add_surface(GeometryInstanceForward
ERR_FAIL_COND(!material);
- _geometry_instance_add_surface_with_material(ginstance, p_surface, material, m_src.get_local_index(), storage->material_get_shader_id(m_src), p_mesh);
+ _geometry_instance_add_surface_with_material_chain(ginstance, p_surface, material, m_src, p_mesh);
- while (material->next_pass.is_valid()) {
- RID next_pass = material->next_pass;
- material = (SceneShaderForwardMobile::MaterialData *)storage->material_get_data(next_pass, RendererStorageRD::SHADER_TYPE_3D);
- if (!material || !material->shader_data->valid) {
- break;
- }
- if (ginstance->data->dirty_dependencies) {
- storage->material_update_dependency(next_pass, &ginstance->data->dependency_tracker);
+ if (ginstance->data->material_overlay.is_valid()) {
+ m_src = ginstance->data->material_overlay;
+
+ material = (SceneShaderForwardMobile::MaterialData *)storage->material_get_data(m_src, RendererStorageRD::SHADER_TYPE_3D);
+ if (material && material->shader_data->valid) {
+ if (ginstance->data->dirty_dependencies) {
+ storage->material_update_dependency(m_src, &ginstance->data->dependency_tracker);
+ }
+
+ _geometry_instance_add_surface_with_material_chain(ginstance, p_surface, material, m_src, p_mesh);
}
- _geometry_instance_add_surface_with_material(ginstance, p_surface, material, next_pass.get_local_index(), storage->material_get_shader_id(next_pass), p_mesh);
}
}
diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h
index 485d08b589..8274dc3b0c 100644
--- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h
+++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -176,13 +176,13 @@ protected:
Plane lod_plane;
uint32_t spec_constant_base_flags = 0;
float lod_distance_multiplier = 0.0;
- float screen_lod_threshold = 0.0;
+ float screen_mesh_lod_threshold = 0.0;
RD::FramebufferFormatID framebuffer_format = 0;
uint32_t element_offset = 0;
uint32_t barrier = RD::BARRIER_MASK_ALL;
uint32_t subpass = 0;
- RenderListParameters(GeometryInstanceSurfaceDataCache **p_elements, RenderElementInfo *p_element_info, int p_element_count, bool p_reverse_cull, PassMode p_pass_mode, RID p_render_pass_uniform_set, uint32_t p_spec_constant_base_flags = 0, bool p_force_wireframe = false, const Vector2 &p_uv_offset = Vector2(), const Plane &p_lod_plane = Plane(), float p_lod_distance_multiplier = 0.0, float p_screen_lod_threshold = 0.0, uint32_t p_view_count = 1, uint32_t p_element_offset = 0, uint32_t p_barrier = RD::BARRIER_MASK_ALL) {
+ RenderListParameters(GeometryInstanceSurfaceDataCache **p_elements, RenderElementInfo *p_element_info, int p_element_count, bool p_reverse_cull, PassMode p_pass_mode, RID p_render_pass_uniform_set, uint32_t p_spec_constant_base_flags = 0, bool p_force_wireframe = false, const Vector2 &p_uv_offset = Vector2(), const Plane &p_lod_plane = Plane(), float p_lod_distance_multiplier = 0.0, float p_screen_mesh_lod_threshold = 0.0, uint32_t p_view_count = 1, uint32_t p_element_offset = 0, uint32_t p_barrier = RD::BARRIER_MASK_ALL) {
elements = p_elements;
element_info = p_element_info;
element_count = p_element_count;
@@ -195,7 +195,7 @@ protected:
uv_offset = p_uv_offset;
lod_plane = p_lod_plane;
lod_distance_multiplier = p_lod_distance_multiplier;
- screen_lod_threshold = p_screen_lod_threshold;
+ screen_mesh_lod_threshold = p_screen_mesh_lod_threshold;
element_offset = p_element_offset;
barrier = p_barrier;
spec_constant_base_flags = p_spec_constant_base_flags;
@@ -210,7 +210,7 @@ protected:
virtual void _render_scene(RenderDataRD *p_render_data, const Color &p_default_bg_color) override;
virtual void _render_shadow_begin() override;
- virtual void _render_shadow_append(RID p_framebuffer, const PagedArray<GeometryInstance *> &p_instances, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, const Plane &p_camera_plane = Plane(), float p_lod_distance_multiplier = 0.0, float p_screen_lod_threshold = 0.0, const Rect2i &p_rect = Rect2i(), bool p_flip_y = false, bool p_clear_region = true, bool p_begin = true, bool p_end = true, RendererScene::RenderInfo *p_render_info = nullptr) override;
+ virtual void _render_shadow_append(RID p_framebuffer, const PagedArray<GeometryInstance *> &p_instances, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, const Plane &p_camera_plane = Plane(), float p_lod_distance_multiplier = 0.0, float p_screen_mesh_lod_threshold = 0.0, const Rect2i &p_rect = Rect2i(), bool p_flip_y = false, bool p_clear_region = true, bool p_begin = true, bool p_end = true, RendererScene::RenderInfo *p_render_info = nullptr) override;
virtual void _render_shadow_process() override;
virtual void _render_shadow_end(uint32_t p_barrier = RD::BARRIER_MASK_ALL) override;
@@ -346,7 +346,7 @@ protected:
RID rp_uniform_set;
Plane camera_plane;
float lod_distance_multiplier;
- float screen_lod_threshold;
+ float screen_mesh_lod_threshold;
RID framebuffer;
RD::InitialAction initial_depth_action;
@@ -586,6 +586,7 @@ protected:
RID skeleton;
Vector<RID> surface_materials;
RID material_override;
+ RID material_overlay;
AABB aabb;
bool use_baked_light = false;
@@ -620,6 +621,7 @@ public:
PagedAllocator<GeometryInstanceLightmapSH> geometry_instance_lightmap_sh;
void _geometry_instance_add_surface_with_material(GeometryInstanceForwardMobile *ginstance, uint32_t p_surface, SceneShaderForwardMobile::MaterialData *p_material, uint32_t p_material_id, uint32_t p_shader_id, RID p_mesh);
+ void _geometry_instance_add_surface_with_material_chain(GeometryInstanceForwardMobile *ginstance, uint32_t p_surface, SceneShaderForwardMobile::MaterialData *p_material, RID p_mat_src, RID p_mesh);
void _geometry_instance_add_surface(GeometryInstanceForwardMobile *ginstance, uint32_t p_surface, RID p_material, RID p_mesh);
void _geometry_instance_mark_dirty(GeometryInstance *p_geometry_instance);
void _geometry_instance_update(GeometryInstance *p_geometry_instance);
@@ -628,6 +630,7 @@ public:
virtual GeometryInstance *geometry_instance_create(RID p_base) override;
virtual void geometry_instance_set_skeleton(GeometryInstance *p_geometry_instance, RID p_skeleton) override;
virtual void geometry_instance_set_material_override(GeometryInstance *p_geometry_instance, RID p_override) override;
+ virtual void geometry_instance_set_material_overlay(GeometryInstance *p_geometry_instance, RID p_overlay) override;
virtual void geometry_instance_set_surface_materials(GeometryInstance *p_geometry_instance, const Vector<RID> &p_materials) override;
virtual void geometry_instance_set_mesh_instance(GeometryInstance *p_geometry_instance, RID p_mesh_instance) override;
virtual void geometry_instance_set_transform(GeometryInstance *p_geometry_instance, const Transform3D &p_transform, const AABB &p_aabb, const AABB &p_transformed_aabb) override;
diff --git a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp
index 8807ebf134..b0cc26340d 100644
--- a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp
+++ b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -519,6 +519,7 @@ void SceneShaderForwardMobile::init(RendererStorageRD *p_storage, const String p
actions.renames["COLOR"] = "color_interp";
actions.renames["POINT_SIZE"] = "gl_PointSize";
actions.renames["INSTANCE_ID"] = "gl_InstanceIndex";
+ actions.renames["VERTEX_ID"] = "gl_VertexIndex";
actions.renames["ALPHA_SCISSOR_THRESHOLD"] = "alpha_scissor_threshold";
actions.renames["ALPHA_HASH_SCALE"] = "alpha_hash_scale";
diff --git a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h
index 392fac1e3e..770f9bde3b 100644
--- a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h
+++ b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/pipeline_cache_rd.cpp b/servers/rendering/renderer_rd/pipeline_cache_rd.cpp
index 0d60052666..e812a48d3d 100644
--- a/servers/rendering/renderer_rd/pipeline_cache_rd.cpp
+++ b/servers/rendering/renderer_rd/pipeline_cache_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/pipeline_cache_rd.h b/servers/rendering/renderer_rd/pipeline_cache_rd.h
index e52f47fa47..8d82480b38 100644
--- a/servers/rendering/renderer_rd/pipeline_cache_rd.h
+++ b/servers/rendering/renderer_rd/pipeline_cache_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp
index 2ff7f27d33..da75c70cbb 100644
--- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -281,7 +281,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve
vd.stride = 0;
descriptions.write[4] = vd;
- buffers.write[4] = storage->mesh_get_default_rd_buffer(RendererStorageRD::DEFAULT_RD_BUFFER_BONES);
+ buffers.write[4] = storage->mesh_get_default_rd_buffer(RendererStorageRD::DEFAULT_RD_BUFFER_WEIGHTS);
}
//check that everything is as it should be
@@ -2391,6 +2391,8 @@ RendererCanvasRenderRD::RendererCanvasRenderRD(RendererStorageRD *p_storage) {
actions.renames["SCREEN_PIXEL_SIZE"] = "canvas_data.screen_pixel_size";
actions.renames["FRAGCOORD"] = "gl_FragCoord";
actions.renames["POINT_COORD"] = "gl_PointCoord";
+ actions.renames["INSTANCE_ID"] = "gl_InstanceIndex";
+ actions.renames["VERTEX_ID"] = "gl_VertexIndex";
actions.renames["LIGHT_POSITION"] = "light_position";
actions.renames["LIGHT_COLOR"] = "light_color";
diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.h b/servers/rendering/renderer_rd/renderer_canvas_render_rd.h
index 26ccbd3bf5..c9544a5239 100644
--- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.h
+++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
index d310becd1e..2f8ef696cd 100644
--- a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.h b/servers/rendering/renderer_rd/renderer_compositor_rd.h
index f69e40e0ff..9a992d5819 100644
--- a/servers/rendering/renderer_rd/renderer_compositor_rd.h
+++ b/servers/rendering/renderer_rd/renderer_compositor_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/renderer_scene_environment_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_environment_rd.cpp
index 550e59ba98..7ea117ef33 100644
--- a/servers/rendering/renderer_rd/renderer_scene_environment_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_scene_environment_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/renderer_scene_environment_rd.h b/servers/rendering/renderer_rd/renderer_scene_environment_rd.h
index ec9cb4a798..9e36a61870 100644
--- a/servers/rendering/renderer_rd/renderer_scene_environment_rd.h
+++ b/servers/rendering/renderer_rd/renderer_scene_environment_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -123,6 +123,14 @@ public:
float ssr_fade_out = 2.0;
float ssr_depth_tolerance = 0.2;
+ /// SSIL
+ ///
+ bool ssil_enabled = false;
+ float ssil_radius = 5.0;
+ float ssil_intensity = 1.0;
+ float ssil_sharpness = 0.98;
+ float ssil_normal_rejection = 1.0;
+
/// SDFGI
bool sdfgi_enabled = false;
RS::EnvironmentSDFGICascades sdfgi_cascades;
diff --git a/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp
index d1085245c0..73cb088f6a 100644
--- a/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_scene_gi_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -2059,7 +2059,7 @@ void RendererSceneGIRD::VoxelGIInstance::update(bool p_update_light_instances, c
for (int i = 0; i < levels.size(); i++) {
VoxelGIInstance::Mipmap mipmap;
- mipmap.texture = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), texture, 0, i, RD::TEXTURE_SLICE_3D);
+ mipmap.texture = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), texture, 0, i, 1, RD::TEXTURE_SLICE_3D);
mipmap.level = levels.size() - i - 1;
mipmap.cell_offset = 0;
for (uint32_t j = 0; j < mipmap.level; j++) {
@@ -2176,8 +2176,9 @@ void RendererSceneGIRD::VoxelGIInstance::update(bool p_update_light_instances, c
dmap.texture = RD::get_singleton()->texture_create(dtf, RD::TextureView());
if (dynamic_maps.size() == 0) {
- //render depth for first one
- dtf.format = RD::get_singleton()->texture_is_format_supported_for_usage(RD::DATA_FORMAT_D32_SFLOAT, RD::TEXTURE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) ? RD::DATA_FORMAT_D32_SFLOAT : RD::DATA_FORMAT_X8_D24_UNORM_PACK32;
+ // Render depth for first one.
+ // Use 16-bit depth when supported to improve performance.
+ dtf.format = RD::get_singleton()->texture_is_format_supported_for_usage(RD::DATA_FORMAT_D16_UNORM, RD::TEXTURE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) ? RD::DATA_FORMAT_D16_UNORM : RD::DATA_FORMAT_X8_D24_UNORM_PACK32;
dtf.usage_bits = RD::TEXTURE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
dmap.fb_depth = RD::get_singleton()->texture_create(dtf, RD::TextureView());
}
diff --git a/servers/rendering/renderer_rd/renderer_scene_gi_rd.h b/servers/rendering/renderer_rd/renderer_scene_gi_rd.h
index 9f6fc8a9b7..a407199d0a 100644
--- a/servers/rendering/renderer_rd/renderer_scene_gi_rd.h
+++ b/servers/rendering/renderer_rd/renderer_scene_gi_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -602,19 +602,15 @@ public:
};
struct VoxelGIData {
- float xform[16];
- float bounds[3];
- float dynamic_range;
+ float xform[16]; // 64 - 64
- float bias;
- float normal_bias;
- uint32_t blend_ambient;
- uint32_t texture_slot;
+ float bounds[3]; // 12 - 76
+ float dynamic_range; // 4 - 80
- uint32_t pad0;
- uint32_t pad1;
- uint32_t pad2;
- uint32_t mipmaps;
+ float bias; // 4 - 84
+ float normal_bias; // 4 - 88
+ uint32_t blend_ambient; // 4 - 92
+ uint32_t mipmaps; // 4 - 96
};
struct PushConstant {
diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp
index 7c35b01b50..77843ceee5 100644
--- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -427,6 +427,26 @@ void RendererSceneRenderRD::environment_set_ssao_quality(RS::EnvironmentSSAOQual
ssao_fadeout_to = p_fadeout_to;
}
+void RendererSceneRenderRD::environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) {
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
+ ERR_FAIL_COND(!env);
+
+ env->ssil_enabled = p_enable;
+ env->ssil_radius = p_radius;
+ env->ssil_intensity = p_intensity;
+ env->ssil_sharpness = p_sharpness;
+ env->ssil_normal_rejection = p_normal_rejection;
+}
+
+void RendererSceneRenderRD::environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) {
+ ssil_quality = p_quality;
+ ssil_half_size = p_half_size;
+ ssil_adaptive_target = p_adaptive_target;
+ ssil_blur_passes = p_blur_passes;
+ ssil_fadeout_from = p_fadeout_from;
+ ssil_fadeout_to = p_fadeout_to;
+}
+
bool RendererSceneRenderRD::environment_is_ssao_enabled(RID p_env) const {
RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, false);
@@ -445,6 +465,12 @@ float RendererSceneRenderRD::environment_get_ssao_light_affect(RID p_env) const
return env->ssao_direct_light_affect;
}
+bool RendererSceneRenderRD::environment_is_ssil_enabled(RID p_env) const {
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
+ ERR_FAIL_COND_V(!env, false);
+ return env->ssil_enabled;
+}
+
bool RendererSceneRenderRD::environment_is_ssr_enabled(RID p_env) const {
RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, false);
@@ -464,34 +490,63 @@ Ref<Image> RendererSceneRenderRD::environment_bake_panorama(RID p_env, bool p_ba
RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
ERR_FAIL_COND_V(!env, Ref<Image>());
- if (env->background == RS::ENV_BG_CAMERA_FEED || env->background == RS::ENV_BG_CANVAS || env->background == RS::ENV_BG_KEEP) {
+ RS::EnvironmentBG environment_background = env->background;
+
+ if (environment_background == RS::ENV_BG_CAMERA_FEED || environment_background == RS::ENV_BG_CANVAS || environment_background == RS::ENV_BG_KEEP) {
return Ref<Image>(); //nothing to bake
}
- if (env->background == RS::ENV_BG_CLEAR_COLOR || env->background == RS::ENV_BG_COLOR) {
- Color color;
- if (env->background == RS::ENV_BG_CLEAR_COLOR) {
- color = storage->get_default_clear_color();
- } else {
- color = env->bg_color;
- }
- color.r *= env->bg_energy;
- color.g *= env->bg_energy;
- color.b *= env->bg_energy;
-
- Ref<Image> ret;
- ret.instantiate();
- ret->create(p_size.width, p_size.height, false, Image::FORMAT_RGBAF);
- for (int i = 0; i < p_size.width; i++) {
- for (int j = 0; j < p_size.height; j++) {
- ret->set_pixel(i, j, color);
+ RS::EnvironmentAmbientSource ambient_source = env->ambient_source;
+
+ bool use_ambient_light = false;
+ bool use_cube_map = false;
+ if (ambient_source == RS::ENV_AMBIENT_SOURCE_BG && (environment_background == RS::ENV_BG_CLEAR_COLOR || environment_background == RS::ENV_BG_COLOR)) {
+ use_ambient_light = true;
+ } else {
+ use_cube_map = (ambient_source == RS::ENV_AMBIENT_SOURCE_BG && environment_background == RS::ENV_BG_SKY) || ambient_source == RS::ENV_AMBIENT_SOURCE_SKY;
+ use_ambient_light = use_cube_map || ambient_source == RS::ENV_AMBIENT_SOURCE_COLOR;
+ }
+ use_cube_map = use_cube_map || (environment_background == RS::ENV_BG_SKY && env->sky.is_valid());
+
+ Color ambient_color;
+ float ambient_color_sky_mix;
+ if (use_ambient_light) {
+ ambient_color_sky_mix = env->ambient_sky_contribution;
+ const float ambient_energy = env->ambient_light_energy;
+ ambient_color = env->ambient_light;
+ ambient_color.to_linear();
+ ambient_color.r *= ambient_energy;
+ ambient_color.g *= ambient_energy;
+ ambient_color.b *= ambient_energy;
+ }
+
+ if (use_cube_map) {
+ Ref<Image> panorama = sky_bake_panorama(env->sky, env->bg_energy, p_bake_irradiance, p_size);
+ if (use_ambient_light) {
+ for (int x = 0; x < p_size.width; x++) {
+ for (int y = 0; y < p_size.height; y++) {
+ panorama->set_pixel(x, y, ambient_color.lerp(panorama->get_pixel(x, y), ambient_color_sky_mix));
+ }
}
}
- return ret;
- }
+ return panorama;
+ } else {
+ const float bg_energy = env->bg_energy;
+ Color panorama_color = ((environment_background == RS::ENV_BG_CLEAR_COLOR) ? storage->get_default_clear_color() : env->bg_color);
+ panorama_color.to_linear();
+ panorama_color.r *= bg_energy;
+ panorama_color.g *= bg_energy;
+ panorama_color.b *= bg_energy;
+
+ if (use_ambient_light) {
+ panorama_color = ambient_color.lerp(panorama_color, ambient_color_sky_mix);
+ }
- if (env->background == RS::ENV_BG_SKY && env->sky.is_valid()) {
- return sky_bake_panorama(env->sky, env->bg_energy, p_bake_irradiance, p_size);
+ Ref<Image> panorama;
+ panorama.instantiate();
+ panorama->create(p_size.width, p_size.height, false, Image::FORMAT_RGBAF);
+ panorama->fill(panorama_color);
+ return panorama;
}
return Ref<Image>();
@@ -1798,24 +1853,51 @@ void RendererSceneRenderRD::_free_render_buffer_data(RenderBuffers *rb) {
rb->luminance.current = RID();
}
- if (rb->ssao.depth.is_valid()) {
- RD::get_singleton()->free(rb->ssao.depth);
- RD::get_singleton()->free(rb->ssao.ao_deinterleaved);
- RD::get_singleton()->free(rb->ssao.ao_pong);
- RD::get_singleton()->free(rb->ssao.ao_final);
+ if (rb->ss_effects.linear_depth.is_valid()) {
+ RD::get_singleton()->free(rb->ss_effects.linear_depth);
+ rb->ss_effects.linear_depth = RID();
+ rb->ss_effects.linear_depth_slices.clear();
+ }
+
+ if (rb->ss_effects.ssao.ao_final.is_valid()) {
+ RD::get_singleton()->free(rb->ss_effects.ssao.ao_deinterleaved);
+ RD::get_singleton()->free(rb->ss_effects.ssao.ao_pong);
+ RD::get_singleton()->free(rb->ss_effects.ssao.ao_final);
- RD::get_singleton()->free(rb->ssao.importance_map[0]);
- RD::get_singleton()->free(rb->ssao.importance_map[1]);
+ RD::get_singleton()->free(rb->ss_effects.ssao.importance_map[0]);
+ RD::get_singleton()->free(rb->ss_effects.ssao.importance_map[1]);
- rb->ssao.depth = RID();
- rb->ssao.ao_deinterleaved = RID();
- rb->ssao.ao_pong = RID();
- rb->ssao.ao_final = RID();
- rb->ssao.importance_map[0] = RID();
- rb->ssao.importance_map[1] = RID();
- rb->ssao.depth_slices.clear();
- rb->ssao.ao_deinterleaved_slices.clear();
- rb->ssao.ao_pong_slices.clear();
+ rb->ss_effects.ssao.ao_deinterleaved = RID();
+ rb->ss_effects.ssao.ao_pong = RID();
+ rb->ss_effects.ssao.ao_final = RID();
+ rb->ss_effects.ssao.importance_map[0] = RID();
+ rb->ss_effects.ssao.importance_map[1] = RID();
+
+ rb->ss_effects.ssao.ao_deinterleaved_slices.clear();
+ rb->ss_effects.ssao.ao_pong_slices.clear();
+ }
+
+ if (rb->ss_effects.ssil.ssil_final.is_valid()) {
+ RD::get_singleton()->free(rb->ss_effects.ssil.ssil_final);
+ RD::get_singleton()->free(rb->ss_effects.ssil.deinterleaved);
+ RD::get_singleton()->free(rb->ss_effects.ssil.pong);
+ RD::get_singleton()->free(rb->ss_effects.ssil.edges);
+ RD::get_singleton()->free(rb->ss_effects.ssil.importance_map[0]);
+ RD::get_singleton()->free(rb->ss_effects.ssil.importance_map[1]);
+
+ rb->ss_effects.ssil.ssil_final = RID();
+ rb->ss_effects.ssil.deinterleaved = RID();
+ rb->ss_effects.ssil.pong = RID();
+ rb->ss_effects.ssil.edges = RID();
+ rb->ss_effects.ssil.deinterleaved_slices.clear();
+ rb->ss_effects.ssil.pong_slices.clear();
+ rb->ss_effects.ssil.edges_slices.clear();
+ rb->ss_effects.ssil.importance_map[0] = RID();
+ rb->ss_effects.ssil.importance_map[1] = RID();
+
+ RD::get_singleton()->free(rb->ss_effects.last_frame);
+ rb->ss_effects.last_frame = RID();
+ rb->ss_effects.last_frame_slices.clear();
}
if (rb->ssr.blur_radius[0].is_valid()) {
@@ -1919,24 +2001,21 @@ void RendererSceneRenderRD::_process_ssao(RID p_render_buffers, RID p_environmen
RENDER_TIMESTAMP("Process SSAO");
- if (rb->ssao.ao_final.is_valid() && ssao_using_half_size != ssao_half_size) {
- RD::get_singleton()->free(rb->ssao.depth);
- RD::get_singleton()->free(rb->ssao.ao_deinterleaved);
- RD::get_singleton()->free(rb->ssao.ao_pong);
- RD::get_singleton()->free(rb->ssao.ao_final);
+ if (rb->ss_effects.ssao.ao_final.is_valid() && ssao_using_half_size != ssao_half_size) {
+ RD::get_singleton()->free(rb->ss_effects.ssao.ao_deinterleaved);
+ RD::get_singleton()->free(rb->ss_effects.ssao.ao_pong);
+ RD::get_singleton()->free(rb->ss_effects.ssao.ao_final);
- RD::get_singleton()->free(rb->ssao.importance_map[0]);
- RD::get_singleton()->free(rb->ssao.importance_map[1]);
+ RD::get_singleton()->free(rb->ss_effects.ssao.importance_map[0]);
+ RD::get_singleton()->free(rb->ss_effects.ssao.importance_map[1]);
- rb->ssao.depth = RID();
- rb->ssao.ao_deinterleaved = RID();
- rb->ssao.ao_pong = RID();
- rb->ssao.ao_final = RID();
- rb->ssao.importance_map[0] = RID();
- rb->ssao.importance_map[1] = RID();
- rb->ssao.depth_slices.clear();
- rb->ssao.ao_deinterleaved_slices.clear();
- rb->ssao.ao_pong_slices.clear();
+ rb->ss_effects.ssao.ao_deinterleaved = RID();
+ rb->ss_effects.ssao.ao_pong = RID();
+ rb->ss_effects.ssao.ao_final = RID();
+ rb->ss_effects.ssao.importance_map[0] = RID();
+ rb->ss_effects.ssao.importance_map[1] = RID();
+ rb->ss_effects.ssao.ao_deinterleaved_slices.clear();
+ rb->ss_effects.ssao.ao_pong_slices.clear();
}
int buffer_width;
@@ -1955,27 +2034,10 @@ void RendererSceneRenderRD::_process_ssao(RID p_render_buffers, RID p_environmen
half_height = (rb->internal_height + 3) / 4;
}
bool uniform_sets_are_invalid = false;
- if (rb->ssao.depth.is_null()) {
- //allocate depth slices
-
+ if (rb->ss_effects.ssao.ao_deinterleaved.is_null()) {
{
- RD::TextureFormat tf;
- tf.format = RD::DATA_FORMAT_R16_SFLOAT;
- tf.texture_type = RD::TEXTURE_TYPE_2D_ARRAY;
- tf.width = buffer_width;
- tf.height = buffer_height;
- tf.mipmaps = 4;
- tf.array_layers = 4;
- tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT;
- rb->ssao.depth = RD::get_singleton()->texture_create(tf, RD::TextureView());
- RD::get_singleton()->set_resource_name(rb->ssao.depth, "SSAO Depth");
- for (uint32_t i = 0; i < tf.mipmaps; i++) {
- RID slice = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ssao.depth, 0, i, RD::TEXTURE_SLICE_2D_ARRAY);
- rb->ssao.depth_slices.push_back(slice);
- RD::get_singleton()->set_resource_name(rb->ssao.depth_slices[i], "SSAO Depth Mip " + itos(i) + " ");
- }
+ rb->ss_effects.ssao.depth_texture_view = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ss_effects.linear_depth, 0, ssao_half_size ? 1 : 0, 4, RD::TEXTURE_SLICE_2D_ARRAY);
}
-
{
RD::TextureFormat tf;
tf.format = RD::DATA_FORMAT_R8G8_UNORM;
@@ -1984,12 +2046,12 @@ void RendererSceneRenderRD::_process_ssao(RID p_render_buffers, RID p_environmen
tf.height = buffer_height;
tf.array_layers = 4;
tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT;
- rb->ssao.ao_deinterleaved = RD::get_singleton()->texture_create(tf, RD::TextureView());
- RD::get_singleton()->set_resource_name(rb->ssao.ao_deinterleaved, "SSAO De-interleaved Array");
+ rb->ss_effects.ssao.ao_deinterleaved = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssao.ao_deinterleaved, "SSAO De-interleaved Array");
for (uint32_t i = 0; i < 4; i++) {
- RID slice = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ssao.ao_deinterleaved, i, 0);
- rb->ssao.ao_deinterleaved_slices.push_back(slice);
- RD::get_singleton()->set_resource_name(rb->ssao.ao_deinterleaved_slices[i], "SSAO De-interleaved Array Layer " + itos(i) + " ");
+ RID slice = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ss_effects.ssao.ao_deinterleaved, i, 0);
+ rb->ss_effects.ssao.ao_deinterleaved_slices.push_back(slice);
+ RD::get_singleton()->set_resource_name(slice, "SSAO De-interleaved Array Layer " + itos(i) + " ");
}
}
@@ -2001,12 +2063,12 @@ void RendererSceneRenderRD::_process_ssao(RID p_render_buffers, RID p_environmen
tf.height = buffer_height;
tf.array_layers = 4;
tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT;
- rb->ssao.ao_pong = RD::get_singleton()->texture_create(tf, RD::TextureView());
- RD::get_singleton()->set_resource_name(rb->ssao.ao_pong, "SSAO De-interleaved Array Pong");
+ rb->ss_effects.ssao.ao_pong = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssao.ao_pong, "SSAO De-interleaved Array Pong");
for (uint32_t i = 0; i < 4; i++) {
- RID slice = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ssao.ao_pong, i, 0);
- rb->ssao.ao_pong_slices.push_back(slice);
- RD::get_singleton()->set_resource_name(rb->ssao.ao_deinterleaved_slices[i], "SSAO De-interleaved Array Layer " + itos(i) + " Pong");
+ RID slice = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ss_effects.ssao.ao_pong, i, 0);
+ rb->ss_effects.ssao.ao_pong_slices.push_back(slice);
+ RD::get_singleton()->set_resource_name(slice, "SSAO De-interleaved Array Layer " + itos(i) + " Pong");
}
}
@@ -2016,10 +2078,10 @@ void RendererSceneRenderRD::_process_ssao(RID p_render_buffers, RID p_environmen
tf.width = half_width;
tf.height = half_height;
tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT;
- rb->ssao.importance_map[0] = RD::get_singleton()->texture_create(tf, RD::TextureView());
- RD::get_singleton()->set_resource_name(rb->ssao.importance_map[0], "SSAO Importance Map");
- rb->ssao.importance_map[1] = RD::get_singleton()->texture_create(tf, RD::TextureView());
- RD::get_singleton()->set_resource_name(rb->ssao.importance_map[1], "SSAO Importance Map Pong");
+ rb->ss_effects.ssao.importance_map[0] = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssao.importance_map[0], "SSAO Importance Map");
+ rb->ss_effects.ssao.importance_map[1] = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssao.importance_map[1], "SSAO Importance Map Pong");
}
{
RD::TextureFormat tf;
@@ -2027,8 +2089,8 @@ void RendererSceneRenderRD::_process_ssao(RID p_render_buffers, RID p_environmen
tf.width = rb->internal_width;
tf.height = rb->internal_height;
tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT;
- rb->ssao.ao_final = RD::get_singleton()->texture_create(tf, RD::TextureView());
- RD::get_singleton()->set_resource_name(rb->ssao.ao_final, "SSAO Final");
+ rb->ss_effects.ssao.ao_final = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssao.ao_final, "SSAO Final");
}
ssao_using_half_size = ssao_half_size;
uniform_sets_are_invalid = true;
@@ -2052,7 +2114,187 @@ void RendererSceneRenderRD::_process_ssao(RID p_render_buffers, RID p_environmen
settings.half_screen_size = Size2i(buffer_width, buffer_height);
settings.quarter_screen_size = Size2i(half_width, half_height);
- storage->get_effects()->generate_ssao(rb->depth_texture, p_normal_buffer, rb->ssao.depth, rb->ssao.depth_slices, rb->ssao.ao_deinterleaved, rb->ssao.ao_deinterleaved_slices, rb->ssao.ao_pong, rb->ssao.ao_pong_slices, rb->ssao.ao_final, rb->ssao.importance_map[0], rb->ssao.importance_map[1], p_projection, settings, uniform_sets_are_invalid, rb->ssao.downsample_uniform_set, rb->ssao.gather_uniform_set, rb->ssao.importance_map_uniform_set);
+ storage->get_effects()->generate_ssao(p_normal_buffer, rb->ss_effects.ssao.depth_texture_view, rb->ss_effects.ssao.ao_deinterleaved, rb->ss_effects.ssao.ao_deinterleaved_slices, rb->ss_effects.ssao.ao_pong, rb->ss_effects.ssao.ao_pong_slices, rb->ss_effects.ssao.ao_final, rb->ss_effects.ssao.importance_map[0], rb->ss_effects.ssao.importance_map[1], p_projection, settings, uniform_sets_are_invalid, rb->ss_effects.ssao.gather_uniform_set, rb->ss_effects.ssao.importance_map_uniform_set);
+}
+
+void RendererSceneRenderRD::_process_ssil(RID p_render_buffers, RID p_environment, RID p_normal_buffer, const CameraMatrix &p_projection, const Transform3D &p_transform) {
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
+ ERR_FAIL_COND(!rb);
+
+ RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_environment);
+ ERR_FAIL_COND(!env);
+
+ RENDER_TIMESTAMP("Process SSIL");
+
+ if (rb->ss_effects.ssil.ssil_final.is_valid() && ssil_using_half_size != ssil_half_size) {
+ RD::get_singleton()->free(rb->ss_effects.ssil.ssil_final);
+ RD::get_singleton()->free(rb->ss_effects.ssil.deinterleaved);
+ RD::get_singleton()->free(rb->ss_effects.ssil.pong);
+ RD::get_singleton()->free(rb->ss_effects.ssil.edges);
+ RD::get_singleton()->free(rb->ss_effects.ssil.importance_map[0]);
+ RD::get_singleton()->free(rb->ss_effects.ssil.importance_map[1]);
+
+ rb->ss_effects.ssil.ssil_final = RID();
+ rb->ss_effects.ssil.deinterleaved = RID();
+ rb->ss_effects.ssil.pong = RID();
+ rb->ss_effects.ssil.edges = RID();
+ rb->ss_effects.ssil.deinterleaved_slices.clear();
+ rb->ss_effects.ssil.pong_slices.clear();
+ rb->ss_effects.ssil.edges_slices.clear();
+ rb->ss_effects.ssil.importance_map[0] = RID();
+ rb->ss_effects.ssil.importance_map[1] = RID();
+ }
+
+ int buffer_width;
+ int buffer_height;
+ int half_width;
+ int half_height;
+ if (ssil_half_size) {
+ buffer_width = (rb->width + 3) / 4;
+ buffer_height = (rb->height + 3) / 4;
+ half_width = (rb->width + 7) / 8;
+ half_height = (rb->height + 7) / 8;
+ } else {
+ buffer_width = (rb->width + 1) / 2;
+ buffer_height = (rb->height + 1) / 2;
+ half_width = (rb->width + 3) / 4;
+ half_height = (rb->height + 3) / 4;
+ }
+ bool uniform_sets_are_invalid = false;
+ if (rb->ss_effects.ssil.ssil_final.is_null()) {
+ {
+ rb->ss_effects.ssil.depth_texture_view = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ss_effects.linear_depth, 0, ssil_half_size ? 1 : 0, 4, RD::TEXTURE_SLICE_2D_ARRAY);
+ }
+ {
+ RD::TextureFormat tf;
+ tf.format = RD::DATA_FORMAT_R16G16B16A16_SFLOAT;
+ tf.width = rb->width;
+ tf.height = rb->height;
+ tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT | RD::TEXTURE_USAGE_CAN_COPY_TO_BIT;
+ rb->ss_effects.ssil.ssil_final = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssil.ssil_final, "SSIL texture");
+ RD::get_singleton()->texture_clear(rb->ss_effects.ssil.ssil_final, Color(0, 0, 0, 0), 0, 1, 0, 1);
+ if (rb->ss_effects.last_frame.is_null()) {
+ tf.mipmaps = 6;
+ rb->ss_effects.last_frame = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.last_frame, "Last Frame Radiance");
+ RD::get_singleton()->texture_clear(rb->ss_effects.last_frame, Color(0, 0, 0, 0), 0, tf.mipmaps, 0, 1);
+ for (uint32_t i = 0; i < 6; i++) {
+ RID slice = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ss_effects.last_frame, 0, i);
+ rb->ss_effects.last_frame_slices.push_back(slice);
+ RD::get_singleton()->set_resource_name(slice, "Last Frame Radiance Mip " + itos(i) + " ");
+ }
+ }
+ }
+ {
+ RD::TextureFormat tf;
+ tf.format = RD::DATA_FORMAT_R16G16B16A16_SFLOAT;
+ tf.texture_type = RD::TEXTURE_TYPE_2D_ARRAY;
+ tf.width = buffer_width;
+ tf.height = buffer_height;
+ tf.array_layers = 4;
+ tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT;
+ rb->ss_effects.ssil.deinterleaved = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssil.deinterleaved, "SSIL deinterleaved buffer");
+ for (uint32_t i = 0; i < 4; i++) {
+ RID slice = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ss_effects.ssil.deinterleaved, i, 0);
+ rb->ss_effects.ssil.deinterleaved_slices.push_back(slice);
+ RD::get_singleton()->set_resource_name(slice, "SSIL deinterleaved buffer array " + itos(i) + " ");
+ }
+ }
+
+ {
+ RD::TextureFormat tf;
+ tf.format = RD::DATA_FORMAT_R16G16B16A16_SFLOAT;
+ tf.texture_type = RD::TEXTURE_TYPE_2D_ARRAY;
+ tf.width = buffer_width;
+ tf.height = buffer_height;
+ tf.array_layers = 4;
+ tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT;
+ rb->ss_effects.ssil.pong = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssil.pong, "SSIL deinterleaved pong buffer");
+ for (uint32_t i = 0; i < 4; i++) {
+ RID slice = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ss_effects.ssil.pong, i, 0);
+ rb->ss_effects.ssil.pong_slices.push_back(slice);
+ RD::get_singleton()->set_resource_name(slice, "SSIL deinterleaved buffer pong array " + itos(i) + " ");
+ }
+ }
+
+ {
+ RD::TextureFormat tf;
+ tf.format = RD::DATA_FORMAT_R8_UNORM;
+ tf.texture_type = RD::TEXTURE_TYPE_2D_ARRAY;
+ tf.width = buffer_width;
+ tf.height = buffer_height;
+ tf.array_layers = 4;
+ tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT;
+ rb->ss_effects.ssil.edges = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssil.edges, "SSIL edges buffer");
+ for (uint32_t i = 0; i < 4; i++) {
+ RID slice = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ss_effects.ssil.edges, i, 0);
+ rb->ss_effects.ssil.edges_slices.push_back(slice);
+ RD::get_singleton()->set_resource_name(slice, "SSIL edges buffer slice " + itos(i) + " ");
+ }
+ }
+
+ {
+ RD::TextureFormat tf;
+ tf.format = RD::DATA_FORMAT_R8_UNORM;
+ tf.width = half_width;
+ tf.height = half_height;
+ tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT;
+ rb->ss_effects.ssil.importance_map[0] = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssil.importance_map[0], "SSIL Importance Map");
+ rb->ss_effects.ssil.importance_map[1] = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.ssil.importance_map[1], "SSIL Importance Map Pong");
+ }
+ uniform_sets_are_invalid = true;
+ ssil_using_half_size = ssil_half_size;
+ }
+
+ EffectsRD::SSILSettings settings;
+ settings.radius = env->ssil_radius;
+ settings.intensity = env->ssil_intensity;
+ settings.sharpness = env->ssil_sharpness;
+ settings.normal_rejection = env->ssil_normal_rejection;
+
+ settings.quality = ssil_quality;
+ settings.half_size = ssil_half_size;
+ settings.adaptive_target = ssil_adaptive_target;
+ settings.blur_passes = ssil_blur_passes;
+ settings.fadeout_from = ssil_fadeout_from;
+ settings.fadeout_to = ssil_fadeout_to;
+ settings.full_screen_size = Size2i(rb->width, rb->height);
+ settings.half_screen_size = Size2i(buffer_width, buffer_height);
+ settings.quarter_screen_size = Size2i(half_width, half_height);
+
+ CameraMatrix correction;
+ correction.set_depth_correction(true);
+ CameraMatrix projection = correction * p_projection;
+ Transform3D transform = p_transform;
+ transform.set_origin(Vector3(0.0, 0.0, 0.0));
+ CameraMatrix last_frame_projection = rb->ss_effects.last_frame_projection * CameraMatrix(rb->ss_effects.last_frame_transform.affine_inverse()) * CameraMatrix(transform) * projection.inverse();
+
+ storage->get_effects()->screen_space_indirect_lighting(rb->ss_effects.last_frame, rb->ss_effects.ssil.ssil_final, p_normal_buffer, rb->ss_effects.ssil.depth_texture_view, rb->ss_effects.ssil.deinterleaved, rb->ss_effects.ssil.deinterleaved_slices, rb->ss_effects.ssil.pong, rb->ss_effects.ssil.pong_slices, rb->ss_effects.ssil.importance_map[0], rb->ss_effects.ssil.importance_map[1], rb->ss_effects.ssil.edges, rb->ss_effects.ssil.edges_slices, p_projection, last_frame_projection, settings, uniform_sets_are_invalid, rb->ss_effects.ssil.gather_uniform_set, rb->ss_effects.ssil.importance_map_uniform_set, rb->ss_effects.ssil.projection_uniform_set);
+ rb->ss_effects.last_frame_projection = projection;
+ rb->ss_effects.last_frame_transform = transform;
+}
+
+void RendererSceneRenderRD::_copy_framebuffer_to_ssil(RID p_render_buffers) {
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
+ ERR_FAIL_COND(!rb);
+
+ if (rb->ss_effects.last_frame.is_valid()) {
+ storage->get_effects()->copy_to_rect(rb->texture, rb->ss_effects.last_frame, Rect2i(0, 0, rb->width, rb->height));
+
+ int width = rb->width;
+ int height = rb->height;
+ for (int i = 0; i < rb->ss_effects.last_frame_slices.size() - 1; i++) {
+ width = MAX(1, width >> 1);
+ height = MAX(1, height >> 1);
+ storage->get_effects()->make_mipmap(rb->ss_effects.last_frame_slices[i], rb->ss_effects.last_frame_slices[i + 1], Size2i(width, height));
+ }
+ }
}
void RendererSceneRenderRD::_render_buffers_copy_screen_texture(const RenderDataRD *p_render_data) {
@@ -2427,10 +2669,14 @@ void RendererSceneRenderRD::_render_buffers_debug_draw(RID p_render_buffers, RID
}
}
- if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_SSAO && rb->ssao.ao_final.is_valid()) {
+ if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_SSAO && rb->ss_effects.ssao.ao_final.is_valid()) {
Size2 rtsize = storage->render_target_get_size(rb->render_target);
- RID ao_buf = rb->ssao.ao_final;
- effects->copy_to_fb_rect(ao_buf, storage->render_target_get_rd_framebuffer(rb->render_target), Rect2(Vector2(), rtsize), false, true);
+ effects->copy_to_fb_rect(rb->ss_effects.ssao.ao_final, storage->render_target_get_rd_framebuffer(rb->render_target), Rect2(Vector2(), rtsize), false, true);
+ }
+
+ if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_SSIL && rb->ss_effects.ssil.ssil_final.is_valid()) {
+ Size2 rtsize = storage->render_target_get_size(rb->render_target);
+ effects->copy_to_fb_rect(rb->ss_effects.ssil.ssil_final, storage->render_target_get_rd_framebuffer(rb->render_target), Rect2(Vector2(), rtsize), false, false);
}
if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER && _render_buffers_get_normal_texture(p_render_buffers).is_valid()) {
@@ -2494,7 +2740,13 @@ RID RendererSceneRenderRD::render_buffers_get_ao_texture(RID p_render_buffers) {
RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
ERR_FAIL_COND_V(!rb, RID());
- return rb->ssao.ao_final;
+ return rb->ss_effects.ssao.ao_final;
+}
+RID RendererSceneRenderRD::render_buffers_get_ssil_texture(RID p_render_buffers) {
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_buffers);
+ ERR_FAIL_COND_V(!rb, RID());
+
+ return rb->ss_effects.ssil.ssil_final;
}
RID RendererSceneRenderRD::render_buffers_get_voxel_gi_buffer(RID p_render_buffers) {
@@ -4528,7 +4780,7 @@ void RendererSceneRenderRD::_pre_resolve_render(RenderDataRD *p_render_data, boo
}
}
-void RendererSceneRenderRD::_pre_opaque_render(RenderDataRD *p_render_data, bool p_use_ssao, bool p_use_gi, RID p_normal_roughness_buffer, RID p_voxel_gi_buffer) {
+void RendererSceneRenderRD::_pre_opaque_render(RenderDataRD *p_render_data, bool p_use_ssao, bool p_use_ssil, bool p_use_gi, RID p_normal_roughness_buffer, RID p_voxel_gi_buffer) {
// Render shadows while GI is rendering, due to how barriers are handled, this should happen at the same time
if (p_render_data->render_buffers.is_valid() && p_use_gi) {
@@ -4560,7 +4812,7 @@ void RendererSceneRenderRD::_pre_opaque_render(RenderDataRD *p_render_data, bool
//cube shadows are rendered in their own way
for (uint32_t i = 0; i < render_state.cube_shadows.size(); i++) {
- _render_shadow_pass(render_state.render_shadows[render_state.cube_shadows[i]].light, p_render_data->shadow_atlas, render_state.render_shadows[render_state.cube_shadows[i]].pass, render_state.render_shadows[render_state.cube_shadows[i]].instances, camera_plane, lod_distance_multiplier, p_render_data->screen_lod_threshold, true, true, true, p_render_data->render_info);
+ _render_shadow_pass(render_state.render_shadows[render_state.cube_shadows[i]].light, p_render_data->shadow_atlas, render_state.render_shadows[render_state.cube_shadows[i]].pass, render_state.render_shadows[render_state.cube_shadows[i]].instances, camera_plane, lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold, true, true, true, p_render_data->render_info);
}
if (render_state.directional_shadows.size()) {
@@ -4590,11 +4842,11 @@ void RendererSceneRenderRD::_pre_opaque_render(RenderDataRD *p_render_data, bool
//render directional shadows
for (uint32_t i = 0; i < render_state.directional_shadows.size(); i++) {
- _render_shadow_pass(render_state.render_shadows[render_state.directional_shadows[i]].light, p_render_data->shadow_atlas, render_state.render_shadows[render_state.directional_shadows[i]].pass, render_state.render_shadows[render_state.directional_shadows[i]].instances, camera_plane, lod_distance_multiplier, p_render_data->screen_lod_threshold, false, i == render_state.directional_shadows.size() - 1, false, p_render_data->render_info);
+ _render_shadow_pass(render_state.render_shadows[render_state.directional_shadows[i]].light, p_render_data->shadow_atlas, render_state.render_shadows[render_state.directional_shadows[i]].pass, render_state.render_shadows[render_state.directional_shadows[i]].instances, camera_plane, lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold, false, i == render_state.directional_shadows.size() - 1, false, p_render_data->render_info);
}
//render positional shadows
for (uint32_t i = 0; i < render_state.shadows.size(); i++) {
- _render_shadow_pass(render_state.render_shadows[render_state.shadows[i]].light, p_render_data->shadow_atlas, render_state.render_shadows[render_state.shadows[i]].pass, render_state.render_shadows[render_state.shadows[i]].instances, camera_plane, lod_distance_multiplier, p_render_data->screen_lod_threshold, i == 0, i == render_state.shadows.size() - 1, true, p_render_data->render_info);
+ _render_shadow_pass(render_state.render_shadows[render_state.shadows[i]].light, p_render_data->shadow_atlas, render_state.render_shadows[render_state.shadows[i]].pass, render_state.render_shadows[render_state.shadows[i]].instances, camera_plane, lod_distance_multiplier, p_render_data->screen_mesh_lod_threshold, i == 0, i == render_state.shadows.size() - 1, true, p_render_data->render_info);
}
_render_shadow_process();
@@ -4615,9 +4867,40 @@ void RendererSceneRenderRD::_pre_opaque_render(RenderDataRD *p_render_data, bool
}
if (p_render_data->render_buffers.is_valid()) {
+ if (p_use_ssao || p_use_ssil) {
+ RenderBuffers *rb = render_buffers_owner.get_or_null(p_render_data->render_buffers);
+ ERR_FAIL_COND(!rb);
+
+ bool invalidate_uniform_set = false;
+ if (rb->ss_effects.linear_depth.is_null()) {
+ RD::TextureFormat tf;
+ tf.format = RD::DATA_FORMAT_R16_SFLOAT;
+ tf.texture_type = RD::TEXTURE_TYPE_2D_ARRAY;
+ tf.width = (rb->width + 1) / 2;
+ tf.height = (rb->height + 1) / 2;
+ tf.mipmaps = 5;
+ tf.array_layers = 4;
+ tf.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_STORAGE_BIT;
+ rb->ss_effects.linear_depth = RD::get_singleton()->texture_create(tf, RD::TextureView());
+ RD::get_singleton()->set_resource_name(rb->ss_effects.linear_depth, "SS Effects Depth");
+ for (uint32_t i = 0; i < tf.mipmaps; i++) {
+ RID slice = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), rb->ss_effects.linear_depth, 0, i, 1, RD::TEXTURE_SLICE_2D_ARRAY);
+ rb->ss_effects.linear_depth_slices.push_back(slice);
+ RD::get_singleton()->set_resource_name(slice, "SS Effects Depth Mip " + itos(i) + " ");
+ }
+ invalidate_uniform_set = true;
+ }
+
+ storage->get_effects()->downsample_depth(rb->depth_texture, rb->ss_effects.linear_depth_slices, ssao_quality, ssil_quality, invalidate_uniform_set, ssao_half_size, ssil_half_size, Size2i(rb->width, rb->height), p_render_data->cam_projection);
+ }
+
if (p_use_ssao) {
_process_ssao(p_render_data->render_buffers, p_render_data->environment, p_normal_roughness_buffer, p_render_data->cam_projection);
}
+
+ if (p_use_ssil) {
+ _process_ssil(p_render_data->render_buffers, p_render_data->environment, p_normal_roughness_buffer, p_render_data->cam_projection, p_render_data->cam_transform);
+ }
}
//full barrier here, we need raster, transfer and compute and it depends from the previous work
@@ -4663,7 +4946,7 @@ void RendererSceneRenderRD::_pre_opaque_render(RenderDataRD *p_render_data, bool
}
}
-void RendererSceneRenderRD::render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data, RendererScene::RenderInfo *r_render_info) {
+void RendererSceneRenderRD::render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data, RendererScene::RenderInfo *r_render_info) {
// getting this here now so we can direct call a bunch of things more easily
RenderBuffers *rb = nullptr;
if (p_render_buffers.is_valid()) {
@@ -4709,9 +4992,9 @@ void RendererSceneRenderRD::render_scene(RID p_render_buffers, const CameraData
render_data.lod_camera_plane = Plane(-p_camera_data->main_transform.basis.get_axis(Vector3::AXIS_Z), p_camera_data->main_transform.get_origin());
if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) {
- render_data.screen_lod_threshold = 0.0;
+ render_data.screen_mesh_lod_threshold = 0.0;
} else {
- render_data.screen_lod_threshold = p_screen_lod_threshold;
+ render_data.screen_mesh_lod_threshold = p_screen_mesh_lod_threshold;
}
render_state.render_shadows = p_render_shadows;
@@ -4837,7 +5120,7 @@ void RendererSceneRenderRD::_debug_draw_cluster(RID p_render_buffers) {
}
}
-void RendererSceneRenderRD::_render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray<GeometryInstance *> &p_instances, const Plane &p_camera_plane, float p_lod_distance_multiplier, float p_screen_lod_threshold, bool p_open_pass, bool p_close_pass, bool p_clear_region, RendererScene::RenderInfo *p_render_info) {
+void RendererSceneRenderRD::_render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray<GeometryInstance *> &p_instances, const Plane &p_camera_plane, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, bool p_open_pass, bool p_close_pass, bool p_clear_region, RendererScene::RenderInfo *p_render_info) {
LightInstance *light_instance = light_instance_owner.get_or_null(p_light);
ERR_FAIL_COND(!light_instance);
@@ -4987,7 +5270,7 @@ void RendererSceneRenderRD::_render_shadow_pass(RID p_light, RID p_shadow_atlas,
if (render_cubemap) {
//rendering to cubemap
- _render_shadow_append(render_fb, p_instances, light_projection, light_transform, zfar, 0, 0, false, false, use_pancake, p_camera_plane, p_lod_distance_multiplier, p_screen_lod_threshold, Rect2(), false, true, true, true, p_render_info);
+ _render_shadow_append(render_fb, p_instances, light_projection, light_transform, zfar, 0, 0, false, false, use_pancake, p_camera_plane, p_lod_distance_multiplier, p_screen_mesh_lod_threshold, Rect2(), false, true, true, true, p_render_info);
if (finalize_cubemap) {
_render_shadow_process();
_render_shadow_end();
@@ -5005,7 +5288,7 @@ void RendererSceneRenderRD::_render_shadow_pass(RID p_light, RID p_shadow_atlas,
} else {
//render shadow
- _render_shadow_append(render_fb, p_instances, light_projection, light_transform, zfar, 0, 0, using_dual_paraboloid, using_dual_paraboloid_flip, use_pancake, p_camera_plane, p_lod_distance_multiplier, p_screen_lod_threshold, atlas_rect, flip_y, p_clear_region, p_open_pass, p_close_pass, p_render_info);
+ _render_shadow_append(render_fb, p_instances, light_projection, light_transform, zfar, 0, 0, using_dual_paraboloid, using_dual_paraboloid_flip, use_pancake, p_camera_plane, p_lod_distance_multiplier, p_screen_mesh_lod_threshold, atlas_rect, flip_y, p_clear_region, p_open_pass, p_close_pass, p_render_info);
}
}
@@ -5499,6 +5782,9 @@ void fog() {
sss_quality = RS::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_quality")));
sss_scale = GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_scale");
sss_depth_scale = GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale");
+
+ environment_set_ssil_quality(RS::EnvironmentSSILQuality(int(GLOBAL_GET("rendering/environment/ssil/quality"))), GLOBAL_GET("rendering/environment/ssil/half_size"), GLOBAL_GET("rendering/environment/ssil/adaptive_target"), GLOBAL_GET("rendering/environment/ssil/blur_passes"), GLOBAL_GET("rendering/environment/ssil/fadeout_from"), GLOBAL_GET("rendering/environment/ssil/fadeout_to"));
+
directional_penumbra_shadow_kernel = memnew_arr(float, 128);
directional_soft_shadow_kernel = memnew_arr(float, 128);
penumbra_shadow_kernel = memnew_arr(float, 128);
diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.h b/servers/rendering/renderer_rd/renderer_scene_render_rd.h
index 98ab1a2c3c..b8a088d041 100644
--- a/servers/rendering/renderer_rd/renderer_scene_render_rd.h
+++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -75,7 +75,7 @@ struct RenderDataRD {
float lod_distance_multiplier = 0.0;
Plane lod_camera_plane = Plane();
- float screen_lod_threshold = 0.0;
+ float screen_mesh_lod_threshold = 0.0;
RID cluster_buffer = RID();
uint32_t cluster_size = 0;
@@ -109,7 +109,7 @@ protected:
virtual void _render_scene(RenderDataRD *p_render_data, const Color &p_default_color) = 0;
virtual void _render_shadow_begin() = 0;
- virtual void _render_shadow_append(RID p_framebuffer, const PagedArray<GeometryInstance *> &p_instances, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, const Plane &p_camera_plane = Plane(), float p_lod_distance_multiplier = 0.0, float p_screen_lod_threshold = 0.0, const Rect2i &p_rect = Rect2i(), bool p_flip_y = false, bool p_clear_region = true, bool p_begin = true, bool p_end = true, RendererScene::RenderInfo *p_render_info = nullptr) = 0;
+ virtual void _render_shadow_append(RID p_framebuffer, const PagedArray<GeometryInstance *> &p_instances, const CameraMatrix &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, const Plane &p_camera_plane = Plane(), float p_lod_distance_multiplier = 0.0, float p_screen_mesh_lod_threshold = 0.0, const Rect2i &p_rect = Rect2i(), bool p_flip_y = false, bool p_clear_region = true, bool p_begin = true, bool p_end = true, RendererScene::RenderInfo *p_render_info = nullptr) = 0;
virtual void _render_shadow_process() = 0;
virtual void _render_shadow_end(uint32_t p_barrier = RD::BARRIER_MASK_ALL) = 0;
@@ -129,12 +129,15 @@ protected:
void _process_ssao(RID p_render_buffers, RID p_environment, RID p_normal_buffer, const CameraMatrix &p_projection);
void _process_ssr(RID p_render_buffers, RID p_dest_framebuffer, RID p_normal_buffer, RID p_specular_buffer, RID p_metallic, const Color &p_metallic_mask, RID p_environment, const CameraMatrix &p_projection, bool p_use_additive);
void _process_sss(RID p_render_buffers, const CameraMatrix &p_camera);
+ void _process_ssil(RID p_render_buffers, RID p_environment, RID p_normal_buffer, const CameraMatrix &p_projection, const Transform3D &p_transform);
+ void _copy_framebuffer_to_ssil(RID p_render_buffers);
+ void _ensure_ss_effects(RID p_render_buffers, bool p_using_ssil);
bool _needs_post_prepass_render(RenderDataRD *p_render_data, bool p_use_gi);
void _post_prepass_render(RenderDataRD *p_render_data, bool p_use_gi);
void _pre_resolve_render(RenderDataRD *p_render_data, bool p_use_gi);
- void _pre_opaque_render(RenderDataRD *p_render_data, bool p_use_ssao, bool p_use_gi, RID p_normal_roughness_buffer, RID p_voxel_gi_buffer);
+ void _pre_opaque_render(RenderDataRD *p_render_data, bool p_use_ssao, bool p_use_ssil, bool p_use_gi, RID p_normal_roughness_buffer, RID p_voxel_gi_buffer);
void _render_buffers_copy_screen_texture(const RenderDataRD *p_render_data);
void _render_buffers_copy_depth_texture(const RenderDataRD *p_render_data);
@@ -415,6 +418,14 @@ private:
float ssao_fadeout_from = 50.0;
float ssao_fadeout_to = 300.0;
+ RS::EnvironmentSSILQuality ssil_quality = RS::ENV_SSIL_QUALITY_MEDIUM;
+ bool ssil_half_size = false;
+ bool ssil_using_half_size = false;
+ float ssil_adaptive_target = 0.5;
+ int ssil_blur_passes = 4;
+ float ssil_fadeout_from = 50.0;
+ float ssil_fadeout_to = 300.0;
+
bool glow_bicubic_upscale = false;
bool glow_high_quality = false;
RS::EnvironmentSSRRoughnessQuality ssr_roughness_quality = RS::ENV_SSR_ROUGNESS_QUALITY_LOW;
@@ -524,20 +535,47 @@ private:
RID current_fb;
} luminance;
- struct SSAO {
- RID depth;
- Vector<RID> depth_slices;
- RID ao_deinterleaved;
- Vector<RID> ao_deinterleaved_slices;
- RID ao_pong;
- Vector<RID> ao_pong_slices;
- RID ao_final;
- RID importance_map[2];
+ struct SSEffects {
+ RID linear_depth;
+ Vector<RID> linear_depth_slices;
RID downsample_uniform_set;
- RID gather_uniform_set;
- RID importance_map_uniform_set;
- } ssao;
+
+ RID last_frame;
+ Vector<RID> last_frame_slices;
+
+ CameraMatrix last_frame_projection;
+ Transform3D last_frame_transform;
+
+ struct SSAO {
+ RID ao_deinterleaved;
+ Vector<RID> ao_deinterleaved_slices;
+ RID ao_pong;
+ Vector<RID> ao_pong_slices;
+ RID ao_final;
+ RID importance_map[2];
+ RID depth_texture_view;
+
+ RID gather_uniform_set;
+ RID importance_map_uniform_set;
+ } ssao;
+
+ struct SSIL {
+ RID ssil_final;
+ RID deinterleaved;
+ Vector<RID> deinterleaved_slices;
+ RID pong;
+ Vector<RID> pong_slices;
+ RID edges;
+ Vector<RID> edges_slices;
+ RID importance_map[2];
+ RID depth_texture_view;
+
+ RID gather_uniform_set;
+ RID importance_map_uniform_set;
+ RID projection_uniform_set;
+ } ssil;
+ } ss_effects;
struct SSR {
RID normal_scaled;
@@ -935,7 +973,7 @@ private:
uint32_t max_cluster_elements = 512;
- void _render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray<GeometryInstance *> &p_instances, const Plane &p_camera_plane = Plane(), float p_lod_distance_multiplier = 0, float p_screen_lod_threshold = 0.0, bool p_open_pass = true, bool p_close_pass = true, bool p_clear_region = true, RendererScene::RenderInfo *p_render_info = nullptr);
+ void _render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray<GeometryInstance *> &p_instances, const Plane &p_camera_plane = Plane(), float p_lod_distance_multiplier = 0, float p_screen_mesh_lod_threshold = 0.0, bool p_open_pass = true, bool p_close_pass = true, bool p_clear_region = true, RendererScene::RenderInfo *p_render_info = nullptr);
public:
virtual Transform3D geometry_instance_get_transform(GeometryInstance *p_instance) = 0;
@@ -1046,9 +1084,12 @@ public:
virtual void environment_set_ssr(RID p_env, bool p_enable, int p_max_steps, float p_fade_int, float p_fade_out, float p_depth_tolerance) override;
virtual void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_power, float p_detail, float p_horizon, float p_sharpness, float p_light_affect, float p_ao_channel_affect) override;
virtual void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override;
+ virtual void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) override;
+ virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override;
bool environment_is_ssao_enabled(RID p_env) const;
float environment_get_ssao_ao_affect(RID p_env) const;
float environment_get_ssao_light_affect(RID p_env) const;
+ bool environment_is_ssil_enabled(RID p_env) const;
bool environment_is_ssr_enabled(RID p_env) const;
bool environment_is_sdfgi_enabled(RID p_env) const;
@@ -1344,6 +1385,7 @@ public:
RID render_buffers_get_depth_texture(RID p_render_buffers);
RID render_buffers_get_ao_texture(RID p_render_buffers);
+ RID render_buffers_get_ssil_texture(RID p_render_buffers);
RID render_buffers_get_back_buffer_texture(RID p_render_buffers);
RID render_buffers_get_back_depth_texture(RID p_render_buffers);
RID render_buffers_get_voxel_gi_buffer(RID p_render_buffers);
@@ -1372,7 +1414,7 @@ public:
virtual void update_uniform_sets(){};
- virtual void render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RendererScene::RenderInfo *r_render_info = nullptr) override;
+ virtual void render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RendererScene::RenderInfo *r_render_info = nullptr) override;
virtual void render_material(const Transform3D &p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_ortogonal, const PagedArray<GeometryInstance *> &p_instances, RID p_framebuffer, const Rect2i &p_region) override;
diff --git a/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp
index f595edb225..8fb3c607fa 100644
--- a/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -360,7 +360,7 @@ void RendererSceneSkyRD::ReflectionData::update_reflection_data(RendererStorageR
mm.framebuffers[k] = RD::get_singleton()->framebuffer_create(fbtex);
}
- layer.views.write[j] = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), p_base_cube, p_base_layer + i * 6, j, RD::TEXTURE_SLICE_CUBEMAP);
+ layer.views.write[j] = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), p_base_cube, p_base_layer + i * 6, j, 1, RD::TEXTURE_SLICE_CUBEMAP);
mmw = MAX(1, mmw >> 1);
mmh = MAX(1, mmh >> 1);
@@ -388,7 +388,7 @@ void RendererSceneSkyRD::ReflectionData::update_reflection_data(RendererStorageR
mm.framebuffers[k] = RD::get_singleton()->framebuffer_create(fbtex);
}
- layer.views.write[j] = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), p_base_cube, p_base_layer, j, RD::TEXTURE_SLICE_CUBEMAP);
+ layer.views.write[j] = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), p_base_cube, p_base_layer, j, 1, RD::TEXTURE_SLICE_CUBEMAP);
mmw = MAX(1, mmw >> 1);
mmh = MAX(1, mmh >> 1);
@@ -397,7 +397,7 @@ void RendererSceneSkyRD::ReflectionData::update_reflection_data(RendererStorageR
layers.push_back(layer);
}
- radiance_base_cubemap = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), p_base_cube, p_base_layer, 0, RD::TEXTURE_SLICE_CUBEMAP);
+ radiance_base_cubemap = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), p_base_cube, p_base_layer, 0, 1, RD::TEXTURE_SLICE_CUBEMAP);
RD::get_singleton()->set_resource_name(radiance_base_cubemap, "radiance base cubemap");
RD::TextureFormat tf;
tf.format = p_texture_format;
@@ -418,7 +418,7 @@ void RendererSceneSkyRD::ReflectionData::update_reflection_data(RendererStorageR
ReflectionData::DownsampleLayer::Mipmap &mm = downsampled_layer.mipmaps.write[j];
mm.size.width = mmw;
mm.size.height = mmh;
- mm.view = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), downsampled_radiance_cubemap, 0, j, RD::TEXTURE_SLICE_CUBEMAP);
+ mm.view = RD::get_singleton()->texture_create_shared_from_slice(RD::TextureView(), downsampled_radiance_cubemap, 0, j, 1, RD::TEXTURE_SLICE_CUBEMAP);
RD::get_singleton()->set_resource_name(mm.view, "Downsampled Radiance Cubemap Mip " + itos(j) + " ");
if (prefer_raster_effects) {
// we need a framebuffer for each side of our cubemap
diff --git a/servers/rendering/renderer_rd/renderer_scene_sky_rd.h b/servers/rendering/renderer_rd/renderer_scene_sky_rd.h
index 8689395bea..1359cdec67 100644
--- a/servers/rendering/renderer_rd/renderer_scene_sky_rd.h
+++ b/servers/rendering/renderer_rd/renderer_scene_sky_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/renderer_storage_rd.cpp b/servers/rendering/renderer_rd/renderer_storage_rd.cpp
index 321d86ffda..932cdcaea8 100644
--- a/servers/rendering/renderer_rd/renderer_storage_rd.cpp
+++ b/servers/rendering/renderer_rd/renderer_storage_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -971,12 +971,7 @@ void RendererStorageRD::texture_2d_placeholder_initialize(RID p_texture) {
Ref<Image> image;
image.instantiate();
image->create(4, 4, false, Image::FORMAT_RGBA8);
-
- for (int i = 0; i < 4; i++) {
- for (int j = 0; j < 4; j++) {
- image->set_pixel(i, j, Color(1, 0, 1, 1));
- }
- }
+ image->fill(Color(1, 0, 1, 1));
texture_2d_initialize(p_texture, image);
}
@@ -987,12 +982,7 @@ void RendererStorageRD::texture_2d_layered_placeholder_initialize(RID p_texture,
Ref<Image> image;
image.instantiate();
image->create(4, 4, false, Image::FORMAT_RGBA8);
-
- for (int i = 0; i < 4; i++) {
- for (int j = 0; j < 4; j++) {
- image->set_pixel(i, j, Color(1, 0, 1, 1));
- }
- }
+ image->fill(Color(1, 0, 1, 1));
Vector<Ref<Image>> images;
if (p_layered_type == RS::TEXTURE_LAYERED_2D_ARRAY) {
@@ -1013,12 +1003,7 @@ void RendererStorageRD::texture_3d_placeholder_initialize(RID p_texture) {
Ref<Image> image;
image.instantiate();
image->create(4, 4, false, Image::FORMAT_RGBA8);
-
- for (int i = 0; i < 4; i++) {
- for (int j = 0; j < 4; j++) {
- image->set_pixel(i, j, Color(1, 0, 1, 1));
- }
- }
+ image->fill(Color(1, 0, 1, 1));
Vector<Ref<Image>> images;
//cube
@@ -1639,14 +1624,14 @@ void RendererStorageRD::material_initialize(RID p_rid) {
}
void RendererStorageRD::_material_queue_update(Material *material, bool p_uniform, bool p_texture) {
+ material->uniform_dirty = material->uniform_dirty || p_uniform;
+ material->texture_dirty = material->texture_dirty || p_texture;
+
if (material->update_element.in_list()) {
return;
}
material_update_list.add(&material->update_element);
-
- material->uniform_dirty = material->uniform_dirty || p_uniform;
- material->texture_dirty = material->texture_dirty || p_texture;
}
void RendererStorageRD::material_set_shader(RID p_material, RID p_shader) {
@@ -2655,13 +2640,13 @@ void RendererStorageRD::MaterialData::update_uniform_buffer(const Map<StringName
uint32_t size = 0U;
// The following code enforces a 16-byte alignment of uniform arrays.
if (E.value.array_size > 0) {
- size = ShaderLanguage::get_type_size(E.value.type) * E.value.array_size;
+ size = ShaderLanguage::get_datatype_size(E.value.type) * E.value.array_size;
int m = (16 * E.value.array_size);
if ((size % m) != 0U) {
size += m - (size % m);
}
} else {
- size = ShaderLanguage::get_type_size(E.value.type);
+ size = ShaderLanguage::get_datatype_size(E.value.type);
}
ERR_CONTINUE(offset + size > p_buffer_size);
#endif
@@ -2818,12 +2803,15 @@ void RendererStorageRD::MaterialData::update_textures(const Map<StringName, Vari
case ShaderLanguage::ShaderNode::Uniform::HINT_BLACK_ALBEDO: {
rd_texture = singleton->texture_rd_get_default(DEFAULT_RD_TEXTURE_BLACK);
} break;
- case ShaderLanguage::ShaderNode::Uniform::HINT_NONE: {
- rd_texture = singleton->texture_rd_get_default(DEFAULT_RD_TEXTURE_NORMAL);
- } break;
case ShaderLanguage::ShaderNode::Uniform::HINT_ANISOTROPY: {
rd_texture = singleton->texture_rd_get_default(DEFAULT_RD_TEXTURE_ANISO);
} break;
+ case ShaderLanguage::ShaderNode::Uniform::HINT_NORMAL: {
+ rd_texture = singleton->texture_rd_get_default(DEFAULT_RD_TEXTURE_NORMAL);
+ } break;
+ case ShaderLanguage::ShaderNode::Uniform::HINT_ROUGHNESS_NORMAL: {
+ rd_texture = singleton->texture_rd_get_default(DEFAULT_RD_TEXTURE_NORMAL);
+ } break;
default: {
rd_texture = singleton->texture_rd_get_default(DEFAULT_RD_TEXTURE_WHITE);
} break;
@@ -3875,7 +3863,7 @@ void RendererStorageRD::_mesh_surface_generate_version_for_input_mask(Mesh::Surf
} break;
case RS::ARRAY_WEIGHTS: {
//assumed weights too
- vd.format = RD::DATA_FORMAT_R32G32B32A32_UINT;
+ vd.format = RD::DATA_FORMAT_R32G32B32A32_SFLOAT;
} break;
}
} else {
@@ -6877,11 +6865,11 @@ void RendererStorageRD::reflection_probe_set_resolution(RID p_probe, int p_resol
reflection_probe->resolution = p_resolution;
}
-void RendererStorageRD::reflection_probe_set_lod_threshold(RID p_probe, float p_ratio) {
+void RendererStorageRD::reflection_probe_set_mesh_lod_threshold(RID p_probe, float p_ratio) {
ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND(!reflection_probe);
- reflection_probe->lod_threshold = p_ratio;
+ reflection_probe->mesh_lod_threshold = p_ratio;
reflection_probe->dependency.changed_notify(DEPENDENCY_CHANGED_REFLECTION_PROBE);
}
@@ -6939,11 +6927,11 @@ float RendererStorageRD::reflection_probe_get_origin_max_distance(RID p_probe) c
return reflection_probe->max_distance;
}
-float RendererStorageRD::reflection_probe_get_lod_threshold(RID p_probe) const {
+float RendererStorageRD::reflection_probe_get_mesh_lod_threshold(RID p_probe) const {
const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe);
ERR_FAIL_COND_V(!reflection_probe, 0);
- return reflection_probe->lod_threshold;
+ return reflection_probe->mesh_lod_threshold;
}
int RendererStorageRD::reflection_probe_get_resolution(RID p_probe) const {
@@ -9234,7 +9222,7 @@ void RendererStorageRD::_update_global_variables() {
for (uint32_t i = 0; i < total_regions; i++) {
if (global_variables.buffer_dirty_regions[i]) {
- RD::get_singleton()->buffer_update(global_variables.buffer, i * region_byte_size, region_byte_size, global_variables.buffer_values);
+ RD::get_singleton()->buffer_update(global_variables.buffer, i * region_byte_size, region_byte_size, &global_variables.buffer_values[i * GlobalVariables::BUFFER_DIRTY_REGION_SIZE]);
global_variables.buffer_dirty_regions[i] = false;
}
@@ -9529,10 +9517,15 @@ uint64_t RendererStorageRD::get_rendering_info(RS::RenderingInfo p_info) {
String RendererStorageRD::get_video_adapter_name() const {
return RenderingDevice::get_singleton()->get_device_name();
}
+
String RendererStorageRD::get_video_adapter_vendor() const {
return RenderingDevice::get_singleton()->get_device_vendor_name();
}
+RenderingDevice::DeviceType RendererStorageRD::get_video_adapter_type() const {
+ return RenderingDevice::get_singleton()->get_device_type();
+}
+
RendererStorageRD *RendererStorageRD::base_singleton = nullptr;
RendererStorageRD::RendererStorageRD() {
diff --git a/servers/rendering/renderer_rd/renderer_storage_rd.h b/servers/rendering/renderer_rd/renderer_storage_rd.h
index 9a64480c3e..cca61008c7 100644
--- a/servers/rendering/renderer_rd/renderer_storage_rd.h
+++ b/servers/rendering/renderer_rd/renderer_storage_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1053,7 +1053,7 @@ private:
bool box_projection = false;
bool enable_shadows = false;
uint32_t cull_mask = (1 << 20) - 1;
- float lod_threshold = 0.01;
+ float mesh_lod_threshold = 0.01;
Dependency dependency;
};
@@ -1099,7 +1099,7 @@ private:
AABB bounds;
Vector3i octree_size;
- float dynamic_range = 4.0;
+ float dynamic_range = 2.0;
float energy = 1.0;
float bias = 1.4;
float normal_bias = 0.0;
@@ -1557,7 +1557,7 @@ public:
return s->index_count ? s->index_count : s->vertex_count;
}
- _FORCE_INLINE_ uint32_t mesh_surface_get_lod(void *p_surface, float p_model_scale, float p_distance_threshold, float p_lod_threshold, uint32_t *r_index_count = nullptr) const {
+ _FORCE_INLINE_ uint32_t mesh_surface_get_lod(void *p_surface, float p_model_scale, float p_distance_threshold, float p_mesh_lod_threshold, uint32_t *r_index_count = nullptr) const {
Mesh::Surface *s = reinterpret_cast<Mesh::Surface *>(p_surface);
int32_t current_lod = -1;
@@ -1566,7 +1566,7 @@ public:
}
for (uint32_t i = 0; i < s->lod_count; i++) {
float screen_size = s->lods[i].edge_length * p_model_scale / p_distance_threshold;
- if (screen_size > p_lod_threshold) {
+ if (screen_size > p_mesh_lod_threshold) {
break;
}
current_lod = i;
@@ -1955,7 +1955,7 @@ public:
void reflection_probe_set_enable_shadows(RID p_probe, bool p_enable);
void reflection_probe_set_cull_mask(RID p_probe, uint32_t p_layers);
void reflection_probe_set_resolution(RID p_probe, int p_resolution);
- void reflection_probe_set_lod_threshold(RID p_probe, float p_ratio);
+ void reflection_probe_set_mesh_lod_threshold(RID p_probe, float p_ratio);
AABB reflection_probe_get_aabb(RID p_probe) const;
RS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const;
@@ -1963,7 +1963,7 @@ public:
Vector3 reflection_probe_get_extents(RID p_probe) const;
Vector3 reflection_probe_get_origin_offset(RID p_probe) const;
float reflection_probe_get_origin_max_distance(RID p_probe) const;
- float reflection_probe_get_lod_threshold(RID p_probe) const;
+ float reflection_probe_get_mesh_lod_threshold(RID p_probe) const;
int reflection_probe_get_resolution(RID p_probe) const;
bool reflection_probe_renders_shadows(RID p_probe) const;
@@ -2393,6 +2393,7 @@ public:
String get_video_adapter_name() const;
String get_video_adapter_vendor() const;
+ RenderingDevice::DeviceType get_video_adapter_type() const;
virtual void capture_timestamps_begin();
virtual void capture_timestamp(const String &p_name);
diff --git a/servers/rendering/renderer_rd/shader_compiler_rd.cpp b/servers/rendering/renderer_rd/shader_compiler_rd.cpp
index 794c999d1d..38ac00176f 100644
--- a/servers/rendering/renderer_rd/shader_compiler_rd.cpp
+++ b/servers/rendering/renderer_rd/shader_compiler_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -54,81 +54,6 @@ static String _typestr(SL::DataType p_type) {
return type;
}
-static int _get_datatype_size(SL::DataType p_type) {
- switch (p_type) {
- case SL::TYPE_VOID:
- return 0;
- case SL::TYPE_BOOL:
- return 4;
- case SL::TYPE_BVEC2:
- return 8;
- case SL::TYPE_BVEC3:
- return 12;
- case SL::TYPE_BVEC4:
- return 16;
- case SL::TYPE_INT:
- return 4;
- case SL::TYPE_IVEC2:
- return 8;
- case SL::TYPE_IVEC3:
- return 12;
- case SL::TYPE_IVEC4:
- return 16;
- case SL::TYPE_UINT:
- return 4;
- case SL::TYPE_UVEC2:
- return 8;
- case SL::TYPE_UVEC3:
- return 12;
- case SL::TYPE_UVEC4:
- return 16;
- case SL::TYPE_FLOAT:
- return 4;
- case SL::TYPE_VEC2:
- return 8;
- case SL::TYPE_VEC3:
- return 12;
- case SL::TYPE_VEC4:
- return 16;
- case SL::TYPE_MAT2:
- return 32; // 4 * 4 + 4 * 4
- case SL::TYPE_MAT3:
- return 48; // 4 * 4 + 4 * 4 + 4 * 4
- case SL::TYPE_MAT4:
- return 64;
- case SL::TYPE_SAMPLER2D:
- return 16;
- case SL::TYPE_ISAMPLER2D:
- return 16;
- case SL::TYPE_USAMPLER2D:
- return 16;
- case SL::TYPE_SAMPLER2DARRAY:
- return 16;
- case SL::TYPE_ISAMPLER2DARRAY:
- return 16;
- case SL::TYPE_USAMPLER2DARRAY:
- return 16;
- case SL::TYPE_SAMPLER3D:
- return 16;
- case SL::TYPE_ISAMPLER3D:
- return 16;
- case SL::TYPE_USAMPLER3D:
- return 16;
- case SL::TYPE_SAMPLERCUBE:
- return 16;
- case SL::TYPE_SAMPLERCUBEARRAY:
- return 16;
- case SL::TYPE_STRUCT:
- return 0;
-
- case SL::TYPE_MAX: {
- ERR_FAIL_V(0);
- };
- }
-
- ERR_FAIL_V(0);
-}
-
static int _get_datatype_alignment(SL::DataType p_type) {
switch (p_type) {
case SL::TYPE_VOID:
@@ -658,12 +583,12 @@ String ShaderCompilerRD::_dump_node_code(const SL::Node *p_node, int p_level, Ge
uniform_defines.write[uniform.order] = ucode;
if (is_buffer_global) {
//globals are indices into the global table
- uniform_sizes.write[uniform.order] = _get_datatype_size(ShaderLanguage::TYPE_UINT);
+ uniform_sizes.write[uniform.order] = ShaderLanguage::get_datatype_size(ShaderLanguage::TYPE_UINT);
uniform_alignments.write[uniform.order] = _get_datatype_alignment(ShaderLanguage::TYPE_UINT);
} else {
// The following code enforces a 16-byte alignment of uniform arrays.
if (uniform.array_size > 0) {
- int size = _get_datatype_size(uniform.type) * uniform.array_size;
+ int size = ShaderLanguage::get_datatype_size(uniform.type) * uniform.array_size;
int m = (16 * uniform.array_size);
if ((size % m) != 0) {
size += m - (size % m);
@@ -671,7 +596,7 @@ String ShaderCompilerRD::_dump_node_code(const SL::Node *p_node, int p_level, Ge
uniform_sizes.write[uniform.order] = size;
uniform_alignments.write[uniform.order] = 16;
} else {
- uniform_sizes.write[uniform.order] = _get_datatype_size(uniform.type);
+ uniform_sizes.write[uniform.order] = ShaderLanguage::get_datatype_size(uniform.type);
uniform_alignments.write[uniform.order] = _get_datatype_alignment(uniform.type);
}
}
diff --git a/servers/rendering/renderer_rd/shader_compiler_rd.h b/servers/rendering/renderer_rd/shader_compiler_rd.h
index 2ab689c27c..5670d881f6 100644
--- a/servers/rendering/renderer_rd/shader_compiler_rd.h
+++ b/servers/rendering/renderer_rd/shader_compiler_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/shader_rd.cpp b/servers/rendering/renderer_rd/shader_rd.cpp
index 438e78ba8c..73766d14d8 100644
--- a/servers/rendering/renderer_rd/shader_rd.cpp
+++ b/servers/rendering/renderer_rd/shader_rd.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/shader_rd.h b/servers/rendering/renderer_rd/shader_rd.h
index 984b168659..06f78ab193 100644
--- a/servers/rendering/renderer_rd/shader_rd.h
+++ b/servers/rendering/renderer_rd/shader_rd.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/shaders/copy.glsl b/servers/rendering/renderer_rd/shaders/copy.glsl
index 4110a95ddb..d4d0ed0f56 100644
--- a/servers/rendering/renderer_rd/shaders/copy.glsl
+++ b/servers/rendering/renderer_rd/shaders/copy.glsl
@@ -84,6 +84,8 @@ void main() {
color += texelFetch(source_color, base_pos + ivec2(1, 0), 0);
color += texelFetch(source_color, base_pos + ivec2(1, 1), 0);
color /= 4.0;
+ color = mix(color, vec4(100.0, 100.0, 100.0, 1.0), isinf(color));
+ color = mix(color, vec4(100.0, 100.0, 100.0, 1.0), isnan(color));
imageStore(dest_buffer, pos + params.target, color);
#endif
@@ -132,6 +134,13 @@ void main() {
local_cache[dest_index + 16] = textureLod(source_color, quad_center_uv + vec2(0.0, 1.0 / params.section.w), 0);
local_cache[dest_index + 16 + 1] = textureLod(source_color, quad_center_uv + vec2(1.0 / params.section.zw), 0);
}
+ if (bool(params.flags & FLAG_GLOW_FIRST_PASS)) {
+ // Tonemap initial samples to reduce weight of fireflies: https://graphicrants.blogspot.com/2013/12/tone-mapping.html
+ local_cache[dest_index] /= 1.0 + dot(local_cache[dest_index].rgb, vec3(0.299, 0.587, 0.114));
+ local_cache[dest_index + 1] /= 1.0 + dot(local_cache[dest_index + 1].rgb, vec3(0.299, 0.587, 0.114));
+ local_cache[dest_index + 16] /= 1.0 + dot(local_cache[dest_index + 16].rgb, vec3(0.299, 0.587, 0.114));
+ local_cache[dest_index + 16 + 1] /= 1.0 + dot(local_cache[dest_index + 16 + 1].rgb, vec3(0.299, 0.587, 0.114));
+ }
memoryBarrierShared();
barrier();
@@ -177,6 +186,11 @@ void main() {
color += temp_cache[index - 2] * 0.140367;
color += temp_cache[index - 3] * 0.106595;
+ if (bool(params.flags & FLAG_GLOW_FIRST_PASS)) {
+ // Undo tonemap to restore range: https://graphicrants.blogspot.com/2013/12/tone-mapping.html
+ color /= 1.0 - dot(color.rgb, vec3(0.299, 0.587, 0.114));
+ }
+
color *= params.glow_strength;
if (bool(params.flags & FLAG_GLOW_FIRST_PASS)) {
@@ -186,7 +200,7 @@ void main() {
#endif
color *= params.glow_exposure;
- float luminance = max(color.r, max(color.g, color.b));
+ float luminance = dot(color.rgb, vec3(0.299, 0.587, 0.114));
float feedback = max(smoothstep(params.glow_hdr_threshold, params.glow_hdr_threshold + params.glow_hdr_scale, luminance), params.glow_bloom);
color = min(color * feedback, vec4(params.glow_luminance_cap));
@@ -256,7 +270,9 @@ void main() {
const float PI = 3.14159265359;
vec2 uv = vec2(pos) / vec2(params.section.zw);
- uv.y = 1.0 - uv.y;
+ if (bool(params.flags & FLAG_FLIP_Y)) {
+ uv.y = 1.0 - uv.y;
+ }
float phi = uv.x * 2.0 * PI;
float theta = uv.y * PI;
diff --git a/servers/rendering/renderer_rd/shaders/fsr_upscale.glsl b/servers/rendering/renderer_rd/shaders/fsr_upscale.glsl
index 4e2ba84033..54a7790f77 100644
--- a/servers/rendering/renderer_rd/shaders/fsr_upscale.glsl
+++ b/servers/rendering/renderer_rd/shaders/fsr_upscale.glsl
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_rd/shaders/gi.glsl b/servers/rendering/renderer_rd/shaders/gi.glsl
index 5528ea3659..9854f124d7 100644
--- a/servers/rendering/renderer_rd/shaders/gi.glsl
+++ b/servers/rendering/renderer_rd/shaders/gi.glsl
@@ -68,19 +68,15 @@ sdfgi;
#define MAX_VOXEL_GI_INSTANCES 8
struct VoxelGIData {
- mat4 xform;
- vec3 bounds;
- float dynamic_range;
+ mat4 xform; // 64 - 64
- float bias;
- float normal_bias;
- bool blend_ambient;
- uint texture_slot;
+ vec3 bounds; // 12 - 76
+ float dynamic_range; // 4 - 80
- uint pad0;
- uint pad1;
- uint pad2;
- uint mipmaps;
+ float bias; // 4 - 84
+ float normal_bias; // 4 - 88
+ bool blend_ambient; // 4 - 92
+ uint mipmaps; // 4 - 96
};
layout(set = 0, binding = 16, std140) uniform VoxelGIs {
diff --git a/servers/rendering/renderer_rd/shaders/giprobe_write.glsl b/servers/rendering/renderer_rd/shaders/giprobe_write.glsl
index 25d87ca45d..a6d65bffeb 100644
--- a/servers/rendering/renderer_rd/shaders/giprobe_write.glsl
+++ b/servers/rendering/renderer_rd/shaders/giprobe_write.glsl
@@ -7,7 +7,6 @@
layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
#define NO_CHILDREN 0xFFFFFFFF
-#define GREY_VEC vec3(0.33333, 0.33333, 0.33333)
struct CellChildren {
uint children[8];
diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl
index e4628b2d5a..608b76b108 100644
--- a/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl
+++ b/servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl
@@ -251,7 +251,9 @@ void main() {
vertex = (world_matrix * vec4(vertex, 1.0)).xyz;
+#ifdef NORMAL_USED
normal = world_normal_matrix * normal;
+#endif
#if defined(TANGENT_USED) || defined(NORMAL_MAP_USED) || defined(LIGHT_ANISOTROPY_USED)
@@ -290,12 +292,13 @@ void main() {
#if !defined(SKIP_TRANSFORM_USED) && defined(VERTEX_WORLD_COORDS_USED)
vertex = (scene_data.inv_camera_matrix * vec4(vertex, 1.0)).xyz;
- normal = mat3(scene_data.inverse_normal_matrix) * normal;
+#ifdef NORMAL_USED
+ normal = (scene_data.inv_camera_matrix * vec4(normal, 0.0)).xyz;
+#endif
#if defined(TANGENT_USED) || defined(NORMAL_MAP_USED) || defined(LIGHT_ANISOTROPY_USED)
-
- binormal = mat3(scene_data.camera_inverse_binormal_matrix) * binormal;
- tangent = mat3(scene_data.camera_inverse_tangent_matrix) * tangent;
+ binormal = (scene_data.inv_camera_matrix * vec4(binormal, 0.0)).xyz;
+ tangent = (scene_data.inv_camera_matrix * vec4(tangent, 0.0)).xyz;
#endif
#endif
@@ -1153,7 +1156,7 @@ void main() {
}
#endif // !USE_LIGHTMAP
- if (scene_data.ssao_enabled) {
+ if (bool(scene_data.ss_effects_flags & SCREEN_SPACE_EFFECTS_FLAGS_USE_SSAO)) {
float ssao = texture(sampler2D(ao_buffer, material_samplers[SAMPLER_LINEAR_CLAMP]), screen_uv).r;
ao = min(ao, ssao);
ao_light_affect = mix(ao_light_affect, max(ao_light_affect, scene_data.ssao_light_affect), scene_data.ssao_ao_affect);
@@ -1223,6 +1226,12 @@ void main() {
// convert ao to direct light ao
ao = mix(1.0, ao, ao_light_affect);
+ if (bool(scene_data.ss_effects_flags & SCREEN_SPACE_EFFECTS_FLAGS_USE_SSIL)) {
+ vec4 ssil = textureLod(sampler2D(ssil_buffer, material_samplers[SAMPLER_LINEAR_CLAMP]), screen_uv, 0.0);
+ ambient_light *= 1.0 - ssil.a;
+ ambient_light += ssil.rgb * albedo.rgb;
+ }
+
//this saves some VGPRs
vec3 f0 = F0(metallic, specular, albedo);
diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_clustered_inc.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_clustered_inc.glsl
index be29cf4f58..0f7cd18534 100644
--- a/servers/rendering/renderer_rd/shaders/scene_forward_clustered_inc.glsl
+++ b/servers/rendering/renderer_rd/shaders/scene_forward_clustered_inc.glsl
@@ -72,6 +72,9 @@ layout(set = 0, binding = 4) uniform sampler light_projector_sampler;
//3 bits of stride
#define INSTANCE_FLAGS_PARTICLE_TRAIL_MASK 0xFF
+#define SCREEN_SPACE_EFFECTS_FLAGS_USE_SSAO 1
+#define SCREEN_SPACE_EFFECTS_FLAGS_USE_SSIL 2
+
layout(set = 0, binding = 5, std430) restrict readonly buffer OmniLights {
LightData data[];
}
@@ -201,7 +204,7 @@ layout(set = 1, binding = 0, std140) uniform SceneData {
float z_far;
float z_near;
- bool ssao_enabled;
+ uint ss_effects_flags;
float ssao_light_affect;
float ssao_ao_affect;
bool roughness_limiter_enabled;
@@ -305,19 +308,15 @@ layout(set = 1, binding = 15) uniform texture2DArray sdfgi_lightprobe_texture;
layout(set = 1, binding = 16) uniform texture3D sdfgi_occlusion_cascades;
struct VoxelGIData {
- mat4 xform;
- vec3 bounds;
- float dynamic_range;
+ mat4 xform; // 64 - 64
- float bias;
- float normal_bias;
- bool blend_ambient;
- uint texture_slot;
+ vec3 bounds; // 12 - 76
+ float dynamic_range; // 4 - 80
- float anisotropy_strength;
- float ambient_occlusion;
- float ambient_occlusion_size;
- uint mipmaps;
+ float bias; // 4 - 84
+ float normal_bias; // 4 - 88
+ bool blend_ambient; // 4 - 92
+ uint mipmaps; // 4 - 96
};
layout(set = 1, binding = 17, std140) uniform VoxelGIs {
@@ -327,6 +326,8 @@ voxel_gi_instances;
layout(set = 1, binding = 18) uniform texture3D volumetric_fog_texture;
+layout(set = 1, binding = 19) uniform texture2D ssil_buffer;
+
#endif
/* Set 2 Skeleton & Instancing (can change per item) */
diff --git a/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl b/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl
index e92fbecfd0..9e3732fd2b 100644
--- a/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl
+++ b/servers/rendering/renderer_rd/shaders/scene_forward_mobile.glsl
@@ -261,7 +261,9 @@ void main() {
vertex = (world_matrix * vec4(vertex, 1.0)).xyz;
+#ifdef NORMAL_USED
normal = world_normal_matrix * normal;
+#endif
#if defined(TANGENT_USED) || defined(NORMAL_MAP_USED) || defined(LIGHT_ANISOTROPY_USED)
@@ -302,12 +304,13 @@ void main() {
#if !defined(SKIP_TRANSFORM_USED) && defined(VERTEX_WORLD_COORDS_USED)
vertex = (scene_data.inv_camera_matrix * vec4(vertex, 1.0)).xyz;
- normal = mat3(scene_data.inverse_normal_matrix) * normal;
+#ifdef NORMAL_USED
+ normal = (scene_data.inv_camera_matrix * vec4(normal, 0.0)).xyz;
+#endif
#if defined(TANGENT_USED) || defined(NORMAL_MAP_USED) || defined(LIGHT_ANISOTROPY_USED)
-
- binormal = mat3(scene_data.camera_inverse_binormal_matrix) * binormal;
- tangent = mat3(scene_data.camera_inverse_tangent_matrix) * tangent;
+ binormal = (scene_data.inv_camera_matrix * vec4(binormal, 0.0)).xyz;
+ tangent = (scene_data.inv_camera_matrix * vec4(tangent, 0.0)).xyz;
#endif
#endif
diff --git a/servers/rendering/renderer_rd/shaders/screen_space_reflection.glsl b/servers/rendering/renderer_rd/shaders/screen_space_reflection.glsl
index 78e0a85341..fde5688301 100644
--- a/servers/rendering/renderer_rd/shaders/screen_space_reflection.glsl
+++ b/servers/rendering/renderer_rd/shaders/screen_space_reflection.glsl
@@ -223,7 +223,6 @@ void main() {
blur_radius = (a * (sqrt(a2 + fh2) - a)) / (4.0f * h);
}
}
-
final_color = imageLoad(source_diffuse, ivec2((final_pos - 0.5) * pixel_size));
imageStore(blur_radius_image, ssC, vec4(blur_radius / 255.0)); //stored in r8
diff --git a/servers/rendering/renderer_rd/shaders/ssao_downsample.glsl b/servers/rendering/renderer_rd/shaders/ss_effects_downsample.glsl
index ee0db6a6f0..bdabc146d8 100644
--- a/servers/rendering/renderer_rd/shaders/ssao_downsample.glsl
+++ b/servers/rendering/renderer_rd/shaders/ss_effects_downsample.glsl
@@ -42,6 +42,9 @@ layout(r16f, set = 1, binding = 0) uniform restrict writeonly image2DArray dest_
layout(r16f, set = 2, binding = 0) uniform restrict writeonly image2DArray dest_image1;
layout(r16f, set = 2, binding = 1) uniform restrict writeonly image2DArray dest_image2;
layout(r16f, set = 2, binding = 2) uniform restrict writeonly image2DArray dest_image3;
+#ifdef GENERATE_FULL_MIPS
+layout(r16f, set = 2, binding = 3) uniform restrict writeonly image2DArray dest_image4;
+#endif
#endif
vec4 screen_space_to_view_space_depth(vec4 p_depth) {
@@ -150,7 +153,27 @@ void prepare_depths_and_mips(vec4 p_samples, uvec2 p_output_coord, uvec2 p_gtid)
float avg = mip_smart_average(vec4(sample_00, sample_01, sample_10, sample_11));
imageStore(dest_image3, ivec3(p_output_coord.x, p_output_coord.y, depth_array_index), vec4(avg));
+#ifndef GENERATE_FULL_MIPS
+ }
+#else
+ depth_buffer[depth_array_index][buffer_coord.x][buffer_coord.y] = avg;
}
+ still_alive = p_gtid.x % 16 == depth_array_offset.x && depth_array_offset.y % 16 == depth_array_offset.y;
+
+ p_output_coord /= 2;
+ groupMemoryBarrier();
+ barrier();
+
+ if (still_alive) {
+ float sample_00 = depth_buffer[depth_array_index][buffer_coord.x + 0][buffer_coord.y + 0];
+ float sample_01 = depth_buffer[depth_array_index][buffer_coord.x + 0][buffer_coord.y + 8];
+ float sample_10 = depth_buffer[depth_array_index][buffer_coord.x + 8][buffer_coord.y + 0];
+ float sample_11 = depth_buffer[depth_array_index][buffer_coord.x + 8][buffer_coord.y + 8];
+
+ float avg = mip_smart_average(vec4(sample_00, sample_01, sample_10, sample_11));
+ imageStore(dest_image4, ivec3(p_output_coord.x, p_output_coord.y, depth_array_index), vec4(avg));
+ }
+#endif
}
#else
#ifndef USE_HALF_BUFFERS
diff --git a/servers/rendering/renderer_rd/shaders/ssao.glsl b/servers/rendering/renderer_rd/shaders/ssao.glsl
index 6e945edfcd..18cab75c3b 100644
--- a/servers/rendering/renderer_rd/shaders/ssao.glsl
+++ b/servers/rendering/renderer_rd/shaders/ssao.glsl
@@ -23,8 +23,6 @@
#VERSION_DEFINES
-#define SSAO_ADAPTIVE_TAP_BASE_COUNT 5
-
#define INTELSSAO_MAIN_DISK_SAMPLE_COUNT (32)
const vec4 sample_pattern[INTELSSAO_MAIN_DISK_SAMPLE_COUNT] = {
vec4(0.78488064, 0.56661671, 1.500000, -0.126083), vec4(0.26022232, -0.29575172, 1.500000, -1.064030), vec4(0.10459357, 0.08372527, 1.110000, -2.730563), vec4(-0.68286800, 0.04963045, 1.090000, -0.498827),
@@ -62,7 +60,6 @@ const int num_taps[5] = { 3, 5, 12, 0, 0 };
#define SSAO_REDUCE_RADIUS_NEAR_SCREEN_BORDER_ENABLE_AT_QUALITY_PRESET (1)
#define SSAO_MAX_TAPS 32
-#define SSAO_MAX_REF_TAPS 512
#define SSAO_ADAPTIVE_TAP_BASE_COUNT 5
#define SSAO_ADAPTIVE_TAP_FLEXIBLE_COUNT (SSAO_MAX_TAPS - SSAO_ADAPTIVE_TAP_BASE_COUNT)
#define SSAO_DEPTH_MIP_LEVELS 4
diff --git a/servers/rendering/renderer_rd/shaders/ssao_blur.glsl b/servers/rendering/renderer_rd/shaders/ssao_blur.glsl
index d9cd2b4e85..b154f5e527 100644
--- a/servers/rendering/renderer_rd/shaders/ssao_blur.glsl
+++ b/servers/rendering/renderer_rd/shaders/ssao_blur.glsl
@@ -128,19 +128,19 @@ void main() {
#ifdef MODE_NON_SMART
- vec2 halfPixel = params.half_screen_pixel_size * 0.5f;
+ vec2 half_pixel = params.half_screen_pixel_size * 0.5;
vec2 uv = (vec2(gl_GlobalInvocationID.xy) + vec2(0.5, 0.5)) * params.half_screen_pixel_size;
- vec2 centre = textureLod(source_ssao, vec2(uv), 0.0).xy;
+ vec2 center = textureLod(source_ssao, vec2(uv), 0.0).xy;
vec4 vals;
- vals.x = textureLod(source_ssao, vec2(uv + vec2(-halfPixel.x * 3, -halfPixel.y)), 0.0).x;
- vals.y = textureLod(source_ssao, vec2(uv + vec2(+halfPixel.x, -halfPixel.y * 3)), 0.0).x;
- vals.z = textureLod(source_ssao, vec2(uv + vec2(-halfPixel.x, +halfPixel.y * 3)), 0.0).x;
- vals.w = textureLod(source_ssao, vec2(uv + vec2(+halfPixel.x * 3, +halfPixel.y)), 0.0).x;
+ vals.x = textureLod(source_ssao, vec2(uv + vec2(-half_pixel.x * 3, -half_pixel.y)), 0.0).x;
+ vals.y = textureLod(source_ssao, vec2(uv + vec2(+half_pixel.x, -half_pixel.y * 3)), 0.0).x;
+ vals.z = textureLod(source_ssao, vec2(uv + vec2(-half_pixel.x, +half_pixel.y * 3)), 0.0).x;
+ vals.w = textureLod(source_ssao, vec2(uv + vec2(+half_pixel.x * 3, +half_pixel.y)), 0.0).x;
- vec2 sampled = vec2(dot(vals, vec4(0.2)) + centre.x * 0.2, centre.y);
+ vec2 sampled = vec2(dot(vals, vec4(0.2)) + center.x * 0.2, center.y);
#else
#ifdef MODE_SMART
diff --git a/servers/rendering/renderer_rd/shaders/ssao_importance_map.glsl b/servers/rendering/renderer_rd/shaders/ssao_importance_map.glsl
index 687fe1e6e2..23eba34d63 100644
--- a/servers/rendering/renderer_rd/shaders/ssao_importance_map.glsl
+++ b/servers/rendering/renderer_rd/shaders/ssao_importance_map.glsl
@@ -26,7 +26,7 @@
layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
#ifdef GENERATE_MAP
-layout(set = 0, binding = 0) uniform sampler2DArray source_ssao;
+layout(set = 0, binding = 0) uniform sampler2DArray source_texture;
#else
layout(set = 0, binding = 0) uniform sampler2D source_importance;
#endif
@@ -56,11 +56,10 @@ void main() {
vec2 base_uv = (vec2(base_position) + vec2(0.5f, 0.5f)) * params.half_screen_pixel_size;
- float avg = 0.0;
float minV = 1.0;
float maxV = 0.0;
for (int i = 0; i < 4; i++) {
- vec4 vals = textureGather(source_ssao, vec3(base_uv, i));
+ vec4 vals = textureGather(source_texture, vec3(base_uv, i));
// apply the same modifications that would have been applied in the main shader
vals = params.intensity * vals;
@@ -69,8 +68,6 @@ void main() {
vals = pow(clamp(vals, 0.0, 1.0), vec4(params.power));
- avg += dot(vec4(vals.x, vals.y, vals.z, vals.w), vec4(1.0 / 16.0, 1.0 / 16.0, 1.0 / 16.0, 1.0 / 16.0));
-
maxV = max(maxV, max(max(vals.x, vals.y), max(vals.z, vals.w)));
minV = min(minV, min(min(vals.x, vals.y), min(vals.z, vals.w)));
}
diff --git a/servers/rendering/renderer_rd/shaders/ssil.glsl b/servers/rendering/renderer_rd/shaders/ssil.glsl
new file mode 100644
index 0000000000..d1f8f42790
--- /dev/null
+++ b/servers/rendering/renderer_rd/shaders/ssil.glsl
@@ -0,0 +1,444 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2016, Intel Corporation
+// 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.
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// File changes (yyyy-mm-dd)
+// 2016-09-07: filip.strugar@intel.com: first commit
+// 2020-12-05: clayjohn: convert to Vulkan and Godot
+// 2021-05-27: clayjohn: convert SSAO to SSIL
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#[compute]
+
+#version 450
+
+#VERSION_DEFINES
+
+#define SSIL_MAIN_DISK_SAMPLE_COUNT (32)
+const vec4 sample_pattern[SSIL_MAIN_DISK_SAMPLE_COUNT] = {
+ vec4(0.78488064, 0.56661671, 1.500000, -0.126083), vec4(0.26022232, -0.29575172, 1.500000, -1.064030), vec4(0.10459357, 0.08372527, 1.110000, -2.730563), vec4(-0.68286800, 0.04963045, 1.090000, -0.498827),
+ vec4(-0.13570161, -0.64190155, 1.250000, -0.532765), vec4(-0.26193795, -0.08205118, 0.670000, -1.783245), vec4(-0.61177456, 0.66664219, 0.710000, -0.044234), vec4(0.43675563, 0.25119025, 0.610000, -1.167283),
+ vec4(0.07884444, 0.86618668, 0.640000, -0.459002), vec4(-0.12790935, -0.29869005, 0.600000, -1.729424), vec4(-0.04031125, 0.02413622, 0.600000, -4.792042), vec4(0.16201244, -0.52851415, 0.790000, -1.067055),
+ vec4(-0.70991218, 0.47301072, 0.640000, -0.335236), vec4(0.03277707, -0.22349690, 0.600000, -1.982384), vec4(0.68921727, 0.36800742, 0.630000, -0.266718), vec4(0.29251814, 0.37775412, 0.610000, -1.422520),
+ vec4(-0.12224089, 0.96582592, 0.600000, -0.426142), vec4(0.11071457, -0.16131058, 0.600000, -2.165947), vec4(0.46562141, -0.59747696, 0.600000, -0.189760), vec4(-0.51548797, 0.11804193, 0.600000, -1.246800),
+ vec4(0.89141309, -0.42090443, 0.600000, 0.028192), vec4(-0.32402530, -0.01591529, 0.600000, -1.543018), vec4(0.60771245, 0.41635221, 0.600000, -0.605411), vec4(0.02379565, -0.08239821, 0.600000, -3.809046),
+ vec4(0.48951152, -0.23657045, 0.600000, -1.189011), vec4(-0.17611565, -0.81696892, 0.600000, -0.513724), vec4(-0.33930185, -0.20732205, 0.600000, -1.698047), vec4(-0.91974425, 0.05403209, 0.600000, 0.062246),
+ vec4(-0.15064627, -0.14949332, 0.600000, -1.896062), vec4(0.53180975, -0.35210401, 0.600000, -0.758838), vec4(0.41487166, 0.81442589, 0.600000, -0.505648), vec4(-0.24106961, -0.32721516, 0.600000, -1.665244)
+};
+
+// these values can be changed (up to SSIL_MAX_TAPS) with no changes required elsewhere; values for 4th and 5th preset are ignored but array needed to avoid compilation errors
+// the actual number of texture samples is two times this value (each "tap" has two symmetrical depth texture samples)
+const int num_taps[5] = { 3, 5, 12, 0, 0 };
+
+#define SSIL_TILT_SAMPLES_ENABLE_AT_QUALITY_PRESET (99) // to disable simply set to 99 or similar
+#define SSIL_TILT_SAMPLES_AMOUNT (0.4)
+//
+#define SSIL_HALOING_REDUCTION_ENABLE_AT_QUALITY_PRESET (1) // to disable simply set to 99 or similar
+#define SSIL_HALOING_REDUCTION_AMOUNT (0.8) // values from 0.0 - 1.0, 1.0 means max weighting (will cause artifacts, 0.8 is more reasonable)
+//
+#define SSIL_DEPTH_MIPS_ENABLE_AT_QUALITY_PRESET (2)
+#define SSIL_DEPTH_MIPS_GLOBAL_OFFSET (-4.3) // best noise/quality/performance tradeoff, found empirically
+//
+// !!warning!! the edge handling is hard-coded to 'disabled' on quality level 0, and enabled above, on the C++ side; while toggling it here will work for
+// testing purposes, it will not yield performance gains (or correct results)
+#define SSIL_DEPTH_BASED_EDGES_ENABLE_AT_QUALITY_PRESET (1)
+//
+#define SSIL_REDUCE_RADIUS_NEAR_SCREEN_BORDER_ENABLE_AT_QUALITY_PRESET (1)
+
+#define SSIL_MAX_TAPS 32
+#define SSIL_ADAPTIVE_TAP_BASE_COUNT 5
+#define SSIL_ADAPTIVE_TAP_FLEXIBLE_COUNT (SSIL_MAX_TAPS - SSIL_ADAPTIVE_TAP_BASE_COUNT)
+#define SSIL_DEPTH_MIP_LEVELS 4
+
+layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
+
+layout(set = 0, binding = 0) uniform sampler2DArray source_depth_mipmaps;
+layout(rgba8, set = 0, binding = 1) uniform restrict readonly image2D source_normal;
+layout(set = 0, binding = 2) uniform Constants { //get into a lower set
+ vec4 rotation_matrices[20];
+}
+constants;
+
+#ifdef ADAPTIVE
+layout(rgba16, set = 1, binding = 0) uniform restrict readonly image2DArray source_ssil;
+layout(set = 1, binding = 1) uniform sampler2D source_importance;
+layout(set = 1, binding = 2, std430) buffer Counter {
+ uint sum;
+}
+counter;
+#endif
+
+layout(rgba16, set = 2, binding = 0) uniform restrict writeonly image2D dest_image;
+layout(r8, set = 2, binding = 1) uniform image2D edges_weights_image;
+
+layout(set = 3, binding = 0) uniform sampler2D last_frame;
+layout(set = 3, binding = 1) uniform ProjectionConstants {
+ mat4 reprojection;
+}
+projection_constants;
+
+layout(push_constant, binding = 3, std430) uniform Params {
+ ivec2 screen_size;
+ int pass;
+ int quality;
+
+ vec2 half_screen_pixel_size;
+ vec2 half_screen_pixel_size_x025;
+
+ vec2 NDC_to_view_mul;
+ vec2 NDC_to_view_add;
+
+ vec2 pad2;
+ float z_near;
+ float z_far;
+
+ float radius;
+ float intensity;
+ int size_multiplier;
+ int pad;
+
+ float fade_out_mul;
+ float fade_out_add;
+ float normal_rejection_amount;
+ float inv_radius_near_limit;
+
+ bool is_orthogonal;
+ float neg_inv_radius;
+ float load_counter_avg_div;
+ float adaptive_sample_limit;
+
+ ivec2 pass_coord_offset;
+ vec2 pass_uv_offset;
+}
+params;
+
+float pack_edges(vec4 p_edgesLRTB) {
+ p_edgesLRTB = round(clamp(p_edgesLRTB, 0.0, 1.0) * 3.05);
+ return dot(p_edgesLRTB, vec4(64.0 / 255.0, 16.0 / 255.0, 4.0 / 255.0, 1.0 / 255.0));
+}
+
+vec3 NDC_to_view_space(vec2 p_pos, float p_viewspace_depth) {
+ if (params.is_orthogonal) {
+ return vec3((params.NDC_to_view_mul * p_pos.xy + params.NDC_to_view_add), p_viewspace_depth);
+ } else {
+ return vec3((params.NDC_to_view_mul * p_pos.xy + params.NDC_to_view_add) * p_viewspace_depth, p_viewspace_depth);
+ }
+}
+
+// calculate effect radius and fit our screen sampling pattern inside it
+void calculate_radius_parameters(const float p_pix_center_length, const vec2 p_pixel_size_at_center, out float r_lookup_radius, out float r_radius, out float r_fallof_sq) {
+ r_radius = params.radius;
+
+ // when too close, on-screen sampling disk will grow beyond screen size; limit this to avoid closeup temporal artifacts
+ const float too_close_limit = clamp(p_pix_center_length * params.inv_radius_near_limit, 0.0, 1.0) * 0.8 + 0.2;
+
+ r_radius *= too_close_limit;
+
+ // 0.85 is to reduce the radius to allow for more samples on a slope to still stay within influence
+ r_lookup_radius = (0.85 * r_radius) / p_pixel_size_at_center.x;
+
+ // used to calculate falloff (both for AO samples and per-sample weights)
+ r_fallof_sq = -1.0 / (r_radius * r_radius);
+}
+
+vec4 calculate_edges(const float p_center_z, const float p_left_z, const float p_right_z, const float p_top_z, const float p_bottom_z) {
+ // slope-sensitive depth-based edge detection
+ vec4 edgesLRTB = vec4(p_left_z, p_right_z, p_top_z, p_bottom_z) - p_center_z;
+ vec4 edgesLRTB_slope_adjusted = edgesLRTB + edgesLRTB.yxwz;
+ edgesLRTB = min(abs(edgesLRTB), abs(edgesLRTB_slope_adjusted));
+ return clamp((1.3 - edgesLRTB / (p_center_z * 0.040)), 0.0, 1.0);
+}
+
+vec3 decode_normal(vec3 p_encoded_normal) {
+ vec3 normal = p_encoded_normal * 2.0 - 1.0;
+ return normal;
+}
+
+vec3 load_normal(ivec2 p_pos) {
+ vec3 encoded_normal = imageLoad(source_normal, p_pos).xyz;
+ encoded_normal.z = 1.0 - encoded_normal.z;
+ return decode_normal(encoded_normal);
+}
+
+vec3 load_normal(ivec2 p_pos, ivec2 p_offset) {
+ vec3 encoded_normal = imageLoad(source_normal, p_pos + p_offset).xyz;
+ encoded_normal.z = 1.0 - encoded_normal.z;
+ return decode_normal(encoded_normal);
+}
+
+// all vectors in viewspace
+float calculate_pixel_obscurance(vec3 p_pixel_normal, vec3 p_hit_delta, float p_fallof_sq) {
+ float length_sq = dot(p_hit_delta, p_hit_delta);
+ float NdotD = dot(p_pixel_normal, p_hit_delta) / sqrt(length_sq);
+
+ float falloff_mult = max(0.0, length_sq * p_fallof_sq + 1.0);
+
+ return max(0, NdotD - 0.05) * falloff_mult;
+}
+
+void SSIL_tap_inner(const int p_quality_level, inout vec3 r_color_sum, inout float r_obscurance_sum, inout float r_weight_sum, const vec2 p_sampling_uv, const float p_mip_level, const vec3 p_pix_center_pos, vec3 p_pixel_normal, const float p_fallof_sq, const float p_weight_mod) {
+ // get depth at sample
+ float viewspace_sample_z = textureLod(source_depth_mipmaps, vec3(p_sampling_uv, params.pass), p_mip_level).x;
+ vec3 sample_normal = load_normal(ivec2(p_sampling_uv * vec2(params.screen_size)));
+
+ // convert to viewspace
+ vec3 hit_pos = NDC_to_view_space(p_sampling_uv.xy, viewspace_sample_z);
+ vec3 hit_delta = hit_pos - p_pix_center_pos;
+
+ float obscurance = calculate_pixel_obscurance(p_pixel_normal, hit_delta, p_fallof_sq);
+ float weight = 1.0;
+
+ if (p_quality_level >= SSIL_HALOING_REDUCTION_ENABLE_AT_QUALITY_PRESET) {
+ float reduct = max(0, -hit_delta.z);
+ reduct = clamp(reduct * params.neg_inv_radius + 2.0, 0.0, 1.0);
+ weight = SSIL_HALOING_REDUCTION_AMOUNT * reduct + (1.0 - SSIL_HALOING_REDUCTION_AMOUNT);
+ }
+
+ // Translate sampling_uv to last screen's coordinates
+ const vec4 sample_pos = projection_constants.reprojection * vec4(p_sampling_uv * 2.0 - 1.0, (viewspace_sample_z - params.z_near) / (params.z_far - params.z_near) * 2.0 - 1.0, 1.0);
+ vec2 reprojected_sampling_uv = (sample_pos.xy / sample_pos.w) * 0.5 + 0.5;
+
+ weight *= p_weight_mod;
+
+ r_obscurance_sum += obscurance * weight;
+
+ vec3 sample_color = textureLod(last_frame, reprojected_sampling_uv, 5.0).rgb;
+ // Reduce impact of fireflies by tonemapping before averaging: http://graphicrants.blogspot.com/2013/12/tone-mapping.html
+ sample_color /= (1.0 + dot(sample_color, vec3(0.299, 0.587, 0.114)));
+ r_color_sum += sample_color * obscurance * weight * mix(1.0, smoothstep(0.0, 0.1, -dot(sample_normal, normalize(hit_delta))), params.normal_rejection_amount);
+ r_weight_sum += weight;
+}
+
+void SSILTap(const int p_quality_level, inout vec3 r_color_sum, inout float r_obscurance_sum, inout float r_weight_sum, const int p_tap_index, const mat2 p_rot_scale, const vec3 p_pix_center_pos, vec3 p_pixel_normal, const vec2 p_normalized_screen_pos, const float p_mip_offset, const float p_fallof_sq, float p_weight_mod, vec2 p_norm_xy, float p_norm_xy_length) {
+ vec2 sample_offset;
+ float sample_pow_2_len;
+
+ // patterns
+ {
+ vec4 new_sample = sample_pattern[p_tap_index];
+ sample_offset = new_sample.xy * p_rot_scale;
+ sample_pow_2_len = new_sample.w; // precalculated, same as: sample_pow_2_len = log2( length( new_sample.xy ) );
+ p_weight_mod *= new_sample.z;
+ }
+
+ // snap to pixel center (more correct obscurance math, avoids artifacts)
+ sample_offset = round(sample_offset);
+
+ // calculate MIP based on the sample distance from the centre, similar to as described
+ // in http://graphics.cs.williams.edu/papers/SAOHPG12/.
+ float mip_level = (p_quality_level < SSIL_DEPTH_MIPS_ENABLE_AT_QUALITY_PRESET) ? (0) : (sample_pow_2_len + p_mip_offset);
+
+ vec2 sampling_uv = sample_offset * params.half_screen_pixel_size + p_normalized_screen_pos;
+
+ SSIL_tap_inner(p_quality_level, r_color_sum, r_obscurance_sum, r_weight_sum, sampling_uv, mip_level, p_pix_center_pos, p_pixel_normal, p_fallof_sq, p_weight_mod);
+
+ // for the second tap, just use the mirrored offset
+ vec2 sample_offset_mirrored_uv = -sample_offset;
+
+ // tilt the second set of samples so that the disk is effectively rotated by the normal
+ // effective at removing one set of artifacts, but too expensive for lower quality settings
+ if (p_quality_level >= SSIL_TILT_SAMPLES_ENABLE_AT_QUALITY_PRESET) {
+ float dot_norm = dot(sample_offset_mirrored_uv, p_norm_xy);
+ sample_offset_mirrored_uv -= dot_norm * p_norm_xy_length * p_norm_xy;
+ sample_offset_mirrored_uv = round(sample_offset_mirrored_uv);
+ }
+
+ // snap to pixel center (more correct obscurance math, avoids artifacts)
+ vec2 sampling_mirrored_uv = sample_offset_mirrored_uv * params.half_screen_pixel_size + p_normalized_screen_pos;
+
+ SSIL_tap_inner(p_quality_level, r_color_sum, r_obscurance_sum, r_weight_sum, sampling_mirrored_uv, mip_level, p_pix_center_pos, p_pixel_normal, p_fallof_sq, p_weight_mod);
+}
+
+void generate_SSIL(out vec3 r_color, out vec4 r_edges, out float r_obscurance, out float r_weight, const vec2 p_pos, int p_quality_level, bool p_adaptive_base) {
+ vec2 pos_rounded = trunc(p_pos);
+ uvec2 upos = uvec2(pos_rounded);
+
+ const int number_of_taps = (p_adaptive_base) ? (SSIL_ADAPTIVE_TAP_BASE_COUNT) : (num_taps[p_quality_level]);
+ float pix_z, pix_left_z, pix_top_z, pix_right_z, pix_bottom_z;
+
+ vec4 valuesUL = textureGather(source_depth_mipmaps, vec3(pos_rounded * params.half_screen_pixel_size, params.pass));
+ vec4 valuesBR = textureGather(source_depth_mipmaps, vec3((pos_rounded + vec2(1.0)) * params.half_screen_pixel_size, params.pass));
+
+ // get this pixel's viewspace depth
+ pix_z = valuesUL.y;
+
+ // get left right top bottom neighbouring pixels for edge detection (gets compiled out on quality_level == 0)
+ pix_left_z = valuesUL.x;
+ pix_top_z = valuesUL.z;
+ pix_right_z = valuesBR.z;
+ pix_bottom_z = valuesBR.x;
+
+ vec2 normalized_screen_pos = pos_rounded * params.half_screen_pixel_size + params.half_screen_pixel_size_x025;
+ vec3 pix_center_pos = NDC_to_view_space(normalized_screen_pos, pix_z);
+
+ // Load this pixel's viewspace normal
+ uvec2 full_res_coord = upos * 2 * params.size_multiplier + params.pass_coord_offset.xy;
+ vec3 pixel_normal = load_normal(ivec2(full_res_coord));
+
+ const vec2 pixel_size_at_center = NDC_to_view_space(normalized_screen_pos.xy + params.half_screen_pixel_size, pix_center_pos.z).xy - pix_center_pos.xy;
+
+ float pixel_lookup_radius;
+ float fallof_sq;
+
+ // calculate effect radius and fit our screen sampling pattern inside it
+ float viewspace_radius;
+ calculate_radius_parameters(length(pix_center_pos), pixel_size_at_center, pixel_lookup_radius, viewspace_radius, fallof_sq);
+
+ // calculate samples rotation/scaling
+ mat2 rot_scale_matrix;
+ uint pseudo_random_index;
+
+ {
+ vec4 rotation_scale;
+ // reduce effect radius near the screen edges slightly; ideally, one would render a larger depth buffer (5% on each side) instead
+ if (!p_adaptive_base && (p_quality_level >= SSIL_REDUCE_RADIUS_NEAR_SCREEN_BORDER_ENABLE_AT_QUALITY_PRESET)) {
+ float near_screen_border = min(min(normalized_screen_pos.x, 1.0 - normalized_screen_pos.x), min(normalized_screen_pos.y, 1.0 - normalized_screen_pos.y));
+ near_screen_border = clamp(10.0 * near_screen_border + 0.6, 0.0, 1.0);
+ pixel_lookup_radius *= near_screen_border;
+ }
+
+ // load & update pseudo-random rotation matrix
+ pseudo_random_index = uint(pos_rounded.y * 2 + pos_rounded.x) % 5;
+ rotation_scale = constants.rotation_matrices[params.pass * 5 + pseudo_random_index];
+ rot_scale_matrix = mat2(rotation_scale.x * pixel_lookup_radius, rotation_scale.y * pixel_lookup_radius, rotation_scale.z * pixel_lookup_radius, rotation_scale.w * pixel_lookup_radius);
+ }
+
+ // the main obscurance & sample weight storage
+ vec3 color_sum = vec3(0.0);
+ float obscurance_sum = 0.0;
+ float weight_sum = 0.0;
+
+ // edge mask for between this and left/right/top/bottom neighbour pixels - not used in quality level 0 so initialize to "no edge" (1 is no edge, 0 is edge)
+ vec4 edgesLRTB = vec4(1.0, 1.0, 1.0, 1.0);
+
+ // Move center pixel slightly towards camera to avoid imprecision artifacts due to using of 16bit depth buffer; a lot smaller offsets needed when using 32bit floats
+ pix_center_pos *= 0.9992;
+
+ if (!p_adaptive_base && (p_quality_level >= SSIL_DEPTH_BASED_EDGES_ENABLE_AT_QUALITY_PRESET)) {
+ edgesLRTB = calculate_edges(pix_z, pix_left_z, pix_right_z, pix_top_z, pix_bottom_z);
+ }
+
+ const float global_mip_offset = SSIL_DEPTH_MIPS_GLOBAL_OFFSET;
+ float mip_offset = (p_quality_level < SSIL_DEPTH_MIPS_ENABLE_AT_QUALITY_PRESET) ? (0) : (log2(pixel_lookup_radius) + global_mip_offset);
+
+ // Used to tilt the second set of samples so that the disk is effectively rotated by the normal
+ // effective at removing one set of artifacts, but too expensive for lower quality settings
+ vec2 norm_xy = vec2(pixel_normal.x, pixel_normal.y);
+ float norm_xy_length = length(norm_xy);
+ norm_xy /= vec2(norm_xy_length, -norm_xy_length);
+ norm_xy_length *= SSIL_TILT_SAMPLES_AMOUNT;
+
+ // standard, non-adaptive approach
+ if ((p_quality_level != 3) || p_adaptive_base) {
+ for (int i = 0; i < number_of_taps; i++) {
+ SSILTap(p_quality_level, color_sum, obscurance_sum, weight_sum, i, rot_scale_matrix, pix_center_pos, pixel_normal, normalized_screen_pos, mip_offset, fallof_sq, 1.0, norm_xy, norm_xy_length);
+ }
+ }
+#ifdef ADAPTIVE
+ else {
+ // add new ones if needed
+ vec2 full_res_uv = normalized_screen_pos + params.pass_uv_offset.xy;
+ float importance = textureLod(source_importance, full_res_uv, 0.0).x;
+
+ //Need to store obscurance from base pass
+ // load existing base values
+ vec4 base_values = imageLoad(source_ssil, ivec3(upos, params.pass));
+ weight_sum += imageLoad(edges_weights_image, ivec2(upos)).r * float(SSIL_ADAPTIVE_TAP_BASE_COUNT * 4.0);
+ color_sum += (base_values.rgb) * weight_sum;
+ obscurance_sum += (base_values.a) * weight_sum;
+
+ // increase importance around edges
+ float edge_count = dot(1.0 - edgesLRTB, vec4(1.0, 1.0, 1.0, 1.0));
+
+ float avg_total_importance = float(counter.sum) * params.load_counter_avg_div;
+
+ float importance_limiter = clamp(params.adaptive_sample_limit / avg_total_importance, 0.0, 1.0);
+ importance *= importance_limiter;
+
+ float additional_sample_count = SSIL_ADAPTIVE_TAP_FLEXIBLE_COUNT * importance;
+
+ const float blend_range = 3.0;
+ const float blend_range_inv = 1.0 / blend_range;
+
+ additional_sample_count += 0.5;
+ uint additional_samples = uint(additional_sample_count);
+ uint additional_samples_to = min(SSIL_MAX_TAPS, additional_samples + SSIL_ADAPTIVE_TAP_BASE_COUNT);
+
+ for (uint i = SSIL_ADAPTIVE_TAP_BASE_COUNT; i < additional_samples_to; i++) {
+ additional_sample_count -= 1.0f;
+ float weight_mod = clamp(additional_sample_count * blend_range_inv, 0.0, 1.0);
+ SSILTap(p_quality_level, color_sum, obscurance_sum, weight_sum, int(i), rot_scale_matrix, pix_center_pos, pixel_normal, normalized_screen_pos, mip_offset, fallof_sq, weight_mod, norm_xy, norm_xy_length);
+ }
+ }
+#endif
+
+ // Early out for adaptive base
+ if (p_adaptive_base) {
+ vec3 color = color_sum / weight_sum;
+
+ r_color = color;
+ r_edges = vec4(0.0);
+ r_obscurance = obscurance_sum / weight_sum;
+ r_weight = weight_sum;
+ return;
+ }
+
+ // Calculate weighted average
+ vec3 color = color_sum / weight_sum;
+ color /= 1.0 - dot(color, vec3(0.299, 0.587, 0.114));
+
+ // Calculate fadeout (1 close, gradient, 0 far)
+ float fade_out = clamp(pix_center_pos.z * params.fade_out_mul + params.fade_out_add, 0.0, 1.0);
+
+ // Reduce the SSIL if we're on the edge to remove artifacts on edges (we don't care for the lower quality one)
+ if (!p_adaptive_base && (p_quality_level >= SSIL_DEPTH_BASED_EDGES_ENABLE_AT_QUALITY_PRESET)) {
+ // when there's more than 2 opposite edges, start fading out the occlusion to reduce aliasing artifacts
+ float edge_fadeout_factor = clamp((1.0 - edgesLRTB.x - edgesLRTB.y) * 0.35, 0.0, 1.0) + clamp((1.0 - edgesLRTB.z - edgesLRTB.w) * 0.35, 0.0, 1.0);
+
+ fade_out *= clamp(1.0 - edge_fadeout_factor, 0.0, 1.0);
+ }
+
+ color = params.intensity * color;
+
+ color *= fade_out;
+
+ // outputs!
+ r_color = color;
+ r_edges = edgesLRTB; // These are used to prevent blurring across edges, 1 means no edge, 0 means edge, 0.5 means half way there, etc.
+ r_obscurance = clamp((obscurance_sum / weight_sum) * params.intensity, 0.0, 1.0);
+ r_weight = weight_sum;
+}
+
+void main() {
+ vec3 out_color;
+ float out_obscurance;
+ float out_weight;
+ vec4 out_edges;
+ ivec2 ssC = ivec2(gl_GlobalInvocationID.xy);
+ if (any(greaterThanEqual(ssC, params.screen_size))) { //too large, do nothing
+ return;
+ }
+
+ vec2 uv = vec2(gl_GlobalInvocationID) + vec2(0.5);
+#ifdef SSIL_BASE
+ generate_SSIL(out_color, out_edges, out_obscurance, out_weight, uv, params.quality, true);
+
+ imageStore(dest_image, ssC, vec4(out_color, out_obscurance));
+ imageStore(edges_weights_image, ssC, vec4(out_weight / (float(SSIL_ADAPTIVE_TAP_BASE_COUNT) * 4.0)));
+#else
+ generate_SSIL(out_color, out_edges, out_obscurance, out_weight, uv, params.quality, false); // pass in quality levels
+
+ imageStore(dest_image, ssC, vec4(out_color, out_obscurance));
+ imageStore(edges_weights_image, ssC, vec4(pack_edges(out_edges)));
+#endif
+}
diff --git a/servers/rendering/renderer_rd/shaders/ssil_blur.glsl b/servers/rendering/renderer_rd/shaders/ssil_blur.glsl
new file mode 100644
index 0000000000..11861e261f
--- /dev/null
+++ b/servers/rendering/renderer_rd/shaders/ssil_blur.glsl
@@ -0,0 +1,124 @@
+#[compute]
+
+#version 450
+
+#VERSION_DEFINES
+
+layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
+
+layout(set = 0, binding = 0) uniform sampler2D source_ssil;
+
+layout(rgba16, set = 1, binding = 0) uniform restrict writeonly image2D dest_image;
+
+layout(r8, set = 2, binding = 0) uniform restrict readonly image2D source_edges;
+
+layout(push_constant, binding = 1, std430) uniform Params {
+ float edge_sharpness;
+ float pad;
+ vec2 half_screen_pixel_size;
+}
+params;
+
+vec4 unpack_edges(float p_packed_val) {
+ uint packed_val = uint(p_packed_val * 255.5);
+ vec4 edgesLRTB;
+ edgesLRTB.x = float((packed_val >> 6) & 0x03) / 3.0;
+ edgesLRTB.y = float((packed_val >> 4) & 0x03) / 3.0;
+ edgesLRTB.z = float((packed_val >> 2) & 0x03) / 3.0;
+ edgesLRTB.w = float((packed_val >> 0) & 0x03) / 3.0;
+
+ return clamp(edgesLRTB + params.edge_sharpness, 0.0, 1.0);
+}
+
+void add_sample(vec4 p_ssil_value, float p_edge_value, inout vec4 r_sum, inout float r_sum_weight) {
+ float weight = p_edge_value;
+
+ r_sum += (weight * p_ssil_value);
+ r_sum_weight += weight;
+}
+
+#ifdef MODE_WIDE
+vec4 sample_blurred_wide(ivec2 p_pos, vec2 p_coord) {
+ vec4 ssil_value = textureLodOffset(source_ssil, vec2(p_coord), 0.0, ivec2(0, 0));
+ vec4 ssil_valueL = textureLodOffset(source_ssil, vec2(p_coord), 0.0, ivec2(-2, 0));
+ vec4 ssil_valueT = textureLodOffset(source_ssil, vec2(p_coord), 0.0, ivec2(0, -2));
+ vec4 ssil_valueR = textureLodOffset(source_ssil, vec2(p_coord), 0.0, ivec2(2, 0));
+ vec4 ssil_valueB = textureLodOffset(source_ssil, vec2(p_coord), 0.0, ivec2(0, 2));
+
+ vec4 edgesLRTB = unpack_edges(imageLoad(source_edges, p_pos).r);
+ edgesLRTB.x *= unpack_edges(imageLoad(source_edges, p_pos + ivec2(-2, 0)).r).y;
+ edgesLRTB.z *= unpack_edges(imageLoad(source_edges, p_pos + ivec2(0, -2)).r).w;
+ edgesLRTB.y *= unpack_edges(imageLoad(source_edges, p_pos + ivec2(2, 0)).r).x;
+ edgesLRTB.w *= unpack_edges(imageLoad(source_edges, p_pos + ivec2(0, 2)).r).z;
+
+ float sum_weight = 0.8;
+ vec4 sum = ssil_value * sum_weight;
+
+ add_sample(ssil_valueL, edgesLRTB.x, sum, sum_weight);
+ add_sample(ssil_valueR, edgesLRTB.y, sum, sum_weight);
+ add_sample(ssil_valueT, edgesLRTB.z, sum, sum_weight);
+ add_sample(ssil_valueB, edgesLRTB.w, sum, sum_weight);
+
+ vec4 ssil_avg = sum / sum_weight;
+
+ ssil_value = ssil_avg;
+
+ return ssil_value;
+}
+#endif
+
+#ifdef MODE_SMART
+vec4 sample_blurred(ivec2 p_pos, vec2 p_coord) {
+ vec4 vC = textureLodOffset(source_ssil, vec2(p_coord), 0.0, ivec2(0, 0));
+ vec4 vL = textureLodOffset(source_ssil, vec2(p_coord), 0.0, ivec2(-1, 0));
+ vec4 vT = textureLodOffset(source_ssil, vec2(p_coord), 0.0, ivec2(0, -1));
+ vec4 vR = textureLodOffset(source_ssil, vec2(p_coord), 0.0, ivec2(1, 0));
+ vec4 vB = textureLodOffset(source_ssil, vec2(p_coord), 0.0, ivec2(0, 1));
+
+ float packed_edges = imageLoad(source_edges, p_pos).r;
+ vec4 edgesLRTB = unpack_edges(packed_edges);
+
+ float sum_weight = 0.5;
+ vec4 sum = vC * sum_weight;
+
+ add_sample(vL, edgesLRTB.x, sum, sum_weight);
+ add_sample(vR, edgesLRTB.y, sum, sum_weight);
+ add_sample(vT, edgesLRTB.z, sum, sum_weight);
+ add_sample(vB, edgesLRTB.w, sum, sum_weight);
+
+ vec4 ssil_avg = sum / sum_weight;
+
+ vec4 ssil_value = ssil_avg;
+
+ return ssil_value;
+}
+#endif
+
+void main() {
+ // Pixel being shaded
+ ivec2 ssC = ivec2(gl_GlobalInvocationID.xy);
+
+#ifdef MODE_NON_SMART
+
+ vec2 half_pixel = params.half_screen_pixel_size * 0.5;
+
+ vec2 uv = (vec2(gl_GlobalInvocationID.xy) + vec2(0.5, 0.5)) * params.half_screen_pixel_size;
+
+ vec4 centre = textureLod(source_ssil, uv, 0.0);
+
+ vec4 value = textureLod(source_ssil, vec2(uv + vec2(-half_pixel.x * 3, -half_pixel.y)), 0.0) * 0.2;
+ value += textureLod(source_ssil, vec2(uv + vec2(+half_pixel.x, -half_pixel.y * 3)), 0.0) * 0.2;
+ value += textureLod(source_ssil, vec2(uv + vec2(-half_pixel.x, +half_pixel.y * 3)), 0.0) * 0.2;
+ value += textureLod(source_ssil, vec2(uv + vec2(+half_pixel.x * 3, +half_pixel.y)), 0.0) * 0.2;
+
+ vec4 sampled = value + centre * 0.2;
+
+#else
+#ifdef MODE_SMART
+ vec4 sampled = sample_blurred(ssC, (vec2(gl_GlobalInvocationID.xy) + vec2(0.5, 0.5)) * params.half_screen_pixel_size);
+#else // MODE_WIDE
+ vec4 sampled = sample_blurred_wide(ssC, (vec2(gl_GlobalInvocationID.xy) + vec2(0.5, 0.5)) * params.half_screen_pixel_size);
+#endif
+#endif // MODE_NON_SMART
+ imageStore(dest_image, ssC, sampled);
+}
diff --git a/servers/rendering/renderer_rd/shaders/ssil_importance_map.glsl b/servers/rendering/renderer_rd/shaders/ssil_importance_map.glsl
new file mode 100644
index 0000000000..815aa55fd4
--- /dev/null
+++ b/servers/rendering/renderer_rd/shaders/ssil_importance_map.glsl
@@ -0,0 +1,124 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2016, Intel Corporation
+// 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.
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// File changes (yyyy-mm-dd)
+// 2016-09-07: filip.strugar@intel.com: first commit
+// 2020-12-05: clayjohn: convert to Vulkan and Godot
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#[compute]
+
+#version 450
+
+#VERSION_DEFINES
+
+layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
+
+#ifdef GENERATE_MAP
+layout(set = 0, binding = 0) uniform sampler2DArray source_texture;
+#else
+layout(set = 0, binding = 0) uniform sampler2D source_importance;
+#endif
+layout(r8, set = 1, binding = 0) uniform restrict writeonly image2D dest_image;
+
+#ifdef PROCESS_MAPB
+layout(set = 2, binding = 0, std430) buffer Counter {
+ uint sum;
+}
+counter;
+#endif
+
+layout(push_constant, binding = 1, std430) uniform Params {
+ vec2 half_screen_pixel_size;
+ float intensity;
+ float pad;
+}
+params;
+
+void main() {
+ // Pixel being shaded
+ ivec2 ssC = ivec2(gl_GlobalInvocationID.xy);
+
+#ifdef GENERATE_MAP
+ // importance map stuff
+ uvec2 base_position = ssC * 2;
+
+ float avg = 0.0;
+ float minV = 1.0;
+ float maxV = 0.0;
+ for (int i = 0; i < 4; i++) {
+ vec3 value_a = texelFetch(source_texture, ivec3(base_position, i), 0).rgb * params.intensity;
+ vec3 value_b = texelFetch(source_texture, ivec3(base_position, i) + ivec3(0, 1, 0), 0).rgb * params.intensity;
+ vec3 value_c = texelFetch(source_texture, ivec3(base_position, i) + ivec3(1, 0, 0), 0).rgb * params.intensity;
+ vec3 value_d = texelFetch(source_texture, ivec3(base_position, i) + ivec3(1, 1, 0), 0).rgb * params.intensity;
+
+ // Calculate luminance (black and white value)
+ float a = dot(value_a, vec3(0.2125, 0.7154, 0.0721));
+ float b = dot(value_b, vec3(0.2125, 0.7154, 0.0721));
+ float c = dot(value_c, vec3(0.2125, 0.7154, 0.0721));
+ float d = dot(value_d, vec3(0.2125, 0.7154, 0.0721));
+
+ maxV = max(maxV, max(max(a, b), max(c, d)));
+ minV = min(minV, min(min(a, b), min(c, d)));
+ }
+
+ float min_max_diff = maxV - minV;
+
+ imageStore(dest_image, ssC, vec4(pow(clamp(min_max_diff * 2.0, 0.0, 1.0), 0.6)));
+#endif
+
+#ifdef PROCESS_MAPA
+ vec2 uv = (vec2(ssC) + 0.5) * params.half_screen_pixel_size * 2.0;
+
+ float centre = textureLod(source_importance, uv, 0.0).x;
+
+ vec2 half_pixel = params.half_screen_pixel_size;
+
+ vec4 vals;
+ vals.x = textureLod(source_importance, uv + vec2(-half_pixel.x * 3, -half_pixel.y), 0.0).x;
+ vals.y = textureLod(source_importance, uv + vec2(+half_pixel.x, -half_pixel.y * 3), 0.0).x;
+ vals.z = textureLod(source_importance, uv + vec2(+half_pixel.x * 3, +half_pixel.y), 0.0).x;
+ vals.w = textureLod(source_importance, uv + vec2(-half_pixel.x, +half_pixel.y * 3), 0.0).x;
+
+ float avg = dot(vals, vec4(0.25, 0.25, 0.25, 0.25));
+
+ imageStore(dest_image, ssC, vec4(avg));
+#endif
+
+#ifdef PROCESS_MAPB
+ vec2 uv = (vec2(ssC) + 0.5f) * params.half_screen_pixel_size * 2.0;
+
+ float centre = textureLod(source_importance, uv, 0.0).x;
+
+ vec2 half_pixel = params.half_screen_pixel_size;
+
+ vec4 vals;
+ vals.x = textureLod(source_importance, uv + vec2(-half_pixel.x, -half_pixel.y * 3), 0.0).x;
+ vals.y = textureLod(source_importance, uv + vec2(+half_pixel.x * 3, -half_pixel.y), 0.0).x;
+ vals.z = textureLod(source_importance, uv + vec2(+half_pixel.x, +half_pixel.y * 3), 0.0).x;
+ vals.w = textureLod(source_importance, uv + vec2(-half_pixel.x * 3, +half_pixel.y), 0.0).x;
+
+ float avg = dot(vals, vec4(0.25, 0.25, 0.25, 0.25));
+
+ imageStore(dest_image, ssC, vec4(avg));
+
+ // sum the average; to avoid overflowing we assume max AO resolution is not bigger than 16384x16384; so quarter res (used here) will be 4096x4096, which leaves us with 8 bits per pixel
+ uint sum = uint(clamp(avg, 0.0, 1.0) * 255.0 + 0.5);
+
+ // save every 9th to avoid InterlockedAdd congestion - since we're blurring, this is good enough; compensated by multiplying load_counter_avg_div by 9
+ if (((ssC.x % 3) + (ssC.y % 3)) == 0) {
+ atomicAdd(counter.sum, sum);
+ }
+#endif
+}
diff --git a/servers/rendering/renderer_rd/shaders/ssil_interleave.glsl b/servers/rendering/renderer_rd/shaders/ssil_interleave.glsl
new file mode 100644
index 0000000000..8a7a5ae4fd
--- /dev/null
+++ b/servers/rendering/renderer_rd/shaders/ssil_interleave.glsl
@@ -0,0 +1,102 @@
+#[compute]
+
+#version 450
+
+#VERSION_DEFINES
+
+layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
+
+layout(rgba16, set = 0, binding = 0) uniform restrict writeonly image2D dest_image;
+layout(set = 1, binding = 0) uniform sampler2DArray source_texture;
+layout(r8, set = 2, binding = 0) uniform restrict readonly image2DArray source_edges;
+
+layout(push_constant, binding = 1, std430) uniform Params {
+ float inv_sharpness;
+ uint size_modifier;
+ vec2 pixel_size;
+}
+params;
+
+vec4 unpack_edges(float p_packed_val) {
+ uint packed_val = uint(p_packed_val * 255.5);
+ vec4 edgesLRTB;
+ edgesLRTB.x = float((packed_val >> 6) & 0x03) / 3.0;
+ edgesLRTB.y = float((packed_val >> 4) & 0x03) / 3.0;
+ edgesLRTB.z = float((packed_val >> 2) & 0x03) / 3.0;
+ edgesLRTB.w = float((packed_val >> 0) & 0x03) / 3.0;
+
+ return clamp(edgesLRTB + params.inv_sharpness, 0.0, 1.0);
+}
+
+void main() {
+ ivec2 ssC = ivec2(gl_GlobalInvocationID.xy);
+ if (any(greaterThanEqual(ssC, ivec2(1.0 / params.pixel_size)))) { //too large, do nothing
+ return;
+ }
+
+#ifdef MODE_SMART
+ uvec2 pix_pos = uvec2(gl_GlobalInvocationID.xy);
+ vec2 uv = (gl_GlobalInvocationID.xy + vec2(0.5)) * params.pixel_size;
+
+ // calculate index in the four deinterleaved source array texture
+ int mx = int(pix_pos.x % 2);
+ int my = int(pix_pos.y % 2);
+ int index_center = mx + my * 2; // center index
+ int index_horizontal = (1 - mx) + my * 2; // neighbouring, horizontal
+ int index_vertical = mx + (1 - my) * 2; // neighbouring, vertical
+ int index_diagonal = (1 - mx) + (1 - my) * 2; // diagonal
+
+ vec4 color = texelFetch(source_texture, ivec3(pix_pos / uvec2(params.size_modifier), index_center), 0);
+
+ vec4 edgesLRTB = unpack_edges(imageLoad(source_edges, ivec3(pix_pos / uvec2(params.size_modifier), index_center)).r);
+
+ // convert index shifts to sampling offsets
+ float fmx = float(mx);
+ float fmy = float(my);
+
+ // in case of an edge, push sampling offsets away from the edge (towards pixel center)
+ float fmxe = (edgesLRTB.y - edgesLRTB.x);
+ float fmye = (edgesLRTB.w - edgesLRTB.z);
+
+ // calculate final sampling offsets and sample using bilinear filter
+ vec2 uv_horizontal = (gl_GlobalInvocationID.xy + vec2(0.5) + vec2(fmx + fmxe - 0.5, 0.5 - fmy)) * params.pixel_size;
+ vec4 color_horizontal = textureLod(source_texture, vec3(uv_horizontal, index_horizontal), 0.0);
+ vec2 uv_vertical = (gl_GlobalInvocationID.xy + vec2(0.5) + vec2(0.5 - fmx, fmy - 0.5 + fmye)) * params.pixel_size;
+ vec4 color_vertical = textureLod(source_texture, vec3(uv_vertical, index_vertical), 0.0);
+ vec2 uv_diagonal = (gl_GlobalInvocationID.xy + vec2(0.5) + vec2(fmx - 0.5 + fmxe, fmy - 0.5 + fmye)) * params.pixel_size;
+ vec4 color_diagonal = textureLod(source_texture, vec3(uv_diagonal, index_diagonal), 0.0);
+
+ // reduce weight for samples near edge - if the edge is on both sides, weight goes to 0
+ vec4 blendWeights;
+ blendWeights.x = 1.0;
+ blendWeights.y = (edgesLRTB.x + edgesLRTB.y) * 0.5;
+ blendWeights.z = (edgesLRTB.z + edgesLRTB.w) * 0.5;
+ blendWeights.w = (blendWeights.y + blendWeights.z) * 0.5;
+
+ // calculate weighted average
+ float blendWeightsSum = dot(blendWeights, vec4(1.0, 1.0, 1.0, 1.0));
+ color += color_horizontal * blendWeights.y;
+ color += color_vertical * blendWeights.z;
+ color += color_diagonal * blendWeights.w;
+ color /= blendWeightsSum;
+
+ imageStore(dest_image, ivec2(gl_GlobalInvocationID.xy), color);
+#else // !MODE_SMART
+
+ vec2 uv = (gl_GlobalInvocationID.xy + vec2(0.5)) * params.pixel_size;
+#ifdef MODE_HALF
+ vec4 a = textureLod(source_texture, vec3(uv, 0), 0.0);
+ vec4 d = textureLod(source_texture, vec3(uv, 3), 0.0);
+ vec4 avg = (a + d) * 0.5;
+
+#else
+ vec4 a = textureLod(source_texture, vec3(uv, 0), 0.0);
+ vec4 b = textureLod(source_texture, vec3(uv, 1), 0.0);
+ vec4 c = textureLod(source_texture, vec3(uv, 2), 0.0);
+ vec4 d = textureLod(source_texture, vec3(uv, 3), 0.0);
+ vec4 avg = (a + b + c + d) * 0.25;
+
+#endif
+ imageStore(dest_image, ivec2(gl_GlobalInvocationID.xy), avg);
+#endif
+}
diff --git a/servers/rendering/renderer_rd/shaders/volumetric_fog_process.glsl b/servers/rendering/renderer_rd/shaders/volumetric_fog_process.glsl
index 999e8d0844..7c8d4f7f99 100644
--- a/servers/rendering/renderer_rd/shaders/volumetric_fog_process.glsl
+++ b/servers/rendering/renderer_rd/shaders/volumetric_fog_process.glsl
@@ -76,19 +76,15 @@ layout(set = 0, binding = 10) uniform sampler shadow_sampler;
#define MAX_VOXEL_GI_INSTANCES 8
struct VoxelGIData {
- mat4 xform;
- vec3 bounds;
- float dynamic_range;
+ mat4 xform; // 64 - 64
- float bias;
- float normal_bias;
- bool blend_ambient;
- uint texture_slot;
+ vec3 bounds; // 12 - 76
+ float dynamic_range; // 4 - 80
- float anisotropy_strength;
- float ambient_occlusion;
- float ambient_occlusion_size;
- uint mipmaps;
+ float bias; // 4 - 84
+ float normal_bias; // 4 - 88
+ bool blend_ambient; // 4 - 92
+ uint mipmaps; // 4 - 96
};
layout(set = 0, binding = 11, std140) uniform VoxelGIs {
diff --git a/servers/rendering/renderer_rd/shaders/voxel_gi.glsl b/servers/rendering/renderer_rd/shaders/voxel_gi.glsl
index 779f04ed35..73a97d9df1 100644
--- a/servers/rendering/renderer_rd/shaders/voxel_gi.glsl
+++ b/servers/rendering/renderer_rd/shaders/voxel_gi.glsl
@@ -13,7 +13,6 @@ layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
#ifndef MODE_DYNAMIC
#define NO_CHILDREN 0xFFFFFFFF
-#define GREY_VEC vec3(0.33333, 0.33333, 0.33333)
struct CellChildren {
uint children[8];
diff --git a/servers/rendering/renderer_rd/shaders/voxel_gi_debug.glsl b/servers/rendering/renderer_rd/shaders/voxel_gi_debug.glsl
index 281c496df3..3f3437f527 100644
--- a/servers/rendering/renderer_rd/shaders/voxel_gi_debug.glsl
+++ b/servers/rendering/renderer_rd/shaders/voxel_gi_debug.glsl
@@ -90,66 +90,10 @@ void main() {
#endif
#ifdef MODE_DEBUG_LIGHT
-
-#ifdef USE_ANISOTROPY
-
-#define POS_X 0
-#define POS_Y 1
-#define POS_Z 2
-#define NEG_X 3
-#define NEG_Y 4
-#define NEG_Z 5
-
- const uint triangle_aniso[12] = uint[](
- NEG_X,
- NEG_Z,
- NEG_Y,
- NEG_Z,
- NEG_X,
- NEG_Y,
- POS_Z,
- POS_X,
- POS_X,
- POS_Y,
- POS_Y,
- POS_Z);
-
- color_interp.xyz = texelFetch(sampler3D(color_tex, tex_sampler), ivec3(posu), int(params.level)).xyz * params.dynamic_range;
- vec3 aniso_pos = texelFetch(sampler3D(aniso_pos_tex, tex_sampler), ivec3(posu), int(params.level)).xyz;
- vec3 aniso_neg = texelFetch(sampler3D(aniso_neg_tex, tex_sampler), ivec3(posu), int(params.level)).xyz;
- uint side = triangle_aniso[gl_VertexIndex / 3];
-
- float strength = 0.0;
- switch (side) {
- case POS_X:
- strength = aniso_pos.x;
- break;
- case POS_Y:
- strength = aniso_pos.y;
- break;
- case POS_Z:
- strength = aniso_pos.z;
- break;
- case NEG_X:
- strength = aniso_neg.x;
- break;
- case NEG_Y:
- strength = aniso_neg.y;
- break;
- case NEG_Z:
- strength = aniso_neg.z;
- break;
- }
-
- color_interp.xyz *= strength;
-
-#else
color_interp = texelFetch(sampler3D(color_tex, tex_sampler), ivec3(posu), int(params.level));
color_interp.xyz *params.dynamic_range;
-
#endif
-#endif
float scale = (1 << params.level);
gl_Position = params.projection * vec4((vec3(posu) + vertex) * scale, 1.0);
diff --git a/servers/rendering/renderer_rd/shaders/voxel_gi_sdf.glsl b/servers/rendering/renderer_rd/shaders/voxel_gi_sdf.glsl
index e20b3f680d..3bb4421646 100644
--- a/servers/rendering/renderer_rd/shaders/voxel_gi_sdf.glsl
+++ b/servers/rendering/renderer_rd/shaders/voxel_gi_sdf.glsl
@@ -6,10 +6,9 @@
layout(local_size_x = 4, local_size_y = 4, local_size_z = 4) in;
-#define MAX_DISTANCE 100000
+#define MAX_DISTANCE 100000.0
#define NO_CHILDREN 0xFFFFFFFF
-#define GREY_VEC vec3(0.33333, 0.33333, 0.33333)
struct CellChildren {
uint children[8];
@@ -44,7 +43,7 @@ params;
void main() {
vec3 pos = vec3(gl_GlobalInvocationID);
- float closest_dist = 100000.0;
+ float closest_dist = MAX_DISTANCE;
for (uint i = params.offset; i < params.end; i++) {
vec3 posu = vec3(uvec3(cell_data.data[i].position & 0x7FF, (cell_data.data[i].position >> 11) & 0x3FF, cell_data.data[i].position >> 21));
diff --git a/servers/rendering/renderer_scene.cpp b/servers/rendering/renderer_scene.cpp
index dd544d4f3f..b3fdd88626 100644
--- a/servers/rendering/renderer_scene.cpp
+++ b/servers/rendering/renderer_scene.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_scene.h b/servers/rendering/renderer_scene.h
index 02c845581c..20ca49cd71 100644
--- a/servers/rendering/renderer_scene.h
+++ b/servers/rendering/renderer_scene.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -95,6 +95,7 @@ public:
virtual void instance_geometry_set_flag(RID p_instance, RS::InstanceFlags p_flags, bool p_enabled) = 0;
virtual void instance_geometry_set_cast_shadows_setting(RID p_instance, RS::ShadowCastingSetting p_shadow_casting_setting) = 0;
virtual void instance_geometry_set_material_override(RID p_instance, RID p_material) = 0;
+ virtual void instance_geometry_set_material_overlay(RID p_instance, RID p_material) = 0;
virtual void instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RS::VisibilityRangeFadeMode p_fade_mode) = 0;
virtual void instance_geometry_set_lightmap(RID p_instance, RID p_lightmap, const Rect2 &p_lightmap_uv_scale, int p_slice_index) = 0;
@@ -143,9 +144,11 @@ public:
virtual void environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) = 0;
virtual void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_power, float p_detail, float p_horizon, float p_sharpness, float p_light_affect, float p_ao_channel_affect) = 0;
-
virtual void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
+ virtual void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) = 0;
+ virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
+
virtual void environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0;
virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) = 0;
@@ -208,7 +211,7 @@ public:
int info[RS::VIEWPORT_RENDER_INFO_TYPE_MAX][RS::VIEWPORT_RENDER_INFO_MAX] = {};
};
- virtual void render_camera(RID p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, float p_lod_threshold, RID p_shadow_atlas, Ref<XRInterface> &p_xr_interface, RenderInfo *r_render_info = nullptr) = 0;
+ virtual void render_camera(RID p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, float p_mesh_lod_threshold, RID p_shadow_atlas, Ref<XRInterface> &p_xr_interface, RenderInfo *r_render_info = nullptr) = 0;
virtual void update() = 0;
virtual void render_probes() = 0;
diff --git a/servers/rendering/renderer_scene_cull.cpp b/servers/rendering/renderer_scene_cull.cpp
index 5b834db178..8ded180633 100644
--- a/servers/rendering/renderer_scene_cull.cpp
+++ b/servers/rendering/renderer_scene_cull.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -636,6 +636,7 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) {
scene_render->geometry_instance_set_skeleton(geom->geometry_instance, instance->skeleton);
scene_render->geometry_instance_set_material_override(geom->geometry_instance, instance->material_override);
+ scene_render->geometry_instance_set_material_overlay(geom->geometry_instance, instance->material_overlay);
scene_render->geometry_instance_set_surface_materials(geom->geometry_instance, instance->materials);
scene_render->geometry_instance_set_transform(geom->geometry_instance, instance->transform, instance->aabb, instance->transformed_aabb);
scene_render->geometry_instance_set_layer_mask(geom->geometry_instance, instance->layer_mask);
@@ -1222,6 +1223,19 @@ void RendererSceneCull::instance_geometry_set_material_override(RID p_instance,
}
}
+void RendererSceneCull::instance_geometry_set_material_overlay(RID p_instance, RID p_material) {
+ Instance *instance = instance_owner.get_or_null(p_instance);
+ ERR_FAIL_COND(!instance);
+
+ instance->material_overlay = p_material;
+ _instance_queue_update(instance, false, true);
+
+ if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) {
+ InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(instance->base_data);
+ scene_render->geometry_instance_set_material_overlay(geom->geometry_instance, p_material);
+ }
+}
+
void RendererSceneCull::instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RS::VisibilityRangeFadeMode p_fade_mode) {
Instance *instance = instance_owner.get_or_null(p_instance);
ERR_FAIL_COND(!instance);
@@ -2193,7 +2207,7 @@ void RendererSceneCull::_light_instance_setup_directional_shadow(int p_shadow_in
}
}
-bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, const Transform3D p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_orthogonal, bool p_cam_vaspect, RID p_shadow_atlas, Scenario *p_scenario, float p_screen_lod_threshold) {
+bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, const Transform3D p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_orthogonal, bool p_cam_vaspect, RID p_shadow_atlas, Scenario *p_scenario, float p_screen_mesh_lod_threshold) {
InstanceLightData *light = static_cast<InstanceLightData *>(p_instance->base_data);
Transform3D light_transform = p_instance->transform;
@@ -2416,7 +2430,7 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons
return animated_material_found;
}
-void RendererSceneCull::render_camera(RID p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, float p_screen_lod_threshold, RID p_shadow_atlas, Ref<XRInterface> &p_xr_interface, RenderInfo *r_render_info) {
+void RendererSceneCull::render_camera(RID p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, float p_screen_mesh_lod_threshold, RID p_shadow_atlas, Ref<XRInterface> &p_xr_interface, RenderInfo *r_render_info) {
#ifndef _3D_DISABLED
Camera *camera = camera_owner.get_or_null(p_camera);
@@ -2498,7 +2512,7 @@ void RendererSceneCull::render_camera(RID p_render_buffers, RID p_camera, RID p_
// For now just cull on the first camera
RendererSceneOcclusionCull::get_singleton()->buffer_update(p_viewport, camera_data.main_transform, camera_data.main_projection, camera_data.is_ortogonal, RendererThreadPool::singleton->thread_work_pool);
- _render_scene(&camera_data, p_render_buffers, environment, camera->effects, camera->visible_layers, p_scenario, p_viewport, p_shadow_atlas, RID(), -1, p_screen_lod_threshold, true, r_render_info);
+ _render_scene(&camera_data, p_render_buffers, environment, camera->effects, camera->visible_layers, p_scenario, p_viewport, p_shadow_atlas, RID(), -1, p_screen_mesh_lod_threshold, true, r_render_info);
#endif
}
@@ -2862,7 +2876,7 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul
}
}
-void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_camera_data, RID p_render_buffers, RID p_environment, RID p_force_camera_effects, uint32_t p_visible_layers, RID p_scenario, RID p_viewport, RID p_shadow_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_lod_threshold, bool p_using_shadows, RendererScene::RenderInfo *r_render_info) {
+void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_camera_data, RID p_render_buffers, RID p_environment, RID p_force_camera_effects, uint32_t p_visible_layers, RID p_scenario, RID p_viewport, RID p_shadow_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, bool p_using_shadows, RendererScene::RenderInfo *r_render_info) {
Instance *render_reflection_probe = instance_owner.get_or_null(p_reflection_probe); //if null, not rendering to it
Scenario *scenario = scenario_owner.get_or_null(p_scenario);
@@ -3142,7 +3156,7 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c
if (redraw && max_shadows_used < MAX_UPDATE_SHADOWS) {
//must redraw!
RENDER_TIMESTAMP(">Rendering Light " + itos(i));
- light->shadow_dirty = _light_instance_update_shadow(ins, p_camera_data->main_transform, p_camera_data->main_projection, p_camera_data->is_ortogonal, p_camera_data->vaspect, p_shadow_atlas, scenario, p_screen_lod_threshold);
+ light->shadow_dirty = _light_instance_update_shadow(ins, p_camera_data->main_transform, p_camera_data->main_projection, p_camera_data->is_ortogonal, p_camera_data->vaspect, p_shadow_atlas, scenario, p_screen_mesh_lod_threshold);
RENDER_TIMESTAMP("<Rendering Light " + itos(i));
} else {
light->shadow_dirty = redraw;
@@ -3204,7 +3218,7 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c
}
RENDER_TIMESTAMP("Render Scene ");
- scene_render->render_scene(p_render_buffers, p_camera_data, scene_cull_result.geometry_instances, scene_cull_result.light_instances, scene_cull_result.reflections, scene_cull_result.voxel_gi_instances, scene_cull_result.decals, scene_cull_result.lightmaps, scene_cull_result.fog_volumes, p_environment, camera_effects, p_shadow_atlas, occluders_tex, p_reflection_probe.is_valid() ? RID() : scenario->reflection_atlas, p_reflection_probe, p_reflection_probe_pass, p_screen_lod_threshold, render_shadow_data, max_shadows_used, render_sdfgi_data, cull.sdfgi.region_count, &sdfgi_update_data, r_render_info);
+ scene_render->render_scene(p_render_buffers, p_camera_data, scene_cull_result.geometry_instances, scene_cull_result.light_instances, scene_cull_result.reflections, scene_cull_result.voxel_gi_instances, scene_cull_result.decals, scene_cull_result.lightmaps, scene_cull_result.fog_volumes, p_environment, camera_effects, p_shadow_atlas, occluders_tex, p_reflection_probe.is_valid() ? RID() : scenario->reflection_atlas, p_reflection_probe, p_reflection_probe_pass, p_screen_mesh_lod_threshold, render_shadow_data, max_shadows_used, render_sdfgi_data, cull.sdfgi.region_count, &sdfgi_update_data, r_render_info);
for (uint32_t i = 0; i < max_shadows_used; i++) {
render_shadow_data[i].instances.clear();
@@ -3215,7 +3229,7 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c
render_sdfgi_data[i].instances.clear();
}
- // virtual void render_scene(RID p_render_buffers, const Transform3D &p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_ortogonal, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_lod_threshold,const RenderShadowData *p_render_shadows,int p_render_shadow_count,const RenderSDFGIData *p_render_sdfgi_regions,int p_render_sdfgi_region_count,const RenderSDFGIStaticLightData *p_render_sdfgi_static_lights=nullptr) = 0;
+ // virtual void render_scene(RID p_render_buffers, const Transform3D &p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_ortogonal, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold,const RenderShadowData *p_render_shadows,int p_render_shadow_count,const RenderSDFGIData *p_render_sdfgi_regions,int p_render_sdfgi_region_count,const RenderSDFGIStaticLightData *p_render_sdfgi_static_lights=nullptr) = 0;
}
RID RendererSceneCull::_render_get_environment(RID p_camera, RID p_scenario) {
@@ -3293,7 +3307,7 @@ bool RendererSceneCull::_render_reflection_probe_step(Instance *p_instance, int
Vector3 origin_offset = RSG::storage->reflection_probe_get_origin_offset(p_instance->base);
float max_distance = RSG::storage->reflection_probe_get_origin_max_distance(p_instance->base);
float size = scene_render->reflection_atlas_get_size(scenario->reflection_atlas);
- float lod_threshold = RSG::storage->reflection_probe_get_lod_threshold(p_instance->base) / size;
+ float mesh_lod_threshold = RSG::storage->reflection_probe_get_mesh_lod_threshold(p_instance->base) / size;
Vector3 edge = view_normals[p_step] * extents;
float distance = ABS(view_normals[p_step].dot(edge) - view_normals[p_step].dot(origin_offset)); //distance from origin offset to actual view distance limit
@@ -3327,7 +3341,7 @@ bool RendererSceneCull::_render_reflection_probe_step(Instance *p_instance, int
RendererSceneRender::CameraData camera_data;
camera_data.set_camera(xform, cm, false, false);
- _render_scene(&camera_data, RID(), environment, RID(), RSG::storage->reflection_probe_get_cull_mask(p_instance->base), p_instance->scenario->self, RID(), shadow_atlas, reflection_probe->instance, p_step, lod_threshold, use_shadows);
+ _render_scene(&camera_data, RID(), environment, RID(), RSG::storage->reflection_probe_get_cull_mask(p_instance->base), p_instance->scenario->self, RID(), shadow_atlas, reflection_probe->instance, p_step, mesh_lod_threshold, use_shadows);
} else {
//do roughness postprocess step until it believes it's done
@@ -3656,6 +3670,10 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) {
RSG::storage->material_update_dependency(p_instance->material_override, &p_instance->dependency_tracker);
}
+ if (p_instance->material_overlay.is_valid()) {
+ RSG::storage->material_update_dependency(p_instance->material_overlay, &p_instance->dependency_tracker);
+ }
+
if (p_instance->base_type == RS::INSTANCE_MESH) {
//remove materials no longer used and un-own them
@@ -3785,6 +3803,12 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) {
}
}
+ if (p_instance->material_overlay.is_valid()) {
+ can_cast_shadows = can_cast_shadows || RSG::storage->material_casts_shadows(p_instance->material_overlay);
+ is_animated = is_animated || RSG::storage->material_is_animated(p_instance->material_overlay);
+ _update_instance_shader_parameters_from_material(isparams, p_instance->instance_shader_parameters, p_instance->material_overlay);
+ }
+
if (can_cast_shadows != geom->can_cast_shadows) {
//ability to cast shadows change, let lights now
for (Set<Instance *>::Element *E = geom->lights.front(); E; E = E->next()) {
@@ -3897,6 +3921,7 @@ bool RendererSceneCull::free(RID p_rid) {
instance_set_scenario(p_rid, RID());
instance_set_base(p_rid, RID());
instance_geometry_set_material_override(p_rid, RID());
+ instance_geometry_set_material_overlay(p_rid, RID());
instance_attach_skeleton(p_rid, RID());
if (instance->instance_allocated_shader_parameters) {
diff --git a/servers/rendering/renderer_scene_cull.h b/servers/rendering/renderer_scene_cull.h
index e51a1fc02e..071d88233f 100644
--- a/servers/rendering/renderer_scene_cull.h
+++ b/servers/rendering/renderer_scene_cull.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -390,6 +390,7 @@ public:
RID skeleton;
RID material_override;
+ RID material_overlay;
RID mesh_instance; //only used for meshes and when skeleton/blendshapes exist
@@ -961,6 +962,7 @@ public:
virtual void instance_geometry_set_flag(RID p_instance, RS::InstanceFlags p_flags, bool p_enabled);
virtual void instance_geometry_set_cast_shadows_setting(RID p_instance, RS::ShadowCastingSetting p_shadow_casting_setting);
virtual void instance_geometry_set_material_override(RID p_instance, RID p_material);
+ virtual void instance_geometry_set_material_overlay(RID p_instance, RID p_material);
virtual void instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RS::VisibilityRangeFadeMode p_fade_mode);
@@ -982,7 +984,7 @@ public:
void _light_instance_setup_directional_shadow(int p_shadow_index, Instance *p_instance, const Transform3D p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_orthogonal, bool p_cam_vaspect);
- _FORCE_INLINE_ bool _light_instance_update_shadow(Instance *p_instance, const Transform3D p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_orthogonal, bool p_cam_vaspect, RID p_shadow_atlas, Scenario *p_scenario, float p_scren_lod_threshold);
+ _FORCE_INLINE_ bool _light_instance_update_shadow(Instance *p_instance, const Transform3D p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_orthogonal, bool p_cam_vaspect, RID p_shadow_atlas, Scenario *p_scenario, float p_scren_mesh_lod_threshold);
RID _render_get_environment(RID p_camera, RID p_scenario);
@@ -1054,10 +1056,10 @@ public:
_FORCE_INLINE_ bool _visibility_parent_check(const CullData &p_cull_data, const InstanceData &p_instance_data);
bool _render_reflection_probe_step(Instance *p_instance, int p_step);
- void _render_scene(const RendererSceneRender::CameraData *p_camera_data, RID p_render_buffers, RID p_environment, RID p_force_camera_effects, uint32_t p_visible_layers, RID p_scenario, RID p_viewport, RID p_shadow_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_lod_threshold, bool p_using_shadows = true, RenderInfo *r_render_info = nullptr);
+ void _render_scene(const RendererSceneRender::CameraData *p_camera_data, RID p_render_buffers, RID p_environment, RID p_force_camera_effects, uint32_t p_visible_layers, RID p_scenario, RID p_viewport, RID p_shadow_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, bool p_using_shadows = true, RenderInfo *r_render_info = nullptr);
void render_empty_scene(RID p_render_buffers, RID p_scenario, RID p_shadow_atlas);
- void render_camera(RID p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, float p_screen_lod_threshold, RID p_shadow_atlas, Ref<XRInterface> &p_xr_interface, RendererScene::RenderInfo *r_render_info = nullptr);
+ void render_camera(RID p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, float p_screen_mesh_lod_threshold, RID p_shadow_atlas, Ref<XRInterface> &p_xr_interface, RendererScene::RenderInfo *r_render_info = nullptr);
void update_dirty_instances();
void render_particle_colliders();
@@ -1108,6 +1110,9 @@ public:
PASS10(environment_set_ssao, RID, bool, float, float, float, float, float, float, float, float)
PASS6(environment_set_ssao_quality, RS::EnvironmentSSAOQuality, bool, float, int, float, float)
+ PASS6(environment_set_ssil, RID, bool, float, float, float, float)
+ PASS6(environment_set_ssil_quality, RS::EnvironmentSSILQuality, bool, float, int, float, float)
+
PASS11(environment_set_glow, RID, bool, Vector<float>, float, float, float, float, RS::EnvironmentGlowBlendMode, float, float, float)
PASS1(environment_glow_set_use_bicubic_upscale, bool)
PASS1(environment_glow_set_use_high_quality, bool)
diff --git a/servers/rendering/renderer_scene_occlusion_cull.cpp b/servers/rendering/renderer_scene_occlusion_cull.cpp
index 1b8aea36d7..bda0950097 100644
--- a/servers/rendering/renderer_scene_occlusion_cull.cpp
+++ b/servers/rendering/renderer_scene_occlusion_cull.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_scene_occlusion_cull.h b/servers/rendering/renderer_scene_occlusion_cull.h
index 4e4b1b94db..48412dab68 100644
--- a/servers/rendering/renderer_scene_occlusion_cull.h
+++ b/servers/rendering/renderer_scene_occlusion_cull.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_scene_render.cpp b/servers/rendering/renderer_scene_render.cpp
index 38d1218dee..c802f72fdf 100644
--- a/servers/rendering/renderer_scene_render.cpp
+++ b/servers/rendering/renderer_scene_render.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_scene_render.h b/servers/rendering/renderer_scene_render.h
index 0d71ea22da..f99d34d292 100644
--- a/servers/rendering/renderer_scene_render.h
+++ b/servers/rendering/renderer_scene_render.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -51,6 +51,7 @@ public:
virtual GeometryInstance *geometry_instance_create(RID p_base) = 0;
virtual void geometry_instance_set_skeleton(GeometryInstance *p_geometry_instance, RID p_skeleton) = 0;
virtual void geometry_instance_set_material_override(GeometryInstance *p_geometry_instance, RID p_override) = 0;
+ virtual void geometry_instance_set_material_overlay(GeometryInstance *p_geometry_instance, RID p_override) = 0;
virtual void geometry_instance_set_surface_materials(GeometryInstance *p_geometry_instance, const Vector<RID> &p_material) = 0;
virtual void geometry_instance_set_mesh_instance(GeometryInstance *p_geometry_instance, RID p_mesh_instance) = 0;
virtual void geometry_instance_set_transform(GeometryInstance *p_geometry_instance, const Transform3D &p_transform, const AABB &p_aabb, const AABB &p_transformed_aabbb) = 0;
@@ -134,9 +135,11 @@ public:
virtual void environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) = 0;
virtual void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_power, float p_detail, float p_horizon, float p_sharpness, float p_light_affect, float p_ao_channel_affect) = 0;
-
virtual void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
+ virtual void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) = 0;
+ virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
+
virtual void environment_set_sdfgi(RID p_env, bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0;
virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) = 0;
@@ -246,7 +249,7 @@ public:
void set_multiview_camera(uint32_t p_view_count, const Transform3D *p_transforms, const CameraMatrix *p_projections, bool p_is_ortogonal, bool p_vaspect);
};
- virtual void render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RendererScene::RenderInfo *r_render_info = nullptr) = 0;
+ virtual void render_scene(RID p_render_buffers, const CameraData *p_camera_data, const PagedArray<GeometryInstance *> &p_instances, const PagedArray<RID> &p_lights, const PagedArray<RID> &p_reflection_probes, const PagedArray<RID> &p_voxel_gi_instances, const PagedArray<RID> &p_decals, const PagedArray<RID> &p_lightmaps, const PagedArray<RID> &p_fog_volumes, RID p_environment, RID p_camera_effects, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RendererScene::RenderInfo *r_render_info = nullptr) = 0;
virtual void render_material(const Transform3D &p_cam_transform, const CameraMatrix &p_cam_projection, bool p_cam_ortogonal, const PagedArray<GeometryInstance *> &p_instances, RID p_framebuffer, const Rect2i &p_region) = 0;
virtual void render_particle_collider_heightfield(RID p_collider, const Transform3D &p_transform, const PagedArray<GeometryInstance *> &p_instances) = 0;
diff --git a/servers/rendering/renderer_storage.cpp b/servers/rendering/renderer_storage.cpp
index aa005fac0a..56409ae187 100644
--- a/servers/rendering/renderer_storage.cpp
+++ b/servers/rendering/renderer_storage.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_storage.h b/servers/rendering/renderer_storage.h
index 8926bf24aa..43a7778d67 100644
--- a/servers/rendering/renderer_storage.h
+++ b/servers/rendering/renderer_storage.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -366,7 +366,7 @@ public:
virtual void reflection_probe_set_enable_box_projection(RID p_probe, bool p_enable) = 0;
virtual void reflection_probe_set_enable_shadows(RID p_probe, bool p_enable) = 0;
virtual void reflection_probe_set_cull_mask(RID p_probe, uint32_t p_layers) = 0;
- virtual void reflection_probe_set_lod_threshold(RID p_probe, float p_ratio) = 0;
+ virtual void reflection_probe_set_mesh_lod_threshold(RID p_probe, float p_ratio) = 0;
virtual AABB reflection_probe_get_aabb(RID p_probe) const = 0;
virtual RS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const = 0;
@@ -375,7 +375,7 @@ public:
virtual Vector3 reflection_probe_get_origin_offset(RID p_probe) const = 0;
virtual float reflection_probe_get_origin_max_distance(RID p_probe) const = 0;
virtual bool reflection_probe_renders_shadows(RID p_probe) const = 0;
- virtual float reflection_probe_get_lod_threshold(RID p_probe) const = 0;
+ virtual float reflection_probe_get_mesh_lod_threshold(RID p_probe) const = 0;
virtual void base_update_dependency(RID p_base, DependencyTracker *p_instance) = 0;
virtual void skeleton_update_dependency(RID p_base, DependencyTracker *p_instance) = 0;
@@ -620,6 +620,7 @@ public:
virtual uint64_t get_rendering_info(RS::RenderingInfo p_info) = 0;
virtual String get_video_adapter_name() const = 0;
virtual String get_video_adapter_vendor() const = 0;
+ virtual RenderingDevice::DeviceType get_video_adapter_type() const = 0;
static RendererStorage *base_singleton;
diff --git a/servers/rendering/renderer_thread_pool.cpp b/servers/rendering/renderer_thread_pool.cpp
index 98050dd508..ddf1d1bd00 100644
--- a/servers/rendering/renderer_thread_pool.cpp
+++ b/servers/rendering/renderer_thread_pool.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_thread_pool.h b/servers/rendering/renderer_thread_pool.h
index ae25415a0d..4626490d32 100644
--- a/servers/rendering/renderer_thread_pool.h
+++ b/servers/rendering/renderer_thread_pool.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/renderer_viewport.cpp b/servers/rendering/renderer_viewport.cpp
index eddf5bf53d..47934e7299 100644
--- a/servers/rendering/renderer_viewport.cpp
+++ b/servers/rendering/renderer_viewport.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -167,8 +167,8 @@ void RendererViewport::_draw_3d(Viewport *p_viewport) {
}
}
- float screen_lod_threshold = p_viewport->lod_threshold / float(p_viewport->size.width);
- RSG::scene->render_camera(p_viewport->render_buffers, p_viewport->camera, p_viewport->scenario, p_viewport->self, p_viewport->internal_size, screen_lod_threshold, p_viewport->shadow_atlas, xr_interface, &p_viewport->render_info);
+ float screen_mesh_lod_threshold = p_viewport->mesh_lod_threshold / float(p_viewport->size.width);
+ RSG::scene->render_camera(p_viewport->render_buffers, p_viewport->camera, p_viewport->scenario, p_viewport->self, p_viewport->internal_size, screen_mesh_lod_threshold, p_viewport->shadow_atlas, xr_interface, &p_viewport->render_info);
RENDER_TIMESTAMP("<End Rendering 3D Scene");
}
@@ -1084,11 +1084,11 @@ void RendererViewport::viewport_set_occlusion_culling_build_quality(RS::Viewport
RendererSceneOcclusionCull::get_singleton()->set_build_quality(p_quality);
}
-void RendererViewport::viewport_set_lod_threshold(RID p_viewport, float p_pixels) {
+void RendererViewport::viewport_set_mesh_lod_threshold(RID p_viewport, float p_pixels) {
Viewport *viewport = viewport_owner.get_or_null(p_viewport);
ERR_FAIL_COND(!viewport);
- viewport->lod_threshold = p_pixels;
+ viewport->mesh_lod_threshold = p_pixels;
}
int RendererViewport::viewport_get_render_info(RID p_viewport, RS::ViewportRenderInfoType p_type, RS::ViewportRenderInfo p_info) {
diff --git a/servers/rendering/renderer_viewport.h b/servers/rendering/renderer_viewport.h
index 5bb4dbbc6f..7bc8f9961b 100644
--- a/servers/rendering/renderer_viewport.h
+++ b/servers/rendering/renderer_viewport.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -95,7 +95,7 @@ public:
bool sdf_active;
- float lod_threshold = 1.0;
+ float mesh_lod_threshold = 1.0;
uint64_t last_pass = 0;
@@ -256,7 +256,7 @@ public:
void viewport_set_use_occlusion_culling(RID p_viewport, bool p_use_occlusion_culling);
void viewport_set_occlusion_rays_per_thread(int p_rays_per_thread);
void viewport_set_occlusion_culling_build_quality(RS::ViewportOcclusionCullingBuildQuality p_quality);
- void viewport_set_lod_threshold(RID p_viewport, float p_pixels);
+ void viewport_set_mesh_lod_threshold(RID p_viewport, float p_pixels);
virtual int viewport_get_render_info(RID p_viewport, RS::ViewportRenderInfoType p_type, RS::ViewportRenderInfo p_info);
virtual void viewport_set_debug_draw(RID p_viewport, RS::ViewportDebugDraw p_draw);
diff --git a/servers/rendering/rendering_device.cpp b/servers/rendering/rendering_device.cpp
index 38f57b4624..88a8dfe694 100644
--- a/servers/rendering/rendering_device.cpp
+++ b/servers/rendering/rendering_device.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -98,10 +98,10 @@ RID RenderingDevice::_texture_create_shared(const Ref<RDTextureView> &p_view, RI
return texture_create_shared(p_view->base, p_with_texture);
}
-RID RenderingDevice::_texture_create_shared_from_slice(const Ref<RDTextureView> &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, TextureSliceType p_slice_type) {
+RID RenderingDevice::_texture_create_shared_from_slice(const Ref<RDTextureView> &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, uint32_t p_mipmaps, TextureSliceType p_slice_type) {
ERR_FAIL_COND_V(p_view.is_null(), RID());
- return texture_create_shared_from_slice(p_view->base, p_with_texture, p_layer, p_mipmap, p_slice_type);
+ return texture_create_shared_from_slice(p_view->base, p_with_texture, p_layer, p_mipmap, p_mipmaps, p_slice_type);
}
RenderingDevice::FramebufferFormatID RenderingDevice::_framebuffer_format_create(const TypedArray<RDAttachmentFormat> &p_attachments, uint32_t p_view_count) {
@@ -364,7 +364,7 @@ void RenderingDevice::_compute_list_set_push_constant(ComputeListID p_list, cons
void RenderingDevice::_bind_methods() {
ClassDB::bind_method(D_METHOD("texture_create", "format", "view", "data"), &RenderingDevice::_texture_create, DEFVAL(Array()));
ClassDB::bind_method(D_METHOD("texture_create_shared", "view", "with_texture"), &RenderingDevice::_texture_create_shared);
- ClassDB::bind_method(D_METHOD("texture_create_shared_from_slice", "view", "with_texture", "layer", "mipmap", "slice_type"), &RenderingDevice::_texture_create_shared_from_slice, DEFVAL(TEXTURE_SLICE_2D));
+ ClassDB::bind_method(D_METHOD("texture_create_shared_from_slice", "view", "with_texture", "layer", "mipmap", "mipmaps", "slice_type"), &RenderingDevice::_texture_create_shared_from_slice, DEFVAL(1), DEFVAL(TEXTURE_SLICE_2D));
ClassDB::bind_method(D_METHOD("texture_update", "texture", "layer", "data", "post_barrier"), &RenderingDevice::texture_update, DEFVAL(BARRIER_MASK_ALL));
ClassDB::bind_method(D_METHOD("texture_get_data", "texture", "layer"), &RenderingDevice::texture_get_data);
@@ -490,6 +490,13 @@ void RenderingDevice::_bind_methods() {
BIND_CONSTANT(BARRIER_MASK_ALL);
BIND_CONSTANT(BARRIER_MASK_NO_BARRIER);
+ BIND_ENUM_CONSTANT(DEVICE_TYPE_OTHER);
+ BIND_ENUM_CONSTANT(DEVICE_TYPE_INTEGRATED_GPU);
+ BIND_ENUM_CONSTANT(DEVICE_TYPE_DISCRETE_GPU);
+ BIND_ENUM_CONSTANT(DEVICE_TYPE_VIRTUAL_GPU);
+ BIND_ENUM_CONSTANT(DEVICE_TYPE_CPU);
+ BIND_ENUM_CONSTANT(DEVICE_TYPE_MAX);
+
BIND_ENUM_CONSTANT(DRIVER_RESOURCE_VULKAN_DEVICE);
BIND_ENUM_CONSTANT(DRIVER_RESOURCE_VULKAN_PHYSICAL_DEVICE);
BIND_ENUM_CONSTANT(DRIVER_RESOURCE_VULKAN_INSTANCE);
diff --git a/servers/rendering/rendering_device.h b/servers/rendering/rendering_device.h
index 563a80c12c..313c0e11b2 100644
--- a/servers/rendering/rendering_device.h
+++ b/servers/rendering/rendering_device.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -60,6 +60,17 @@ public:
DEVICE_DIRECTX
};
+ // This enum matches VkPhysicalDeviceType (except for `DEVICE_TYPE_MAX`).
+ // Unlike VkPhysicalDeviceType, DeviceType is exposed to the scripting API.
+ enum DeviceType {
+ DEVICE_TYPE_OTHER,
+ DEVICE_TYPE_INTEGRATED_GPU,
+ DEVICE_TYPE_DISCRETE_GPU,
+ DEVICE_TYPE_VIRTUAL_GPU,
+ DEVICE_TYPE_CPU,
+ DEVICE_TYPE_MAX,
+ };
+
enum DriverResource {
DRIVER_RESOURCE_VULKAN_DEVICE = 0,
DRIVER_RESOURCE_VULKAN_PHYSICAL_DEVICE,
@@ -505,7 +516,7 @@ public:
TEXTURE_SLICE_2D_ARRAY,
};
- virtual RID texture_create_shared_from_slice(const TextureView &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, TextureSliceType p_slice_type = TEXTURE_SLICE_2D) = 0;
+ virtual RID texture_create_shared_from_slice(const TextureView &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, uint32_t p_mipmaps = 1, TextureSliceType p_slice_type = TEXTURE_SLICE_2D) = 0;
virtual Error texture_update(RID p_texture, uint32_t p_layer, const Vector<uint8_t> &p_data, uint32_t p_post_barrier = BARRIER_MASK_ALL) = 0;
virtual Vector<uint8_t> texture_get_data(RID p_texture, uint32_t p_layer) = 0; // CPU textures will return immediately, while GPU textures will most likely force a flush
@@ -1199,6 +1210,7 @@ public:
virtual String get_device_vendor_name() const = 0;
virtual String get_device_name() const = 0;
+ virtual RenderingDevice::DeviceType get_device_type() const = 0;
virtual String get_device_pipeline_cache_uuid() const = 0;
virtual uint64_t get_driver_resource(DriverResource p_resource, RID p_rid = RID(), uint64_t p_index = 0) = 0;
@@ -1210,7 +1222,7 @@ protected:
//binders to script API
RID _texture_create(const Ref<RDTextureFormat> &p_format, const Ref<RDTextureView> &p_view, const TypedArray<PackedByteArray> &p_data = Array());
RID _texture_create_shared(const Ref<RDTextureView> &p_view, RID p_with_texture);
- RID _texture_create_shared_from_slice(const Ref<RDTextureView> &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, TextureSliceType p_slice_type = TEXTURE_SLICE_2D);
+ RID _texture_create_shared_from_slice(const Ref<RDTextureView> &p_view, RID p_with_texture, uint32_t p_layer, uint32_t p_mipmap, uint32_t p_mipmaps = 1, TextureSliceType p_slice_type = TEXTURE_SLICE_2D);
FramebufferFormatID _framebuffer_format_create(const TypedArray<RDAttachmentFormat> &p_attachments, uint32_t p_view_count);
FramebufferFormatID _framebuffer_format_create_multipass(const TypedArray<RDAttachmentFormat> &p_attachments, const TypedArray<RDFramebufferPass> &p_passes, uint32_t p_view_count);
@@ -1237,6 +1249,7 @@ protected:
Vector<int64_t> _draw_list_switch_to_next_pass_split(uint32_t p_splits);
};
+VARIANT_ENUM_CAST(RenderingDevice::DeviceType)
VARIANT_ENUM_CAST(RenderingDevice::DriverResource)
VARIANT_ENUM_CAST(RenderingDevice::ShaderStage)
VARIANT_ENUM_CAST(RenderingDevice::ShaderLanguage)
diff --git a/servers/rendering/rendering_device_binds.cpp b/servers/rendering/rendering_device_binds.cpp
index 3d09d83601..19cde610ba 100644
--- a/servers/rendering/rendering_device_binds.cpp
+++ b/servers/rendering/rendering_device_binds.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/rendering_device_binds.h b/servers/rendering/rendering_device_binds.h
index 651c9b0090..b07857364b 100644
--- a/servers/rendering/rendering_device_binds.h
+++ b/servers/rendering/rendering_device_binds.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/rendering_server_default.cpp b/servers/rendering/rendering_server_default.cpp
index 2ce9a20b6b..d7e9d210db 100644
--- a/servers/rendering/rendering_server_default.cpp
+++ b/servers/rendering/rendering_server_default.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -255,6 +255,10 @@ String RenderingServerDefault::get_video_adapter_vendor() const {
return RSG::storage->get_video_adapter_vendor();
}
+RenderingDevice::DeviceType RenderingServerDefault::get_video_adapter_type() const {
+ return RSG::storage->get_video_adapter_type();
+}
+
void RenderingServerDefault::set_frame_profiling_enabled(bool p_enable) {
RSG::storage->capturing_timestamps = p_enable;
}
diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h
index b50631bb21..ead49f053c 100644
--- a/servers/rendering/rendering_server_default.h
+++ b/servers/rendering/rendering_server_default.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -374,7 +374,7 @@ public:
FUNC2(reflection_probe_set_enable_shadows, RID, bool)
FUNC2(reflection_probe_set_cull_mask, RID, uint32_t)
FUNC2(reflection_probe_set_resolution, RID, int)
- FUNC2(reflection_probe_set_lod_threshold, RID, float)
+ FUNC2(reflection_probe_set_mesh_lod_threshold, RID, float)
/* DECAL API */
@@ -575,7 +575,7 @@ public:
FUNC2(viewport_set_use_occlusion_culling, RID, bool)
FUNC1(viewport_set_occlusion_rays_per_thread, int)
FUNC1(viewport_set_occlusion_culling_build_quality, ViewportOcclusionCullingBuildQuality)
- FUNC2(viewport_set_lod_threshold, RID, float)
+ FUNC2(viewport_set_mesh_lod_threshold, RID, float)
FUNC3R(int, viewport_get_render_info, RID, ViewportRenderInfoType, ViewportRenderInfo)
FUNC2(viewport_set_debug_draw, RID, ViewportDebugDraw)
@@ -626,6 +626,9 @@ public:
FUNC10(environment_set_ssao, RID, bool, float, float, float, float, float, float, float, float)
FUNC6(environment_set_ssao_quality, EnvironmentSSAOQuality, bool, float, int, float, float)
+ FUNC6(environment_set_ssil, RID, bool, float, float, float, float)
+ FUNC6(environment_set_ssil_quality, EnvironmentSSILQuality, bool, float, int, float, float)
+
FUNC11(environment_set_glow, RID, bool, Vector<float>, float, float, float, float, EnvironmentGlowBlendMode, float, float, float)
FUNC1(environment_glow_set_use_bicubic_upscale, bool)
FUNC1(environment_glow_set_use_high_quality, bool)
@@ -709,6 +712,7 @@ public:
FUNC3(instance_geometry_set_flag, RID, InstanceFlags, bool)
FUNC2(instance_geometry_set_cast_shadows_setting, RID, ShadowCastingSetting)
FUNC2(instance_geometry_set_material_override, RID, RID)
+ FUNC2(instance_geometry_set_material_overlay, RID, RID)
FUNC6(instance_geometry_set_visibility_range, RID, float, float, float, float, VisibilityRangeFadeMode)
FUNC4(instance_geometry_set_lightmap, RID, RID, const Rect2 &, int)
@@ -891,6 +895,7 @@ public:
virtual uint64_t get_rendering_info(RenderingInfo p_info) override;
virtual String get_video_adapter_name() const override;
virtual String get_video_adapter_vendor() const override;
+ virtual RenderingDevice::DeviceType get_video_adapter_type() const override;
virtual void set_frame_profiling_enabled(bool p_enable) override;
virtual Vector<FrameProfileArea> get_frame_profile() override;
diff --git a/servers/rendering/rendering_server_globals.cpp b/servers/rendering/rendering_server_globals.cpp
index 2dda506bac..b8b06b5eea 100644
--- a/servers/rendering/rendering_server_globals.cpp
+++ b/servers/rendering/rendering_server_globals.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/rendering_server_globals.h b/servers/rendering/rendering_server_globals.h
index 63755e6125..4351830a5f 100644
--- a/servers/rendering/rendering_server_globals.h
+++ b/servers/rendering/rendering_server_globals.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp
index 33f4999cdf..adbcdedacc 100644
--- a/servers/rendering/shader_language.cpp
+++ b/servers/rendering/shader_language.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -690,7 +690,7 @@ ShaderLanguage::Token ShaderLanguage::_get_token() {
}
if (!str.is_valid_int()) {
if (uint_suffix_found) {
- return _make_token(TK_ERROR, "Invalid (usigned integer) numeric constant");
+ return _make_token(TK_ERROR, "Invalid (unsigned integer) numeric constant");
} else {
return _make_token(TK_ERROR, "Invalid (integer) numeric constant");
}
@@ -977,8 +977,6 @@ void ShaderLanguage::clear() {
completion_base = TYPE_VOID;
completion_base_array = false;
- unknown_varying_usages.clear();
-
#ifdef DEBUG_ENABLED
used_constants.clear();
used_varyings.clear();
@@ -3868,55 +3866,77 @@ PropertyInfo ShaderLanguage::uniform_to_property_info(const ShaderNode::Uniform
return pi;
}
-uint32_t ShaderLanguage::get_type_size(DataType p_type) {
+uint32_t ShaderLanguage::get_datatype_size(ShaderLanguage::DataType p_type) {
switch (p_type) {
case TYPE_VOID:
return 0;
case TYPE_BOOL:
- case TYPE_INT:
- case TYPE_UINT:
- case TYPE_FLOAT:
return 4;
case TYPE_BVEC2:
- case TYPE_IVEC2:
- case TYPE_UVEC2:
- case TYPE_VEC2:
return 8;
case TYPE_BVEC3:
- case TYPE_IVEC3:
- case TYPE_UVEC3:
- case TYPE_VEC3:
return 12;
case TYPE_BVEC4:
+ return 16;
+ case TYPE_INT:
+ return 4;
+ case TYPE_IVEC2:
+ return 8;
+ case TYPE_IVEC3:
+ return 12;
case TYPE_IVEC4:
+ return 16;
+ case TYPE_UINT:
+ return 4;
+ case TYPE_UVEC2:
+ return 8;
+ case TYPE_UVEC3:
+ return 12;
case TYPE_UVEC4:
+ return 16;
+ case TYPE_FLOAT:
+ return 4;
+ case TYPE_VEC2:
+ return 8;
+ case TYPE_VEC3:
+ return 12;
case TYPE_VEC4:
return 16;
case TYPE_MAT2:
- return 8;
+ return 32; // 4 * 4 + 4 * 4
case TYPE_MAT3:
- return 12;
+ return 48; // 4 * 4 + 4 * 4 + 4 * 4
case TYPE_MAT4:
- return 16;
+ return 64;
case TYPE_SAMPLER2D:
+ return 16;
case TYPE_ISAMPLER2D:
+ return 16;
case TYPE_USAMPLER2D:
+ return 16;
case TYPE_SAMPLER2DARRAY:
+ return 16;
case TYPE_ISAMPLER2DARRAY:
+ return 16;
case TYPE_USAMPLER2DARRAY:
+ return 16;
case TYPE_SAMPLER3D:
+ return 16;
case TYPE_ISAMPLER3D:
+ return 16;
case TYPE_USAMPLER3D:
+ return 16;
case TYPE_SAMPLERCUBE:
+ return 16;
case TYPE_SAMPLERCUBEARRAY:
- return 4; //not really, but useful for indices
+ return 16;
case TYPE_STRUCT:
- // FIXME: Implement.
- return 0;
- case ShaderLanguage::TYPE_MAX:
return 0;
+ case TYPE_MAX: {
+ ERR_FAIL_V(0);
+ };
}
- return 0;
+ ERR_FAIL_V(0);
}
void ShaderLanguage::get_keyword_list(List<String> *r_keywords) {
@@ -4122,43 +4142,6 @@ bool ShaderLanguage::_validate_varying_assign(ShaderNode::Varying &p_varying, St
return true;
}
-bool ShaderLanguage::_validate_varying_using(ShaderNode::Varying &p_varying, String *r_message) {
- switch (p_varying.stage) {
- case ShaderNode::Varying::STAGE_UNKNOWN:
- VaryingUsage usage;
- usage.var = &p_varying;
- usage.line = tk_line;
- unknown_varying_usages.push_back(usage);
- break;
- case ShaderNode::Varying::STAGE_VERTEX:
- if (current_function == varying_function_names.fragment || current_function == varying_function_names.light) {
- p_varying.stage = ShaderNode::Varying::STAGE_VERTEX_TO_FRAGMENT_LIGHT;
- }
- break;
- case ShaderNode::Varying::STAGE_FRAGMENT:
- if (current_function == varying_function_names.light) {
- p_varying.stage = ShaderNode::Varying::STAGE_FRAGMENT_TO_LIGHT;
- }
- break;
- default:
- break;
- }
- return true;
-}
-
-bool ShaderLanguage::_check_varying_usages(int *r_error_line, String *r_error_message) const {
- for (const List<ShaderLanguage::VaryingUsage>::Element *E = unknown_varying_usages.front(); E; E = E->next()) {
- ShaderNode::Varying::Stage stage = E->get().var->stage;
- if (stage != ShaderNode::Varying::STAGE_UNKNOWN && stage != ShaderNode::Varying::STAGE_VERTEX && stage != ShaderNode::Varying::STAGE_VERTEX_TO_FRAGMENT_LIGHT) {
- *r_error_line = E->get().line;
- *r_error_message = RTR("Fragment-stage varying could not been accessed in custom function!");
- return false;
- }
- }
-
- return true;
-}
-
bool ShaderLanguage::_check_node_constness(const Node *p_node) const {
switch (p_node->type) {
case Node::TYPE_OPERATOR: {
@@ -4991,55 +4974,104 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
for (int i = 0; i < call_function->arguments.size(); i++) {
int argidx = i + 1;
if (argidx < func->arguments.size()) {
- if (call_function->arguments[i].is_const || call_function->arguments[i].qualifier == ArgumentQualifier::ARGUMENT_QUALIFIER_OUT || call_function->arguments[i].qualifier == ArgumentQualifier::ARGUMENT_QUALIFIER_INOUT) {
- bool error = false;
- Node *n = func->arguments[argidx];
- if (n->type == Node::TYPE_CONSTANT || n->type == Node::TYPE_OPERATOR) {
- if (!call_function->arguments[i].is_const) {
+ bool error = false;
+ Node *n = func->arguments[argidx];
+ ArgumentQualifier arg_qual = call_function->arguments[i].qualifier;
+ bool is_out_arg = arg_qual != ArgumentQualifier::ARGUMENT_QUALIFIER_IN;
+
+ if (n->type == Node::TYPE_VARIABLE || n->type == Node::TYPE_ARRAY) {
+ StringName varname;
+
+ if (n->type == Node::TYPE_VARIABLE) {
+ VariableNode *vn = static_cast<VariableNode *>(n);
+ varname = vn->name;
+ } else { // TYPE_ARRAY
+ ArrayNode *an = static_cast<ArrayNode *>(n);
+ varname = an->name;
+ }
+
+ if (shader->varyings.has(varname)) {
+ switch (shader->varyings[varname].stage) {
+ case ShaderNode::Varying::STAGE_UNKNOWN: {
+ _set_error(vformat("Varying '%s' must be assigned in the vertex or fragment function first!", varname));
+ return nullptr;
+ }
+ case ShaderNode::Varying::STAGE_VERTEX_TO_FRAGMENT_LIGHT:
+ [[fallthrough]];
+ case ShaderNode::Varying::STAGE_VERTEX:
+ if (is_out_arg && current_function != varying_function_names.vertex) { // inout/out
+ error = true;
+ }
+ break;
+ case ShaderNode::Varying::STAGE_FRAGMENT_TO_LIGHT:
+ [[fallthrough]];
+ case ShaderNode::Varying::STAGE_FRAGMENT:
+ if (!is_out_arg) {
+ if (current_function != varying_function_names.fragment && current_function != varying_function_names.light) {
+ error = true;
+ }
+ } else if (current_function != varying_function_names.fragment) { // inout/out
+ error = true;
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (error) {
+ _set_error(vformat("Varying '%s' cannot be passed for the '%s' parameter in that context!", varname, _get_qualifier_str(arg_qual)));
+ return nullptr;
+ }
+ }
+ }
+
+ bool is_const_arg = call_function->arguments[i].is_const;
+
+ if (is_const_arg || is_out_arg) {
+ StringName varname;
+
+ if (n->type == Node::TYPE_CONSTANT || n->type == Node::TYPE_OPERATOR || n->type == Node::TYPE_ARRAY_CONSTRUCT) {
+ if (!is_const_arg) {
error = true;
}
} else if (n->type == Node::TYPE_ARRAY) {
ArrayNode *an = static_cast<ArrayNode *>(n);
- if (an->call_expression != nullptr || an->is_const) {
+ if (!is_const_arg && (an->call_expression != nullptr || an->is_const)) {
error = true;
}
+ varname = an->name;
} else if (n->type == Node::TYPE_VARIABLE) {
VariableNode *vn = static_cast<VariableNode *>(n);
- if (vn->is_const) {
+ if (vn->is_const && !is_const_arg) {
error = true;
- } else {
- StringName varname = vn->name;
- if (shader->constants.has(varname)) {
- error = true;
- } else if (shader->uniforms.has(varname)) {
- error = true;
- } else {
- if (shader->varyings.has(varname)) {
- _set_error(vformat("Varyings cannot be passed for '%s' parameter!", _get_qualifier_str(call_function->arguments[i].qualifier)));
- return nullptr;
- }
- if (p_function_info.built_ins.has(varname)) {
- BuiltInInfo info = p_function_info.built_ins[varname];
- if (info.constant) {
- error = true;
- }
- }
- }
}
+ varname = vn->name;
} else if (n->type == Node::TYPE_MEMBER) {
MemberNode *mn = static_cast<MemberNode *>(n);
- if (mn->basetype_const) {
+ if (mn->basetype_const && is_out_arg) {
error = true;
}
}
+ if (!error && varname != StringName()) {
+ if (shader->constants.has(varname)) {
+ error = true;
+ } else if (shader->uniforms.has(varname)) {
+ error = true;
+ } else if (p_function_info.built_ins.has(varname)) {
+ BuiltInInfo info = p_function_info.built_ins[varname];
+ if (info.constant) {
+ error = true;
+ }
+ }
+ }
+
if (error) {
- _set_error(vformat("Constant value cannot be passed for '%s' parameter!", _get_qualifier_str(call_function->arguments[i].qualifier)));
+ _set_error(vformat("Constant value cannot be passed for '%s' parameter!", _get_qualifier_str(arg_qual)));
return nullptr;
}
}
if (is_sampler_type(call_function->arguments[i].type)) {
//let's see where our argument comes from
- Node *n = func->arguments[argidx];
ERR_CONTINUE(n->type != Node::TYPE_VARIABLE); //bug? this should always be a variable
VariableNode *vn = static_cast<VariableNode *>(n);
StringName varname = vn->name;
@@ -5143,9 +5175,21 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
return nullptr;
}
} else {
- if (!_validate_varying_using(shader->varyings[identifier], &error)) {
- _set_error(error);
- return nullptr;
+ ShaderNode::Varying &var = shader->varyings[identifier];
+
+ switch (var.stage) {
+ case ShaderNode::Varying::STAGE_VERTEX:
+ if (current_function == varying_function_names.fragment || current_function == varying_function_names.light) {
+ var.stage = ShaderNode::Varying::STAGE_VERTEX_TO_FRAGMENT_LIGHT;
+ }
+ break;
+ case ShaderNode::Varying::STAGE_FRAGMENT:
+ if (current_function == varying_function_names.light) {
+ var.stage = ShaderNode::Varying::STAGE_FRAGMENT_TO_LIGHT;
+ }
+ break;
+ default:
+ break;
}
}
}
@@ -5287,7 +5331,7 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
_set_error("Expected expression, found: " + get_token_text(tk));
return nullptr;
} else {
-#if DEBUG_ENABLED
+#ifdef DEBUG_ENABLED
if (check_warnings && HAS_WARNING(ShaderWarning::FORMATTING_ERROR_FLAG)) {
_add_line_warning(ShaderWarning::FORMATTING_ERROR, "Empty statement. Remove ';' to fix this warning.");
}
@@ -6098,7 +6142,7 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
ERR_FAIL_V(nullptr); //unexpected operator
}
-#if DEBUG_ENABLED
+#ifdef DEBUG_ENABLED
if (check_warnings && HAS_WARNING(ShaderWarning::FLOAT_COMPARISON_FLAG) && (op == OP_EQUAL || op == OP_NOT_EQUAL) &&
(!expression[i - 1].is_op && !expression[i + 1].is_op) &&
(expression[i - 1].node->get_datatype() == TYPE_FLOAT && expression[i + 1].node->get_datatype() == TYPE_FLOAT)) {
@@ -7549,6 +7593,21 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
int texture_binding = 0;
int uniforms = 0;
int instance_index = 0;
+#ifdef DEBUG_ENABLED
+ int uniform_buffer_size = 0;
+ int max_uniform_buffer_size = 0;
+ int uniform_buffer_exceeded_line = -1;
+
+ bool check_device_limit_warnings = false;
+ {
+ RenderingDevice *device = RenderingDevice::get_singleton();
+ if (device != nullptr) {
+ check_device_limit_warnings = check_warnings && HAS_WARNING(ShaderWarning::DEVICE_LIMIT_EXCEEDED_FLAG);
+
+ max_uniform_buffer_size = device->limit_get(RenderingDevice::LIMIT_MAX_UNIFORM_BUFFER_SIZE);
+ }
+ }
+#endif // DEBUG_ENABLED
ShaderNode::Uniform::Scope uniform_scope = ShaderNode::Uniform::SCOPE_LOCAL;
stages = &p_functions;
@@ -7949,6 +8008,24 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
uniform2.texture_order = -1;
if (uniform_scope != ShaderNode::Uniform::SCOPE_INSTANCE) {
uniform2.order = uniforms++;
+#ifdef DEBUG_ENABLED
+ if (check_device_limit_warnings) {
+ if (uniform2.array_size > 0) {
+ int size = get_datatype_size(uniform2.type) * uniform2.array_size;
+ int m = (16 * uniform2.array_size);
+ if ((size % m) != 0U) {
+ size += m - (size % m);
+ }
+ uniform_buffer_size += size;
+ } else {
+ uniform_buffer_size += get_datatype_size(uniform2.type);
+ }
+
+ if (uniform_buffer_exceeded_line == -1 && uniform_buffer_size > max_uniform_buffer_size) {
+ uniform_buffer_exceeded_line = tk_line;
+ }
+ }
+#endif // DEBUG_ENABLED
}
}
@@ -8958,14 +9035,11 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
tk = _get_token();
}
- int error_line;
- String error_message;
- if (!_check_varying_usages(&error_line, &error_message)) {
- _set_tkpos({ 0, error_line });
- _set_error(error_message);
- return ERR_PARSE_ERROR;
+#ifdef DEBUG_ENABLED
+ if (check_device_limit_warnings && uniform_buffer_exceeded_line != -1) {
+ _add_warning(ShaderWarning::DEVICE_LIMIT_EXCEEDED, uniform_buffer_exceeded_line, "uniform buffer", { uniform_buffer_size, max_uniform_buffer_size });
}
-
+#endif // DEBUG_ENABLED
return OK;
}
@@ -9673,7 +9747,7 @@ ShaderLanguage::ShaderLanguage() {
nodes = nullptr;
completion_class = TAG_GLOBAL;
-#if DEBUG_ENABLED
+#ifdef DEBUG_ENABLED
warnings_check_map.insert(ShaderWarning::UNUSED_CONSTANT, &used_constants);
warnings_check_map.insert(ShaderWarning::UNUSED_FUNCTION, &used_functions);
warnings_check_map.insert(ShaderWarning::UNUSED_STRUCT, &used_structs);
diff --git a/servers/rendering/shader_language.h b/servers/rendering/shader_language.h
index 0ed3d9fabf..b9c2d4b33c 100644
--- a/servers/rendering/shader_language.h
+++ b/servers/rendering/shader_language.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -787,7 +787,7 @@ public:
static bool is_sampler_type(DataType p_type);
static Variant constant_value_to_variant(const Vector<ShaderLanguage::ConstantNode::Value> &p_value, DataType p_type, int p_array_size, ShaderLanguage::ShaderNode::Uniform::Hint p_hint = ShaderLanguage::ShaderNode::Uniform::HINT_NONE);
static PropertyInfo uniform_to_property_info(const ShaderNode::Uniform &p_uniform);
- static uint32_t get_type_size(DataType p_type);
+ static uint32_t get_datatype_size(DataType p_type);
static void get_keyword_list(List<String> *r_keywords);
static bool is_control_flow_keyword(String p_keyword);
@@ -919,11 +919,14 @@ private:
bool check_warnings = false;
uint32_t warning_flags;
- void _add_line_warning(ShaderWarning::Code p_code, const StringName &p_subject = "") {
- warnings.push_back(ShaderWarning(p_code, tk_line, p_subject));
+ void _add_line_warning(ShaderWarning::Code p_code, const StringName &p_subject = "", const Vector<Variant> &p_extra_args = Vector<Variant>()) {
+ warnings.push_back(ShaderWarning(p_code, tk_line, p_subject, p_extra_args));
}
- void _add_warning(ShaderWarning::Code p_code, int p_line, const StringName &p_subject = "") {
- warnings.push_back(ShaderWarning(p_code, p_line, p_subject));
+ void _add_global_warning(ShaderWarning::Code p_code, const StringName &p_subject = "", const Vector<Variant> &p_extra_args = Vector<Variant>()) {
+ warnings.push_back(ShaderWarning(p_code, -1, p_subject, p_extra_args));
+ }
+ void _add_warning(ShaderWarning::Code p_code, int p_line, const StringName &p_subject = "", const Vector<Variant> &p_extra_args = Vector<Variant>()) {
+ warnings.push_back(ShaderWarning(p_code, p_line, p_subject, p_extra_args));
}
void _check_warning_accums();
#endif // DEBUG_ENABLED
@@ -938,14 +941,6 @@ private:
VaryingFunctionNames varying_function_names;
- struct VaryingUsage {
- ShaderNode::Varying *var;
- int line;
- };
- List<VaryingUsage> unknown_varying_usages;
-
- bool _check_varying_usages(int *r_error_line, String *r_error_message) const;
-
TkPos _get_tkpos() {
TkPos tkp;
tkp.char_idx = char_idx;
@@ -1047,7 +1042,6 @@ private:
bool _propagate_function_call_sampler_uniform_settings(StringName p_name, int p_argument, TextureFilter p_filter, TextureRepeat p_repeat);
bool _propagate_function_call_sampler_builtin_reference(StringName p_name, int p_argument, const StringName &p_builtin);
bool _validate_varying_assign(ShaderNode::Varying &p_varying, String *r_message);
- bool _validate_varying_using(ShaderNode::Varying &p_varying, String *r_message);
bool _check_node_constness(const Node *p_node) const;
Node *_parse_array_size(BlockNode *p_block, const FunctionInfo &p_function_info, int &r_array_size);
diff --git a/servers/rendering/shader_types.cpp b/servers/rendering/shader_types.cpp
index 91ba8301e2..9ae60c14cb 100644
--- a/servers/rendering/shader_types.cpp
+++ b/servers/rendering/shader_types.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -74,6 +74,7 @@ ShaderTypes::ShaderTypes() {
shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["POINT_SIZE"] = ShaderLanguage::TYPE_FLOAT;
shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["INSTANCE_ID"] = constt(ShaderLanguage::TYPE_INT);
shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["INSTANCE_CUSTOM"] = constt(ShaderLanguage::TYPE_VEC4);
+ shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["VERTEX_ID"] = constt(ShaderLanguage::TYPE_INT);
shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["ROUGHNESS"] = ShaderLanguage::TYPE_FLOAT;
shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["BONE_INDICES"] = ShaderLanguage::TYPE_UVEC4;
shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["BONE_WEIGHTS"] = ShaderLanguage::TYPE_VEC4;
@@ -230,6 +231,8 @@ ShaderTypes::ShaderTypes() {
shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["CANVAS_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["SCREEN_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["INSTANCE_CUSTOM"] = constt(ShaderLanguage::TYPE_VEC4);
+ shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["INSTANCE_ID"] = constt(ShaderLanguage::TYPE_INT);
+ shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["VERTEX_ID"] = constt(ShaderLanguage::TYPE_INT);
shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["AT_LIGHT_PASS"] = constt(ShaderLanguage::TYPE_BOOL);
shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["TEXTURE_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2);
shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].can_discard = false;
diff --git a/servers/rendering/shader_types.h b/servers/rendering/shader_types.h
index 347c0ec7df..385083b670 100644
--- a/servers/rendering/shader_types.h
+++ b/servers/rendering/shader_types.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/rendering/shader_warnings.cpp b/servers/rendering/shader_warnings.cpp
index bffae484a8..f2e74c4d78 100644
--- a/servers/rendering/shader_warnings.cpp
+++ b/servers/rendering/shader_warnings.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -63,6 +63,8 @@ String ShaderWarning::get_message() const {
return vformat("The local variable '%s' is declared but never used.", subject);
case FORMATTING_ERROR:
return subject;
+ case DEVICE_LIMIT_EXCEEDED:
+ return vformat("The total size of the %s for this shader on this device has been exceeded (%s/%s). The shader may not work correctly.", subject, (int)extra_args[0], (int)extra_args[1]);
default:
break;
}
@@ -73,6 +75,10 @@ String ShaderWarning::get_name() const {
return get_name_from_code(code);
}
+Vector<Variant> ShaderWarning::get_extra_args() const {
+ return extra_args;
+}
+
String ShaderWarning::get_name_from_code(Code p_code) {
ERR_FAIL_INDEX_V(p_code, WARNING_MAX, String());
@@ -85,6 +91,7 @@ String ShaderWarning::get_name_from_code(Code p_code) {
"UNUSED_VARYING",
"UNUSED_LOCAL_VARIABLE",
"FORMATTING_ERROR",
+ "DEVICE_LIMIT_EXCEEDED",
};
static_assert((sizeof(names) / sizeof(*names)) == WARNING_MAX, "Amount of warning types don't match the amount of warning names.");
@@ -114,6 +121,7 @@ static void init_code_to_flags_map() {
code_to_flags_map->insert(ShaderWarning::UNUSED_VARYING, ShaderWarning::UNUSED_VARYING_FLAG);
code_to_flags_map->insert(ShaderWarning::UNUSED_LOCAL_VARIABLE, ShaderWarning::UNUSED_LOCAL_VARIABLE_FLAG);
code_to_flags_map->insert(ShaderWarning::FORMATTING_ERROR, ShaderWarning::FORMATTING_ERROR_FLAG);
+ code_to_flags_map->insert(ShaderWarning::DEVICE_LIMIT_EXCEEDED, ShaderWarning::DEVICE_LIMIT_EXCEEDED_FLAG);
}
ShaderWarning::CodeFlags ShaderWarning::get_flags_from_codemap(const Map<Code, bool> &p_map) {
@@ -132,8 +140,8 @@ ShaderWarning::CodeFlags ShaderWarning::get_flags_from_codemap(const Map<Code, b
return (CodeFlags)result;
}
-ShaderWarning::ShaderWarning(Code p_code, int p_line, const StringName &p_subject) :
- code(p_code), line(p_line), subject(p_subject) {
+ShaderWarning::ShaderWarning(Code p_code, int p_line, const StringName &p_subject, const Vector<Variant> &p_extra_args) :
+ code(p_code), line(p_line), subject(p_subject), extra_args(p_extra_args) {
}
#endif // DEBUG_ENABLED
diff --git a/servers/rendering/shader_warnings.h b/servers/rendering/shader_warnings.h
index 18915fffd8..e309907181 100644
--- a/servers/rendering/shader_warnings.h
+++ b/servers/rendering/shader_warnings.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,6 +36,7 @@
#include "core/string/string_name.h"
#include "core/templates/list.h"
#include "core/templates/map.h"
+#include "core/variant/variant.h"
class ShaderWarning {
public:
@@ -48,6 +49,7 @@ public:
UNUSED_VARYING,
UNUSED_LOCAL_VARIABLE,
FORMATTING_ERROR,
+ DEVICE_LIMIT_EXCEEDED,
WARNING_MAX,
};
@@ -61,12 +63,14 @@ public:
UNUSED_VARYING_FLAG = 32U,
UNUSED_LOCAL_VARIABLE_FLAG = 64U,
FORMATTING_ERROR_FLAG = 128U,
+ DEVICE_LIMIT_EXCEEDED_FLAG = 256U,
};
private:
Code code;
int line;
StringName subject;
+ Vector<Variant> extra_args;
public:
Code get_code() const;
@@ -74,12 +78,13 @@ public:
const StringName &get_subject() const;
String get_message() const;
String get_name() const;
+ Vector<Variant> get_extra_args() const;
static String get_name_from_code(Code p_code);
static Code get_code_from_name(const String &p_name);
static CodeFlags get_flags_from_codemap(const Map<Code, bool> &p_map);
- ShaderWarning(Code p_code = WARNING_MAX, int p_line = -1, const StringName &p_subject = "");
+ ShaderWarning(Code p_code = WARNING_MAX, int p_line = -1, const StringName &p_subject = "", const Vector<Variant> &p_extra_args = Vector<Variant>());
};
#endif // DEBUG_ENABLED
diff --git a/servers/rendering_server.cpp b/servers/rendering_server.cpp
index 23d3bf030f..a94f70e20f 100644
--- a/servers/rendering_server.cpp
+++ b/servers/rendering_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -32,6 +32,7 @@
#include "core/config/project_settings.h"
#include "servers/rendering/rendering_server_globals.h"
+
RenderingServer *RenderingServer::singleton = nullptr;
RenderingServer *(*RenderingServer::create_func)() = nullptr;
@@ -1963,7 +1964,7 @@ void RenderingServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("reflection_probe_set_enable_shadows", "probe", "enable"), &RenderingServer::reflection_probe_set_enable_shadows);
ClassDB::bind_method(D_METHOD("reflection_probe_set_cull_mask", "probe", "layers"), &RenderingServer::reflection_probe_set_cull_mask);
ClassDB::bind_method(D_METHOD("reflection_probe_set_resolution", "probe", "resolution"), &RenderingServer::reflection_probe_set_resolution);
- ClassDB::bind_method(D_METHOD("reflection_probe_set_lod_threshold", "probe", "pixels"), &RenderingServer::reflection_probe_set_lod_threshold);
+ ClassDB::bind_method(D_METHOD("reflection_probe_set_mesh_lod_threshold", "probe", "pixels"), &RenderingServer::reflection_probe_set_mesh_lod_threshold);
BIND_ENUM_CONSTANT(REFLECTION_PROBE_UPDATE_ONCE);
BIND_ENUM_CONSTANT(REFLECTION_PROBE_UPDATE_ALWAYS);
@@ -1999,6 +2000,10 @@ void RenderingServer::_bind_methods() {
BIND_ENUM_CONSTANT(DECAL_FILTER_LINEAR_MIPMAPS);
BIND_ENUM_CONSTANT(DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC);
+ /* GI API (affects VoxelGI and SDFGI) */
+
+ ClassDB::bind_method(D_METHOD("gi_set_use_half_resolution", "half_resolution"), &RenderingServer::gi_set_use_half_resolution);
+
/* VOXEL GI API */
ClassDB::bind_method(D_METHOD("voxel_gi_create"), &RenderingServer::voxel_gi_create);
@@ -2274,6 +2279,7 @@ void RenderingServer::_bind_methods() {
BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS);
BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE);
BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_SSAO);
+ BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_SSIL);
BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_PSSM_SPLITS);
BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_DECAL_ATLAS);
BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_SDFGI);
@@ -2323,6 +2329,7 @@ void RenderingServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("environment_glow_set_use_high_quality", "enable"), &RenderingServer::environment_glow_set_use_high_quality);
ClassDB::bind_method(D_METHOD("environment_set_ssr_roughness_quality", "quality"), &RenderingServer::environment_set_ssr_roughness_quality);
ClassDB::bind_method(D_METHOD("environment_set_ssao_quality", "quality", "half_size", "adaptive_target", "blur_passes", "fadeout_from", "fadeout_to"), &RenderingServer::environment_set_ssao_quality);
+ ClassDB::bind_method(D_METHOD("environment_set_ssil_quality", "quality", "half_size", "adaptive_target", "blur_passes", "fadeout_from", "fadeout_to"), &RenderingServer::environment_set_ssil_quality);
ClassDB::bind_method(D_METHOD("environment_set_sdfgi_ray_count", "ray_count"), &RenderingServer::environment_set_sdfgi_ray_count);
ClassDB::bind_method(D_METHOD("environment_set_sdfgi_frames_to_converge", "frames"), &RenderingServer::environment_set_sdfgi_frames_to_converge);
ClassDB::bind_method(D_METHOD("environment_set_sdfgi_frames_to_update_light", "frames"), &RenderingServer::environment_set_sdfgi_frames_to_update_light);
@@ -2374,6 +2381,12 @@ void RenderingServer::_bind_methods() {
BIND_ENUM_CONSTANT(ENV_SSAO_QUALITY_HIGH);
BIND_ENUM_CONSTANT(ENV_SSAO_QUALITY_ULTRA);
+ BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_VERY_LOW);
+ BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_LOW);
+ BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_MEDIUM);
+ BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_HIGH);
+ BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_ULTRA);
+
BIND_ENUM_CONSTANT(ENV_SDFGI_CASCADES_4);
BIND_ENUM_CONSTANT(ENV_SDFGI_CASCADES_6);
BIND_ENUM_CONSTANT(ENV_SDFGI_CASCADES_8);
@@ -2461,6 +2474,7 @@ void RenderingServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("instance_geometry_set_flag", "instance", "flag", "enabled"), &RenderingServer::instance_geometry_set_flag);
ClassDB::bind_method(D_METHOD("instance_geometry_set_cast_shadows_setting", "instance", "shadow_casting_setting"), &RenderingServer::instance_geometry_set_cast_shadows_setting);
ClassDB::bind_method(D_METHOD("instance_geometry_set_material_override", "instance", "material"), &RenderingServer::instance_geometry_set_material_override);
+ ClassDB::bind_method(D_METHOD("instance_geometry_set_material_overlay", "instance", "material"), &RenderingServer::instance_geometry_set_material_overlay);
ClassDB::bind_method(D_METHOD("instance_geometry_set_visibility_range", "instance", "min", "max", "min_margin", "max_margin", "fade_mode"), &RenderingServer::instance_geometry_set_visibility_range);
ClassDB::bind_method(D_METHOD("instance_geometry_set_lightmap", "instance", "lightmap", "lightmap_uv_scale", "lightmap_slice"), &RenderingServer::instance_geometry_set_lightmap);
ClassDB::bind_method(D_METHOD("instance_geometry_set_lod_bias", "instance", "lod_bias"), &RenderingServer::instance_geometry_set_lod_bias);
@@ -2711,6 +2725,7 @@ void RenderingServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_rendering_info", "info"), &RenderingServer::get_rendering_info);
ClassDB::bind_method(D_METHOD("get_video_adapter_name"), &RenderingServer::get_video_adapter_name);
ClassDB::bind_method(D_METHOD("get_video_adapter_vendor"), &RenderingServer::get_video_adapter_vendor);
+ ClassDB::bind_method(D_METHOD("get_video_adapter_type"), &RenderingServer::get_video_adapter_type);
ClassDB::bind_method(D_METHOD("make_sphere_mesh", "latitudes", "longitudes", "radius"), &RenderingServer::make_sphere_mesh);
ClassDB::bind_method(D_METHOD("get_test_cube"), &RenderingServer::get_test_cube);
@@ -2871,7 +2886,6 @@ RenderingServer::RenderingServer() {
GLOBAL_DEF("rendering/shading/overrides/force_blinn_over_ggx.mobile", true);
GLOBAL_DEF("rendering/driver/depth_prepass/enable", true);
- GLOBAL_DEF("rendering/driver/depth_prepass/disable_for_vendors", "PowerVR,Mali,Adreno,Apple");
GLOBAL_DEF_RST("rendering/textures/default_filters/use_nearest_mipmap_filter", false);
GLOBAL_DEF_RST("rendering/textures/default_filters/anisotropic_filtering_level", 2);
@@ -2896,6 +2910,18 @@ RenderingServer::RenderingServer() {
GLOBAL_DEF("rendering/environment/ssao/fadeout_to", 300.0);
ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssao/fadeout_to", PropertyInfo(Variant::FLOAT, "rendering/environment/ssao/fadeout_to", PROPERTY_HINT_RANGE, "64,65536,0.1,or_greater"));
+ GLOBAL_DEF("rendering/environment/ssil/quality", 2);
+ ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssil/quality", PropertyInfo(Variant::INT, "rendering/environment/ssil/quality", PROPERTY_HINT_ENUM, "Very Low (Fast),Low (Fast),Medium (Average),High (Slow),Ultra (Custom)"));
+ GLOBAL_DEF("rendering/environment/ssil/half_size", true);
+ GLOBAL_DEF("rendering/environment/ssil/adaptive_target", 0.5);
+ ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssil/adaptive_target", PropertyInfo(Variant::FLOAT, "rendering/environment/ssil/adaptive_target", PROPERTY_HINT_RANGE, "0.0,1.0,0.01"));
+ GLOBAL_DEF("rendering/environment/ssil/blur_passes", 4);
+ ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssil/blur_passes", PropertyInfo(Variant::INT, "rendering/environment/ssil/blur_passes", PROPERTY_HINT_RANGE, "0,6"));
+ GLOBAL_DEF("rendering/environment/ssil/fadeout_from", 50.0);
+ ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssil/fadeout_from", PropertyInfo(Variant::FLOAT, "rendering/environment/ssil/fadeout_from", PROPERTY_HINT_RANGE, "0.0,512,0.1,or_greater"));
+ GLOBAL_DEF("rendering/environment/ssil/fadeout_to", 300.0);
+ ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/ssil/fadeout_to", PropertyInfo(Variant::FLOAT, "rendering/environment/ssil/fadeout_to", PROPERTY_HINT_RANGE, "64,65536,0.1,or_greater"));
+
GLOBAL_DEF("rendering/anti_aliasing/screen_space_roughness_limiter/enabled", true);
GLOBAL_DEF("rendering/anti_aliasing/screen_space_roughness_limiter/amount", 0.25);
GLOBAL_DEF("rendering/anti_aliasing/screen_space_roughness_limiter/limit", 0.18);
diff --git a/servers/rendering_server.h b/servers/rendering_server.h
index 230132651f..ada50292fc 100644
--- a/servers/rendering_server.h
+++ b/servers/rendering_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -528,7 +528,7 @@ public:
virtual void reflection_probe_set_enable_shadows(RID p_probe, bool p_enable) = 0;
virtual void reflection_probe_set_cull_mask(RID p_probe, uint32_t p_layers) = 0;
virtual void reflection_probe_set_resolution(RID p_probe, int p_resolution) = 0;
- virtual void reflection_probe_set_lod_threshold(RID p_probe, float p_pixels) = 0;
+ virtual void reflection_probe_set_mesh_lod_threshold(RID p_probe, float p_pixels) = 0;
/* DECAL API */
@@ -871,7 +871,7 @@ public:
virtual void viewport_set_use_debanding(RID p_viewport, bool p_use_debanding) = 0;
- virtual void viewport_set_lod_threshold(RID p_viewport, float p_pixels) = 0;
+ virtual void viewport_set_mesh_lod_threshold(RID p_viewport, float p_pixels) = 0;
virtual void viewport_set_use_occlusion_culling(RID p_viewport, bool p_use_debanding) = 0;
virtual void viewport_set_occlusion_rays_per_thread(int p_rays_per_thread) = 0;
@@ -913,6 +913,7 @@ public:
VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS,
VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE,
VIEWPORT_DEBUG_DRAW_SSAO,
+ VIEWPORT_DEBUG_DRAW_SSIL,
VIEWPORT_DEBUG_DRAW_PSSM_SPLITS,
VIEWPORT_DEBUG_DRAW_DECAL_ATLAS,
VIEWPORT_DEBUG_DRAW_SDFGI,
@@ -1029,6 +1030,18 @@ public:
virtual void environment_set_ssao_quality(EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
+ virtual void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) = 0;
+
+ enum EnvironmentSSILQuality {
+ ENV_SSIL_QUALITY_VERY_LOW,
+ ENV_SSIL_QUALITY_LOW,
+ ENV_SSIL_QUALITY_MEDIUM,
+ ENV_SSIL_QUALITY_HIGH,
+ ENV_SSIL_QUALITY_ULTRA,
+ };
+
+ virtual void environment_set_ssil_quality(EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0;
+
enum EnvironmentSDFGICascades {
ENV_SDFGI_CASCADES_4,
ENV_SDFGI_CASCADES_6,
@@ -1207,6 +1220,7 @@ public:
virtual void instance_geometry_set_flag(RID p_instance, InstanceFlags p_flags, bool p_enabled) = 0;
virtual void instance_geometry_set_cast_shadows_setting(RID p_instance, ShadowCastingSetting p_shadow_casting_setting) = 0;
virtual void instance_geometry_set_material_override(RID p_instance, RID p_material) = 0;
+ virtual void instance_geometry_set_material_overlay(RID p_instance, RID p_material) = 0;
virtual void instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, VisibilityRangeFadeMode p_fade_mode) = 0;
virtual void instance_geometry_set_lightmap(RID p_instance, RID p_lightmap, const Rect2 &p_lightmap_uv_scale, int p_lightmap_slice) = 0;
virtual void instance_geometry_set_lod_bias(RID p_instance, float p_lod_bias) = 0;
@@ -1473,6 +1487,7 @@ public:
virtual uint64_t get_rendering_info(RenderingInfo p_info) = 0;
virtual String get_video_adapter_name() const = 0;
virtual String get_video_adapter_vendor() const = 0;
+ virtual RenderingDevice::DeviceType get_video_adapter_type() const = 0;
struct FrameProfileArea {
String name;
@@ -1593,6 +1608,7 @@ VARIANT_ENUM_CAST(RenderingServer::EnvironmentGlowBlendMode);
VARIANT_ENUM_CAST(RenderingServer::EnvironmentToneMapper);
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSRRoughnessQuality);
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSAOQuality);
+VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSILQuality);
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGICascades);
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIFramesToConverge);
VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIRayCount);
diff --git a/servers/server_wrap_mt_common.h b/servers/server_wrap_mt_common.h
index 95d2e2254e..2c4aab0784 100644
--- a/servers/server_wrap_mt_common.h
+++ b/servers/server_wrap_mt_common.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/text/text_server_extension.cpp b/servers/text/text_server_extension.cpp
index 5f83fc4206..a51b62e730 100644
--- a/servers/text/text_server_extension.cpp
+++ b/servers/text/text_server_extension.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -174,6 +174,9 @@ void TextServerExtension::_bind_methods() {
GDVIRTUAL_BIND(_font_remove_script_support_override, "font_rid", "script");
GDVIRTUAL_BIND(_font_get_script_support_overrides, "font_rid");
+ GDVIRTUAL_BIND(_font_set_opentype_feature_overrides, "font_rid", "overrides");
+ GDVIRTUAL_BIND(_font_get_opentype_feature_overrides, "font_rid");
+
GDVIRTUAL_BIND(_font_supported_feature_list, "font_rid");
GDVIRTUAL_BIND(_font_supported_variation_list, "font_rid");
@@ -869,6 +872,18 @@ Vector<String> TextServerExtension::font_get_script_support_overrides(RID p_font
return Vector<String>();
}
+void TextServerExtension::font_set_opentype_feature_overrides(RID p_font_rid, const Dictionary &p_overrides) {
+ GDVIRTUAL_CALL(_font_set_opentype_feature_overrides, p_font_rid, p_overrides);
+}
+
+Dictionary TextServerExtension::font_get_opentype_feature_overrides(RID p_font_rid) const {
+ Dictionary ret;
+ if (GDVIRTUAL_CALL(_font_get_opentype_feature_overrides, p_font_rid, ret)) {
+ return ret;
+ }
+ return Dictionary();
+}
+
Dictionary TextServerExtension::font_supported_feature_list(RID p_font_rid) const {
Dictionary ret;
if (GDVIRTUAL_CALL(_font_supported_feature_list, p_font_rid, ret)) {
diff --git a/servers/text/text_server_extension.h b/servers/text/text_server_extension.h
index 91d1a6b97e..9b456c2dd7 100644
--- a/servers/text/text_server_extension.h
+++ b/servers/text/text_server_extension.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -285,6 +285,11 @@ public:
GDVIRTUAL2(_font_remove_script_support_override, RID, const String &);
GDVIRTUAL1R(Vector<String>, _font_get_script_support_overrides, RID);
+ virtual void font_set_opentype_feature_overrides(RID p_font_rid, const Dictionary &p_overrides) override;
+ virtual Dictionary font_get_opentype_feature_overrides(RID p_font_rid) const override;
+ GDVIRTUAL2(_font_set_opentype_feature_overrides, RID, const Dictionary &);
+ GDVIRTUAL1RC(Dictionary, _font_get_opentype_feature_overrides, RID);
+
virtual Dictionary font_supported_feature_list(RID p_font_rid) const override;
virtual Dictionary font_supported_variation_list(RID p_font_rid) const override;
GDVIRTUAL1RC(Dictionary, _font_supported_feature_list, RID);
diff --git a/servers/text_server.cpp b/servers/text_server.cpp
index 2303f27495..143cda985d 100644
--- a/servers/text_server.cpp
+++ b/servers/text_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -327,6 +327,9 @@ void TextServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("font_remove_script_support_override", "font_rid", "script"), &TextServer::font_remove_script_support_override);
ClassDB::bind_method(D_METHOD("font_get_script_support_overrides", "font_rid"), &TextServer::font_get_script_support_overrides);
+ ClassDB::bind_method(D_METHOD("font_set_opentype_feature_overrides", "font_rid", "overrides"), &TextServer::font_set_opentype_feature_overrides);
+ ClassDB::bind_method(D_METHOD("font_get_opentype_feature_overrides", "font_rid"), &TextServer::font_get_opentype_feature_overrides);
+
ClassDB::bind_method(D_METHOD("font_supported_feature_list", "font_rid"), &TextServer::font_supported_feature_list);
ClassDB::bind_method(D_METHOD("font_supported_variation_list", "font_rid"), &TextServer::font_supported_variation_list);
@@ -989,9 +992,9 @@ Vector<Vector2> TextServer::shaped_text_get_selection(RID p_shaped, int p_start,
}
real_t char_adv = advance / (real_t)(glyphs[i].end - glyphs[i].start);
if ((glyphs[i].flags & GRAPHEME_IS_RTL) == GRAPHEME_IS_RTL) {
- ranges.push_back(Vector2(off, off + char_adv * (start - glyphs[i].start)));
+ ranges.push_back(Vector2(off, off + char_adv * (glyphs[i].end - start)));
} else {
- ranges.push_back(Vector2(off + char_adv * (glyphs[i].end - start), off + advance));
+ ranges.push_back(Vector2(off + char_adv * (start - glyphs[i].start), off + advance));
}
}
// Selection range is within grapheme.
@@ -1099,6 +1102,31 @@ int TextServer::shaped_text_hit_test_position(RID p_shaped, float p_coords) cons
return glyphs[i].start;
}
}
+ // Ligature, handle mid-grapheme hit.
+ if (p_coords >= off && p_coords < off + advance && glyphs[i].end > glyphs[i].start + 1) {
+ int cnt = glyphs[i].end - glyphs[i].start;
+ real_t char_adv = advance / (real_t)(cnt);
+ real_t sub_off = off;
+ for (int j = 0; j < cnt; j++) {
+ // Place caret to the left of clicked sub-grapheme.
+ if (p_coords >= sub_off && p_coords < sub_off + char_adv / 2) {
+ if ((glyphs[i].flags & GRAPHEME_IS_RTL) == GRAPHEME_IS_RTL) {
+ return glyphs[i].end - j;
+ } else {
+ return glyphs[i].start + j;
+ }
+ }
+ // Place caret to the right of clicked sub-grapheme.
+ if (p_coords >= sub_off + char_adv / 2 && p_coords < sub_off + char_adv) {
+ if ((glyphs[i].flags & GRAPHEME_IS_RTL) == GRAPHEME_IS_RTL) {
+ return glyphs[i].start + (cnt - 1) - j;
+ } else {
+ return glyphs[i].end - (cnt - 1) + j;
+ }
+ }
+ sub_off += char_adv;
+ }
+ }
// Place caret to the left of clicked grapheme.
if (p_coords >= off && p_coords < off + advance / 2) {
if ((glyphs[i].flags & GRAPHEME_IS_RTL) == GRAPHEME_IS_RTL) {
diff --git a/servers/text_server.h b/servers/text_server.h
index 56b1919c51..d5dccc0edb 100644
--- a/servers/text_server.h
+++ b/servers/text_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -350,6 +350,9 @@ public:
virtual void font_remove_script_support_override(RID p_font_rid, const String &p_script) = 0;
virtual Vector<String> font_get_script_support_overrides(RID p_font_rid) = 0;
+ virtual void font_set_opentype_feature_overrides(RID p_font_rid, const Dictionary &p_overrides) = 0;
+ virtual Dictionary font_get_opentype_feature_overrides(RID p_font_rid) const = 0;
+
virtual Dictionary font_supported_feature_list(RID p_font_rid) const = 0;
virtual Dictionary font_supported_variation_list(RID p_font_rid) const = 0;
diff --git a/servers/xr/xr_interface.cpp b/servers/xr/xr_interface.cpp
index ca11df439c..758f2416ec 100644
--- a/servers/xr/xr_interface.cpp
+++ b/servers/xr/xr_interface.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/xr/xr_interface.h b/servers/xr/xr_interface.h
index b489481f75..03563026c8 100644
--- a/servers/xr/xr_interface.h
+++ b/servers/xr/xr_interface.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/xr/xr_interface_extension.cpp b/servers/xr/xr_interface_extension.cpp
index 80576ac607..9dae3b162d 100644
--- a/servers/xr/xr_interface_extension.cpp
+++ b/servers/xr/xr_interface_extension.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/xr/xr_interface_extension.h b/servers/xr/xr_interface_extension.h
index 763526de96..e22ec2b872 100644
--- a/servers/xr/xr_interface_extension.h
+++ b/servers/xr/xr_interface_extension.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/xr/xr_pose.cpp b/servers/xr/xr_pose.cpp
index 0d05e62b46..ab6eb042c9 100644
--- a/servers/xr/xr_pose.cpp
+++ b/servers/xr/xr_pose.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/xr/xr_pose.h b/servers/xr/xr_pose.h
index 223e95ddfe..8c1fc63360 100644
--- a/servers/xr/xr_pose.h
+++ b/servers/xr/xr_pose.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/xr/xr_positional_tracker.cpp b/servers/xr/xr_positional_tracker.cpp
index 1313a91172..74907a5675 100644
--- a/servers/xr/xr_positional_tracker.cpp
+++ b/servers/xr/xr_positional_tracker.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/xr/xr_positional_tracker.h b/servers/xr/xr_positional_tracker.h
index 69eb105b5a..895bcab215 100644
--- a/servers/xr/xr_positional_tracker.h
+++ b/servers/xr/xr_positional_tracker.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/xr_server.cpp b/servers/xr_server.cpp
index 959288497d..69f4c69b53 100644
--- a/servers/xr_server.cpp
+++ b/servers/xr_server.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/servers/xr_server.h b/servers/xr_server.h
index 48d73cac9a..824a42ed31 100644
--- a/servers/xr_server.h
+++ b/servers/xr_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/io/test_config_file.h b/tests/core/io/test_config_file.h
index f6fbaf9a88..6e393c7a2d 100644
--- a/tests/core/io/test_config_file.h
+++ b/tests/core/io/test_config_file.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/io/test_file_access.h b/tests/core/io/test_file_access.h
index f566899c9b..eee57048cf 100644
--- a/tests/core/io/test_file_access.h
+++ b/tests/core/io/test_file_access.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/io/test_image.h b/tests/core/io/test_image.h
index 643d2f31ec..dcf21dd7b0 100644
--- a/tests/core/io/test_image.h
+++ b/tests/core/io/test_image.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/io/test_json.h b/tests/core/io/test_json.h
index 3af58dfa1c..478cf1766e 100644
--- a/tests/core/io/test_json.h
+++ b/tests/core/io/test_json.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/io/test_marshalls.h b/tests/core/io/test_marshalls.h
index 6bd916164e..546a2e9358 100644
--- a/tests/core/io/test_marshalls.h
+++ b/tests/core/io/test_marshalls.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/io/test_pck_packer.h b/tests/core/io/test_pck_packer.h
index 75a4abffbe..95adca6d68 100644
--- a/tests/core/io/test_pck_packer.h
+++ b/tests/core/io/test_pck_packer.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/io/test_resource.h b/tests/core/io/test_resource.h
index cee3281995..b3983bb06d 100644
--- a/tests/core/io/test_resource.h
+++ b/tests/core/io/test_resource.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/io/test_xml_parser.h b/tests/core/io/test_xml_parser.h
index 2d00f29ddf..87592b56ce 100644
--- a/tests/core/io/test_xml_parser.h
+++ b/tests/core/io/test_xml_parser.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_aabb.h b/tests/core/math/test_aabb.h
index f5076ce1ed..526972a82f 100644
--- a/tests/core/math/test_aabb.h
+++ b/tests/core/math/test_aabb.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_astar.h b/tests/core/math/test_astar.h
index 2c183374ac..859172dca3 100644
--- a/tests/core/math/test_astar.h
+++ b/tests/core/math/test_astar.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_basis.h b/tests/core/math/test_basis.h
index 500c069a33..257e41e82c 100644
--- a/tests/core/math/test_basis.h
+++ b/tests/core/math/test_basis.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_color.h b/tests/core/math/test_color.h
index 82cf786f7a..e62ce6ec60 100644
--- a/tests/core/math/test_color.h
+++ b/tests/core/math/test_color.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_expression.h b/tests/core/math/test_expression.h
index cb1d29389f..5a894b20f3 100644
--- a/tests/core/math/test_expression.h
+++ b/tests/core/math/test_expression.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_geometry_2d.h b/tests/core/math/test_geometry_2d.h
index 8f6669b572..3487e4d7e8 100644
--- a/tests/core/math/test_geometry_2d.h
+++ b/tests/core/math/test_geometry_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_geometry_3d.h b/tests/core/math/test_geometry_3d.h
index f42003ffcf..1b8d2eee34 100644
--- a/tests/core/math/test_geometry_3d.h
+++ b/tests/core/math/test_geometry_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_math.cpp b/tests/core/math/test_math.cpp
index 97e6055130..7b1f3af2b9 100644
--- a/tests/core/math/test_math.cpp
+++ b/tests/core/math/test_math.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_math.h b/tests/core/math/test_math.h
index ab5fb6a050..a8aa8f6847 100644
--- a/tests/core/math/test_math.h
+++ b/tests/core/math/test_math.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_random_number_generator.h b/tests/core/math/test_random_number_generator.h
index 39c4771c19..e8cd47b9d7 100644
--- a/tests/core/math/test_random_number_generator.h
+++ b/tests/core/math/test_random_number_generator.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/math/test_rect2.h b/tests/core/math/test_rect2.h
index aabb950461..e07250a8a2 100644
--- a/tests/core/math/test_rect2.h
+++ b/tests/core/math/test_rect2.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/object/test_class_db.h b/tests/core/object/test_class_db.h
index 4b27905485..e4145c8408 100644
--- a/tests/core/object/test_class_db.h
+++ b/tests/core/object/test_class_db.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/object/test_method_bind.h b/tests/core/object/test_method_bind.h
index c3a869a8a4..0c7e47fc89 100644
--- a/tests/core/object/test_method_bind.h
+++ b/tests/core/object/test_method_bind.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/object/test_object.h b/tests/core/object/test_object.h
index 4109ea521a..f9158eccec 100644
--- a/tests/core/object/test_object.h
+++ b/tests/core/object/test_object.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/string/test_node_path.h b/tests/core/string/test_node_path.h
index 0216a30f8f..d2de766889 100644
--- a/tests/core/string/test_node_path.h
+++ b/tests/core/string/test_node_path.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/string/test_string.h b/tests/core/string/test_string.h
index bb9b079e79..2f611c26a9 100644
--- a/tests/core/string/test_string.h
+++ b/tests/core/string/test_string.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/string/test_translation.h b/tests/core/string/test_translation.h
index 47e06add40..85ac639bec 100644
--- a/tests/core/string/test_translation.h
+++ b/tests/core/string/test_translation.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/templates/test_command_queue.h b/tests/core/templates/test_command_queue.h
index 5d228f2bf6..0d016f5d06 100644
--- a/tests/core/templates/test_command_queue.h
+++ b/tests/core/templates/test_command_queue.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/templates/test_list.h b/tests/core/templates/test_list.h
index 52d5edff70..49da0b8aad 100644
--- a/tests/core/templates/test_list.h
+++ b/tests/core/templates/test_list.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/templates/test_local_vector.h b/tests/core/templates/test_local_vector.h
index 67bcf515f9..b2464c3914 100644
--- a/tests/core/templates/test_local_vector.h
+++ b/tests/core/templates/test_local_vector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,6 +37,17 @@
namespace TestLocalVector {
+TEST_CASE("[LocalVector] List Initialization.") {
+ LocalVector<int> vector{ 0, 1, 2, 3, 4 };
+
+ CHECK(vector.size() == 5);
+ CHECK(vector[0] == 0);
+ CHECK(vector[1] == 1);
+ CHECK(vector[2] == 2);
+ CHECK(vector[3] == 3);
+ CHECK(vector[4] == 4);
+}
+
TEST_CASE("[LocalVector] Push Back.") {
LocalVector<int> vector;
vector.push_back(0);
diff --git a/tests/core/templates/test_lru.h b/tests/core/templates/test_lru.h
index 9359909c53..354f53e164 100644
--- a/tests/core/templates/test_lru.h
+++ b/tests/core/templates/test_lru.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/templates/test_oa_hash_map.cpp b/tests/core/templates/test_oa_hash_map.cpp
index f7b2b7cdb0..87bf9feb83 100644
--- a/tests/core/templates/test_oa_hash_map.cpp
+++ b/tests/core/templates/test_oa_hash_map.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/templates/test_oa_hash_map.h b/tests/core/templates/test_oa_hash_map.h
index f229ac94ea..d4b72af2ac 100644
--- a/tests/core/templates/test_oa_hash_map.h
+++ b/tests/core/templates/test_oa_hash_map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/templates/test_ordered_hash_map.h b/tests/core/templates/test_ordered_hash_map.h
index 35ce0fc656..08c5c9b72a 100644
--- a/tests/core/templates/test_ordered_hash_map.h
+++ b/tests/core/templates/test_ordered_hash_map.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/templates/test_paged_array.h b/tests/core/templates/test_paged_array.h
index 7efd3799f3..86cf3a2dfc 100644
--- a/tests/core/templates/test_paged_array.h
+++ b/tests/core/templates/test_paged_array.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/templates/test_vector.h b/tests/core/templates/test_vector.h
index 6ea865dacc..24b3547256 100644
--- a/tests/core/templates/test_vector.h
+++ b/tests/core/templates/test_vector.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,6 +37,17 @@
namespace TestVector {
+TEST_CASE("[Vector] List initialization") {
+ Vector<int> vector{ 0, 1, 2, 3, 4 };
+
+ CHECK(vector.size() == 5);
+ CHECK(vector[0] == 0);
+ CHECK(vector[1] == 1);
+ CHECK(vector[2] == 2);
+ CHECK(vector[3] == 3);
+ CHECK(vector[4] == 4);
+}
+
TEST_CASE("[Vector] Push back and append") {
Vector<int> vector;
vector.push_back(0);
diff --git a/tests/core/test_crypto.h b/tests/core/test_crypto.h
index 3b909c7df8..ce4edc71ae 100644
--- a/tests/core/test_crypto.h
+++ b/tests/core/test_crypto.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/test_hashing_context.h b/tests/core/test_hashing_context.h
index 728a5f2cfa..4795d24103 100644
--- a/tests/core/test_hashing_context.h
+++ b/tests/core/test_hashing_context.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/test_time.h b/tests/core/test_time.h
index 28f1cb2f20..903ca9c001 100644
--- a/tests/core/test_time.h
+++ b/tests/core/test_time.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/variant/test_array.h b/tests/core/variant/test_array.h
index d02b3d0e39..205e34daea 100644
--- a/tests/core/variant/test_array.h
+++ b/tests/core/variant/test_array.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/variant/test_dictionary.h b/tests/core/variant/test_dictionary.h
index 65079698a3..79d53fa64e 100644
--- a/tests/core/variant/test_dictionary.h
+++ b/tests/core/variant/test_dictionary.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/core/variant/test_variant.h b/tests/core/variant/test_variant.h
index 0d16fa092c..916686d7c1 100644
--- a/tests/core/variant/test_variant.h
+++ b/tests/core/variant/test_variant.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/scene/test_code_edit.h b/tests/scene/test_code_edit.h
index 4b5a049a07..52d3d5c340 100644
--- a/tests/scene/test_code_edit.h
+++ b/tests/scene/test_code_edit.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -1104,7 +1104,7 @@ TEST_CASE("[SceneTree][CodeEdit] delimiters") {
CHECK(code_edit->get_delimiter_start_key(idx) == "#");
CHECK(code_edit->get_delimiter_end_key(idx) == "");
- /* Check nested strings are handeled correctly. */
+ /* Check nested strings are handled correctly. */
code_edit->set_text(" \n# # \n ");
/* Check line above is not in string. */
@@ -1132,7 +1132,7 @@ TEST_CASE("[SceneTree][CodeEdit] delimiters") {
CHECK(code_edit->get_delimiter_start_position(2, 1) == OUTSIDE_DELIMETER);
CHECK(code_edit->get_delimiter_end_position(2, 1) == OUTSIDE_DELIMETER);
- /* Check is in string with no column retruns true if entire line is comment excluding whitespace. */
+ /* Check is in string with no column returns true if entire line is comment excluding whitespace. */
code_edit->set_text(" \n # # \n ");
CHECK(code_edit->is_in_string(1) != -1);
@@ -1195,7 +1195,7 @@ TEST_CASE("[SceneTree][CodeEdit] delimiters") {
CHECK(code_edit->get_delimiter_start_key(idx) == "#");
CHECK(code_edit->get_delimiter_end_key(idx) == "");
- /* Check nested comments are handeled correctly. */
+ /* Check nested comments are handled correctly. */
code_edit->set_text(" \n# # \n ");
/* Check line above is not in comment. */
@@ -1223,7 +1223,7 @@ TEST_CASE("[SceneTree][CodeEdit] delimiters") {
CHECK(code_edit->get_delimiter_start_position(2, 1) == OUTSIDE_DELIMETER);
CHECK(code_edit->get_delimiter_end_position(2, 1) == OUTSIDE_DELIMETER);
- /* Check is in comment with no column retruns true if entire line is comment excluding whitespace. */
+ /* Check is in comment with no column returns true if entire line is comment excluding whitespace. */
code_edit->set_text(" \n # # \n ");
CHECK(code_edit->is_in_comment(1) != -1);
@@ -1491,7 +1491,7 @@ TEST_CASE("[SceneTree][CodeEdit] delimiters") {
CHECK(code_edit->get_delimiter_start_key(idx) == "#");
CHECK(code_edit->get_delimiter_end_key(idx) == "#");
- /* Check is in string with no column retruns true if entire line is string excluding whitespace. */
+ /* Check is in string with no column returns true if entire line is string excluding whitespace. */
code_edit->set_text(" \n # \n\n #\n ");
CHECK(code_edit->is_in_string(1) != -1);
CHECK(code_edit->is_in_string(2) != -1);
@@ -1680,7 +1680,7 @@ TEST_CASE("[SceneTree][CodeEdit] delimiters") {
CHECK(code_edit->get_delimiter_start_key(idx) == "#");
CHECK(code_edit->get_delimiter_end_key(idx) == "#");
- /* Check is in comment with no column retruns true if entire line is comment excluding whitespace. */
+ /* Check is in comment with no column returns true if entire line is comment excluding whitespace. */
code_edit->set_text(" \n # \n\n #\n ");
CHECK(code_edit->is_in_comment(1) != -1);
CHECK(code_edit->is_in_comment(2) != -1);
@@ -1746,7 +1746,7 @@ TEST_CASE("[SceneTree][CodeEdit] delimiters") {
CHECK(code_edit->get_delimiter_start_key(idx) == "#");
CHECK(code_edit->get_delimiter_end_key(idx) == "#");
- /* Check is in comment with no column retruns true as inner delimiter should not be counted. */
+ /* Check is in comment with no column returns true as inner delimiter should not be counted. */
CHECK(code_edit->is_in_comment(1) != -1);
CHECK(code_edit->is_in_comment(2) != -1);
CHECK(code_edit->is_in_comment(3) != -1);
diff --git a/tests/scene/test_curve.h b/tests/scene/test_curve.h
index 4ee1a1c15c..0370ab15fd 100644
--- a/tests/scene/test_curve.h
+++ b/tests/scene/test_curve.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/scene/test_gradient.h b/tests/scene/test_gradient.h
index fc595b02f2..b0e6128932 100644
--- a/tests/scene/test_gradient.h
+++ b/tests/scene/test_gradient.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/scene/test_gui.cpp b/tests/scene/test_gui.cpp
index 086943838c..cd5624b70c 100644
--- a/tests/scene/test_gui.cpp
+++ b/tests/scene/test_gui.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/scene/test_gui.h b/tests/scene/test_gui.h
index 84bce620e2..a1807ed15c 100644
--- a/tests/scene/test_gui.h
+++ b/tests/scene/test_gui.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/scene/test_path_3d.h b/tests/scene/test_path_3d.h
index 1fcef3adde..78f4e97f03 100644
--- a/tests/scene/test_path_3d.h
+++ b/tests/scene/test_path_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/scene/test_path_follow_2d.h b/tests/scene/test_path_follow_2d.h
index ddfcc5552a..abd12fe862 100644
--- a/tests/scene/test_path_follow_2d.h
+++ b/tests/scene/test_path_follow_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/scene/test_path_follow_3d.h b/tests/scene/test_path_follow_3d.h
index 6a505dbb39..9ffe49e3d6 100644
--- a/tests/scene/test_path_follow_3d.h
+++ b/tests/scene/test_path_follow_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/servers/test_physics_2d.cpp b/tests/servers/test_physics_2d.cpp
index 06aa88b5c0..8b77458a33 100644
--- a/tests/servers/test_physics_2d.cpp
+++ b/tests/servers/test_physics_2d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/servers/test_physics_2d.h b/tests/servers/test_physics_2d.h
index 2ae1053a03..b6c47574cd 100644
--- a/tests/servers/test_physics_2d.h
+++ b/tests/servers/test_physics_2d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/servers/test_physics_3d.cpp b/tests/servers/test_physics_3d.cpp
index 7cb74b1ee3..3d38b9d901 100644
--- a/tests/servers/test_physics_3d.cpp
+++ b/tests/servers/test_physics_3d.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/servers/test_physics_3d.h b/tests/servers/test_physics_3d.h
index b86327cdb4..f618d0fb4f 100644
--- a/tests/servers/test_physics_3d.h
+++ b/tests/servers/test_physics_3d.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/servers/test_render.cpp b/tests/servers/test_render.cpp
index 183f049238..44403e3724 100644
--- a/tests/servers/test_render.cpp
+++ b/tests/servers/test_render.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/servers/test_render.h b/tests/servers/test_render.h
index 1d773cb347..d5a3e01ee5 100644
--- a/tests/servers/test_render.h
+++ b/tests/servers/test_render.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/servers/test_shader_lang.cpp b/tests/servers/test_shader_lang.cpp
index e4310b1393..acc7e32441 100644
--- a/tests/servers/test_shader_lang.cpp
+++ b/tests/servers/test_shader_lang.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/servers/test_shader_lang.h b/tests/servers/test_shader_lang.h
index de7ec002b6..31e1bfbeea 100644
--- a/tests/servers/test_shader_lang.h
+++ b/tests/servers/test_shader_lang.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/servers/test_text_server.h b/tests/servers/test_text_server.h
index 4edffe3711..b06f315bc8 100644
--- a/tests/servers/test_text_server.h
+++ b/tests/servers/test_text_server.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/test_macros.cpp b/tests/test_macros.cpp
index b0b28ab374..aa07f8211a 100644
--- a/tests/test_macros.cpp
+++ b/tests/test_macros.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/test_macros.h b/tests/test_macros.h
index b04c2117b7..ed8a12f155 100644
--- a/tests/test_macros.h
+++ b/tests/test_macros.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -135,7 +135,7 @@ int register_test_command(String p_command, TestFunc p_function);
// SEND_GUI_ACTION - takes an object and a input map key. e.g SEND_GUI_ACTION(code_edit, "ui_text_newline").
// SEND_GUI_KEY_EVENT - takes an object and a keycode set. e.g SEND_GUI_KEY_EVENT(code_edit, Key::A | KeyModifierMask::CMD).
// SEND_GUI_MOUSE_EVENT - takes an object, position, mouse button and mouse mask e.g SEND_GUI_MOUSE_EVENT(code_edit, Vector2(50, 50), MOUSE_BUTTON_NONE, MOUSE_BUTTON_NONE);
-// SEND_GUI_DOUBLE_CLICK - takes an object and a postion. e.g SEND_GUI_DOUBLE_CLICK(code_edit, Vector2(50, 50));
+// SEND_GUI_DOUBLE_CLICK - takes an object and a position. e.g SEND_GUI_DOUBLE_CLICK(code_edit, Vector2(50, 50));
#define SEND_GUI_ACTION(m_object, m_action) \
{ \
@@ -192,7 +192,7 @@ int register_test_command(String p_command, TestFunc p_function);
//
// Use SIGNAL_DISCARD("signal_name") to discard records all of the given signal, use only in placed you don't need to check.
//
-// All signals are automaticaly discared between test/sub test cases.
+// All signals are automatically discarded between test/sub test cases.
class SignalWatcher : public Object {
private:
diff --git a/tests/test_main.cpp b/tests/test_main.cpp
index a09be08de8..2b2c89fbf1 100644
--- a/tests/test_main.cpp
+++ b/tests/test_main.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/test_main.h b/tests/test_main.h
index 8c506a776f..8e6a7361fc 100644
--- a/tests/test_main.h
+++ b/tests/test_main.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/test_tools.h b/tests/test_tools.h
index e1192458d0..8ee7a4718f 100644
--- a/tests/test_tools.h
+++ b/tests/test_tools.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/test_utils.cpp b/tests/test_utils.cpp
index 890dea3ee1..11cb6398aa 100644
--- a/tests/test_utils.cpp
+++ b/tests/test_utils.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/test_utils.h b/tests/test_utils.h
index ccebe2e449..499ddb84b2 100644
--- a/tests/test_utils.h
+++ b/tests/test_utils.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tests/test_validate_testing.h b/tests/test_validate_testing.h
index 40b255e18a..413a7e351d 100644
--- a/tests/test_validate_testing.h
+++ b/tests/test_validate_testing.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/thirdparty/enet/enet/godot.h b/thirdparty/enet/enet/godot.h
index 2486de6b04..faca1f21a0 100644
--- a/thirdparty/enet/enet/godot.h
+++ b/thirdparty/enet/enet/godot.h
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/thirdparty/enet/godot.cpp b/thirdparty/enet/godot.cpp
index d0b381ea51..93d3b3bbff 100644
--- a/thirdparty/enet/godot.cpp
+++ b/thirdparty/enet/godot.cpp
@@ -5,8 +5,8 @@
/* GODOT ENGINE */
/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/version.py b/version.py
index 663f90b942..66cb145528 100644
--- a/version.py
+++ b/version.py
@@ -5,6 +5,6 @@ minor = 0
patch = 0
status = "dev"
module_config = ""
-year = 2021
+year = 2022
website = "https://godotengine.org"
docs = "latest"